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(' ');
	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

资料包括:

需要完整的资料可以加入我的纷传圈子,里面有资源压缩包的百度网盘下载地址及提取码。

纷传点击用微信打开即可,过程有点繁琐请见谅。

  • 3
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ENGLISH_HHZ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值