DAC0832产生三角波

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

?#include
#include
#define DAC0832Addr 0x7FFFF //0832地址
#define uchar unsigned char //uchar代表单个字节无符号数
#define uint unsigned int //uint无符号字
Uart_Init(); //输出口初始化
sbit P26=0xA6; //P2.6位
sbit P27=0xA7; //P2.7位
void TransformData(uchar c0832data);//转换数据
void Delay() ; //延时子程序
main()
{ bit upFlag=1;
xdata cDigital=1; //待转换的数字量
Uart_Init(); //
P0=0XFF; //端口初始化为0xFF
P1=0XFF; //
P2=0XFF;
P3=0XFF;
Delay(); //调用延时程序
while(1)
{ TransformData(cDigital);//进行数模转换
if((cDigital==255)|(cDigital==0))
upFlag=~upFlag; //标志位取反
if(upFlag==1) {cDigital++; //数字量加1 }
else {cDigital--; //数字量减1 }
Delay(); //调用延时程序
printf("digital is %d \n",cDigital);
} }

void TransformData(uchar c0832data)
{ *((uchar xdata *)DAC0832Addr)=c0832data; //向DAC0832输出待转换数字量c0832data }
Uart_Init()
{SCON = 0x52; /* 设置串行口控制寄存器SCON*/
TMOD = 0x21; /* 12M时钟时波特率为2400 */
TCON = 0x69; /* TCON */
TH1 = 0xf3; /* TH1 */
} void Delay() //延时程序
{ uint i; for(i=0;i<200;i++);
}

相关文档
最新文档