基于8051单片机的波形发生器设计_第1页
基于8051单片机的波形发生器设计_第2页
基于8051单片机的波形发生器设计_第3页
基于8051单片机的波形发生器设计_第4页
基于8051单片机的波形发生器设计_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

1、基于8051单片机的波形发生器设计 第 13页,共 13页基于8051单片机的波形发生器设计摘要:波形发生器是能够产生大量的标准信号和用户定义信号,并保证高精度、高稳定性、可重复性和易操作性的电子仪器。本系统是基于AT89C51单片机的数字式低频信号发生器,采用AT89C51单片机作为控制核心,外围采用数字/模拟转换电路(DAC0832)、运放电路(LM324)、按键和8位数码管等。通过按键控制可产生方波、三角波、正弦波等,同时用数码管显示其对应的频率。介绍DAC0832数模转换器的结构原理和使用方法,AT89C51的基础理论,以及与设计电路有关的各种芯片。文中着重介绍了如何利用单片机控制D/

2、A转换器产生上述信号的硬件电路原理和软件编程原理,其设计简单、性能优好,可用于多种需要低频信号的场所,具有一定的实用性。关键词:AT89C51,DAC0832,LM324 一 引言波形发生器也称函数发生器,作为实验信号源,是现今各种电子电路实验设计应用中必不可少的仪器设备之一。目前,市场上常见的波形发生器多为纯硬件设计而成,且波形种类有限,多为锯齿波,正弦波,方波,三角波等波形,而且这种电路存在波形质量差,控制难,可调范围小,电路复杂和体积大等缺点。在科学研究和生产实践中,如工业过程控制,生物医学,地震模拟机械振动等领域常常要用到低频信号源,而由硬件电路构成的低频信号其性能难以令人满意,而且由

3、于低频信号源所需的很大。大电阻,大电容在制作上有困难,参数的精度也难以保证。体积大,漏电,损耗显著更是致命的弱点。二 功能分析和方案论证与比较依据不同的设计要求选取不同的设计方案,波形发生器的具体指标要求也有所不同。通常,波形发生器需要实现的波形有正弦波、方波、三角波和锯齿波,有些场合可能还需要任意波形的产生。各种波形指标有:波形的频率、幅度要求,频率稳定度,准确度等。对于不同波形,具体的指标要求也会有所差异,例如,占空比是脉冲波形特有的指标。波形发生器的设计方案多种多样,大致可以分为三大类:纯硬件设计法、纯软件设计法和软硬件结合设计法。1 方案一在波形发生器设计纯硬件法的早期,波形发生器的设

4、计主要是采用运算放大器加分立元件来实现。实现的波形比较单一,主要为正弦波、方波和三角波。工作原理相对简单:首先是产生正弦波,然后通过波形变换(正弦波通过比较器产生方波,方波经过积分器变为三角波)实现方波和三角波。在各种波形后加上一级放大电路,可以使输出波形的幅度达到要求,通过开关电路实现不同输出波形的切换,改变电路的具体参数可以实现频率、幅度和占空比的改变。通过对电路结构的优化及所用元器件的严格选取可以提高电路的频率稳定性和准确度。纯硬件法中,正弦波的设计是基础,实现方法也比较多,电路形式一般有LC、RC和石英晶体振荡器三类。LC振荡器适宜于产生几兆赫兹至几百兆赫兹的高频信号;石英晶体振荡器能

5、产生几千赫兹至几百兆赫兹的高频信号且稳定度高;对于频率低于几兆赫兹,特别是在几百赫兹时,常采用RC振荡电路。RC振荡电路又分为文氏桥振荡电路、双T网络式和移相式振荡电路等类型。其中,以文氏桥振荡电路最为常用。目前,实现波形发生器最简单的方法是采用单片集成的函数信号发生器。它是将产生各种波形的功能电路集成到一个集成电路芯片里,外加少量的电阻、电容元件来实现。采用这种方法的突出优势是电路简单,实现方便,精度高,性能优越;缺点是功能较全的集成芯片价格较贵。实际中应用较多的单片函数信号发生器有MAX038(最高频率可达)和ICL8038(最高频率为)。 2 方案二波形发生器的设计还可以采用纯软件的方法

6、来实现,它以计算机为基础,软件为核心,没有传统仪器那样具体的物理结构,通过软件设计实现和改变仪器的功能。例如用图形化编程工具LabVIEW来实现任意波形发生器的功能,在LabVIEW软件的前面板通过拖放控件,设计仪器的功能面板(如波形显示窗口,波形选择按键,波形存储回放等工作界面),在软件的后面板直接拖放相应的波形函数并进行参数设置或直接调用编程函数来设计任意波形以实现波形产生功能;完成的软件打包后,可脱离编程环境独立运行,实现任意波形发生器的功能。采用纯软件的虚拟仪器设计思路可以使设计简单、高效,仅改变软件程序就可以轻松实现波形功能的改变或升级。从长远角度来看,纯软件法成本较低,但其缺点是波

7、形的响应速度和精度低于硬件法。3 方案三软硬件结合的波形发生器设计方法同时兼具软硬件设计的优势,既具有纯硬件设计的快速、高性能,同时又具有软件控制的灵活性、智能性。如以单片机和单片集成函数发生器为核心(如图1)。同时带有以键盘控制、数码管显示等电路,设计出智能型函数波形发生器,采用软硬件结合的方法可以实现功能较全、性能更优的波形发生器,同时还可以扩展波形发生器的功能,比如通过软件编程控制实现波形的存储、运算、打印等功能,采用USB接口设计,使波形发生器具有远程通信功能等。目前,实验、科研和工业生产中使用的信号源大多采用此方法来实现。AT89C51单片机DAC0832复位键键盘数码管显示图1 软

8、硬件结合的波形发生器纯硬件设计法功能较单一,波形改变困难、控制的灵活性不够,不具备智能性,其中由运算放大器加分立元件组成的波形发生器,除在学生实验训练中使用外,基本不被采用。纯软件设计法实现简单,程序改变及功能升级灵活,但实现的波形精度及响应速度不如硬件法高。纯软件法主要适用于对波形精度、响应速度要求不是很高的场合。相比之下,软硬件结合的方法可以设计出性能更优、功能扩展灵活、控制智能化的新一代波形发生器,可以满足教学、科研、工业生产等各方面对波形发生器性能有较高要求的应用场合。综合以上几种设计方案,本设计采用方案三软硬件设计法。其方案能够产生很好的波形,也易实现。三 硬件原理波形的产生是通过A

9、T89C51单片机执行某一波形发生程序,向D/A转换器的输入端按一定的规律传送数据,从而在D/A转换电路的输出端得到相应的电压波形。AT89C51单片机的最小系统有三种连接方式。一种是两级缓冲器型,即输入数据经过两级缓冲器后,送入D/A转换电路。第二种是单级缓冲器型,即输入数据经输入寄存器直接送入DAC寄存器中,然后再送入D/A转换电路。第三种是两个缓冲器直通,输入数据直接送入D/A转换电路进行转换。本电路仿真的总图如下:图2 系统电路1 MCS-51单片机的内部结构典型的MCS-51单片机芯片集成了以下几个基本组成部分。一个8位的CPU。或单元内数据存储器(RAM)。或片内程序存储器(ROM

10、或EPROM)。4个8位并行I/O接口P0P3。两个定时/计数器。5个中断源的中断管理控制系统。一个全双工串行I/O口UART(通用异步接收、发送器)。一个片内振荡器和时钟产生电路。图3 单片机引脚2 CPU结构CPU 是单片机的核心部件,它由运算器和控制器等部件组成。运算器以完成二进制的算术/逻辑运算部件ALU为核心,它可以对半字节,单字节等数据进行操作。例如,能完成加、减、乘、除、加1、减1、BCD码十进制调整、比较等算术运算,完成与、或、异或、求反、循环等操作,操作结果的状态信息送至状态寄存器。运算器还包含有一个布尔处理器,用以处理位操作。它以进位标志位C为累加器,可执行置位、复位、取反

11、、位判断转移,可在进位标志位与其他的位之间进行位数据传送等操作,还可以完成进位标志位与其他的位之间进行逻辑与、逻辑或操作。PC是一个16位的计数器,用于存放一条要执行的指令地址,寻址范围为,PC有自动加1功能,即完成了一条指令的执行后,其内容自动加1。 指令寄存器(IR,Instruction Register)。存放当前从主存储器读出的正在执行的一条指令。当执行一条指令时,先把它从内存取到数据寄存器(DR,Data Register)中,然后再传送至IR。指令划分为操作码和地址码字段,由二进制数字组成。为了执行任何给定的指令,必须对操作码进行测试,以便识别所要求的操作。指令译码器就是做这项工

12、作的。指令寄存器中操作码字段的输出就是指令译码器的输入。操作码一经译码后,即可向操作控制器发出具体操作的特定信号。3 存储器和特殊功能寄存器存储器(Memory)是计算机系统中的记忆设备,用来存放程序和数据。计算机中的全部信息,包括输入的原始数据、计算机程序、中间运行结果和最终运行结果都保存在存储器中。它根据控制器指定的位置存入和取出信息。特殊功能寄存器(SFR)的地址范围为80HFFH。在MCS51中,除程序计数器PC和四个工作寄存器外,其余21个特殊功能寄存器都在这SFR块中。其中有5个是双字节寄存器,它们共占用了26个字节。特殊功能寄存器反映了8051的状态,实际上是8051的状态字及控

13、制字寄存器。这些特殊功能寄存器大体上分为两类,一类和芯片的引脚有关,另一类作片内功能的控制用。与芯片引脚有关的特殊功能寄存器是P0P3,它们实际上是4个八位锁存器(每个I/O口一个),每个锁存器附加有相应的输出驱动器和输入缓冲器就构成了一个并行口。4 P0P3口结构P0口功能:P0口具有两种功能:第一,P0口可以作为通用I/O接口使用,P0.7P0.0用于传送CPU的输入/输出数据,输出数据时可以锁存,不需要外接专用锁存器,输入数据可以进行缓冲。第二,P0.7P0.0在CPU访问片外存储器时用于传送片外存储器的低8位地址,然后传送CPU对片外存储器的读写。P1口功能:P1口的功能和P0口的第一

14、功能相同,仅用于传递输入/输出数据。 P2口功能:P2口的第一功能和上述两组引脚的第一功能相同,即它可以作为通用I/O使用。它的第二功能和P0口引脚的第二功能相配合,作为地址总线用于输出片外存储器的高8位地址。 P3口功能:P3口有两个功能:第一功能与其余三个端口的第一功能相同;第二功能作控制用。P3.0RXD串行数据接收口。 P3.1TXD串行数据发送口。 P3.2INT0外中断0输入。 P3.3INT1外中断1输入。 P3.4T0计数器0计数输入。 P3.5T1计数器1计数输入。 P3.6WR外部RAM写选通信号。 P3.7RD外部RAM读选通信号。 5 时钟电路和复位电路单片机的时钟信号

15、用来提供单片机内各种微操作的时间基准;复位操作则使单片机的片内电路初始化,使单片机从一种确定的状态开始运行。6 时钟电路单片机的时钟信号通常用两种电路形式得到:内部振荡和外部振荡方式。图4 时钟部分电路在引脚XTAL1和XTAL2外接晶体振荡器或陶瓷谐振荡器,构成了内部振荡方式。由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡,并产生振荡时钟脉冲。振荡周期:晶振的振荡周期,又称时钟周期,为最小的时序单位。状态周期:振荡频率经单片机内的二分频器分频后提供给片内CPU的时钟周期。因此一个状态周期包含2个振荡周期。机器周期:1个机器周期由6个状态周期12个振荡周期组成,是计算机执

16、行一种基本操作的时间单位。指令周期:执行一条指令所需的时间。一个指令周期由1-4个机器周期组成,依据指令不同而不同。7 单片机的复位状态当MCS-5l系列单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作。根据应用的要求,复位操作通常有两种基本形式:上电复位和上电或开关复位。上电复位要求接通电源后,自动实现复位操作。上电或开关复位要求电源接通后,单片机自动复位,并且在单片机运行期间,用开关操作也能使单片机复位。上电后,由于电容C1的充电和反相门的作用,使RST持续一段时间的高电平。当单片机已在运行当中时,按下复位键SJ1后松开,也能使RST为一段时间的

17、高电平,从而实现上电或开关复位的操作。图5 复位电路单片机的复位操作使单片机进入初始化状态,其中包括使程序计数器PC0000H。单片机冷启动后,片内RAM为随机值,运行中的复位操作不改变片内RAM区中的内容。51单片机的复位是由RESET引脚来控制的,此引脚与高电平相接超过24个振荡周期后,51单片机进入芯片内部复位状态,而且一直在此状态下等待,直到RESET引脚转为低电平后,才检查EA引脚是高电平或低电平,若为高电平则执行芯片内部的程序代码,若为低电平便会执行外部程序。51单片机在系统复位时,将其内部的一些重要寄存器设置为特定的值,至于内部RAM的数据则不变。 8 DAC0832的引脚及功能

18、DAC0832是分辨率为8位的D/A转换集成芯片,与微处理器完全兼容。这个DA芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。D/A转换器由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成。DAC0832的主要特性参数如下:分辨率为8位。电流稳定时间。可单缓冲、双缓冲或直接数字输入。单一电源供电()。低功耗,。DAC0832结构:D0D7:8位数据输入线,TTL电平,有效时间应大于(否则锁存器的数据会出错)。ILE:数据锁存允许控制信号输入线,高电平有效。CS:片选信号输入线(选通数据锁存器),低电平有效。WR1:数据锁存器写选通输入线,

19、负脉冲(脉宽应大于)有效。由ILE、CS、WR1的逻辑组合产生LE1,当LE1为高电平时,数据锁存器状态随输入数据线变换,LE1的负跳变时将输入数据锁存。XFER:数据传输控制信号输入线,低电平有效,负脉冲(脉宽应大于)有效。WR2:DAC寄存器选通输入线,负脉冲(脉宽应大于)有效。由WR1、XFER的逻辑组合产生LE2,当LE2为高电平时,DAC寄存器的输出随寄存器的输入而变化,LE2负跳变时将数据锁存器的内容打入DAC寄存器并开始D/A转换。:电流输出端1,其值随DAC寄存器的内容线性变化。:电流输出端2,其值与值之和为一常数。:反馈信号输入线,改变端外接电阻值可调整转换满量程精度。:电源

20、输入端,的范围为。:基准电压输入线,的范围为。AGND:模拟信号地。DGND:数字信号地。四 软件原理系统软件由主程序和产生波形的子程序组成,软件设计主要是产生各种波形的子程序的编程,通过编程可得到各种波形。周期的改变可采用插入延时子程序的方法来实现。主程序和几种常用波形子程序的流程图如图所示。1 主流程图初始化读取波形选择开关状态波形判别调波形发生子程序否驱动相应数码管是波形转换 结束图6 主程序流程信号的产生:利用8位D/A转换器DAC0832,可以将8位数字量转换成模拟量输出。数字量输入的范围为0255,对应的模拟量输出的范围在到之间。根据这一特性,可以利用单片机的并行口输出的数字量,产

21、生常用的波形。例如,要产生幅度为的锯齿波,只要将DAC0832的接,单片机的并行口首先输出00H,再输出01H、02H,直到输出FFH,再输出00H,依此循环,这样在图7所示的端就可以看到在0到之间变化的锯齿波。2 锯齿波仿真图图7锯齿波的仿真锯齿波产生是通过P0口将00H送入寄存器A中,DAC0832输出A中的内容,读取P0口的状态,然后取反,再进行延时,当A中的内容不为FFH时,A中的内容加1,当A中的内容等于FFH返回开始,从而输出波形。锯齿波程序void juchi() uint i; i=0; while(1) P0=i; delay(t); i=i+1; P0=i; delay(t

22、); xianshiqi(t); if(i=256) i=0; if(s5=0) t=t+1; if(s6=0) t=t-1; 3 三角波仿真图图8 三角波的仿真三角波产生是通过P0口将00H送入寄存器A中,DAC0832输出A中的内容,通过A中数值的加1递升,同时延时,当A中的内容为FFH时,则A中的内容减1递减,从而循环产生三角波。三角波程序如下:void sanjiaobo() uint j=0; while(1) P0=j;delay(t);j=j+1;P0=j;delay(t); xianshiqi(t);if(j=256) if(j!=0) j=j-1; P0=j; delay(t

23、); xianshiqi(t); if(s5=0) t=t+1; if(s6=0) t=t-1; if(s5=0) t=t+1; if(s6=0) t=t-1; 4 方波仿真图图9 方波的仿真方波产生是通过P0口将00H输出给DAC0832,输出对应模拟量,然后读取P0口的状态,进行取反,延时一定的时间,再将FFH输出,同样输出对应模拟量,再延时,从而得到方波。方波程序如下:void fangbo() while(1) P0=256; delay(t); P0=0; delay(t); xianshiqi(t); if(s5=0) t=t+1; if(s6=0) t=t-1; 5 正弦波仿真图

24、图10 正弦波的仿真正弦波波形设计通过查表指令得出。正弦程序如下:void zhengxianbo() uint k=0; while(1) P0=tablek+; delay(t); xianshiqi(t); if(k=182) k=0; if(s5=0) t=t+1; if(s6=0) t=t-1; 五 总结通过本次论文设计,我不仅发现设计的波形发生器有所欠缺,同时也感到了自身的不足。本次设计的程序实现较为简单,没有涉及到中断、串行口和定时/计数等功能,仅仅只是编写了几段基本波形发生代码,在主程序里调用,通过不同的键是否按下来选择波形。但为了延时准确可以启动定时器。由于真正意义上的程序设

25、计还不多,因此还不是很得心应手,所以在设计中遇到一些问题和一些难点。比如:在程序设计中如何实现程序结构的最优化,以达到较高的质量。这是以后设计中要注意的问题。最重要的是本程序在设计中出现了因为代码太长,当程序执行到正弦波时无法返回,经过自己查阅资料,知道了当遇到这种一次跳不回的情况可以通过多跳一次而跳回。在本次设计的过程中,我还学会了高效率的查阅资料、运用工具书、利用网络查找资料。我发现,在我们所使用的书籍上有一些知识在实际应用中其实并不是十分理想,各种参数都需要自己去调整,偶而还会遇到错误的资料现象,这就要求我们应更加注重实践环节。同时在制作word文档时,体会到了自己对word的运用还不太

26、熟练,比如使用公式编辑器等。目前单片机在工业检测领域中得到了广泛的应用,在我们平常的生活中也是随处可见,包括我们日常生活中随处可见的交通灯、闹钟等都含有单片机作为一个主要的部件,懂得并熟悉掌握单片机的运用技术是非常有用的。 参考文献1 胡学武,用AT89C51实现超低频任意函数发生器.J,现代电子技术,2005(17)。2 王琼,单片机原理及应用,合肥工业大学出版社,2008。3 相迎军等,基于AT89C4051单片机的专用信号发生器设计与应用.J, 微计算机信息 ,2004。 4 朱蓉等,基于MCS-51单片机定时精确控制的研究.J,现代电子技术 ,2005。 5 张倩等,MCS5

27、1系列单片机的三种并行通信方法.J,新乡教育学院学报 ,2004(03) 。 6 李朝青,单片机原理及接口技术M.第三版,北京航空航天大学出版社,2005。The Design of Waveform Generator Based on 8051 Zha Bing(School of Physics and Electrical Engineering of Anqing Normal College, Anqing 246011)Abstract:Waveform generator is able to generate a lot of standard signal and user defined signals, and ensure the high precision, high stability, repeatability and simplicity of electronic instruments. This system is based on AT89C51 singl

温馨提示

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

评论

0/150

提交评论