单片机波形发生器报告课程设计报告_第1页
单片机波形发生器报告课程设计报告_第2页
单片机波形发生器报告课程设计报告_第3页
单片机波形发生器报告课程设计报告_第4页
单片机波形发生器报告课程设计报告_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

1、单片机课程设计报告东莞理工学院课 程 单片机课程设计 题 目 多波形发生器 院 系 电子工程学院 专业班级 2011级电子信息工程2班 2013年 6月 27日目录第一部分1.1波形发生器的概述31.2 本设计任务.3第2 部分2.1本设计的意义.42.2 设计要求.42.3 设计原理.42.4 硬件设计.42.5 软件设计.8第三部分3.1 心得.193.2参考文献19第一部分1.1 波形发生器的概述波形发生器:顾名思义,一个能产生各种波形的仪器。波形发生器可通过以下方法产生:(1):利用模拟电路的运放电路,可以产生三角波、锯齿波、正弦波。用数字电路的555电路可以产生方波。这方法的电路元件

2、数量不多,焊接简单,但不稳定难以调试,产生的波形也不理想。(2):利用市面上可以购得的专用直接数字合成dds芯片的波形发生器:能产生任意波形。而且可以达到很高的频率,其他方法很难做到这一点,所产生的的波形频率不高。但这方法成本高,而且课程设计用这些芯片就没意思了。(3):用at89c51单片机和dac0832芯片,用轻触按键组成的键盘来控制波形的选择以及各种扩展功能。p1口连接按键键盘,作为波形的选择和其他扩展功能的输入口。p0口连上上拉电阻后,接上数码管,用来显示所选择波形的类型。这方法较上面两种方法好。调试主要通过编辑89c51的程序,而且89c51、dac0832、lm339这几个芯片的

3、价格不贵。至于编程方面,锯齿波、三角波、正弦波这三种分段后呈单调性的波形,可以通过等差增减来实现。但是经过proteus 7 professional仿真后,所产生的波形不理想。所以通过手动的方法计算出输出各点的电压值,然后在编写程序时以数组的方式给出。当需要时,只要按照顺序进行输出即可。1.2 本设计任务设计要求: 一、基本功能: 1 、 可产生多种波形,如正弦波、三角波、锯齿波、方波; 2 、 各种波形可通过按键选择; 二、扩展功能: 1 、 可调节信号的频率、占空比等参数; 2 、 其他自行增加的功能;扩展部分:按键s5、s6分别是控制方波的占空比增、减;s7、s8分别是控制波形的频率增

4、、减。自行增加的功能:制作电路的时候,扩展了通过数码管显示1、2、3、4,分别对应所选的波形是正弦波、方波、锯齿波、三角波。又通过带源可调电位器来改变dac0832的参考电压vref的值,从而做到改变所产生波形的幅值。vref的值越大,波形的幅值越大。第2 部分2.1本设计的意义(1)通过为期一个星期的集中实验,将平时所学的理论知识结合到实际中。实践中体会理论知识的用途和检验其是否真实。制作电路的时候,发现模电书的运放输出都没接上拉电阻,还有89c51的p0口输出也没接上拉电阻。虽然理论上是正确的,但是在实践时发现这会导致所期望的的效果不明显。(2)学习了如何使用dac0832、lm339芯片

5、和用proteus 7 professional仿真。(3)将平时学的分散的知识系统地组合一次,锻炼了系统的思维。2.2 设计要求设计要求: 一、基本功能: 1 、 可产生多种波形,如正弦波、三角波、锯齿波、方波; 2 、 各种波形可通过按键选择; 二、扩展功能: 1 、 可调节信号的频率、占空比等参数; 2 、 其他自行增加的功能;2.3 设计原理课程设计要求输出正弦波、方波、锯齿波、三角波。这些波形的实现的具体步骤:(1)正弦波:通过手动的方法计算出输出各点的电压值,然后在编写程序时以数组的方式给出。当需要时,只要按照顺序进行输出即可。将一个周期(360度)分为256个点,则每两个点之间的

6、间隔为1.4度,然后计算出每个点电压对应的数字量,相邻的变化4,形成数组。重复输出这组数据到dac0832,就可以在系统输出端得到想要的正弦波。(2)方波:按照设定的周期值将输出的电压改变,先输出0xff,延时,再输出0x00,延时。(3)锯齿波:也使用查表法。将三角波的一个周期(360度)分为256个点,相邻点等差,生成数组。反复输出前128个数据到dac0832,然后=0,就可以在系统输出端得到想要的锯齿波。(4)三角波:将(3)中的数组256个数据全部输出到dac0832,循环,就可以在系统输出端得到想要的三角波。通过p1口和轻触开关s1-s4相连接来切换波形输出,p1内带上拉电阻,按键

7、接地,按下后输入0到对应的p1口。(如按s1键输出正弦波,按s2键产生方波,按s3键产生锯齿波,按s4键产生三角波)。用p0口控制数码管静态显示波形代号,p0.0=0,显示1(0xf9);p0.1=0,显示2(0xa4);p0.2=0,显示3(0xb0);p0.3=0,显示4(0x99)。用p2口向dac0832发送数据,经dac0832转换后,再把信号放大,最后接到示波器上显示。2.4 硬件设计 设计图示:仿真的总电路图仿真的正弦波效果图:方波的效果图:锯齿波的效果图:三角波的效果图:焊接出来的成品:所用到的电子元件介绍:(1)51单片机的内部结构基本组成部分:1 一个8位的cpu2 128

8、b或256b单元内数据存储器(ram)3 4kb或8kb片内程序存储器(rom或eprom)4 4个8位并行i/o接口p0p3。5 两个定时/计数器。6 5个中断源的中断管理控制系统。7 一个全双工串行i/o口uart(通用异步接收、发送器) 8 一个片内振荡器和时钟产生电路。图7 51单片机引脚管脚说明:vcc:供电电压。 gnd:接地。 p0口:p0口为一个8位漏级开路双向i/o口,每脚可吸收8ttl门电流。当p1口的管脚第一次写1时,被定义为高阻输入。p0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在fiash编程时,p0 口作为原码输入口,当fiash进行校验时,p0

9、输出原码,此时p0外部必须被拉高。 p1口:p1口是一个内部提供上拉电阻的8位双向i/o口,p1口缓冲器能接收输出4ttl门电流。p1口管脚写入1后,被内部上拉为高,可用作输入,p1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在flash编程和校验时,p1口作为第八位地址接收。 p2口:p2口为一个内部上拉电阻的8位双向i/o口,p2口缓冲器可接收,输出4个ttl门电流,当p2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,p2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。p2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,p2口输

10、出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,p2口输出其特殊功能寄存器的内容。p2口在flash编程和校验时接收高八位地址信号和控制信号。 p3口:p3口管脚是8个带内部上拉电阻的双向i/o口,可接收输出4个ttl门电流。当p3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,p3口将输出电流(ill)这是由于上拉的缘故。rst:复位输入。当振荡器复位器件时,要保持rst脚两个机器周期的高电平时间。 ale/prog:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在flash编程期间,此引脚

11、用于输入编程脉冲。在平时,ale端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ale脉冲。如想禁止ale的输出可在sfr8eh地址上置0。此时, ale只有在执行movx,movc指令是ale才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ale禁止,置位无效。 /psen:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/psen有效。但在访问外部数据存储器时,这两次有效的/psen信号将不出现。 /ea/vpp:当/ea保持低电平时,则在此期间外

12、部程序存储器(0000h-ffffh),不管是否有内部程序存储器。注意加密方式1时,/ea将内部锁定为reset;当/ea端保持高电平时,此间内部程序存储器。在flash编程期间,此引脚也用于施加12v编程电源(vpp)。 xtal1:反向振荡放大器的输入及内部时钟工作电路的输入。 xtal2:来自反向振荡器的输出。(2)dac0832芯片dac0832是采样频率为八位的d/a转换芯片,集成电路内有两级输入寄存器。dac0832输出的是电流,一般要求输出是电压,所以还必须经过一个外接的运算放大器转换成电压。dac0832芯片具备双缓冲、单缓冲和直通三种输入方式,以便适于各种电路的需要(如要求多

13、路d/a异步输入、同步转换等)。所以这个芯片的应用很广泛,关于dac0832的引脚功能如下:d0d7:数字信号输入端。ile:输入寄存器允许,高电平有效。cs:片选信号,低电平有效。wr1:写信号1,低电平有效。xfer:传送控制信号,低电平有效。wr2:写信号2,低电平有效。iout1、iout2:dac电流输出端。rfb:是集成在片内的外接运放的反馈电阻。 vref:基准电压(-1010v)。vcc:是源电压(+5+15v)。gnd:地。图8 dac0832芯片图(3)lm339芯片lm339引脚图these comparators are designed for use in leve

14、l detection, lowlevelsensing and memory applications in consumer automotive and industrialelectronic applications. single or split supply operation low input bias current: 25 na (typ) low input offset current: 5.0 na (typ) low input offset voltage: 1.0 mv (typ) lm139a series input common mode voltag

15、e range to gnd low output saturation voltage: 130 mv (typ) 4.0 ma ttl and cmos compatible esd clamps on the inputs increase reliability without affecting device operation(4)一位共阳极数码管 由于单片机的p0口带负载的能力不高,所以连接数码管的时候要接上上拉电阻提高负载能力。具体解法:p0.0连a;p0.1连b;p0.2连c;p0.3连d;p0.4连e;p0.5连f;p0.6连g;p0.7连h(或dp)至于3、8两个脚是内部

16、相连的,接vcc。引脚图如右图:2.5软件设计 (1)程序流程图: (2)键盘扫描系统流程图:(3) 源代码清单#include #define uchar unsigned char#define uint unsigned intsbit s1=p10;/p1口内部自带上拉电阻,因此外部的轻触按键要接地sbit s2=p11;/当按下按键时,p1口输入0,检测出是哪个按键按下sbit s3=p12;/sbit s4=p13;sbit s5=p14;sbit s6=p15;sbit s7=p16;sbit s8=p17;uint d1,d2;uint s,p;uint n;uchar cod

17、e sintab256=/正弦波的数字量表0x80,0x83,0x86,0x89,0x8d,0x90,0x93,0x96,0x99,0x9c,0x9f,0xa2,0xa5,0xa8,0xab,0xae,0xb1,0xb4,0xb7,0xba,0xbc,0xbf,0xc2,0xc5,0xc7,0xca,0xcc,0xcf,0xd1,0xd4,0xd6,0xd8,0xda,0xdd,0xdf,0xe1,0xe3,0xe5,0xe7,0xe9,0xea,0xec,0xee,0xef,0xf1,0xf2,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd

18、,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5,0xf4,0xf2,0xf1,0xef,0xee,0xec,0xea,0xe9,0xe7,0xe5,0xe3,0xe1,0xde,0xdd,0xda,0xd8,0xd6,0xd4,0xd1,0xcf,0xcc,0xca,0xc7,0xc5,0xc2,0xbf,0xbc,0xba,0xb7,0xb4,0xb1,0xae,0xab,0xa8,0xa5

19、,0xa2,0x9f,0x9c,0x99,0x96,0x93,0x90,0x8d,0x89,0x86,0x83,0x80,0x80,0x7c,0x79,0x76,0x72,0x6f,0x6c,0x69,0x66,0x63,0x60,0x5d,0x5a,0x57,0x55,0x51,0x4e,0x4c,0x48,0x45,0x43,0x40,0x3d,0x3a,0x38,0x35,0x33,0x30,0x2e,0x2b,0x29,0x27,0x25,0x22,0x20,0x1e,0x1c,0x1a,0x18,0x16,0x15,0x13,0x11,0x10,0x0e,0x0d,0x0b,0x0a

20、,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0d,0x0e,0x10,0x11,0x13,0x15,0x16,0x18,0x1a,0x1c,0x1e,0x20,0x22,0x25,0x27,0x29,0x2b,0x2e,0x30,0x33,0x35,0x38,0x3a,0x3d,0x40,0x43

21、,0x45,0x48,0x4c,0x4e,0x51,0x55,0x57,0x5a,0x5d,0x60,0x63,0x66,0x69,0x6c,0x6f,0x72,0x76,0x79,0x7c,0x80;uchar code jctab128=/锯齿波的数字量表0x00,0x02,0x04,0x06,0x08,0x0a,0x0c,0x0e,0x10,0x12,0x14,0x16,0x18,0x1a,0x1c,0x1e,0x20,0x22,0x24,0x26,0x28,0x2a,0x2c,0x2e,0x30,0x32,0x34,0x36,0x38,0x3a,0x3c,0x3e,0x40,0x42,

22、0x44,0x46,0x48,0x4a,0x4c,0x4e,0x50,0x52,0x54,0x56,0x58,0x5a,0x5c,0x5e,0x60,0x62,0x64,0x66,0x68,0x6a,0x6c,0x6e,0x70,0x72,0x74,0x76,0x78,0x7a,0x7c,0x7e,0x80,0x82,0x84,0x86,0x88,0x8a,0x8c,0x8e,0x90,0x92,0x94,0x96,0x98,0x9a,0x9c,0x9e,0xa0,0xa2,0xa4,0xa6,0xa8,0xaa,0xac,0xae,0xb0,0xb2,0xb4,0xb6,0xb8,0xba,

23、0xbc,0xbe,0xc0,0xc2,0xc4,0xc6,0xc8,0xca,0xcc,0xce,0xd0,0xd2,0xd4,0xd6,0xd8,0xda,0xdc,0xde,0xe0,0xe2,0xe4,0xe6,0xe8,0xea,0xec,0xee,0xf0,0xf2,0xf4,0xf6,0xf8,0xfa,0xfc,0xfe;uchar code sjtab256=/三角波的数字量表0x00,0x02,0x04,0x06,0x08,0x0a,0x0c,0x0e,0x10,0x12,0x14,0x16,0x18,0x1a,0x1c,0x1e,0x20,0x22,0x24,0x26,0

24、x28,0x2a,0x2c,0x2e,0x30,0x32,0x34,0x36,0x38,0x3a,0x3c,0x3e,0x40,0x42,0x44,0x46,0x48,0x4a,0x4c,0x4e,0x50,0x52,0x54,0x56,0x58,0x5a,0x5c,0x5e,0x60,0x62,0x64,0x66,0x68,0x6a,0x6c,0x6e,0x70,0x72,0x74,0x76,0x78,0x7a,0x7c,0x7e,0x80,0x82,0x84,0x86,0x88,0x8a,0x8c,0x8e,0x90,0x92,0x94,0x96,0x98,0x9a,0x9c,0x9e,0

25、xa0,0xa2,0xa4,0xa6,0xa8,0xaa,0xac,0xae,0xb0,0xb2,0xb4,0xb6,0xb8,0xba,0xbc,0xbe,0xc0,0xc2,0xc4,0xc6,0xc8,0xca,0xcc,0xce,0xd0,0xd2,0xd4,0xd6,0xd8,0xda,0xdc,0xde,0xe0,0xe2,0xe4,0xe6,0xe8,0xea,0xec,0xee,0xf0,0xf2,0xf4,0xf6,0xf8,0xfa,0xfc,0xfe,0xfe,0xfc,0xfa,0xf8,0xf6,0xf4,0xf2,0xf0,0xee,0xec,0xea,0xe8,0

26、xe6,0xe4,0xe2,0xe0,0xde,0xdc,0xda,0xd8,0xd6,0xd4,0xd2,0xd0,0xce,0xcc,0xca,0xc8,0xc6,0xc4,0xc2,0xc0,0xbe,0xbc,0xba,0xb8,0xb6,0xb4,0xb2,0xb0,0xae,0xac,0xaa,0xa8,0xa6,0xa4,0xa2,0xa0,0x9e,0x9c,0x9a,0x98,0x96,0x94,0x92,0x90,0x8e,0x8c,0x8a,0x88,0x86,0x84,0x82,0x80,0x7e,0x7c,0x7a,0x78,0x76,0x74,0x72,0x70,0

27、x6e,0x6c,0x6a,0x68,0x66,0x64,0x62,0x60,0x5e,0x5c,0x5a,0x58,0x56,0x54,0x52,0x50,0x4e,0x4c,0x4a,0x48,0x46,0x44,0x42,0x40,0x3e,0x3c,0x3a,0x38,0x36,0x34,0x32,0x30,0x2e,0x2c,0x2a,0x28,0x26,0x24,0x22,0x20,0x1e,0x1c,0x1a,0x18,0x16,0x14,0x12,0x10,0x0e,0x0c,0x0a,0x08,0x06,0x04,0x02,0x00;void delay (uchar k)

28、/延时 uchar j; while(k-)!=0) for(j=0;j=256)n=0;void square() p2=0xff;/方波 delay(d1-p); p2=0; delay(d2-p);void sawtooth() /锯齿波 p2=jctabn; n=n+p; if(n=127)n=0;void triangular() /三角波 p2=sjtabn; n=n+p; if(n=255)n=0;void boxingkey() /电路所采用的数码管是共阳极的,因此p0口输出1不亮、0亮 if(s1=0) p0=0xf9;/数码管显示1 s=1; n=0;p=4; else i

29、f(s2=0) p0=0xa4;/数码管显示2 s=2; n=0;p=4; else if(s3=0) p0=0xb0;/ 数码管显示3 s=3; n=0;p=4; else if(s4=0) p0=0x99; / 数码管显示4 s=4; n=0;p=4; else if(s5=0) /占空比增加 delay(10);/ if(s5=0) d1-; d2+; while(!s5);/检测是否已经松手了,当s5=1跳出死循环delay(10);/消抖while(!s5);/确实一下是否真的松手了 else if(s6=0)/占空比减小 delay(10); if(s6=0) d1+; d2-; while(!s6);/检测

温馨提示

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

评论

0/150

提交评论