25、基于51单片机函数信号发生器四种波形和频率显示系统设计
摘 要
本文所设计的系统是利用51单片机和数模转换器件DAC0832产生所需不同信号的低频信号源,即采用STC89C51 单片机作为控制核心,而在外围采用数字/模拟转换电路(DAC0832)、运放电路(LM358)、按键和LCD液晶显示电路等,通过按键可控制产生方波、锯齿波、三角波、正弦波,同时用LCD液晶显示对应的波形输出。
文中简要介绍了DAC0832数模转换器的结构原理和使用方法,51单片机的基础理论,以及与电路设计有关的各种芯片,并着重介绍了利用单片机控制D/A转换器产生上述信号的硬件电路设计和软件编程。
本文所设计的系统设计简单、性能优良、性价比高,可用于多种需要低频信号源的场所,具有一定的实用性。
关键词:51 单片机 信号发生器 D/A转换 运算放大
一、硬件方案
硬件组成:本系统采用51单片机+LCD1602+DAC0832+按键等而成。
二、设计功能
本设计基于单片机型号:STC89C52/51、AT89C52/51、AT89S52/51都可通用。
1.设计自带单片机上电复位电路、手动复位电路(复位按键)、晶振电路(给单片机提供时钟周期)。
2.可以产生4种波形,矩形波、三角波、正弦波、锯齿波。
3.通过1602液晶显示波形和输出频率,频率范围为10-100HZ。
4.可以设置通过按键切换波形和频率。
5.可以通过电位调节波形输出幅度,范围为(0V-3.5V)
三、成品实物图


四、原理图

五、PCB图

六、Proteus仿真

七、程序源码

部分代码:
pinlv+=bujin;if(pinlv>1000){pinlv=100;}display();m=65536-(15000/pinlv);a=m/256;b=m%256;EA=1;}}if(s2==0){ delay(5);if(s2==0){EA=0; while(!s2);pinlv-=bujin;if(pinlv<100){pinlv=1000;}display();m=65536-(150000/pinlv);a=m/256;b=m%256; EA=1;}}if(s3==0){ delay(5);if(s3==0){EA=0;while(!s3);boxing++;if(boxing>=4){boxing=0;}display();EA=1;}}
}
void bujindisplay()
{uint bai,shi,ge;bai=bujin1/100;shi=bujin1%100/10;ge=bujin1%100%10;write_com(0x80+11);if(bai==0)write_date(' ');elsewrite_date(table[bai]);write_date(table[shi]);write_date('.');write_date(table[ge]);
}
void bujinjiance()
{if(s4==0){delay(5);if(s4==0){while(!s4);h++;if(h==1){write_com(0x01);write_com(0x80);write_date('S');delay(1); //step valuewrite_date('t');delay(1);write_date('e');delay(1);write_date('p');delay(1);write_date(' ');delay(1);write_date('v');delay(1);write_date('a');delay(1);write_date('l');del
资料包括:

需要完整的资料可以加入我的纷传圈子,里面有资源压缩包的百度网盘下载地址及提取码。
纷传点击用微信打开即可,过程有点繁琐请见谅。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
