波形发生器的设计单片机课程设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

广东石油化工学院单片机原理及应用技术课程设计题目:波形发生器的设计班级:505团队团队成员:学号:目录一、设计任务及团队分工说明............................................................1二、总体设计及需求分析....................................................................3三、硬件选型及电路设计....................................错误!未定义书签。四、软件设计........................................................错误!未定义书签。五、结论.....................................................................错误!未定义书签。六、设计心得.............................................................错误!未定义书签。七、致谢.....................................................................错误!未定义书签。参考文献.....................................................................错误!未定义书签。二、总体设计及需求分析1.实验目的:①掌握数/模转换的基本原理及编程方法;②掌握D/A转换芯片DAC0832的结构特点、工作原理及使用方法;③掌握利用串行口扩展I/O口的方法;2.实验要求:实验目的①.设计一款能够产生3种以上波形的波形发生器;②.设计波形选择按钮;③.LED或LCD显示波形代号(如1为正弦波,2为方波……);④.能够同时输出两种波形⑤.能够记录一段时间的波形3.程序流程图程序的主流程图如下:主流程图三:硬件选型及电路设计1.单片机AT89C51介绍:AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如下图所示:开始开启显示设置D/A地址,#7FFFH→(DPTR)P2.0=0?P2.1=0?P2.2=0?P2.3=0?结束调用方波调用锯齿波调用三角波调用梯形波是是是是否否否否图3.4AT89C51引脚图AT89C51管脚说明:VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时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口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。2.DAC0832DAC0832是8位分辨率D/A转换集成芯片,与处理器完全兼容,具有价格低廉,接口简单,转换控制容易等优点,在单片机应用系统中得到广泛的应用。D/A转换器由八位输入锁存器、八位DAC寄存器、八位D/A转换电路以及转换电路构成。DAC0832输出是电流型的,但实际应用中往往需要电压输出信号,所以还必须一个外接的运算放大器转换称电压。其引脚如下图1所示:图1:DAC0832引脚图•D0~D7:八位数据输入线•ILE:数据锁存允许控制信号输入线,高电平有效•CS:片选信号输入线,低电平有效•WR1:输入寄存器的写选通信号,低电平有效•XFER:数据传送控制信号输入线,低电平有效•WR2:DAC寄存器写选通输入线,低电平有效•IOUT1:电流输出线。当输入全为1时IOUT1最大•IOUT2:电流输出线。其值与OUT1之和为一常数•RFB:反馈信号输入线,芯片内部有反馈电阻•Vcc:电源输入线(+5~+15V)•Vref:基准电压输入线(-10~+10V)•AGND:模拟地,模拟信号和基准电源的查考地•DGND:数字地,两种地线在基准电源共处比较好根据对DAC0832的数据锁存器和DAC寄存器的不同的控制方式,DAC0832有三种工作方式:直通方式、单缓冲方式和双缓冲方式,可用软件指令控制这5个控制端:ILE、CS、WR1、WR2、XFER。•直通工作方式:5个控制端均有效,直接D/A转换•单缓冲工作方式:5个控制端一次选通,即两个输入寄存器中任意一个处于直通方式,另一个工作于受控方式•双缓冲工作方式:5个控制端分二次选通。即两个锁存器都处于受控状态本次设计我们让DAC0832工作于单缓冲器方式,它的ILE接+5V。/CS和/XFER相连后由8051的P2.7控制,/WR1和/WR2相连后由8051的/WR控制DAC0832的地址为7FFFH,工作于单缓冲器方式,执行一次对DAC0832的写入操作即可完成一次D/A转换。3.74LS47芯片74LS47是BCD-7段数码管译码器/驱动器,74LS47的功能用于将BCD码转化成数码块中的数字,通过它的解码,可以直接把数字转换为数码管的显示数字,从而简化了程序,节约了单片机的I/O开销。因而是一个很好的芯片。引脚图2如下:图2:74LS47引脚图•D、C、B、A:BCD码输入引脚•a、b、c、d、e、f、g:7段LED数码管的输出引脚•LT:测试引脚,当本引脚输入低电平时,所连接的7段数码管全亮。正常情况下,应输入高电平•RBI:涟波淹没输入引脚。正常情况下,应输入高电平•BI/RBO:淹没输入或涟波淹没输出引脚。正常显示下,应输入高电平或空接。若本引脚输入低电平,且D、C、B、A引脚输入为0,则该位数不显示,这项功能用于消除前置0或者消除尾端0.•D、C、B、A:BCD码输入引脚•a、b、c、d、e、f、g:7段LED数码管的输出引脚•LT:测试引脚,当本引脚输入低电平时,所连接的7段数码管全亮。正常情况下,应输入高电平•RBI:涟波淹没输入引脚。正常情况下,应输入高电平•BI/RBO:淹没输入或涟波淹没输出引脚。正常显示下,应输入高电平或空接。若本引脚输入低电平,且D、C、B、A引脚输入为0,则该位数不显示,这项功能用于消除前置0或者消除尾端0.3.7段数码管7段数码管一般有8个发光二极管组成,其中有7个细长的发光二极管组成BCLTBRBOBI/RBIDVCCfg123AGNDabcde45678161213141510911数字显示,另外一个圆形的发光二极管显示小数点。当发光二极管导通时,相应的一个点或一个笔画发光。控制相应的二极管导通,就能显示各种字符。发光二极管的阳极连在一起称为共阳极数码管,阴极连在一起称为共阴极数码管。图3:七段数码管引脚图4.硬件接线图显示部分:波形发生部分:按钮部分:整体电路图:四、软件设计:1.锯齿波模块8051单片机的累加器A从0开始循环增量,每增量一次向DAC0832写入一个数据,得到一个输出电压,这样可以获得一个正向的阶梯波。程序如下:LOOP1:;正向锯齿波MOVR1,#02H;LCALLDISP;L11:MOVR3,#00H;L12:MOVA,R3;MOVX@DPTR,A;INCR3;CJNER3,#0FFH,L12;JBP2.1,STR;AJMPL11;延时子程序:程序若如下:DELAY:MOVR6,#0AH;延时1ms子程序DEL2:MOVR7,#32HDEL1:DJNZR7,DEL1DJNZR6,DEL2RET在延时子程序中改变延时时间的长短,即可改变输出波形的周期2.三角波模块在以上这个反向的锯齿波的前提下,若要获得正向的锯齿波只需将以上程序中的指令INCA换成指令DECA即可,如果想获得任意起始电压和终止电压的波形,则需先确定起始电压和终止电压所对应的数字。程序中首先从起始电压对应的数字量开始输出,当达到终止电压对应的数字量时返回,如此反复。将正向锯齿波与负向锯齿波组合起来就可以获得三角波,程序如下:LOOP2:;三角波MOVR1,#03HLCALLDISPL21:MOVR3,#00HL22:MOVA,R3MOVX@DPTR,AINCR3CJNER3,#0FFH,L22L23:DECR3MOVA,R3MOVX@DPTR,ACJNER3,#00H,L23JBP2.2,STRAJMPL213.方波模块:方波信号也是波形发生器中常用的一种信号,下面的程序可以从DAC的输出端得到矩形波,当延时子程序延时时间大体相同时即为方波,改变延时时间可得到不同占空比的矩形波,上限电平及上限电平对应的数字量可用前面讲过的方法获得。程序如下:L0:MOVA,#0FFH;方波MOVX@DPTR,ALCALLDELAYMOVA,#00HMOVX@DPTR,ALCALLDELAYJBP2.0,STRLJMPL04.梯形模块梯形程序:LOOP3:;梯形波MOVR1,#05HLCALLDIS

1 / 14
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功