1、1电子设计应用软件训练总结报告一、 任务说明:本次课设的任务是基于 AT89C51 单片机的数字式简易低频信号发生器的设计,要求实现用程序产生方波、正弦波、锯齿波、阶梯波四种信号,并可以键控切换,而且需在 Proteus 电子设计平台上对设计方案进行仿真。本次设计采用了 AT89C51 单片机作为控制核心,外围采用数字/ 模拟转换电路(DAC0832)来实现模数转换,从而输出正确的波形,设计中还连接了按键电路来实现键控。波形的频率为 200Hz,用调整延时来实现。设计简单,性能良好,具有一定实用性。二、原理图绘制说明1、原理图绘制过程说明(1)运行 proteus7.5,进入绘图页面。图 1
2、proteus 绘图页面(2)查找元器件,按动键盘按键 P,进入 Pick Devices 页面,在关键字项中输入元件名称。如查找 AT89C51。2图 2 查找元件(3)放置元器件并连线。2、原理图说明(1)单片机晶振电路对于 MCS-51 一般的晶振可以在 1.2MHZ-12MHZ 之间选择,这时电容 C1、C2 可以选择在 10pf-30pf 之间。在本设计中,电容选择 25pf,晶振选择 12MHZ。电路如下图:图 3 单片机晶振电路原理图(2)单片机复位电路复位时单片机的初始化工作,复位后中央处理器 CPU 和单片机内部的其他功能部件都处在一定的初始状态,从这个状态开始工作。电路如下
3、图:3图 4 单片机复位电路原理图(3)总线电路本设计中,将 P0 并行口作为波形数据输出口,通过数据总线与 DAC0832 的 D0-D7 连接。P2.7 与 0832 的片选端/CS 连接,使用时可由地址译码提供。P3.6 与 0832的 2 管脚外部数据存储器写选通相连。电路如下图:图 5 总线电路(4)键控电路本设计中的键控部分引入了外部中断 0 中断来实现对波形的切换,用按键与 P3.2连接来实现。在该管脚上加上一 10k 的上拉电阻,用来提高输出电平,加大输出引脚的驱动能力。电路如下图:4图 6 键控电路(5)DAC0832 电路在本设计中,DAC0832 选择了直接工作方式。08
4、32 中的电源电压 VCC、输入寄存器的锁存信号端 ILE、基准电压端 VREF 接高电平。模拟电路接地端、数字电路接地端 GND、写信号 2 端/WR2、传递控制信号端/XFER 接地。D/A 输入电流 1、2 端与反馈信号输入线 RFB 连接运算放大器。这里的运算放大器选用了 LM324 型号。电源电压设置为-6+5V。电路图如下:图 7 DAC0832 电路三、流程图绘制以及说明:单片机的内部数据只有 0、1 之分,所产生的信号也都是离散信号。为了让单片机输出所需的数字信号,采用对信号采样、量化的方法来实现由单片机产生所需信号。(1)主函数主函数调用了各个子程序的初始化,通过对按键次数的
5、判断来实现不同的功能,输入波形。数值为 0、1、2、3 时分别输出方波、正弦波、阶梯波、锯齿波。5开始调用 init 函数,开中断输出方波输出正弦波key=0?输出方波YNkey=1?输出正弦波key=2?输出阶梯波key=3?输出锯齿波继续判断NY YN NY图 8 主函数流程图(2)按键计数函数流程图在按键计数函数中,对 key 进行循环加 1 的操作,每按一次,数值加 1。数值加到 3 时,再按动按键,数值跳回 1。开始Key+Key=4?YNkey=0输出波形图 9 按键计数函数流程图(3)波形子程序调用函数在设计中,对正弦信号进行采样,通过查表来实现输出不同的幅度值。对于方波,赋予初
6、值 FFH,延时一段时间后,赋值 00H,再延时一段时间后,输出 FFH,以6此循环。在实现阶梯波时,通过查表和延时来实现。锯齿波则是通过 256 个采样点赋值依次减 1 得以实现。为满足设计要求中输入频率为 200hz 这一要求,在程序中在对波形各个采样点赋值之外,还设计了相应的延时。波形子程序的调用就是对这两项进行调用。四种波形的流程图如下。开始赋最高值 0xFF调用方波延时单元赋最低值 0x00调用方波延时单元返回输出方波图 10 方波子程序调用流程图开始调用 sin 函数的数据表调用正弦波的延时单元输出正弦波返回图 11 正弦波子函数调用流程图7开始调用阶梯波数据表i8?i+Y调用阶梯
7、波延时单元输出阶梯波返回Ni=0图 12 阶梯波子程序调用8开始DA=-ii256?i+Y调用阶梯波延时单元输出阶梯波返回Ni=0图 13 锯齿波子函数调用流程图四、Proteus 仿真说明:连接好原理图后,双击 AT89C51 芯片,将后缀为.hex 的文件添加到单片机中,点击运行。9图 14 添加程序正确运行后,示波器中显示正弦波。频率约为 200hz。波形如下图 15 方波波形按动按键一下,波形转变成正弦波。皮率约为 200hz。波形如下图 16 正弦波波形再按动一次按键,波形转换成阶梯波。频率约为 200hz。波形如下10图 17 阶梯波波形再按动一次按键,波形转变成锯齿波。频率为 2
8、00hz。波形如下图 18 锯齿波波形再按动一次按键,波形回到最初显示的方波。五、体会及合理化建议11通过这次的课设,我熟悉了基于 AT89C51 单片机的数字式简易低频信号发生器的设计,学会了如何利用数模转换器 DAC0832 来实现波形,和通过按键控制切换波形。在这次课程设计的过程中遇到了一些难题,比如键控部分。起初的构想是用 P1口来控制按键,给 P1 口赋初值 01H,输入第一个波形,在对 P1 口左移一位,输出第二个波形,依次类推。连接后原理图无法正确运行。在频率上,编程时设计的延时单元没有很符合要求,仿真时输出的波形的频率与要求不符。后经多次试验,实现了输出频率为 200hz 这一
9、要求。在今后的学习中,我认为应当为大家提供更多的机会亲自动手去完成一些简易的设计,这样不仅可以加深大家对平时学习的理论知识的理解,也可以提高大家的动手实践能力,更会扩宽同学们的视野,拓展专业知识,有益于今后的学习与发展。参考文献1.严洁.单片机原理及接口技术.M机械工业出版社.2010.146-151 页2.欧伟明、何静、凌云、刘剑.单片机原理及应用系统设计.M电子工业出版社.2009.140-143 页3.卢胜利、郝立果、丁峰.单片机原理与应用技术实践.M机械工业出版社.2009.227-231 页4.朱定华、戴颖颖、李川香.单片微机原理、汇编与 C51 及接口技术.M清华大学出版社.2010.296-299 页5.张毅刚、刘杰.单片机原理及应用.第三版.M哈尔滨工业大学出版社.2010.219-226 页12附录 I 电路原理图13附录 II 元器件清单14元器件名称及规格 标注AT89C51 U1DAC0832 U2电阻 10K R1上拉电阻 10K R2晶体振荡器 12M X1瓷片电容 25Pf C1,C2电解质电容 10uF C3按键开关 K1直流电源 5V VCC运算放大器 LM324 U3数字示波器