1基于51单片机的多功能波形发生器设计1.设计目的与任务《电子信息工程专业方向》课程设计是一项重要的实践性教育环节,是学生在完成本专业所有课程学习后必须接受的一项结合本专业方向的、系统的、综合的工程训练。在教师指导下,运用工程的方法,通过一个较复杂课题的设计练习,可使学生通过综合的系统设计,熟悉设计过程、设计要求、完成的工作内容和具体的设计方法,掌握必须提交的各项工程文件。其基本目的是:培养理论联系实际的设计思想,训练综合运用电路设计和有关先修课程的理论,结合生产实际分析和解决工程实际问题的能力,巩固,加深和扩展有关电子类方面的知识。通过课程设计,应能加强学生如下能力的培养:(1)自身的独立工作能力和创造力;(2)综合运用专业及基础知识,解决实际工程技术问题的能力;(3)查阅图书数据、产品手册和各种工具书的能力;(4)工程绘图的能力;(5)编写技术报告和编制技术资料的能力;2.设计指标与技术要求(1)借助现有的单片机系统;(2)能产生正弦波、方波、三角波、锯齿波等波形;(3)各种波形频率可调,频率范围为100-3000Hz;(4)正弦波输出电压为5V峰峰值,方波、三角波、锯齿波输出电压为5V(5)采用8位D/A转换器;(6)进行硬件平滑滤波;(7)编写程序并调试;(8)提供程序清单;。(9)能实物演示3.总体设计图1.1所示是基于单片机的多波形发生器的总体设计流程图。2图1.1总体设计流程图3.1总体设计功能说明:根据设计要求,分析得本次设计需要硬件和软件两部分。硬件上,如图。键盘输入部分主要用于选择波形。键盘共设4个键,用于选择三角波、矩形波、锯齿波、正弦波4种不同的波形,。89C51单片机用来执行某一波形发生程序,向D/A转换器的输入端发送数据,将其转化成模拟量,并通过运算放大器调节波形的幅值,经过滤波器的滤波,从而在输出端得到所需的波形。软件上,如图。可由硬件设计好后,再根据要求进行具体编写。程序的主要功能是:首先程序在开始后,先判断P0.0,P0.1,P0.2相应的波形,然后根据选择的波形输出相应的波形.程序将根据要求进行调节波形.再下一步程序再判断用户继续从键盘输入要输出的波形,可以进行必要的延迟。3.2总体电路图3.2如下所示:图1.2总体电路图33.3总体程序流程图3.2如下所示:图1.3总体程序流程图4.总体设计4.18051单片机图2.18051引脚图4如果按功能划分,它由8个部件组成,即微处理器(CPU)、数据存储器(RAM)、程序存储器(ROM/EPROM)、I/O口(P0口、P1口、P2口、P3口)、串行口、定时器/计数器、中断系统及特殊功能寄存器(SFR)的集中控制方式。各功能部件的介绍:1)数据存储器(RAM):片内为128个字节单元,片外最多可扩展至64K字节。2)程序存储器(ROM/EPROM):ROM为4K,片外最多可扩展至64K。3)中断系统:具有5个中断源,2级中断优先权。4)定时器/计数器:2个16位的定时器/计数器,具有四种工作方式。5)串行口:1个全双工的串行口,具有四种工作方式。6)特殊功能寄存器(SFR)共有21个,用于对片内各功能模块进行管理、监控、监视。7)微处理器:为8位CPU,且内含一个1位CPU(位处理器),不仅可处理字节数据,还可以进行位变量的处理。8)四个8位双向并行的I/O端口,每个端口都包括一个锁存器、一个输出驱动器和一个输入缓冲器。这四个端口的功能不完全相同。A、P0口既可作一般I/O端口使用,又可作地址/数据总线使用;B、P1口是一个准双向并行口,作通用并行I/O口使用;C、P2口除了可作为通用I/O使用外,还可在CPU访问外部存储器时作高八位地址线使用;D、P3口是一个多功能口除具有准双向I/O功能外,还具有第二功能。控制引脚介绍:1)电源:单片机使用的是5V电源,其中正极接40引脚,负极(地)接20引脚。2)时钟引脚XTAL1、XTAL2时钟引脚外接晶体与片内反相放大器构成了振荡器,它提供单片机的时钟控制信号。时钟引脚也可外接晶体振荡器。振蒎电路:单片机是一种时序电路,必须提供脉冲信号才能正常工作,在单片机内部已集成了振荡器,使用晶体振荡器3)RST:当振荡器运行时,在此引脚外加上两个机器周期的高电平将使单片机复位(RST)。我们在此引脚与VCC之间连接一个约8.2千欧的下拉电阻,与引脚之间连接一个约10微法的电容,以保证可靠复位。在单片机正常工作时,此引脚应为≤0。5V低电平。4)ALE:当访问单片机外部存储器时ALE(地址锁存允许)输出脉冲的负跳沿用于16位地址的底8位的锁存信号。即使不访问外部锁存器,ALE端仍有5正脉冲信号输出,此频率约为时钟振荡器的1/6。但是每当访问外部数据存储器时,在两个机器周期中ALE只出现一次,即丢失一个ALE脉冲。因此,严格来说,用户不能用ALE做时钟源或定时。ALE端可以驱动8个TTL负载5)/PSEN(29脚):此脚的输出是单片机访问外部程序存储器的读选通信号。在由外部程序存储器取指令(或常数)期间,每个机器周期PSEN两次有效。但在此期间,每当访问外部数据存储器时,这两次有效的/PSEN信号不出现。/PSEN可以驱动(吸收或者输出电平)8个LSTTL负载。6)/EA/VPP(31脚):当EA端保持高电平时,单片机访问内部存储器,但在PC值超过0FFFH时,讲自动转向执行外部存储器内的程序。当/EA保持低电平时,则只访问外部程序存储器,不管是否有内部存储器。4.2DAC0832芯片图2.2DAC0832芯片图DAC0832是采样频率为八位的D/A转换芯片,集成电路内有两级输入寄存器。DAC0832输出的是电流,一般要求输出是电压,所以还必须经过一个外接的运算放大器转换成电压。DAC0832芯片具备双缓冲、单缓冲和直通三种输入方式,以便适于各种电路的需要(如要求多路D/A异步输入、同步转换等)。所以这个芯片的应用很广泛,关于DAC0832的引脚功能如下:D0~D7:数字信号输入端。ILE:输入寄存器允许,高电平有效。CS:片选信号,低电平有效。WR1:写信号1,低电平有效。XFER:传送控制信号,低电平有效。6WR2:写信号2,低电平有效。IOUT1、IOUT2:DAC电流输出端。RfB:是集成在片内的外接运放的反馈电阻。VREF:基准电压(-10~10V)。Vcc:是源电压(+5~+15V)。AGND:模拟地NGND:数字地,可与AGND接在一起使用。4.3硬件滤波电路图2.3滤波电路图由图知,截止频率w0=w=1/RC,即f=1/2pRC,再根据公式Q=Rf/(2Rf-R2)及Rf∥R2=2R可算出Rf及R2的值。5.调试实验调试过程需要使用到装有KeilC51的电脑、DP-51PRO单片机综合仿真实验仪以及示波器,具体步骤如下:(1)使用导线把A2区J57、J58接口的/WR引脚与B6区J37接口的WR1、WR2相连。(2)使用导线把A2区J63、J64接口的A15引脚与B6区J1接口的/CS、XFER相连。(3)使用导线把B6区J10接口的ILE、Vref引脚与A4区J81接口和A5区J84接口的VCC相连。(4)使用导线把B6区J11接口的IOUT1引脚与C9区J71接口的B-相连。(5)使用导线把B6区J11接口的IOUT2引脚与GND引脚相连同时与C9区J71接口的B+相连。注意:连接时需要使用C9区J30等转接接口。(6)使用导线把B6区J10接口的Rfb引脚与C9区J71接口的BOUT相连。注意:连接时需要使用C9区J36等转接接口。(7)使用导线把C9区J71接口的V+引脚与C9区J19接口的+12V相连。(8)使用导线把C9区J72接口的V-引脚与C9区J19接口的-12V相连。(9)使用导线连接D7区的J4和A2区的P16、P17(SCL~P16、SDA~P17),连接D7区J2的/RST和A2区J61的P10,短接D7区的JP1跳线。(10)使用KeilC51集成开发环境,编辑源程序,生成目标文件并调试程序,观察运行结果。7(11)修改程序编程产生三角波、矩形波、锯齿波、正弦波,并用示波器观测输出波形。附:汇编代码具体的程序代码如下:ORG8000H;此为硬件仿真调试程序,使用软件仿真或直接运行,应改为0000HMAIN:MOVA,P1MOVR0,A;设置高电平MOVR1,#00H;设置低电平LCALLBOXINGSJMPMAINBOXING:JNBP1.0,SANJIAO;P1.0控制三角波的输出JNBP1.1,JUXING;P1.1控制矩形波的输出JNBP1.2,JUCHI;P1.2控制锯齿波的输出JNBP1.3,ZXBO;P1.3控制正弦波的输出RET;**********三角波********SANJIAO:MOVDPTR,#7FFFH;选中DA0832MOVA,#00HUP1:MOVX@DPTR,A;向0832输出数据INCAJNZUP1;A=!0跳转反之顺序执行DOWN1:DECAMOVX@DPTR,AJNZDOWN1RET;*********矩形波*********JUXING:MOVDPTR,#7FFFHLP:MOVA,R0;设置输出上限MOVX@DPTR,ALCALLDEL_H;调高电平延时程序MOVA,R1MOVX@DPTR,A8LCALLDEL_L;调低电平延时程序RET;*********锯齿波********JUCHI:MOVDPTR,#7FFFHMOVA,#00HLOOP:MOVX@DPTR,AINCASJMPLOOPRET;*********正弦波********ZZXBO:DA01:MOVR7,#0FFHMOVDPTR,#TABDA02:MOVA,#0HMOVCA,@A+DPTRMOVR0,DPLMOVR1,DPHMOVDPTR,#7FFFHMOVX@DPTR,AMOVDPL,R0MOVDPH,R1INCDPTRDJNZR7,DA02AJMPDA01TAB:DB80H,83H,86H,89H,8DH,90H,93H,96HDB99H,9CH,9FH,0A2H,0A5H,0A8H,0ABH,0AEHDB0B1H,0B4H,0B7H,0BAH,0BCH,0BFH,0C2H,0C5HDB0C7H,0CAH,0CCH,0CFH,0D1H,0D4H,0D6H,0D8HDB0DAH,0DDH,0DFH,0E1H,0E3H,0E5H,0E7H,0E9HDB0EAH,0ECH,0EEH,0EFH,0F1H,0F2H,0F4H,0F5HDB0F6H,0F7H,0F8H,0F9H,0FAH,0FBH,0FCH,0FDH9DB0FDH,0FEH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FEH,0FDHDB0FDH,0FCH,0FBH,0FAH,0F9H,0F8H,0F7H,0F6HDB0F5H,0F4H,0F2H,0F1H,0EFH,0EEH,0ECH,0EAHDB0E9H,0E7H,0E5H,0E3H,0E1H,0DEH,0DDH,0DAHDB0D8H,0D6H,0D4H,0D1H,0CFH,0CCH,0CAH,0C7HDB0C5H,0C2H,0BFH,0BCH,0BAH,0B7H,0B4H,0B1HDB0AEH,0ABH,0A8H,0A5H,0A2H,9FH,9CH,99HDB96H,93H,90H,8DH,89H,86H,83H,80HDB80H,7CH,79H,78H,72H,6FH,6CH,69HDB66H,63H,60H,5DH,5AH,57H,55H,51HDB4EH,4CH,48H,45H,43H,40H,3DH,3AHDB38H,35H,33H,30H,2EH,2BH,29H,27HDB25H,22H,20H,1EH,1CH,1AH,18H,16HDB15H,13H,11H,10H,0EH,0DH,0BH,0AHDB09H,08H,07H,06H,05H,04H,