资源描述:
《基于51单片机信号发生器》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、.基于51单片机的多功能信号发生器设计一、设计目的和意义随着电子技术的发展,信号发生器经常要用在各种科学技术领域和工程实践中。选择适当的嵌入式处理器、DA转换芯片,放大器,设计出一种基于单片机的多功能信号发生器的设计,能够实现键盘控制下输出正弦波、方波、三角波等波形。二、设计原理利用51单片机采用程序设计方法产生锯齿波、正弦波、矩形波三种波形,再通过D/A转换器DAC0832将数字信号转换成模拟信号,滤波放大,最终由示波器显示出来,能产1Hz—3kHz的波形。通过键盘来控制三种波形的类型选择、频率变化,并通过液晶屏1602显示其各自的类型以及数值,系统大致包括信号发生部分、数/模转
2、换部分以及液晶显示部分三部分。三、详细设计步骤1.总体框架主控芯片D/A转换放大输出按键控制显示模块图1系统总体框架2.单片机最小系统设计51单片机是片内有ROM/EPROM的单片机,因此,这种芯片构成的最小系统简单﹑可靠。用80C51单片机构成最小应用系统时,只要将单片机接上时钟电路和复位电路即可,如图2所示。由于集成度的限制,最小应用系统只能用作一些小型的控制单元。其应用特点:(1)有可供用户使用的大量I/O口线。(2)内部存储器容量有限。(3)应用系统开发具有特殊性。
...图251单片机最小系统
3.波形产生模块由单片机采用编程方法产生三种波形、通过DA转换模块DAC083
3、2在进过滤波放大之后输出。开始置DAC0832口地址4000HA赋值为#00H(A)0823输出A=F0HA=A+1图3锯齿波产生流程图锯齿波产生首先将DAC0832口地址置为4000H,然后将00H送入寄存器A中,DAC0832输出A的内容,当A中的内容等于F0H返回开始,当A中的内容不为0FH时,A的内容累加,从而输出波形。...开始置DAC0832口地址为4000HA赋值为00H(A)经0832输出A=A+1(A)=0(A)=0A=A-1(A)经0832输出A赋值为FFH图4三角波产生流程图三角波产生首先将DAC0832口地址置为4000H,通过A中数值的加1递增,当A中的内
4、容为0FFH时,A中的内容减1递减,从而循环产生三角波。开始取表格初值00H到R1置DAC0832口地址4000H查表格取数输出A=A+1R1=R1+1图5正弦波产生流程图正弦波的设计通过查表得...开始将A赋值为00H输出对应模拟量延时将A赋值为FFH置DAC0832口地址4000H延时图6方波产生流程图首先将DAC0832口地址置为4000H,通过A中内容为0时,输出对应模拟量,然后延时,当A中的内容为0FF时,同样输出对应模拟量,再延时,从而得到方波。4.按键及显示模块主要实现利用按键来控制不同的波形的输出,采用外接按键,当检测到有按键按下,判断是选择波形方式的按键被按下,还
5、是更改频率的按键被按下,在选择波形方式中,当按键1按下时,函数发生器就输出锯齿波,当按键2按下时,函数发生器就输出三角波,当按键3按下时,函数发生器就输出正弦波,当按键4按下时就输出方波。通过按键可以任意循环方式输出不同波形。显示模块可直接接入示波器观测,还可外接一个1602来显示当前的频率,以观测增减变化。...开始初始化有键按下设置波形设置频率按键1按键2按键3按键4频率增大频率减小显示显示显示显示显示显示锯齿波产生程序B1:MOVA,#00HLP1:SETBP1.5SETBP1.6SETBP1.7CLRP1.4MOVDPTR,#4000HMOVX@DPTR,ACJNEA,#0
6、F0H,MOREJNBKEY2,B2JNBKEY3,B3JBKEY4,D0LJMPB4D0:SJMPB1MORE:INCASJMPLP1三角波产生程序B2:MOVA,#00HLP1:SETBP1.4SETBP1.6SETBP1.7CLRP1.5MOVDPTR,#4000HMOVX@DPTR,AINCAJNZUP1...DOWN1:DECAMOVX@DPTR,AJNZDOWNN1JNBKEY1,B1JNBKEY3,B3JBKEY4,C0LJMPB4C0:SJMPUP1正弦波产生程序B3:MOVR1,#00HLOOP1:SETBP1.4SETBP1.5SETBP1.7CLRP1.6MO
7、VA,R1MOVDPTR,#SETTABMOVCA,@A+DPTRMOVDPTR,#4000HMOVX@DPTR,AINCR1JNBKEY1,B1JNBKEY2,B2JBKEY4,E0LJMPB4E0:AJMPLOOP1SETTAB:略方波产生程序B4:MOVA,#00HLP2:SETBP1.4SETBP1.6SETBP1.5CLRP1.7MOVDPTR,#4000HMOVX@DPTR,ALCALLDELAYMOVA,#0FFHMOVX@DPTR,AJBKEY1,J0