收藏本站 | 设为首页 |
发新话题
打印

请兄台帮我指点一下下面这个DAC0832程序可行吗?

请兄台帮我指点一下下面这个DAC0832程序可行吗?

我想实现的功能是外面的数据(A/D的数据)从P0口进来,经过DAC0832转换,然后输出波形.程
序如下:
#include <reg51.h>
#include<stdio.h>
#define DAC0832Addr 0x7FFF //0832地址
#define uchar unsigned char    //uchar代表单个字节无符号数
#define uint unsigned int    //uint无符号字
sbit P36=0xB6;                //P2.6位
sbit P27=0xA7;                //P2.7位   
void TransformData(P0);//转换数据
void main()
{   TMOD=0x06;
    TH0=(256-250)/16; //定时125us中断,进行DA转换
    TL0=(256-250)%16;
    EA=1;                                   //开cpu中断
    ET0=1;                                    //T/C0开中断
    TR0=1;                                    //启动T/C0开始计时
    P0=0XFF;        //端口初始化为0xFF
    P1=0XFF;        
    P2=0XFF;
    P3=0XFF;
    do  {   }
    while(1);
}
void TransformData(P0)
{
    *((uchar xdata *)DAC0832Addr)=P0;
}
void timer0(void) interrupt 1 using 1    //定时0中断程序
{
    TransformData(P0);//进行数模转换
}

TOP

用PROTEUS这个单片机仿真软件,自己看一下,还可以调试,

TOP

个人觉得,中断中是不是不能加载子程序的
请问你有没有波形输出这部分的电路图?发给我一份.hongxinglin@126.com

TOP

回复 1楼 的帖子

中断应该执行最少的程序为好,免得影响其他的功能!

TOP

回复 1楼 的帖子

中断应该执行最少的程序为好,免得影响其他的功能!

TOP

发新话题