最全单片机参考答案(姜志海)(6)

2019-05-17 11:06

6.编程实现由DAC0832输出的幅度和频率都可以控制的三角波,即从0上升到最大值,再从最大值下降到0,并不断重复。

/*产生幅值为125,频率为2Hz的三角波*/ #include

#define uchar unsigned char

#define CYCLE 2000 //此波形的得到是通过定时2ms中断,在中断中当数据加到125个数时,再递减到0.如此循环。可得三角波。其T=125*2*2ms=500ms.所以f=2Hz.

uchar xdata DA_data; /*定义变量指向0832的数据输出地址*/

void main(void)

{ TMOD=0x10; /*定时器1工作于方式1*/ TH1=-CYCLE/256; TL1=-CYCLE%6; TR1=1; IE=0x88; while(1); }

void timer1(void) interrupt 2 using 1 { static uchar s_Counter;

static bit flag; //定义递减标志位 if(flag==0)

{ if(s_Counter++>=124) //当增到125时开始递减 { flag=1; } } else

26

{ if(s_Counter--<=0) //当减到0时开始递增 { flag=0; } }

DA_data=s_Counter; //输出需要转换的数据 TH1=-CYCLE/256; TL1=-CYCLE%6; }

27


最全单片机参考答案(姜志海)(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:超星全球变化与地球系统答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: