1、 1 电子设计应用软件训练总结报告 凌阳, 拇指 凌阳 任务说明 : 凌阳, 拇指 凌阳 本次课设的任务是基于 AT89C51 单片机的数字式简易低频信号发生器的设计 , 拇指 要求实现用程序产生方波、正弦波、锯齿波、阶梯波四种信号 , 拇指 并可以键控切换 , 拇指 而且需在Proteus 电子设计平台上对设计方案进行仿真 。 食指 本次设计采用 凌阳, 拇指 凌阳 了 AT89C51 凌阳, 拇指 凌阳 单片机作为控制核心 , 拇指 外围采用数字 /模拟转换电路( DAC0832)来实现模数 转换 , 拇指 从而输出正确的波形 , 拇指 设计中还连接了按键电路来实现键控 。 食指 波形的频
2、率为 200Hz, 拇指 用调整延时来实现 。 食指 设计简单 , 拇指 性能良好 , 拇指 具有一定实用性 。 食指 凌阳, 拇指 凌阳 二、原理图绘制说明 凌阳, 拇指 凌阳 1、原理图绘制过程说明 凌阳, 拇指 凌阳 ( 1) 运行 proteus7.5, 拇指 进入绘图页面 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 图 1 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 proteus绘图页面 凌阳, 拇指 凌阳 ( 2)查找元器件 , 拇指 按动键盘按键 P, 拇指 进入 Pick 凌阳, 拇指 凌阳 Devices 页面 , 拇指 在关键字项中输入元件名称 。 食指 如查找 AT8
3、9C51。 食指 凌阳, 拇指 凌阳 2 凌阳, 拇指 凌阳 图 2 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 查找元件 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 ( 3)放置元器件并连线 。 食指 凌阳, 拇指 凌阳 2、原理图说明 凌阳, 拇指 凌阳 ( 1)单片机晶振电路 凌阳, 拇指 凌阳 对于 MCS-51 一般的晶振可以在 1.2MHZ-12MHZ 之间选择 , 拇指 这时电容 C1、 C2 可以选择在 10pf-30pf 之间 。 食指 在本设计中 , 拇指 电容选择 25pf, 拇指 晶振选择 12MHZ。 食指 电路如下图: 凌阳, 拇指 凌阳 凌阳, 拇指
4、凌阳 图 3 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 单片机晶振电路原理图 凌阳, 拇指 凌阳 ( 2)单片机复位电路 凌阳, 拇指 凌阳 复位时单片机的初始化工作 , 拇指 复位后中央处理器 CPU 和单片机内部的其他功能部件都处在一定的初始状态 , 拇指 从这个状态开始工作 。 食指 电路如下图: 凌阳, 拇指 凌阳 3 凌阳, 拇指 凌阳 图 4 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 单片机复位电路原理图 凌阳, 拇指 凌阳 ( 3) 总线电路 凌阳, 拇指 凌阳 本设计中 , 拇指 将 P0 并行口作为波形数据输出口 , 拇指 通过数据总线与 DAC0832 的 D0-D7 连接 。
5、 食指 P2.7 与 0832 的片选端 /CS 连接 , 拇指 使用时可由地址译码提供 。 食指 P3.6 与 0832 的 2管脚外 部数据存储器写选通相连 。 食指 电路如下图: 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 图 5 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 总线电路 凌阳, 拇指 凌阳 ( 4) 键控电路 凌阳, 拇指 凌阳 本设计中的键控部分引入了外部中断 0 中断来实现对波形的切换 , 拇指 用按键与 P3.2 连接来实现 。 食指 在该管脚上加上一 10k 的上拉电阻 , 拇指 用来提高输出电平 , 拇指 加大输出引脚的驱动能力 。 食指 电路如下图: 凌阳, 拇指 凌阳
6、 4 凌阳, 拇指 凌阳 图 6 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 键控电路 凌阳, 拇指 凌阳 ( 5) DAC0832 电路 凌阳, 拇指 凌阳 在本设计中 , 拇指 DAC0832 选择了 直接工作方式 。 食指 0832 中的电源电压 VCC、输入寄存器的锁存信号端 ILE、基准电压端 VREF 接高电平 。 食指 模拟电路接地端、数字电路接地端 GND、写信号 2 端 /WR2、传递控制信号端 /XFER 接地 。 食指 D/A 输入电流 1、 2 端与反馈信号输入线 RFB 连接运算放大器 。 食指 这里的运算放大器选用了 LM324 型号 。 食指 电源电压设置为-6+5V
7、。 食指 凌阳, 拇指 凌阳 电路图如下: 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 图 7 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 DAC0832电路 凌阳, 拇指 凌阳 三、流程图绘制以及说明: 凌 阳, 拇指 凌阳 单片机的内部数据只有 0、 1 之分 , 拇指 所产生的信号也都是离散信号 。 食指 为了让单片机输出所需的数字信号 , 拇指 采用对信号采样、量化的方法来实现由单片机产生所需信号 。 食指 凌阳, 拇指 凌阳 ( 1) 主函数 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 主函数调用了各个子程序的初始化 , 拇指 通过对按键次数的判断来实现不同的功能 , 拇指 输入波形 。 食指
8、数值为 0、 1、 2、 3 时分别输出方波、正弦波、阶梯波、锯齿波 。 食指 凌阳, 拇指 凌阳 凌 阳 , 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳5 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 图 8 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 主函数流程图 凌阳, 拇指 凌阳 ( 2) 按键计数 函数流程图 凌阳, 拇指 凌阳 在 按键计数 函数中 , 拇指 对 key 进行循环加 1 的操作 , 拇指 每按一次 , 拇指 数
9、值加 1。 食指 数值加到 3时 , 拇指 再按动按键 , 拇指 数值跳回 1。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌 阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 图 9 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 按键计数 函数流程图 凌阳, 拇指 凌阳 ( 3)波形子程序调用函数 凌阳, 拇指 凌阳 在设计中 , 拇指 对正弦信号进行采样 , 拇指 通
10、过查表来实现输出不同的幅度值 。 食指 对于方波 , 拇指开始 调用 init 函数,开中断 输出方波 输出正弦波 key=0? 输 出方波 YN key=1? 输出正弦波 key=2? 输出阶梯波 key=3? 输出锯齿波 继续判断 N Y Y N N Y 开始 Key+ Key=4? Y N key=0 输出波形 6 赋予初值 FFH, 拇指 延时一段时间后 , 拇指 赋值 00H, 拇指 再延时一段时间后 , 拇指 输出 FFH, 拇指 以此循环 。 食指 在实现阶梯 波时 , 拇指 通过查表和延时来实现 。 食指 锯齿波则是通过 256 个采样点赋值依次减 1 得以实现 。 食指 为满
11、足设计要求中输入频率为 200hz 这一要求 , 拇指 在程序中在对波形各个 采样点赋值之外 , 拇指 还设计了相应的延时 。 食指 波形子程序的调用就是对这两项进行调用 。 食指 四种波形的流程图如下 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 图 10 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 方波子程序调用流程图 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 图 11 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 正弦波子函数调用流程图 凌阳, 拇指 凌阳 开始 调用 sin 函数的数据表 调用正弦波的延时单元 输出正弦波 返回 开始 赋最高值 0xFF 调用方波延时单元 赋最低值 0x00 调
12、用方波延时单元 返回 输出方波 7 凌阳, 拇指 凌阳 图 12 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 阶梯波子程序调用 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 开始 调用阶梯波数据表 i8? i+ Y 调用阶梯波延时单元 输出阶梯波 返回 N i=0 8 凌阳, 拇指 凌阳 图 13 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 锯齿波子函数调用流程图 凌阳, 拇指 凌阳 四、 Proteus 仿真说明: 凌阳, 拇指 凌阳 连接好原理图后 , 拇指 双击 AT89C51 芯片 , 拇指 将后缀为 .hex 的文件添加到单片机中 , 拇指 点 击运行 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指
13、凌阳 开始 DA=-i i256? i+ Y 调用阶梯波延时单元 输出阶梯波 返回 N i=0 9 图 14 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 添加程序 凌阳, 拇指 凌阳 正确运行后 , 拇指 示波器中显示正弦波 。 食指 频率约为 200hz。 食指 波形如下 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 图 15 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 方波波形 凌阳, 拇指 凌阳 按动按键一下 , 拇指 波形转变成正弦波 。 食指 皮率约为 200hz。 食指 波形如下 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 图 16 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 正弦波波形 凌阳, 拇指 凌阳 再按动一次按键 , 拇指 波形转换成阶梯波 。 食指 频率约为 200hz。 食指 波形如下 凌阳, 拇指 凌阳 10 凌阳, 拇指 凌阳 图 17 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 阶梯波波形 凌阳, 拇指 凌阳 再按动一次按键 , 拇指 波形转变成锯齿波 。 食指 频率为 200hz。 食指 波形如下 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 图 18 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 锯齿波波形 凌阳, 拇指 凌阳 再按动一次按键 , 拇指 波形回到最初显示的方波 。 食指 凌阳, 拇指 凌阳 五、体会及合理化建议 凌阳, 拇指 凌阳