基于单片机的函数信号波形发生器系统设计(#0428)

波形发生器亦称函数发生器,作为实验用信号源,是现今各种电子电路实验设计应用中必不可少的仪器设备之一。

功能描述

1、采用51单片机作为主控芯片;

2、采用LCD1602显示波形种类和频率值(10-100HZ);

3、采用DAC0832产生模拟信号输出;

4、采用LM358设计信号增益放大电路;

5、采用按键设置波形种类和频率步进值;

6、采用电位器改变振幅(0V-3.5V稳定);

7、可产生正弦波/锯齿波/三角波/矩形波;

8、四个指示灯分别指示发出哪种波形。

按键说明

1、波形切换键:在四种波形之间切换;

2、加值键:频率值+0.1;步进值+0.1;

3、减值键:频率值-0.1;步进值-0.1;

4、步进值设置键:点击后通过2/3键调整;

电路设计

采用Altium Designer作为电路设计工具。Altium Designer通过把原理图设计、PCB绘制编辑、拓扑逻辑自动布线、信号完整性分析和设计输出等技术的完美融合,为设计者提供了全新的设计解决方案,使设计者可以轻松进行设计,熟练使用这一软件必将使电路设计的质量和效率大大提高。

仿真设计

采用Proteus作为仿真设计工具。Proteus是一款著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。

主程序设计

void main()					 //主函数
{	
	init_lcd();
	m=65536-(150000/pinlv);
	a=m/256;
	b=m%256;
	initclock();
	led0=0;
	while(1)
	{
		if(h==0)
		{
			keyscan();
		//	display();
		}
		 
		bujinjiance();

		switch(boxing)
		{
			case 0 : P1=sin[u]; break;
			case 1 : P1=juxing[u]; break;
			case 2 : P1=sanjiao[u]; break;
			case 3 : P1=juchi[u]; break;
		}
	}
}
void T0_time()interrupt 1		   //定时器
{
	TH0=a;
	TL0=b;
	u++;
	if(u>=64)
	u=0;
}

源文件获取

关注公众号【电子开发圈】,首页发送 “发生器” 获取;


版权声明:本文为weixin_42625444原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。