单片机课程设计-单片机多功能信号发生器设计.doc_第1页
单片机课程设计-单片机多功能信号发生器设计.doc_第2页
单片机课程设计-单片机多功能信号发生器设计.doc_第3页
单片机课程设计-单片机多功能信号发生器设计.doc_第4页
单片机课程设计-单片机多功能信号发生器设计.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机课程设计题 目:多功能信号发生器设计班 级: 姓 名: 学 号: 指导教师: 设计时间: 评语:成绩 目 录目 录i1. 问题分析及解决方案- 1 -1.1 题目要求- 1 -1.2 题目分析- 1 -1.2.1 信号的产生- 1 -1.2.2 信号幅度控制- 1 -1.2.3 信号频率控制- 1 -1.2.4 波形切换- 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 -i单片机课程设计1. 问题分析及解决方案1.1 题目要求多功能信号发生器设计 (1)信号发生器能产生50-200hz的正弦波、方波、三角波、锯齿波,数码管显示信号频率; (2)输出哪一种波形由四个按键控制;(3)波形的极性、幅度、周期、占空比可由按键操作设置和修改。1.2 题目分析1.2.1 信号的产生利用8位d/a转换器dac0832,可以将8位数字量转换成模拟量输出。数字量输入的范围是0255之间,对应的模拟量输出范围在正负参考电压之间。由此,可以利用单片机的并行口输出的数字量,产生波形。1.2.2 信号幅度控制因dac0832的模拟量输出范围在正负参考电压之间,也就是说,当数字量输入为00h时,dac0832的输出是vref-,当数字量输入为ffh时,dac0832的输出是vref+。所以,为了调节输出波形的幅度,只要调节vref即可,可在vref+端接一电位器,调节vref的电压,即可达到调节波形电压的目的。1.2.3 信号频率控制在单片机的p2口接8位的拨码开关,将其开关状态转换为8位二进制数,作为延时常数,即可调节输入信号的频率。1.2.4波形切换利用4位dip开关来选择波形,并通过4个led进行指示。1.3 程序设计流程图1 程序设计流程1.4 解决方案由于输出信号的频率较低,可选用at89c51作为控制器,其中方波,锯齿波,三角波只通过一定的延时完成波形的输出,正弦波还需用查表法来,单片机输出的为数字量而生活中用到的为模拟量,故需经过d/a转换器dac0832把数字量变为模拟量输出。而dac0832输出的为电流信号,而我们需要的是电压信号,故采用了一个集成运放将电流信号转换为电压信号,再通过一级集成运放将单极性的电压信号转换为双极性的电压信号。输出波形的类型以及频率均是通过拨码开关来控制的,由于单片机输出四种波形故用了4个拨码开关,这样每一位能够控制一中波形的输出。波形频率的控制通过8位拨码开关来控制,这样控制精度可以达到1hz,范围为1hz-255hz。输出波形的幅值是通过一个调节dac0832的参考电压来实现的。2. 单片机选型及硬件配置2.1 单片机及元件选择表1 单片机及元件选择元件名称型号元件名称型号单片机at89c51集成块dac0832晶振12mhz拨码开关dipsw_8电容22u拨码开关dipsw_42.2 i/o地址分配p0口用于输出波形,p0口输出的数字量通过dac0832转换为模拟量,也就是电压信号,然后通过示波器就可以观察单片机输出的波形。p1.0p1.3用于点亮不同的led指示灯,从而指示单片机输出波形的类型。当p1.0=0时第一个led等被点亮表示单片机输出的为方波,当p1.1=0时第二个led等被点亮表示单片机输出的为锯齿波,当p1.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时输出三角波;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。dac0832转换芯片为20引脚,双列直插式封装。其引脚图如下图:图3 dac0832引脚图d/a转换电路是一个r-2r t型电阻网络,实现8为数据的转换。其引脚信号说明如下:di0di7:转换数据输入。:片选信号输入,低电平有效。ile:数据锁存允许信号输入,高电平有效。:第1写入信号输入,低电平有效。:第2写入信号输入,低电平有效。:数据传送控制信号输入,低电平有效。:电流输出1;:电流输出2;:反馈电阻端。:基准电压,其电压可正可负,范围为-10v+10v。dgnd:数字地。agnd:模拟地。vcc:芯片工作电源,从+5+15v均可正常工作。4.软件实现4.1 软件代码 #include #include #define uchar unsigned char #define uint unsigned int #define dac0832 xbyte0xffff 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 sin_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,249,250, 251,252,253,254,254,255,255,255;/*/方波发生函数/*void square() uchar a,b; for(a=0;a127;a+) dac0832=0xff; p2=0xff; b=p2; while(b-); for(a=0;a127;a+) dac0832=0; p2=0xff; b=p2; while(b-); /*/锯齿波发生函数/*void sawtooth() uchar a,b; for(a=0;a255;a+) dac0832=a; p2=0xff; b=p2; while(b-); /*/三角波发生函数/*void triang() uchar a,b; for(a=0;a1;a=a-2) dac0832=a; p2=0xff; b=p2; while(b-); /*/正弦波发生函数/*void sinwave() uchar a,b; for(a=0;a0;a-) dac0832=sin_taba; p2=0xff; b=p2; while(b-); /*/主函数/*void main() p1=0xff; p2=0xff; p3=0xff; while(1) dac0832=0; if(squ_k=0)/输出方波led灯和波形同频率闪烁 squ_l=0; square(); squ_l=1; if(saw_k=0) /输出锯齿波led灯和波形同频率闪烁 saw_l=0; 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中呈蓝色的小图标在出现的对话框中单击output在create hex fi选项前打上“”,其它选项为默认设置,单击确定,这样在编译程序时就可生成用于下载到单片机中的.hex文件。图4 生成.hex文件对话框(2)在proteus下对搭建好的电路进行仿真时,首先需给单片机下载程序,将鼠标放到单片机上双击,弹出如图5所示的对话框,在“program file”一栏中点击右面的“”按钮,找到在keil c下生成的.hex文件将其选中,点击“确定”按钮即可将程序下载到单片机中。图5 添加.hex文件对话框(3) 程序下载好后,点击运行按钮,进行仿真,仿真界面如图6所示。图6 仿真界面显示(4)拨动拨码开关使p1.0=0,p2=50,此时单片机输出频率为50hz的方波,如图7所示。图7 50hz时方波波形(5)改变单片机输出频率为200hz,波形如图8所示。图8 200hz方波波形显示(6)拨动拨码开关使p1.1=0,p2=50,此时单片机输出频率为50hz的锯齿波,如图9所示。图9 50hz时锯齿波波形(7)改变单片机输出频率为200hz,波形如图10所示。图10 200hz锯齿波波形显示(8)拨动拨码开关使p1.2=0,p2=50,此时单片机输出频率为50hz的三角波,如图11所示。图11 50hz时三角波波形(9)改变单片机输出频率为200hz,波形如图12所示。图12 200hz三角波波形显示(10)拨动拨码开关使p1.3=0,p2=50,此时单片机输出频率为50hz的正弦波,如图13所示。图13 50hz时正弦波波形(11)改变单片机输出频率为200hz,波形如图14所示。图14 200hz正弦波波形显示5.心得体会通过这次课程设计,使我对单片机以及d/a转换器有了更加深入的理解,其中包括各自的原理、结构、各引脚的含义作用以及在电路中的连接方式等。并且更为深入的了解了电路的分析与搭

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论