基于单片机波形发生器的实现及发生.doc
. .本科毕业设计论文题 目 基于单片机的波形发生器的实现与设计 学生XX专业班级学 号 院 系 指导教师(职称) 完成时间 . .word. .摘 要本文介绍了一种基于单片机的波形发生器的设计,整个系统通过单片机STC89C52控制外围数码管显示电路以及参数调节等实现正弦波、方波、三角波、锯齿波和脉冲波五种波形的输出显示。该波形发生器主要由两局部组成:系统硬件设计和系统软件设计,在系统硬件设计中,以STC89C52单片机为核心,通过I/O接口设计,扩展了D/A转换模块、同时用LED显示灯指示对应的波形。并且采用画图软件软件PROTEUS99SE画出原理图,设计并制作波形发生器的印制电路板PCB。系统软件设计是在KeilC的集成开发环境下采用汇编语言完成的,包括主程序、四种波形产生子程序、按键功能子程序和显示子程序等模块。本系统可以实现波形频率、幅度实时可调,功能灵活,系统的开发本钱在百元内,具有测量精度高,误差小、功耗低,数据传输速度较快,可靠性高等特点,有一定的开发价值。实验说明,设计系统的测试结果与实际波形的频率和幅度一致。关键词:波形发生器;STC89C52;LED;PCBAbstractThis article describes the the design of the waveform generator based on single-chip, the entire system through the microcontroller STC89C52 controls the led that can finish convertting five waveform analog output of sine wave, square wave, triangle wave, saw tooth wave and pulse wave. The waveform generator consists of two parts: system hardware design and system software design, in the system hardware design, the microcontroller STC89C52 is the core of the design, through I/O interface design to extend the DA converter module, waveform selector buttons, as well as LED to display .And through the SCM simulation software PROTEUS99SE to design and produce of the printed circuit board (PCB) of the waveform generator. System software design is done with assembly language in the integrated development environment KeilC, including the main Program, four waveform generator subroutine, key functions and display subroutines modules.This system can realize that frequency and amplitude of waveform is real-timeadjustable and flexible. The system development costs is in the hundred with a high accuracy, the error is small, low power consumption, faster data transfer speeds, high reliability, there is a certain development value. The testedfrequency and amplitudeofthesystemisconsistentwith the actualwaveform.Keywords:waveform generator;stc89C52;led;pcb目 录1绪论11.1 选题背景及意义11.1.1 本课题的研究现状11.1.2 选题目的及意义21.2 设计根本要求32波形发生器系统方案设计与论证42.1 总体设计方案的比拟42.2 子系统模块方案设计42.2.1 控制模块方案设计52.2.2 频率调整模块方案设计52.2.3 键盘模块方案设计62.2.4 显示模块方案设计72.2.5 D/A模块显示方针72.3 系统总体框图82.4 波形产生相关理论102.5 MCU概要112.5.1 单片机开展历程112.5.2 单片机的特点112.5.3 单片机的应用领域123硬件实现及模块电路设计133.1 单片机最小系统的设计133.2 D/A转换模块143.2.1 分辨率153.2.2 转换精度153.2.3 转换误差153.2.4 线性度153.3 频率调整模块163.4 按键显示模块173.5 LED显示模块183.6 RS232串行通信电路及电源供电电路203.6.1 RS232串行通信电路203.6.2 电源供电电路214单片机开发系统234.1 系统软件编程语言方案设计234.2系统整体软件设计思想244.2.1 Keil编译器简介244.2.2 Keil C51单片机软件开发系统的整体构造244.2.3 uVision4集成开发环境244.3 主程序流程图254.4 软件仿真265 系统软硬件调试与数据处理285.1硬件PCB制作、安装、测试与调试285.1.1 PCB设计、制作、安装285.1.2 电路板调试与检测平安295.1.3 供电平安295.2 PCB电路板的电气规那么检查与调试及电路功能测试305.2.1 PCB电路板的电气规那么检查与调试305.3测试方法及数据的记录和统计305.4测试数据分析及处理305.5系统功能实现情况306 系统抗干扰措施326.1 形成干扰的根本因素326.2 提高单片机系统抗干扰能力的主要手段33结 论34致 35参考文献36附录A 英文原文38附录B 汉语翻译45附录C系统软件局部源程序49附录D系统原理图55附录E元器件清单56附录F 符号说明57附录G实物图58. .word. .1 绪论1.1选题背景及意义波形发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛的应用。各种波形曲线均可以用三角函数方程式来表示。能够产生多种波形,如三角波、锯齿波、矩形波含方波、正弦波的电路被称为函数波形发生器。在通信、播送、电视系统,在工业、农业、生物医学等领域内,函数波形发生器在实验和设备检测中具有十分广泛的用途。1.1.1 本课题的研究现状波形发生器既可以构成独立的信号源,也可以是高性能网络分析仪、频谱仪及其它自动测试设备的组成局部。波形发生器的关键技术是多种高性能仪器的支撑技术,因为它能够提供高质量的精细信号源及扫频源,可使相应系统的检测过程大大简化,降低检测费用并极大地提高检测精度。美国安捷伦生产的33250A型函数/任意波形发生器可以产生稳定、准确和低失真的任意波形,其输出频率X围为1Hz80MHz,而输出幅度为10mVpp10Vpp;该公司生产的8648D射频波形发生器的频率覆盖X围更可高达9kHz4GHz。1国产SG1060数字合成波形发生器能双通道同时输出高分辨率、高精度、高可靠性的各种波形,频率覆盖X围为1Hz60MHz;国产S1000型数字合成扫频波形发生器通过采用新技术、新器件实现高精度、宽频带的扫频源,同时应用DDS和锁相技术,使频率X围从1MHz1024MHz能准确地分辨到100Hz,它既是一台高精度的扫频源,同时也是一台高精度的标准波形发生器。还有很多其它类型的波形发生器,他们各有各的优点,但是波形发生器总的趋势将向着宽频率覆盖、高频率精度、多功能、多用途、自动化和智能化方向开展2。目前,市场上的波形发生器多种多样,一般按频带分为以下几种:超高频:频率X围1MHz以上,可达几十兆赫兹。高频:几百KHZ到几MHZ。 低频:频率X围为几十HZ到几百KHZ。超低频:频率X围为零点几赫兹到几百赫兹。 超高频波形发生器,产生波形一般用LC振荡电路。高频、低频和超低频波形发生器,大多使用文氏桥振荡电路,即RC振荡电路,通过改变电容和电阻值,改变频率。用以上原理设计的波形发生器,其输出波形一般只有两种,即正弦波和脉冲波,其零点不可调,而且价格也比拟贵,一般在几百元左右。在实际应用中,超低频波和高频波一般是不用的,一般用中频,即几十HZ到几十KHZ。用单片机89S52,加上一片DAC0832,就可以做成一个简单的波形发生器,其频率受单片机运行的程序的控制。我们可以把产生各种波形的程序,写在ROM中,装入本机,按用户的选择,运行不同的程序,产生不同的波形。再在DAC0808输出端加上一些电压变换电路,就完成了一个频率、幅值、零点均可调的多功能波形发生器的设计。这样的机器体积小,价格廉价,耗电少,频率适中,便于携带。1.1.2选题目的及意义波形发生器是一种经常使用的设备,由纯粹物理器件构成的传统的设计方法存在许多弊端,如:体积较大、重量较沉、移动不够方便、信号失真较大、波形种类过于单一、波形形状调节过于死板,无法满足用户对精度、便携性、稳定性等的要求,研究设计出一种具有频率稳定、准确、波形质量好、输出频率X围宽、便携性好等特点的波形发生器具有较好的市场前景,以满足军事和民用领域对信号源的要求。虽然我国对于波形发生器的研制起步较晚,但是通过几年的努力也取得了一些可喜的成果。国产SG1060数字合成信号发生器可以双通道同时输出高分辨率、高精度、高可靠性的各种波形,其频率覆盖X围为1Hz-60MHz。国产S1000数字合成扫频信号发生器的频率X围为1MHz-1024MHz,可应用于超高频领域。但是总的来说,这些设计产品价格昂贵主要应用于航空、军事等高端领域,在日常民用方面并没有形成自己真正的产业。目前国内成熟的产品多位一些PC仪器插卡,独立仪器少之又少。并且我国现今的任意波形发生器的种类和性能与国外相比仍有很大差距,因此对此内产品的研究设计仍具有重要意义。本次设计的主要目标是学习和运用单片机的C语言和开发环境,通过现有专业知识,实现利用单片机STC89C52控制外围电路及其参数实现正弦波,方波,三角波,锯齿波,脉冲波这五种常见波形的发生,并且可以接收外接拨码键盘开关量的输入而在一定X围内改变波形的频率和幅度。在无标准函数发生仪器时,本设计可以作为简单的波形发生器使用。本次设计准备在本钱交低廉的前提下完成,主要是用单片机STC89C52、LED,性能指数都不是很高,所以对此信号源的根本要求是能发生几种常见的波形,正弦波,方波,三角波,锯齿波,并且能够在定的X围内改变频率。通过该课题的设计,掌握以STC89C52为核心的单片机系统的软硬件开发过程和根本信号的产生原理、测量及误差分析方法,同时掌握波形发生器系统的软硬件设计流程;了解并掌握并行D/A转换器DAC0832的原理及其外围电路的设计方法;掌握利用单片机产生常用波形的方法,进一步熟悉单片机人机接口的设计方法;培养我们综合运用所学的根本知识、根本理论和根本技能的能力,学习解决一般工程技术和有关专业问题的能力。1.2设计根本要求本设计采用89C52及其外围扩展系统,软件方面主要是应用C语言设计程序。系统以89C52单片机为核心,配置相应的外设及接口电路,该系统的软件可运行于KeilC的集成开发环境下,硬件电路原理图设计完成后,能成功完成软件调试。同时,本系统中任何一局部电路模块均可移植于实用开发系统的设计中,例如温度控制系统、电子时钟万年历等实用的电路系统中,电路系统设计具有很强的实用性。功能要求:1) 波形发生器的频率,幅值,波形可调;2) 显示当前波形的频率、幅值;3) 对系统进展测试和结果分析;4) 撰写论文;5) 基于单片机以及外围的数码管显示电路,电源管理以及参数调节等电路实现输出波形的显示。2 波形发生器系统方案设计与论证2.1总体设计方案的比拟波形发生器的设计方案可用多种方案来完成。在设计前对各种方案进展了比拟:方案一:用差分放大电路实现三角波到正弦波以及集成运放组成的电路实现波形发生器。波形变换的原理是利用差分放大器的传输特性曲线的非线性,传输特性曲线越对称,线性区域越窄越好;三角波的幅度应正好使晶体接近饱和区域或者截至区域。方案二:利用专用直接数字合成DDS芯片实现函数波形发生器。这种波形发生器能产生任意波形并到达很高频率,但本钱较高。方案三:利用单片机STC89C52和发光二极管共同实现正弦波,方波,三角波,锯齿波这四种常见波形的发生,并且可以接收外接拨码键盘开关量的输入而在一定X围实现频率和幅度的调节3。方案四:采用分立元件构成非稳态的多谐振振荡器,根据具体需要参加积分电路等构成波形发生器。但这种波形发生器输出频率X围窄,而且电路参数设定较繁琐,输出的波形易受外界环境影响,不稳定,对电路硬件要求很高,不易实现。可行性分析:上面四种方案中,方案一中需要人为地搭建波形变换的电路。方案二本钱较高。方案三利用单片机构成的应用系统有较大的可靠性。系统扩展、配置灵活。容易构成各种规模的应用系统,且应用系统有较高的软、硬件利用系数。单片机具有可编程性,硬件的功能描述可完全在软件上实现,而且设计时间短,本钱低,可靠性高。方案四的电路参数设定较繁琐,输出的波形易受外界环境影响,不稳定。综合以上四种方案,从性能和制作本钱考虑,本设计采用方案三,即采用单片机通过调节拨码键盘开关量可产生可调频率的波形。2.2子系统模块方案设计该波形发生器有以下几局部组成:1)单片机控制模块,2)频率调整模块,3)按键模块,4)显示模块,5)D/A转换模块,6)RS232串行通信电路及电源供电电路模块六局部组成。2.2.1 控制模块方案设计方案一:用单片STC89C52作为系统的主控核心。单片机具有体积小,使用灵活的,易于人机对话和良好的数据处理,有较强的指令寻址和运算功能等优点。且单片机功耗低,价格低廉的优点。方案二:C89C52F005单片机是完全集成的混合信号系统级芯片,具有与89C52兼容的微控制器内核,与MCS-51指令集完全兼容。除了具有标准8052的数字外设部件,片内还集成了数据采集和控制系统中常用的模拟部件和其他数字外设及功能部件,而且执行速度快。但其价格较贵。方案三:用FPGA等可编程器件作为控制模块。FPGA可以实现各种复杂的逻辑功能,密度高,速度快,稳定性好等许多有点。FPGA在掉电后会丧失数据上电后须进展一次配置,因此FPGA在应用中需要配置电路和一定的程序。并且FPGA作为数字逻辑器件,竞争、冒险是数字逻辑组合电路中较为突出的问题,因此在使用时必须注意毛刺的产生、消除及抗干扰性。在此系统中,采用单片机作为控制器比采用FPGA实现更简便。从电路构造和本钱角度及综合性价比的考虑,确定选择方案一。2.2.2频率调整模块方案设计方案一:通过对单片机的定时器的编程来实现调频。将一个周期的波形数据离散成256个采样点数据,并启用定时器延时。当8位累加器A的内容到达最大的计数值255时在自增一次就变成最小值零,然后可以继续增加。如此,周而复始就可以得到要求的波形输出。当然通过对定时器初值的设定可以改变波形的频率。例如,单片机的晶振频率fOSC=12MHz,定时器采用方式1,假设产生周期为T的波形,定时器初值的计算方法如下:单片机机械周期Tmec为: (2.1)定时器初值TC为:(2.2)定时器初值高位TCH为: (2.3)定时器初值低位TCL为: (2.4)当要获得1Hz的波形时,按照上述方法可以算出:TC=61630, TCH=240, TCL=190但是此种方案最大计数值为65536,最小计数值为1,所以决定了此种方法所能得到的波形的上限频率fMAX为: (2.5)下限频率fMIN为: (2.6)需要说明的是,以上上限下限频率是对于将一周期波形离散成256个数据点的正弦波和锯齿波而言的。方案二:为了提高单片机的资源利用率和运行的效率,按键局部通过8位拨码开关来实现8位数字量通过74ls165的并行输入串行输出给单片机的方案,这样设计的目的优点是节省单片机的I/O口资源,电路构造简单易行。我们采用74ls165实现频率的改变,使频率能够实时随着拨码按键开关量的输入而改变,电路构造简单,实时性较强。4综合以上二种方案,方案一是靠软件来实现调频,综合可以看出此种方案的有效频段为0.06Hz到1953Hz,在此X围内输出波形频率连续可调。从电路构造、实时性的角度考虑,选择方案一。2.2.3 键盘模块方案设计方案一:采用独立按键,按键的数目少,但是它拥有构造简单,方便操作,执行效率高等优势。方案二:采用矩阵键盘,它以较少得I/O口实现了按键的功能。经综合考虑,由于节省I/O资源,我们采用矩阵键盘。2.2.4 显示模块方案设计方案一:用传统的LED七段数码管位选的方式进展波形频率和幅度的显示。动态LED扫描的方法就是控制LED和端轮流有效,使每个LED轮流点亮有效。方案二:采用LCD1602液晶显示,1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有假设干个5×7或者5×11等点阵字符位组成,1602采用并口传输,速度比12864快。每个点阵字符位都可以显示一个字符。1602内部集成有显示芯片,可以识别英文字母、阿拉伯数字和日语。此液晶显示具有微功耗、体积小、显示内容丰富、超薄轻巧等优点,常用在袖珍式仪表和低功耗应用系统中。5方案三:LCD1286是图形点阵,是显示图形和汉字,当然也是可以显示字母和阿拉伯数字了程序的编写上1602复杂的多,由于本次设计只需显示波形的频率和幅度,不需要显示波形图,从电路的简单程度和本钱的角度,综合考虑不选择。方案一占用较多的I/O口资源,需要添加额外的I/O扩展电路和译码电路,但是此方案硬件价格低廉,编程起点低。方案二运用液晶显示可以显示点阵字母和数字信息,速度快,功耗低,体积小,但是硬件价格较贵,且编程相对于LED较难。方案三的液晶可以显示汉字和图形,这些功能在本次设计中用不到。综合考虑,程控波形发生器设计并不需要显示复杂的信息,所以选择方案一。硬件波形发生器设计不准备参加显示模块,主要是因为此种方案适用于生成特定波形的系统中,使用人员并不需要经常对波形的频率和幅值进展更改,所以显示模块在此种方案中显得冗余。2.2.5 D/A模块显示方针单片机输出的是数字信号,必须通过D/A转换后才能模拟信号。方案一:采用D/A转换器AD7543。AD7543是一种串行的D/A转换器,与单片机之间的连线少,布线方便,而且又是12位的D/A转换器,精度高。但串行数据传输速度慢,当频率较高时,必须减少每周期输出的点数,这将会导致阶梯现象更加明显,因此,此方案不宜使用。方案二:采用DAC0832。这是8位的并行D/A转换器,转换速度快。综合以上二种方案,本系统选择了方案二。DAC0832芯片介绍美国国家半导体公司生产的DAC0832是一种具有8 位分辨率、双通道输出的D/A转换芯片。由于它体积小,兼容性,性价比高而深受单片机爱好者及企业欢送,其目前已经有很高的普及率6。1)DAC0832具有以下特点1) 8位分辨率;2) 双通道A/D转换;3) 输入输出电平与TTL/CMOS相兼容;4) 5V电源供电时输入电压在05V之间;5) 工作频率为250KHZ,转换时间为32S;6) 一般功耗仅为15mW;7) 8P、14PDIP双列直插、P LCC 多种封装;8) 商用级芯片温宽为0°C to +70°C,工业级芯片温宽为40°C to +85°C。2)芯片接口说明在电路原理图设计时,DAC0832的D0-D7 8条数据线与单片机的P0口相连接,DAC0832的、脚与P2.7相连接、与单片机的相连接,IOUT1与LM324的2脚相连接,3脚数字地、10脚模拟地分别与电源地相连接。ILE脚与5V电源相连接。3)单片机对DAC0832的控制原理当DAC0832未工作时其输入端应为高电平,此时芯片禁用。当要进展A/D转换时,须先将使能端置于低电平并且保持低电平直到转换完全完毕。当DAC0832工作时其输入端应为低电平,直接将单片机P0口的8位数字量转换为模拟电压量的经IOUT1引脚输出,将示波器的正极探针与IOUT1引脚端相连接,就可以看到波形的产生。2.3系统总体框图本系统是以单片机STC89C52、频率调整模块、按键模块、以及LED显示模块、I/O显示,RS232串行通信及USB供电等模块共同实现正弦波,方波,三角波,锯齿波,脉冲波这五种频率、幅度可调的常见波形的功能。系统原理框图如图2.1。 键盘/按键键盘 晶振 电源 单片机 LED显示/发光二极管显示图2.1 系统原理框图由图2.2 DAC0832转换局部电路图可知,通过代入以下数据对波形输出与频率、幅值调节局部进展具体的理论分析计算。 利用STC89C52单片机、DAC0832、8位拨码开关设计一个能产生正弦波、方波、三角波、锯齿波和脉冲波的频率、幅值、波形可调的波形发生器。其中8位拨码开关是用来产生8位二进制数作为延时常数,DAC0832是用来将8位数字量转化成模拟量输出。数字量输入的X围为0-255之间,对应的模拟量输出的X围在Vref-到Vref+之间。根据这样我们可以利用单片机的并行口输出的数字量,产生常用的波形。图2.2 DAC0832转换局部电路图1利用单片机产生方波、正弦波、三角波和锯齿波等信号波形,信号的频率和幅度可变。2将一个周期的信号别离成256个点按X轴等分,每两点之间的时间间隔为T,用单片机的定时器产生,其表示式为: T=T/256。如果单片机的晶振为12MHz,采用定时器方式0,那么定时器的初值为:X=213T/Tmec (2.7)定时时间常数为:TL=8192T/MOD256(2.8)TH=8192T/256 (2.9)MOD256表示除256取余数。3正弦波的模拟信号是D/A转换器的模拟量输出,其计算公式为:Y=A/2sint+A/2 (其中A=VREF) (2.10)t=NT (N=1256) (2.11)那么对应着存放在计算机里的这一点的数据为: (2.12)4一个周期被别离成256个点,对应的四种波形的256个数据存放在以TAB1-TAB4为起始地址的存储器中。由(2.3.4)式可知,当DAC0832在 0255 之间变化时,输出电压可在0V5V+之间 变化,即输出信号的峰峰值可由滑动变阻器RV2控制。2.4波形产生相关理论DAC0832是8位的D/A转换器件,其工作电压是05V,当输入00H数字量的时候,输出为0V电压;当输入07FH数字量的时候,输出为2.5V电压;当输入0FFH数字量的时候,输出为5V电压。单片机的I/O输出均为+5 V的TTL电平,因此产生的正弦波以正弦波为例幅值为+2.5 V。将一个周期内的正弦波形等分为256份,对应256个数字量,利用查数据表的方式来实现波形的产生。第1点的角度为0°,对应的正弦值为2.5sin0°;第2点的角度为360°/256,对应的正弦值为2.5sin 360°/256,如此计算下去,将这些单极性方式下的数字量转换为正弦值模拟量输出。而每次送到DAC0832的八位数字量是根据查正弦波形数据表格而得到。2.5 MCU概要2.5.1 单片机开展历程单片微型计算机简称为单片机,它是把微型计算机的各个功能部件,既中央处理器CPU、随机存储器RAM、定时/计数器、只读存储器ROM、I/O接口电路和必要的外设集成在一块芯片上,构成一个既小巧又完善的微型计算机。随着科学技术的开展,单片机芯片内扩展了各个控制功能,现今的单片机集成了许多面向测控对象的接口电路。自从1974年美国Fairchild公司研制出第一台8位单片机F8以来,单片机就以惊人的速度在开展,各公司竞相推出自己的产品,各种新、高性能单片机不断涌现。迄今为止,单片机的开展主要分为以下4个阶段。第一阶段:初级单片机阶段。以MCS-48为代表的单片机在片内集成了8位CPU、并行I/O口、8位定时/计数器、RAM等,无串行I/O口,寻址X围小于4KB。第二阶段:高性能8位机阶段。这个阶段的单片机均带有串行I/O口,具有多级中断处理系统,定时/计数器为16位,片内RAM和ROM容量相对增大,且寻址X围可达64KB。第三阶段:8位单片机稳固、完善及16位单片机推出阶段。在此阶段,一方面不断完善高档8位机,改善其构造以满足不同用户的需要;另一方面开展16位单片机及专用单片机。第四阶段:单片机的全面开展阶段。32位单片机具有极高的集成度,CPU可与其他微控制器兼容,指令系统进一步优化,运算速度可动态改变,具有强大的中断控制系统、同步/异步通信控制系统。单片机的开展趋势将是大容量、高性能化、低功耗化、宽电压、外围电路内装化等。2.5.2 单片机的特点单片机以其卓越的性能,得到了广泛的应用,以深入到各个领域。单片机应用在检测、控制领域中,具有以下的特点。1单片机具有体积小、控制功能强、本钱低等特点、可非常方便的嵌入到各个应用场合,组装各种智能式控制设备和仪器,做到机、电、仪一体化。2可靠性好,适用温度X围宽,且程序指令、表格数据等可固化在ROM中,不易被破坏。3易于扩展,很容易构成各种规模的应用系统。4低电压、低功耗;单片机广泛应用于便携式产品和家电消费类产品。对此类产品,低电压、低功耗尤为重要。目前,0.8V供电的单片机问世,一粒纽扣电池就可使单片机长期运行。5可以方便的实现多机和分布式控制,从而使整个控制系统的效率和可靠性大为提高。2.5.3 单片机的应用领域1在智能仪器仪表中的应用单片机应用于各种仪器仪表中,如精细数字温度计、智能电度表、智能流速仪、微机多功能pH测试仪等。2在工业测控中的应用用单片机可以构成各种工业控制系统、自适应控制系统、数据采集系统等。在军事工业中,单片机可用于导弹控制、鱼雷制导控制、智能武器装置及航天导航系统等。3在计算机网络与通信技术中的应用例如,MCS系列单片机控制的串行自动呼叫应答系统、列车无线通信系统、无线遥控系统等。4在日常生活及家电中的应用目前,各种家用电器已普遍采用单片机控制取代传统的控制电路,如洗衣机、电冰箱、空调、微波炉、电饭煲及其他视频音像设备的控制器,各类信号指示、手机通信、电子玩具、智能楼宇及防盗系统等。3 硬件实现及模块电路设计3.1 单片机最小系统的设计STC89C52是片内有ROM/EPROM的单片机,因此,这种芯片构成的最小系统简单可靠。用STC89C52单片机构成最小应用系统时,只要将单片机接上时钟电路和复位电路即可,由于集成度的限制,最小应用系统只能用作一些小型的控制单元,STC89C52单片机最小系统如图3.1所示。其应用特点如下7:1可以给用户提供大量I/O口线。2内部存储器容量有限。3应用系统开发具有特殊性。48K字节程序储存空间。5512字节数据储存空间。6可直接使用串口下载。图3.1STC89C52单片机最小系统对图3.1说明如下:1单片机晶振电路:单片机外围的晶振电路是通过单片机的第18XTAL1引脚,19XTAL2引脚接入,XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输出端。对于本设计的电容C用30pF,晶振选用11.0592MHz。晶振电路解法如图3.1所示,一端接在XTAL1引脚上,另一端接在XTAL2引脚上。2单片机的复位引脚 RST:复位输入。晶振工作时,RST脚将持续2个机器周期高电平将使单片机复位。看门狗计时完成后,RST 脚输出2个晶振周期的高电平。特殊存放器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。为了防止程序执行过程中失步或运行紊乱,此处我们采用了上电复位电路8。3.2 D/A转换模块由单片机运算处理的结果数字量往往也需要转换为模拟量,以便控制对象,这一过程即为D/A转换。D/A转换器输入的是数字量,经转换器输出的是模拟量。转换过程是先将MCS-52送到D/A转换器的各位二进制数,按其权的大小转换为相应的模拟分量,然后再以叠法把各模拟分量相加,其和就是D/A转换的结果。D/A转换器有两种输出形式,一种是电压输出形式,即给D/A转换器输入的是数字量,而输出为电压。另一种是电流输出形式,即输出为电流。在实际应用中,对于电流输出的D/A转换器,如需要模拟电压输出,可在其输出端加一个由运算放大器构成的I-V转换电路,将电流输出转换为电压输出。由于D/A转换时需要一定时间的,在这段时间内D/A转换器输入端的数字量应保持稳定,为此应当在D/A转换器的数字输入端前面设置锁存器,以提供数据锁存功能。根据转换器芯片内是否带有锁存器,可以把DAC分为内部无锁存器的和内部有锁存器的两类。D/A转换器的技术指标主要有分辨率、转换精度、转换误差、线性度,下面做详细的介绍。3.2.1 分辨率分辨率用于表征D/A转换器对输入微小量变化的敏感程度,是指D/A转换器能分辨的最小输出模拟增量,是输入数字量发生单位数字变化时,即LSB位发生一次时,所对应输出模拟量的变化量。对于n位D/A转换器,其分辨率与数字量输出的位数n的关系如下:=模拟输出的满量程值/2n在实际应用中,一般把D/A转换器的分辨率采用输入数字量的位数或最大输入码的个数表示。例如8位二进制D/A转换器,其分辨率为8位。位数越多,D/A转换器的分辨率越高。3.2.2 转换精度转换器的精度是指输出模拟量电压的实际值与理想值之差,即最大静态转换误差。这误差是由于参考电压偏离标准值、运算放大器的零点漂移、模拟开关的压降以及电阻阻值的偏差等原因引起的。精度和分辨率是两个不同的概念。精度是指转换后所得到的实际值对于理想值的误差或接近程度,而分辨率那么是指能够对转换结果发生影响的最小输入量。分辨率很高的D/A转换器不一定具有很高的精度,分辨率不高的D/A转换器那么肯定不会具有很高的精度。影响转换精度的主要误差因素有失调误差、增益误差、非线性误差和微分非线性误差等。3.2.3 转换误差转换误差是用以说明D/A转换器实际上能到达的转换精度。转换误差可用输出电压满度值的百分数表示,也可用LSB的倍数表示。例如,转换误差为1/2LSB,是表示输出模拟电压的绝对误差等于当输入数字量的LSB为1,其余各位均为0时输出模拟电压的1/2。3.2.4线性度通常用非线性误差的大小表示D/A转换器的线性度,并且把理想的输入/输出的偏差与满刻度输出之比的百分数,定义为非线性误差。3.3 频率调整模块通过对单片机的定时器的编程来实现调频。定时器/计数器的工作方式如下:定时器/计数器0 和定时器/计数器1 都可以在方式0、方式1、方式2 工作,而方式3 只有前者才能工作。1 方式 0当TMOD 中M1、M0 都为0 时,T/C 工作在方式0。方式0 为13 位的T/C,由TH 提供高8 位,TL 提供低5 位,注意TL 的高3 位是无效的,计数溢出值为2 的13 次方=8192,启动该计数器需要设置好计数初值。当C/- T该位为0 时,T/C 为定时器,振荡源12 分频的信号作为计数脉冲;当C/- T该位为1 时,T/C为计数器,对外部脉冲输入端的T0 或T1 引脚进展脉冲计数。计数脉冲能否加到计数器上,受启动信号的控制。当GATE=0 时,只要TR=1,那么T/C 启动;当GATE=1时,启动信号受到TR 与INT 的双重控制。T/C 启动后立即加1 计数,当13 位计数满时,TH 向高位进位。此进位将中断溢出标志TF 置位即TF=1,产生中断请求,表示定时时间或计数次数到达。假设T/C 开中断(ET=1)且CPU 开中断(EA=1),那么当CPU 自动转向中断效劳函数时,TF 自动清零,不需要人工软件清零。2方式 1当TMOD 中M1、M0 为0、1 时,T/C 工作在方式1。方式1 与方式0 根本一样,唯一不同的是方式0 是13 位计数方式,方式1 是16 位计数方式,TH 和TL 都同时提供8 位(方式0 时TL 只提供低5 位,高3 位无效),