《2022年单片机多功能信号发生器设计 .pdf》由会员分享,可在线阅读,更多相关《2022年单片机多功能信号发生器设计 .pdf(18页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、单片机课程设计题 目:多功能信号发生器设计班级:姓名:学号:指导教师:设计时间:评语:成绩名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 18 页 - - - - - - - - - I 目 录目 录. I1. 问题分析及解决方案 . - 1 - 1.1 题目要求 . - 1 - 1.2 题目分析 . - 1 - 1.2.1 信号的产生 . - 1 - 1.2.2 信号幅度控制 . - 1 - 1.2.3 信号频率控制 . - 1 - 1.2.4 波形切换 . - 2 -
2、 1.3 程序设计流程 . - 2 - 1.4 解决方案 . - 2 - 2. 单片机选型及硬件配置 . - 3 - 2.1 单片机及元件选择 . - 3 - 2.2 I/O 地址分配 . - 3 - 2.3 系统硬件原理图 . - 4 - 3. DAC0832 简介 . - 4 - 4. 软件实现 . - 6 - 4.1 软件代码 . - 6 - 4.2 程序调试 . - 9 - 5. 心得体会 . - 14 - 参考书目 . - 16 - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - -
3、- 第 2 页,共 18 页 - - - - - - - - - 单片机课程设计- 1 - 1. 问题分析及解决方案1.1 题目要求多功能信号发生器设计(1)信号发生器能产生50-200Hz的正弦波、方波、三角波、锯齿波,数码管显示信号频率;(2)输出哪一种波形由四个按键控制;(3)波形的极性、幅度、周期、占空比可由按键操作设置和修改。1.2 题目分析1.2.1 信号的产生利用 8 位 D/A 转换器 DAC0832,可以将 8 位数字量转换成模拟量输出。数字量输入的范围是0255之间,对应的模拟量输出范围在正负参考电压之间。由此,可以利用单片机的并行口输出的数字量,产生波形。1.2.2 信号
4、幅度控制因 DAC0832 的模拟量输出范围在正负参考电压之间,也就是说,当数字量输入为 00H 时,DAC0832 的输出是 Vref-,当数字量输入为FFH 时,DAC0832的输出是 Vref+。所以,为了调节输出波形的幅度,只要调节VREF 即可,可在Vref+端接一电位器,调节VREF 的电压,即可达到调节波形电压的目的。1.2.3 信号频率控制在单片机的 P2 口接 8位的拨码开关,将其开关状态转换为8 位二进制数,作为延时常数,即可调节输入信号的频率。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 -
5、 - - - - - - 第 3 页,共 18 页 - - - - - - - - - 单片机课程设计- 2 - 1.2.4波形切换利用 4 位 DIP 开关来选择波形,并通过4 个 LED 进行指示。1.3 程序设计流程图 1 程序设计流程1.4 解决方案由于输出信号的频率较低,可选用AT89C51 作为控制器,其中方波,锯齿波,三角波只通过一定的延时完成波形的输出,正弦波还需用查表法来, 单片机输出的为数字量而生活中用到的为模拟量,故需经过 D/A 转换器 DAC0832 把数字量变为模拟量输出。而DAC0832 输出的为电流信号,而我们需要的是电压信号,故采用了一个集成运放将电流信号转换
6、为电压信号,再通过一级集成运放将单极性的电压信号转换为双极性的电压信号。输出波形的类型以及频率均是通过拨码开关来控制的, 由于单片机输出四种波形故用了4个拨码开关, 这样每一位能够控制一中波形的输出。 波形频率的控制通过8 位拨码开关来控制, 这样控制名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 18 页 - - - - - - - - - 单片机课程设计- 3 - 精度可以达到1Hz,范围为1Hz-255Hz。输出波形的幅值是通过一个调节DAC0832 的参考电压来实
7、现的。2. 单片机选型及硬件配置2.1 单片机及元件选择表 1 单片机及元件选择元件名称型号元件名称型号单片机AT89C51 集成块DAC0832 晶振12MHZ 拨码开关DIPSW_8 电容22u 拨码开关DIPSW_4 2.2 I/O 地址分配P0 口用于输出波形, P0 口输出的数字量通过DAC0832 转换为模拟量,也就是电压信号,然后通过示波器就可以观察单片机输出的波形。P1.0P1.3用于点亮不同的 LED 指示灯,从而指示单片机输出波形的类型。当 P1.0=0 时第一个 LED 等被点亮表示单片机输出的为方波,当P1.1=0时第二个 LED 等被点亮表示单片机输出的为锯齿波,当P
8、1.2=0 时第三个 LED 等被点亮表示单片机输出的为三角波, 当 P1.3=0时第四个 LED 等被点亮表示单片机输出的为三角波。P2 口输入8 位拨码开关状态控制波形频率,这样输出波得频率可以在1-255Hz 之间任意选择。P3.0P3.3. 用于输出波形类型的控制, 主要通过四位拨码开关的输入量的不同让单片机输出相应的波形,拨码开关的四种状态如下:P3.0=0,P3.1=1 ,P3.2=1,P3.3=1时输出方波;P3.0=1,P3.1=0 ,P3.2=1,P3.3=1时输出锯齿波;P3.0=1,P3.1=1 ,P3.2=0,P3.3=1时输出三角波;名师资料总结 - - -精品资料欢
9、迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 18 页 - - - - - - - - - 单片机课程设计- 4 - P3.0=1,P3.1=1 ,P3.2=1,P3.3=0时输出正弦波。P3.6用于给 DAC0832 给写数据信号。2.3 系统硬件原理图图 2 信号发生计硬件原理电路3.DAC0832 简介DAC0832 是一个 8 位 D/A 转换器。单电源供电,从+5+15V 均可正常工作。基准电压的范围为 -10V+10V; 电流建立时间为 1us; COMS 工艺, 低功耗 20Mw。DAC0
10、832 转换芯片为 20引脚,双列直插式封装。其引脚图如下图:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 18 页 - - - - - - - - - 单片机课程设计- 5 - 图 3 DAC0832 引脚图D/A 转换电路是一个R-2R T 型电阻网络,实现8 为数据的转换。其引脚信号说明如下:DI0DI7:转换数据输入。CS:片选信号输入,低电平有效。ILE:数据锁存允许信号输入,高电平有效。1WR :第 1 写入信号输入,低电平有效。2WR :第 2 写入信号输
11、入,低电平有效。XFER:数据传送控制信号输入,低电平有效。1OUTI:电流输出 1;2OUTI:电流输出 2;fbR :反馈电阻端。refV:基准电压,其电压可正可负,范围为-10V+10V 。DGND:数字地。AGND:模拟地。VCC:芯片工作电源,从 +5+15V 均可正常工作。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 18 页 - - - - - - - - - 单片机课程设计- 6 - 4.软件实现4.1 软件代码#include #include #de
12、fine uchar unsigned char #define uint unsigned int #define dac0832 XBYTE0 xffff sbit SQU_K =P30; /P30-P33 为拨码开关输入,用来控制输出波形sbit SAW_K =P31; sbit TRI_K =P32; sbit SIN_K =P33; sbit SQU_L =P10; /P10-P13 点亮 LED 灯,用来指示拨码开关的状态sbit SAW_L =P11; sbit TRI_L =P12; sbit SIN_L =P13; sbit INTad =P33; uchar code si
13、n_tab=0,0,0,0,1,2,3,4,5,6,8, /输出正弦波时用查表的方法9,11,13,15,17,19,22,24, 27,30,33,36,39,42,46,49, 53,56,60,64,68,72,76,80, 84,88,92,97,101,105,110,114, 119,123,128,132,136,141,145,150, 154,158,163,167,171,175,179,183, 187,191,195,199,202,206,209,213, 216,219,222,225,228,231,233,236, 238,240,242,244,246,247
14、,249,250, 251,252,253,254,254,255,255,255; /* /方波发生函数/* void square() uchar a,b; for(a=0;a127;a+) dac0832=0 xff; P2=0 xff; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 18 页 - - - - - - - - - 单片机课程设计- 7 - b=P2; while(b-); for(a=0;a127;a+) dac0832=0; P2=0 xff;
15、b=P2; while(b-); /* /锯齿波发生函数/* void sawtooth() uchar a,b; for(a=0;a255;a+) dac0832=a; P2=0 xff; b=P2; while(b-); /* /三角波发生函数/* void triang() uchar a,b; for(a=0;a1;a=a-2) dac0832=a; P2=0 xff; b=P2; while(b-); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 18 页 -
16、 - - - - - - - - 单片机课程设计- 8 - /* /正弦波发生函数/* void sinwave() uchar a,b; for(a=0;a0;a-) dac0832=sin_taba; P2=0 xff; b=P2; while(b-); /* /主函数/* void main() P1=0 xff; P2=0 xff; P3=0 xff; while(1) dac0832=0; if(SQU_K=0) /输出方波LED 灯和波形同频率闪烁 SQU_L=0; square(); SQU_L=1; if(SAW_K=0) /输出锯齿波LED 灯和波形同频率闪烁 SAW_L=0
17、; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 18 页 - - - - - - - - - 单片机课程设计- 9 - sawtooth(); SAW_L=1; if(TRI_K=0) /输出三角波LED 灯和波形同频率闪烁 TRI_L=0; triang(); TRI_L=1; if(SIN_K=0) /输出正弦波LED 灯和波形同频率闪烁 SIN_L=0; sinwave(); SIN_L=1; 4.2 程序调试(1)首先点击图4 中呈蓝色的小图标在出现的对话框
18、中单击output在Create HEX Fi选项前打上“”,其它选项为默认设置,单击确定,这样在编译程序时就可生成用于下载到单片机中的.hex文件。图 4 生成.hex 文件对话框名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 18 页 - - - - - - - - - 单片机课程设计- 10 - (2)在 Proteus下对搭建好的电路进行仿真时,首先需给单片机下载程序,将鼠标放到单片机上双击,弹出如图5 所示的对话框,在“ Program File”一栏中点击右
19、面的“” 按钮,找到在 Keil C 下生成的 .HEX 文件将其选中, 点击“确定”按钮即可将程序下载到单片机中。图 5 添加 .hex 文件对话框(3)程序下载好后,点击运行按钮,进行仿真,仿真界面如图6 所示。图 6 仿真界面显示(4) 拨动拨码开关使 P1.0=0, P2=50, 此时单片机输出频率为50Hz 的方波,名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 18 页 - - - - - - - - - 单片机课程设计- 11 - 如图 7 所示。图 7
20、50hz 时方波波形(5)改变单片机输出频率为200Hz,波形如图 8 所示。图 8 200hz 方波波形显示(6)拨动拨码开关使 P1.1=0,P2=50,此时单片机输出频率为50Hz 的锯齿波,如图 9 所示。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 18 页 - - - - - - - - - 单片机课程设计- 12 - 图 9 50hz 时锯齿波波形(7)改变单片机输出频率为200Hz,波形如图 10 所示。图 10 200hz 锯齿波波形显示(8)拨动拨
21、码开关使 P1.2=0,P2=50,此时单片机输出频率为50Hz 的三角波,如图 11所示。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 18 页 - - - - - - - - - 单片机课程设计- 13 - 图 11 50hz 时三角波波形(9)改变单片机输出频率为200Hz,波形如图 12 所示。图 12 200hz 三角波波形显示(10)拨动拨码开关使P1.3=0,P2=50,此时单片机输出频率为50Hz 的正弦波,如图 13 所示。名师资料总结 - - -精
22、品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 18 页 - - - - - - - - - 单片机课程设计- 14 - 图 13 50hz 时正弦波波形(11)改变单片机输出频率为200Hz,波形如图 14所示。图 14 200hz 正弦波波形显示5.心得体会通过这次课程设计,使我对单片机以及D/A 转换器有了更加深入的理解,其中包括各自的原理、 结构、各引脚的含义作用以及在电路中的连接方式等。并且更为深入的了解了电路的分析与搭建方法和过程。其次,通过电路的搭建, 使名师资料总结 - - -精
23、品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 18 页 - - - - - - - - - 单片机课程设计- 15 - 我对 PROTEUS 软件的使用更加熟练、 自如,而且深刻体会到了仿真的便捷和优势。此外,在报告的完成过程中,也使我更加熟悉了排版的方法和技巧,并且可以灵活应用。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 18 页 - - - - - - - - - 单片机课程设计- 16 - 参考书目1杨居义 , 杨尧 , 杨晓琴 , 王益斌 . 单片机课程设计指导M . 北京 :清华大学出版社, 2009.2周润景 , 徐宏伟 , 丁莉 . 单片机电路设计、分析与制作M . 北京: 机械工业出版社,2010.3李华 ,王思明 , 张金敏 . 单片机原理及应用M . 兰州 : 兰州大学出版社, 2001.名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 18 页 - - - - - - - - -
限制150内