基于8051单片机的波形发生器设计.doc

上传人:坚持 文档编号:3651719 上传时间:2019-07-02 格式:DOC 页数:13 大小:840.92KB
下载 相关 举报
基于8051单片机的波形发生器设计.doc_第1页
第1页 / 共13页
基于8051单片机的波形发生器设计.doc_第2页
第2页 / 共13页
基于8051单片机的波形发生器设计.doc_第3页
第3页 / 共13页
基于8051单片机的波形发生器设计.doc_第4页
第4页 / 共13页
基于8051单片机的波形发生器设计.doc_第5页
第5页 / 共13页
点击查看更多>>
资源描述

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

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

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

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

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

6、数信号发生器有 MAX038(最高频率可达 )和 ICL8038(最高频率为 ) 。MHz40KHz302 方案二波形发生器的设计还可以采用纯软件的方法来实现,它以计算机为基础,软件为核心,没有传统仪器那样具体的物理结构,通过软件设计实现和改变仪器的功能。例如用图形化编程工具 LabVIEW来实现任意波形发生器的功能,在 LabVIEW 软件的前面板通过拖放控件,设计仪器的功能面板(如波形显示窗口,波形选择按键,波形存储回放等工作界面),在软件的后面板直接拖放相应的波形函数并进行参数设置或直接调用编程函数来设计任意波形以实现波形产生功能;完成的软件打包后,可脱离编程环境独立运行,实现任意波形发

7、生器的功能。采用纯软件的虚拟仪器设计思路可以使设计简单、高效,仅改变软件程序就可以轻松实现波形功能的改变或升级。从长远角度来看,纯软件法成本较低,但其缺点是波形的响应速度和精度低于硬件法。3 方案三软硬件结合的波形发生器设计方法同时兼具软硬件设计的优势,既具有纯硬件设计的快速、高性能,同时又具有软件控制的灵活性、智能性。如以单片机和单片集成函数发生器为核心(如图 1)。同时带有以键盘控制、数码管显示等电路,设计出智能型函数波形发生器,采用软硬件结合的方法可以实现功能较全、性能更优的波形发生器,同时还可以扩展波形发生器的功能,比如通过软件编程控制实现波形的存储、运算、打印等功能,采用 USB 接

8、口设计,使波形发生器具有远程通信功能等。目前,实验、科研和工业生产中使用的信号源大多采用此方法来实现。AT89C51单片机DAC0832复位键键盘 数码管显示图 1 软硬件结合的波形发生器纯硬件设计法功能较单一,波形改变困难、控制的灵活性不够,不具备智能性,其中由运算放大器加分立元件组成的波形发生器,除在学生实验训练中使用外,基本不被采用。纯软件设计法实现简单,程序改变及功能升级灵活,但实现的波形精度及响应速度不如硬件法高。纯软件法主要适用于对波形精度、响应速度要求不是很高的场合。相比之下,软硬件结合的方法可以设计出性能更优、功能扩展灵活、控制智能化的新一代波形发生器,可以满足教学、科研、工业

9、生产等各方面对波形发生器性能有较高要求的应用场合。综合以上几种设计方案,本设计采用方案三软硬件设计法。其方案能够产生很好的波形,也易实现。三 硬件原理波形的产生是通过 AT89C51 单片机执行某一波形发生程序,向 D/A 转换器的输入端按一定的规律传送数据,从而在 D/A 转换电路的输出端得到相应的电压波形。基于 8051 单片机的波形发生器设计 第 3 页,共 13 页AT89C51 单片机的最小系统有三种连接方式。一种是两级缓冲器型,即输入数据经过两级缓冲器后,送入 D/A 转换电路。第二种是单级缓冲器型,即输入数据经输入寄存器直接送入 DAC 寄存器中,然后再送入 D/A 转换电路。第

10、三种是两个缓冲器直通,输入数据直接送入 D/A 转换电路进行转换。本电路仿真的总图如下:图 2 系统电路1 MCS-51 单片机的内部结构典型的 MCS-51 单片机芯片集成了以下几个基本组成部分。一个 8 位的 CPU。或 单元内数据存储器(RAM)。B256或 片内程序存储器(ROM 或 EPROM)。K44 个 8 位并行 I/O 接口 P0P3。两个定时/计数器。5 个中断源的中断管理控制系统。一个全双工串行 I/O 口 UART(通用异步接收、发送器)。一个片内振荡器和时钟产生电路。基于 8051 单片机的波形发生器设计 第 4 页,共 13 页图 3 单片机引脚2 CPU 结构CP

11、U 是单片机的核心部件,它由运算器和控制器等部件组成。运算器以完成二进制的算术/逻辑运算部件 ALU 为核心,它可以对半字节,单字节等数据进行操作。例如,能完成加、减、乘、除、加 1、减 1、BCD 码十进制调整、比较等算术运算,完成与、或、异或、求反、循环等操作,操作结果的状态信息送至状态寄存器。运算器还包含有一个布尔处理器,用以处理位操作。它以进位标志位 C 为累加器,可执行置位、复位、取反、位判断转移,可在进位标志位与其他的位之间进行位数据传送等操作,还可以完成进位标志位与其他的位之间进行逻辑与、逻辑或操作。PC 是一个 16 位的计数器,用于存放一条要执行的指令地址,寻址范围为 ,PC

12、 有自动KB640加 1 功能,即完成了一条指令的执行后,其内容自动加 1。 指令寄存器(IR,Instruction Register) 。存放当前从主存储器读出的正在执行的一条指令。当执行一条指令时,先把它从内存取到数据寄存器(DR,Data Register)中,然后再传送至 IR。指令划分为操作码和地址码字段,由二进制数字组成。为了执行任何给定的指令,必须对操作码进行测试,以便识别所要求的操作。指令译码器就是做这项工作的。指令寄存器中操作码字段的输出就是指令译码器的输入。操作码一经译码后,即可向操作控制器发出具体操作的特定信号。3 存储器和特殊功能寄存器基于 8051 单片机的波形发生

13、器设计 第 5 页,共 13 页存储器(Memory)是计算机系统中的记忆设备,用来存放程序和数据。计算机中的全部信息,包括输入的原始数据、计算机程序、中间运行结果和最终运行结果都保存在存储器中。它根据控制器指定的位置存入和取出信息。特殊功能寄存器(SFR)的地址范围为 80HFFH。在 MCS51 中,除程序计数器 PC 和四个工作寄存器外,其余 21 个特殊功能寄存器都在这 SFR 块中。其中有 5 个是双字节寄存器,它们共占用了 26 个字节。特殊功能寄存器反映了 8051 的状态,实际上是 8051 的状态字及控制字寄存器。这些特殊功能寄存器大体上分为两类,一类和芯片的引脚有关,另一类

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

15、/输出数据。 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

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

17、 的时钟周期。因此一个状态周期包含 2 个振荡周期。机器周期:1 个机器周期由 6 个状态周期 12 个振荡周期组成,是计算机执行一种基本操作的时间单位。指令周期:执行一条指令所需的时间。一个指令周期由 1-4 个机器周期组成,依据指令不同而不同。7 单片机的复位状态当 MCS-5l 系列单片机的复位引脚 RST(全称 RESET)出现 2 个机器周期以上的高电平时,单片机就执行复位操作。根据应用的要求,复位操作通常有两种基本形式:上电复位和上电或开关复位。上电复位要求接通电源后,自动实现复位操作。上电或开关复位要求电源接通后,单片机自动复位,并且在单片机运行期间,用开关操作也能使单片机复位。

18、上电后,由于电容 C1 的充电和反相门的作用,使 RST 持续一段时间的高电平。当单片机已在运行当中时,按下复位键 SJ1 后松开,也能使 RST 为一段时间的高电平,从而实现上电或开关复位的操作。图 5 复位电路单片机的复位操作使单片机进入初始化状态,其中包括使程序计数器 PC0000H。单片机冷启动后,片内 RAM 为随机值,运行中的复位操作不改变片内 RAM 区中的内容。51 单片机的复位是由RESET 引脚来控制的,此引脚与高电平相接超过 24 个振荡周期后, 51 单片机进入芯片内部复位状态,而且一直在此状态下等待,直到 RESET 引脚转为低电平后,才检查 EA 引脚是高电平或低电

19、平,若为高电平则执行芯片内部的程序代码,若为低电平便会执行外部程序。51 单片机在系统复位时,将其内部的一些重要寄存器设置为特定的值,至于内部 RAM 的数据则不变。8 DAC0832 的引脚及功能DAC0832 是分辨率为 8 位的 D/A 转换集成芯片,与微处理器完全兼容。这个 DA 芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。D/A 转换器由 8 位输入锁存器、8 位 DAC 寄存器、 8 位 D/A 转换电路及转换控制电路构成。DAC0832 的主要特性参数如下:分辨率为 8 位。电流稳定时间 。s1可单缓冲、双缓冲或直接数字输入。单一电源供电(

20、) 。V5基于 8051 单片机的波形发生器设计 第 7 页,共 13 页低功耗, 。mW20DAC0832 结构:D0D7:8 位数据输入线,TTL 电平,有效时间应大于 (否则锁存器的数据会出错)。ns90ILE:数据锁存允许控制信号输入线,高电平有效。CS:片选信号输入线(选通数据锁存器) ,低电平有效。WR1:数据锁存器写选通输入线,负脉冲(脉宽应大于 )有效。由 ILE、CS、WR1 的逻s5辑组合产生 LE1,当 LE1 为高电平时,数据锁存器状态随输入数据线变换,LE1 的负跳变时将输入数据锁存。XFER:数据传输控制信号输入线,低电平有效,负脉冲(脉宽应大于 )有效。ns50W

21、R2:DAC 寄存器选通输入线,负脉冲(脉宽应大于 )有效。由 WR1、XFER 的逻辑组ns50合产生 LE2,当 LE2 为高电平时,DAC 寄存器的输出随寄存器的输入而变化,LE2 负跳变时将数据锁存器的内容打入 DAC 寄存器并开始 D/A 转换。:电流输出端 1,其值随 DAC 寄存器的内容线性变化。1outI:电流输出端 2,其值与 值之和为一常数。2 1outI:反馈信号输入线,改变 端外接电阻值可调整转换满量程精度 。RfbRfb:电源输入端, 的范围为 。VccVV5:基准电压输入线, 的范围为 。ref ref 10AGND:模拟信号地。DGND:数字信号地。四 软件原理系

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

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

24、;while(1)P0=i;delay(t);i=i+1;P0=i;delay(t);xianshiqi(t);if(i=256)i=0;if(s5=0)t=t+1;基于 8051 单片机的波形发生器设计 第 9 页,共 13 页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

25、=j;delay(t);j=j+1;P0=j;delay(t);xianshiqi(t);if(j=256)if(j!=0)j=j-1;P0=j;基于 8051 单片机的波形发生器设计 第 10 页,共 13页delay(t);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()

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。