目录
摘 要
本文所设计的系统是利用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(' ');
else
write_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 value
write_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
八、资源获取
需要完整的资料可以点击下面的名片加下我,找我要资源压缩包的百度网盘下载地址及提取码。