本科论文-基于单片机的函数信号发生器的设计与仿真(编辑修改稿)内容摘要:
9A18RE S E T35CS6P A 04P A 13P A 22P A 31P A 440P A 539P A 638P A 737P B 018P B 119P B 220P B 321P B 422P B 523P B 624P B 725P C 014P C 115P C 216P C 317P C 413P C 512P C 611P C 710U28 2 5 5 A 图 32 主控电路图 12 如图 所示, 80C51 从 P0 口接收来自键盘的信号,并通过 P2 口输出一些控制信号,将其输入到 8255A 的信号控制端,用于控制其信号的输入、输出。 如果有键按下,则在读控制端会产生一个读信号,使单片机读入信号。 如果有信号输出,则在 写控制端产生一个写信号,并将所要输出的信号通过 8255A 的PB口输出,并在数码管上显示出来。 电路 数 /模转换 由于单片机产生的是数字信号,要想得到所需要的波形,就要把数字信号转换成模拟信号,所以该文选用价格低廉、接口简单、转换控制容易并具有 8位分辨率的数模转换器 DAC0832。 DAC0832 主要由 8 位输入寄存器、 8 位 DAC 寄存器、 8 位 D/A 转换器以及输入控制电路四部分组成。 R F BP 2 5WRG N DD3D2D1D0V R E FR F BIO U T 2P 2 5WRG N DWRD3P 2 6D2D4D1D5D0D6V R E FD7IO U T 1WRP 2 6D4D5D6D7IO U T 2IO U T 1O U T 1O U T 1+12VD034D133D232D331D430D529D628D727RD5WR36A09A18R E S E T35CS6P A 04P A 13P A 22P A 31P A 440P A 539P A 638P A 737P B 018P B 119P B 220P B 321P B 422P B 523P B 624P B 725P C 014P C 115P C 216P C 317P C 413P C 512P C 611P C 710U282 5 5 AV R E F8G N D3V C C20CS1W R 12D I34D I25D I16D I07R F B9G N D10IO U T 111IO U T 212D I713D I614D I515D I416X F E R17W R 218ILE (B Y 1/ B Y 2)19U3D A C 08 3 2V R E F8G N D3V C C20CS1W R 12D I34D I25D I16D I07R F B9G N D10IO U T 111IO U T 212D I713D I614D I515D I416X F E R17W R 218ILE (B Y 1/ B Y 2)19U4D A C 08 3 2321411R S 1O P A M P 图 33 数模转换电路 由图 可知, DAC0832 的片选地址为 7FFFH,当 P25 有效时,若 P0 口向其送的数据为 00H, 则 U1 的输出电压为 0V。 若 P0 口向其送的数据为 0FFH 时, 则 U1 的输出电压为 5V. 故当 U1 输出电压为 0V时, vout = 为 5V时,可得: vout = +5V,所以输出波形的电压变化范围为 5V~ + 5V. 故可推得当 P0所送数据为 80H 时, Vout 为 0V[6]。 公式如右所示: 3121 2 3 0UUUR R R 按键接口电路 0405060700010203 图 34 按键接口电路 图 ,图中键盘和 8255A 的 PA口相连, 80C51 13 的 P0 口和 8255A 的 D0 口相连, 80C51 不断的扫描键盘,看是否有键按下,如有,则根据相应按键作出反应。 其中“ S0”号键代表方波输出,“ S1”号键代表正弦波输出,“ S2”号键代表三角波输出。 “ S3”号键代表锯齿波输出,“ S4”号键为 10Hz 的频率信号,“ S5”号键为 100Hz 的频率信号,“ S6”号键为 500Hz的频率信号,“ S7”号键为 1KHz 的频率信号 [7] 时钟电路 8051 单片机有两个引脚( XTAL1, XTAL2)用于外接石英晶体和微调电容,从而构成时钟电路,其电路图如图。 R E TX T A L 218X T A L 119A L E30EA31P S E N29R S T9P 0 .0 /A D 0 39P 0 .1 /A D 1 38P 0 .2 /A D 2 37P 0 .3 /A D 3 36P 0 .4 /A D 4 35P 0 .5 /A D 5 34P 0 .6 /A D 6 33P 0 .7 /A D 7 32P 1 .01P 1 .12P 1 .23P 1 .34P 1 .45P 1 .56P 1 .67P 1 .78P 3 .0 /R X D 10P 3 .1 /T X D 11P 3 .2 /I N T 0 12P 3 .3 /I N T 1 13P 3 .4 /T 0 14P 3 .7 /R D 17P 3 .6 /W R 16P 3 .5 /T 1 15P 2 .7 /A 1 5 28P 2 .0 /A 8 21P 2 .1 /A 9 22P 2 .2 /A 1 0 23P 2 .3 /A 1 1 24P 2 .4 /A 1 2 25P 2 .5 /A 1 3 26P 2 .6 /A 1 4 27U1A T 8 9 C 5 1C12 2 p FC22 2 p FX11 2 M 图 35 时钟电路 如图 所示电容 C C2对振荡频率有稳定作用,其容量的选择为 30pf,振荡器选择频率为 12MHz 的石英晶体。 由于频率较大时,三角波、正弦波、锯齿波中每一点的延时时间为几微秒,故延时时间还要加上指令时间才能获得较大的频率波形 [9]。 显示电路 图 36 LED显示电路 如图 所示显示电路是用来显示波形信号的频率,使得整个系统更加合理,从经济的角度出发,所以显示器件采用 LED 数码管显示器。 而且 LED 数码管是采用共阳极接法,当主控端口输出一个低电平后,与其相对应的数码管即变亮 ,显示所需数据 [10]。 14 4. 软件设计 程序流程图 本文中子程序的调用是通过按键的选择来实现,在取得按键相应的键值后,启动计时器和相应的中断服务程序,再直接查询程序中预先设置的数据值,通过转换输出相应的电压,从而形成所需的各种波形。 按下复位键后系统对 8255A初始化,再通过键盘按钮确认频率与波形选择。 首先判断信号频率值,如符合所需的频率,则重置时间常数,并通过显示器显示出来,不符则返回。 在中断结束后,还要来判断波形是否符合,如符合,则显示其频率,不符则返回,重新判断。 15 主程序流程图: N N Y N Y Y Y N N Y N Y Y Y 开始 80c51 初始化 10hz 100hz 1khz 500hz 根据频率值置新的时间常数 显示频率值 中断设置开中断 方波 三角波 正弦波 锯齿波 16 图 41 主程序流程图 如图 所示,在程序开始运行之后,首先是对 8255A 进行初始化,之后判断信号频率值,如符合所需的频率,则重置时间常数,并通过显示器显示出来,不符则返回。 在中断结束后,还要来判断波形是否符合,如符合,则显示其频率,不符则返回,重新判断。 下面说明主程序流程图的程序实现 : : ORG 0000H 程序开始 执行 ,首先觉得跳转到主程序 AJM MAIN ORG 000BH 定时器 0 中断 入口地址,跳转到中断服务程序 LJMP TC0 ORG 0030H 初始化: MOV DPTR, 7F00H 指向 8255A命令字端口地址 MOV A, 06H 设置 A口为输入, B口、 C口为输出 MOVX @ DPTR, A 命令字 ( 8255A初始化) : MOV DPTR, 7F01H 指向 A口地址 MOVX A,@ DPTR。 读入。本科论文-基于单片机的函数信号发生器的设计与仿真(编辑修改稿)
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。