基于单片机AT89C51的信号发生器的设计与实现.doc
摘要信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛的应用。各种波形曲线均可以用三角函数方程式来表示。能够产生多种波形,如三角波、锯齿波、矩形波(含方波)、正弦波的电路被称为函数信号发生器。函数信号发生器在电路实验和设备检测中具有十分广泛的用途。例如在通信、广播、电视系统中,都需要射频(高频)发射,这里的射频波就是载波,把音频(低频)、视频信号或脉冲信号运载出去,就需要能够产生高频的振荡器。在工业、农业、生物医学等领域内,如高频感应加热、熔炼、淬火、超声诊断、核磁共振成像等,都需要功率或大或小、频率或高或低的振荡器。本系统以AT89C51单片机为核心设计了一个信号发生器,采用数字波形合成技术,通过硬件电路和软件程序相结合,可输出自定义波形,如正弦波、方波、三角波、三角波、梯形波及其他任意波形,波形的频率和幅度在一定范围内可任意改变。波形和频率的改变通过软件控制,幅度的改变通过硬件实现。介绍了波形的生成原理、硬件电路和软件部分的设计原理。本系统理论可以产生最高频率20MHZ的波形。该信号发生器具有体积小、价格低、性能稳定、功能齐全的优点。关键词:AT89C51;DAC0832;液晶显示;键盘控制AbstractSignal generator is also known as signal source or oscillator, in the production practice and technology is widely used in the field of. Each kind of wave may use the trigonometric function equation. Can produce a variety of waveforms, such as the triangle wave, sawtooth wave, rectangular wave (including square wave ), sine wave circuit is called the function signal generator. Function signal generator in electric circuit experiment and the equipment examination has a very wide range of uses. For example, in communication, broadcasting, television system, needs the radio frequency ( HF) emission, the radio wave is the carrier, the audio frequency ( low frequency ), the video signal or pulse signal to carry out, will need to be able to produce the high frequency oscillator. In industry, agriculture, biomedical and other fields, such as high-frequency induction heating, smelting, quenching, ultrasound, magnetic resonance imaging, required power big or small, or high or low frequency oscillator.This system based on the AT89C51 single-chip microcomputer as the core to design a signal generator, with digital waveform synthesis technology, the hardware circuit and software program combined, can output sine wave, such as custom waveform, square wave, triangle wave, triangle wave, trapezoidal wave and other arbitrary waveform, frequency and amplitude of the waveform in a certain range can be changed arbitrarily. Waveform and frequency change through software control, the change of the amplitude is realized by hardware. Introduces the waveform generation principle, hardware circuit and software design principle. The system can generate the highest frequency20MHZ waveform. The signal generator has the advantages of small volume, low price, stable performance, complete functions.Keywords:AT89C51;DAC0832;LCD display; keyboard control 目 录摘要IAbstractII第1章 引言11.1 选题背景和意义11.2 国内外研究现状、发展动态11.2.1 信号发生器的发展历史11.2.2 信号发生器的发展特点2第2章 总体设计方案32.1 设计思想32.1.1 设计内容及要求32.1.2 方案选择与论证32.2 方案的结构模块划分4第3章 硬件电路的设计53.1 主控电路及主控芯片的选择53.1.1单片机的发展史53.1.2 单片机的特点63.1.3 89C51单片机介绍63.2 时钟电路设计93.3 复位电路的设计93.3.1 复位功能103.3.2 复位后的状态103.4 最小应用系统的设计113.5 按键电路设计123.5.1 人机交互接口的设计123.5.2 键盘设计需要解决的几个问题123.5.3 按键的确认123.5.4 重键与连击的处理123.5.5 按键防抖动技术123.6 LCD显示模块的设计143.7 D/A 转化电路和I/V电路的设计143.7.1 DAC0832管脚功能介绍153.7.2 D/A转换器的性能指标163.7.3 I/V 转换电路16第4章 软件设计184.1 主程序184.2 定时器0服务程序194.3 外部中断服务程序204.4 LCD液晶显示程序21第5章 软硬件联合调试结果225.1调试过程225.2出现的问题与解决的方法225.3仿真波形23结论24参 考 文 献25致谢26附录127附录228第1章 引言1.1 选题背景和意义随着电子测量及其他部门对各类信号发生器的广泛需求及电子技术的迅速发展,促使信号发生器种类增多,性能提高。尤其随着70年代微处理器的出现,更促使信号发生器向着自动化、智能化方向发展。现在,许多信号发生器带有微处理器,因而具备了自校、自检、自动故障诊断和自动波形形成和修正等功能,可以和控制计算机及其他测量仪器一起方便的构成自动测试系统。当前信号发生器总的趋势是向着宽频率覆盖、低功耗、高频率精度、多功能、自动化和智能化方向发展。在科学研究、工程教育及生产实践中,如工业过程控制、教学实验、机械振动试验、动态分析、材料试验、生物医学等领域,常常需要用到低频信号发生器。而在我们日常生活中,以及一些科学研究中,锯齿波和正弦波、矩形波信号是常用的基本测试信号。譬如在示波器、电视机等仪器中,为了使电子按照一定规律运动,以利用荧光屏显示图像,常用到锯齿波产生器作为时基电路。信号发生器作为一种通用的电子仪器,在生产、科研、测控、通讯等领域都得到了广泛的应用。 但市面上能看到的仪器在频率精度、带宽、波形种类及程控方面都已不能满足许多方面实际应用的需求。加之各类功能的半导体集成芯片的快速生产,都使我们研制一种低功耗、宽频带,能产生多种波形并具有程控等低频的信号发生器成为可能。1.2 国内外研究现状、发展动态1.2.1 信号发生器的发展历史目前,市场上常见的波形发生器多为纯硬件的搭接而成,且波形种类有限,多为锯齿、正弦、方波、三角等波形。信号发生器作为一种常见的应用电子仪器设备,传统的可以完全由硬件电路搭接而成,如采用555振荡电路发生正弦波、三角波和方波的电路便是可取的路径之一,不用依靠单片机。但是这种电路存在波形质量差,控制难,可调范围小,电路复杂和体积大等缺点。在科学研究和生产实践中,如工业过程控制,生物医学,地震模拟机械振动等领域常常要用到低频信号源,而由硬件电路构成的低频信号其性能难以令人满意,而且由于低频信号源所需的RC很大;大电阻,大电容在制作上有困难,参数的精度亦难以保证;体积大,漏电,损耗显著更是其致命的弱点。一旦工作需求功能有增加,则电路复杂程度会大大增加。在 70 年代前,信号发生器主要有两类:正弦波和脉冲波,而函数发生器介于两类之间,能够提供正弦波、余弦波、方波、三角波、上弦波等几种常用标准波形,产生其它波形时,需要采用较复杂的电路和机电结合的方法。这个时期的波形发生器多采用模拟电子技术,而且模拟器件构成的电路存在着尺寸大、价格贵、功耗大等缺点,并且要产生较为复杂的信号波形,则电路结构非常复杂。同时,主要表现为两个突出问题,一是通过电位器的调节来实现输出频率的调节,因此很难将频率调到某一固定值;二是脉冲的占空比不可调节。在 70 年代后,微处理器的出现,可以利用处理器、A/D/和 D/A,硬件和软件使波形发生器的功能扩大,产生更加复杂的波形。这时期的波形发生器多以软件为主,实质是采用微处理器对 DAC的程序控制,就可以得到各种简单的波形。 90 年代末,出现几种真正高性能、高价格的函数发生器、但是HP公司推出了型号为 HP770S的信号模拟装置系统,它由 HP8770A任意波形数字化和 HP1776A波形发生软件组成。HP8770A实际上也只能产生8 中波形,而且价格昂贵。不久以后,Analogic公司推出了型号为 Data-2020的多波形合成器,Lecroy 公司生产的型号为9100 的任意波形发生器等。二十一世纪,随着集成电路技术的高速发展,出现了多种工作频率可过 GHz 的DDS 芯片,同时也推动了函数波形发生器的发展,2003 年,Agilent的产品 33220A能够产生 17 种波形,最高频率可达到 20M,2005 年的产品N6030A 能够产生高达 500MHz 的频率,采样的频率可达 1.25GHz。由上面的产品可以看出,函数波形发生器发展很快。 1.2.2 信号发生器的发展特点而近几年来,国际上波形发生器技术发展主要体现在以下几个方面:(1)过去由于频率很低应用的范围比较狭小,输出波形频率的提高,使得波形发生器能应用于越来越广的领域。波形发生器软件的开发正使波形数据的输入变得更加方便和容易。波形发生器通常允许用一系列的点、直线和固定的函数段把波形数据存入存储器。同时可以利用一种强有力的数学方程输入方式,复杂的波形可以由几个比较简单的公式复合成 v=f (t)形式的波形方程的数学表达式产生。从而促进了函数波形发生器向任意波形发生器的发展,各种计算机语言的飞速发展也对任意波形发生器软件技术起到了推动作用。目前可以利用可视化编程语言(如Visual Basic ,Visual C 等等)编写任意波形发生器的软面板,这样允许从计算机显示屏上输入任意波形,来实现波形的输入。 (2)与VXI资源结合。目前,波形发生器由独立的台式仪器和适用于个人计算机的插卡以及新近开发的VXI模块。由于VXI总线的逐渐成熟和对测量仪器的高要求,在很多领域需要使用VXI系统测量产生复杂的波形,VXI的系统资源提供了明显的优越性,但由于开发VXI模块的周期长,而且需要专门的VXI机箱的配套使用,使得波形发生器VXI模块仅限于航空、军事及国防等大型领域。在民用方面,VXI模块远远不如台式仪器更为方便。 (3)随着信息技术蓬勃发展,台式仪器在走了一段下坡路之后,又重新繁荣起来。不过现在新的台式仪器的形态,和几年前的己有很大的不同。这些新一代台式仪器具有多种特性,可以执行多种功能。而且外形尺寸与价格,都比过去的类似产品减少了一半。第2章 总体设计方案2.1 设计思想由于要求达到模拟信号波形发生,因此要由D/A转换芯片来完成此项任务,由基准电路来实现输出波形的幅度可调,通过电位器调节波形的变化。经过数模转换电路输出的信号为电流形式,因此需要加电流/电压转换电路来改变输出信号的形式。2.1.1 设计内容及要求主要功能:产生方波、三角波、正弦波信号。技术指标:可输出方波、三角波、正弦波,频率可调。频率范围:正弦波频率范围为10Hz-100Hz,步进10Hz;三角波频率范围为50HZ-500Hz,步进50Hz;方波频率范围为200Hz-2000Hz,步进200Hz。幅值范围:5V不变。设计要求:用液晶显示屏显示当前的波形名称和频率;用键盘选择波形类型和改变频率2.1.2 方案选择与论证函数信号发生器的实现方法通常有以下几种:方案一:用分立元件组成的函数发生器,通常是单函数发生器且频率不高,其工作不很稳定,不易调试。方案二:可以由晶体管、运放IC等通用器件制作,更多的则是用专门的函数信号发生器IC产生。早期的函数信号发生器IC,如L8038、BA205、XR2207/2209等,它们的功能较少,精度不高,频率上限只有300kHz,无法产生更高频率的信号,调节方式也不够灵活,频率和占空比不能独立调节,二者互相影响。方案三:利用单片集成芯片的函数发生器,能产生多种波形,达到较高的频率,且易于调试。鉴于此,美国马克西姆公司开发了新一代函数信号发生器ICMAX038,它克服了上述方案二中芯片的缺点,可以达到更高的技术指标,是上述芯片望尘莫及的。MAX038频率高、精度好,因此它被称为高频精密函数信号发生器IC。在锁相环、压控振荡器、频率合成器、脉宽调制器等电路的设计上,MAX038都是优选的器件。方案四:利用专用直接数字合成芯片的函数发生器,能产生任意波形并达到很高的频率,但成本较高。方案五:采用函数信号发生器ICL8038集成模拟芯片,它是一种可以同时产生方波、三角波、正弦波的专用集成电路。但是这种模块产生的波形都不是纯净的波形,会寄生一些高次谐波分量,采用其他的措施虽可滤除一些,但不能完全滤除掉,且价格较高。 方案六:采用AT89C51单片机和DAC0832数模转换器相结合的电路来产生波形,由于是软件滤波,所以不会有寄生的高次谐波分量,生成的波形比较纯净。它的特点是价格低、性能高,在低频范围内稳定性好、操作方便、体积小、耗电少,适合学生毕业设计。经比较,方案六既可满足毕业设计的基本要求又能充分发挥其优势,电路简单,易控制,性价比高,所以采用该方案。2.2 方案的结构模块划分本次设计所研究的就是用单片机将某种波形所对应的数字量进行输出,再通过D/A转换器转换输出一组连续变化的5V的电压脉冲值,同时再通过液晶显示部分显示其频率值和波形名称。在设计时分块来做,分为D/A转换,单片机系统,键盘控制和液晶显示4个主要模块,最后通过联调仿真,做出电路板成品,从而简化人机交互的问题,具体设计模块如图2-1所示。AT89C51LCD键盘控制DAC0832运放输出时钟电路复位电路 图2-1 系统总框图各功能模块介绍如下:单片机最小系统:包括时钟电路和复位电路键盘控制电路:用按键来控制输出波形的种类和调节频率D/A转换电路: 单片机把待转换的数字量输送到DAC0832来把数字信号转换为模拟信号。显示电路:采用液晶显示器显示波形的名称和频率系统要求是便携式低功耗的,所以在硬件电路建立前首先粗略计算一下整个系统所需的功耗,考虑单片机部分功耗的大小,选择合适的器件以及参数。第3章 硬件电路的设计3.1 主控电路及主控芯片的选择单片机即单片微型计算机(Single CHip Microcomputer)是把组成微型计算机的各种功能部件,包括中央处理单元(CPU)、随机存储器(RAM)、程序存储器(ROM)、定时器/计数器及输入输出接口等部件都集成在一块芯片上。是一种集成度高、性价比优越、质量小、体积小的微型计算机。单片机按其使用目的可以分为通用和专用两种类型。通用单片机是一种基本芯片,内部功能及资源丰富,性能全面,适应性强,可覆盖多种用途。用户可以根据需要设计成各种不同的单片机控制系统,即有一个再设计的过程。专用型单片机在设计时已对系统结构进行了简化,对软、硬件进行了优化,可靠性高,成本低,但是这类单片机功能单一,通常是针对某一特定的产品。本设计应采用通用型单片机。随着半导体集成工艺的不断发展,单片机也正朝着CMOS化、低功耗、体积小、大容量、高性能低价格和外围电路内装化等几个方向发展。在单片机家族中,Intel公司推出的MCS-51系列中的80C51是其中的佼佼者。MCS-51系列单片机是8位单片机中应用范围最广的一类单片机。近几年来,许多单片机开发厂商也推出了许多基于80C51单片机内核的扩展型单片机,产品在保持与51单片机兼容的基础上改善了很多特性,性能各异。常用的单片机有很多种:Intel8051和8751系列、Motorola的MC6801系列、Atmel的AT89系列、台湾Winbond(华邦)W7和W78系列、荷兰PHilips的51LPC和LPC900系列、ZILOG的Z8系列等。本设计中最终选用了ATMEL公司的AT89C51单片机。AT89C51单片机是美国ATMEL公司推出的低功耗/低电压、高性能的8位单片机,片内含4KBFlasH程序存储器,它采用了CMOS工艺和ATMEL公司的高密度非易失性存储器(NURAM)技术,该存储器的全称为闪速可编程可擦除只读存储器(FPEROM,FlasH Programmable and Erasable Read Only Memory),其输出引脚和指令系统与标准MCS-51系统兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。3.1.1单片机的发展史单片机诞生于20世纪70年代末,经历了SCM、MCU、SoC三大阶段。 起初模型1.SCM即单片微型计算机(Single Chip Microcomputer)阶段,主要是寻求最佳的单片形态嵌入式系统的最佳体系结构。“创新模式”获得成功,奠定了SCM与通用计算机完全不同的发展道路。在开创嵌入式系统独立发展道路上,Intel公司功不可没。 2.MCU即微控制器(Micro Controller Unit)阶段,主要的技术发展方向是:不断扩展满足嵌入式应用时,对象系统要求的各种外围电路与接口电路,突显其对象的智能化控制能力。它所涉及的领域都与对象系统相关,因此,发展MCU的重任不可避免地落在电气、电子技术厂家。从这一角度来看,Intel逐渐淡出MCU的发展也有其客观因素。在发展MCU方面,最著名的厂家当数Philips公司。 Philips公司以其在嵌入式应用方面的巨大优势,将MCS-51从单片微型计算机迅速发展到微控制器。因此,当我们回顾嵌入式系统发展道路时,不要忘记Intel和Philips的历史功绩。 嵌入式系统单片机是嵌入式系统的独立发展之路,向MCU阶段发展的重要因素,就是寻求应用系统在芯片上的最大化解决;因此,专用单片机的发展自然形成了SoC化趋势。随着微电子技术、IC设计、EDA工具的发展,基于SoC的单片机应用系统设计会有较大的发展。因此,对单片机的理解可以从单片微型计算机、单片微控制器延伸到单片应用系统。3.1.2 单片机的特点 1 . 单片机的存储器ROM和RAM时严格区分的。ROM称为程序存储器,只存放程序,固定常数,及数据表格。RAM则为数据存储器,用作工作区及存放用户数据。 2 . 采用面向控制的指令系统。为满足控制需要,单片机有更强的逻辑控制能力,特别是单片机具有很强的位处理能力。 3 . 单片机的I/O口通常时多功能的。由于单片机芯片上引脚数目有限,为了解决实际引脚数和需要的信号线的矛盾,采用了引脚功能复用的方法,引脚处于何种功能,可由指令来设置或由机器状态来区分。 4 . 单片机的外部扩展能力很强。在内部的各种功能部件不能满足应用的需求时,均可在外部进行扩展,与许多通用的微机接口芯片兼容,给应用系统设计带来了很大的方便。3.1.3 89C51单片机介绍 AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。引脚图如图3-1所示。图3-1 AT89C51与AT89C2051引脚图管脚说明如下描述: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)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚 备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。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:来自反向振荡器的输出。振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。AT89C51的主要功能特性:(1) 工作电压为45.5 V,工作频率为022 MHz;(2)片内振荡器和时钟(CLOCK)电路;(3) 128*8位供存储数据的片内RAM;(4) 32根可编程I/O线;(5) 2个16位定时器/计数器;(6) 具有6个中断源;(7) 可编程全双工串行口;(8) 具有多种封装方式;(9) 程序存储器可扩展至64KB(ROM), 数据存储器可扩展至64KB(RAM)。AT89C51单片机功能强大、编程灵活、可靠性与性价比高,易于采购,便于使用与实验,可以达到设计要求,并且为系统再拓展留有空间,适用于许多较为复杂的控制应用场合。3.2 时钟电路设计时钟电路是单片机系统的心脏,它控制着单片机的工作节奏。单片机虽然内部有振荡电路,但要形成时钟,必须外部附加电路。时钟电路是单片机工作的时间基准,决定单片机工作的速度。MCS-51系列的时钟有两种产生方式:内部时钟方式,利用芯片内部的振荡电路和外部方式。本设计中选用内部时钟方式。电路如图3-2所示,MCS-51系列单片机内部有一个用于构成振荡器的高增益反相放大器。引脚XTAL1为反相器的输入端,引脚XTAL2为输出端。放大器与作为反馈元件的片外石英晶体振荡器一起构成了一个自激振荡器。本设计使用的石英晶体振荡器的频率为11.0592MHz,电容的主要作用是帮助振荡器起振和稳定电路,其值的大小对振荡频率有少许影响,本设计中选择C1和C2电容值为30pf。图3-2 时钟电路3.3 复位电路的设计MCS-51 单片机复位电路是指单片机的初始化操作。单片机启运运行时,都需要先复位,其作用是使CPU和系统中其他部件处于一个确定的初始状态,并从这个状态开始工作。因而,复位是一个很重要的操作方式。但单片机本身是不能自动进行复位的,必须配合相应的外部电路才能实现。图3-3为复位电路图。图3-3 复位电路3.3.1 复位功能复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。单片机的复位是由外部的复位电路来实现的。片内复位电路是复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的输出在每个机器周期的S5P2,由复位电路采样一次。复位电路通常采用上电自动复位(如图3-4(a)和按钮复位(如图3-4(b)两种方式。图3-4 RC复位电路3.3.2 复位后的状态单片机的复位操作使单片机进入初始化状态,其中包括使程序计数器PC0000H,这表明程序从0000H地址单元开始执行。单片机冷启动后,片内RAM为随机值,运行中的复位操作不改变片内RAM区中的内容,21个特殊功能寄存器复位后的状态为确定值。PSW00H,表明选寄存器0组为工作寄存器组; SP07H,表明堆栈指针指向片内RAM 07H字节单元,根据堆栈操作的先加后压法则,第一个被压入的内容写入到08H单元中;Po-P3FFH,表明已向各端口线写入1,此时,各端口既可用于输入又可用于输出 。IP×××00000B,表明各个中断源处于低优先级; IE0××00000B,表明各个中断均被关断; 系统复位是任何微机系统执行的第一步,使整个控制芯片回到默认的硬件状态下。51单片机的复位是由RESET引脚来控制的,此引脚与高电平相接超过24个振荡周期后,51单片机即进入芯片内部复位状态,而且一直在此状态下等待,直到RESET引脚转为低电平后,才检查EA引脚是高电平或低电平,若为高电平则执行芯片内部的程序代码,若为低电平便会执行外部程序。51单片机在系统复位时,将其内部的一些重要寄存器设置为特定的值,至于内部RAM内部的数据则不变。3.4 最小应用系统的设计单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统.对51系列单片机来说,最小系统一般应该包括:单片机、晶振电路、复位电路.下面给出一个51单片机的最小系统电路图,如图3-5。在智能化仪器仪表中,控制核心均为微处理器,而单片机以高性能、高速度、体积小、价格低廉、稳定可靠而得到广泛应用,是设计智能化仪器仪表的首选微控制器。单片机结合简单的晶体振荡电路和复位电路即可构成单片机最小系统,它是智能化仪器仪表的基础,也是测控、监控的重要组成部分。图3-5 最小系统电路图3.5 按键电路设计3.5.1 人机交互接口的设计所谓人机交互接口,是指人与计算机之间建立联系、交互信息的输入/输出设备的接口。这些输入/输出设备主要有键盘、显示器和打印机等。他们是计算机应用系统中必不可少的输入、输出设备,是控制系统与操作人员之间的交互窗口。一个安全可靠的控制系统必须具有方便的交互功能。操作人员可以通过系统显示的内容,及时掌握生产情况,并可通过键盘输入数据,传递命令,对计算机应用系统进行人工干扰,使其随时能按照操作人员的意图工作。3.5.2 键盘设计需要解决的几个问题键盘是若干按键的集合,是向系统提供操作人员干预命令及数据的接口设备。键盘可分为编码键盘和非编码键盘两种类型。编码键盘能自动识别按下的键并产生相应代码,以并行或串行方式发给CPU。它使用方便,接口简单,响应速度快,但需要专用的硬件电路。非编码键盘则是通过软件来确定按键并计算键值。这种方法虽然没有编码键盘速度快,但它不需要专用的硬件支持,因此得到了广泛的应用9。键盘是计算机应用系统中的一个重要组成部分,设计时必须解决下述一些问题。3.5.3 按键的确认键盘实际上是一组按键开关的集合,其中每一个按键就是一个开关量输入装置。键的闭合与否,取决于机械弹性开关的通、断状态。反应在电压上就是呈现出高电平或低电平,若高电平表示断开,那么低电平键闭合。所以,通过电平状态(高或低)的检测,便可确定相应按键是否已被按下。3.5.4 重键与连击的处理实际按键操作中,若无意中同时或先后按下两个以上的键,系统确定哪个键操作是有效的,完全取决设计者的意图。如视按下时间最长者为有效键,或认为最先按下的键为当前的按键,也可以将最后释放的键看成是输入键。不过单片机控制系统的资源有限,交互能力不强,通常总是采用单键按下有效,多键同时按下无效的原则。有时,由于操作人员按键动作不够熟练,会使一次按键产生多次击键的效果,及重键的情形。为消除重键的影响,编制程序时可以将键的释放作为按键的结束。等键释放电平后再转去执行相应的功能程序,以防止一次击键多次执行的错误发生。3.5.5 按键防抖动技术键盘作为向系统提供操作人员的干预命令的接口,以其特定的按键代表着各种确定操作命令。所以准确无误地辨认每个键的动作及其所处的状态,是系统能否正常工作的关键。多数键盘的按键均采用机械弹性开关。一个电信号通过机械触点的断开、闭合过程,完成高、低电平的切换。由于机械触点的弹性作用,一个按键开关闭合及断开的瞬间必然伴随有一连串的抖动。消除按键盘抖动通常有两种方法:硬件消抖和软件消抖。通过硬件电路消除按键过程中抖动的影响是一种广为采用的措施。这种做法,工作可靠,且节省机时。 硬件消抖是通过在按键输出电路上加一定的硬件线路来消除抖动,一般采用RS触发器或单稳态电路。如图3-6所示。软件消抖则是利用延时来跳过抖动过程。图3-6 单稳态硬件消抖电路键盘的结构形式一般有两种:独立式键盘与矩阵式键盘。独立式键盘就是各按键相互独立,每个按键各接一根I/O口线,每根I/O口线上的按键都不会影响其它的I/O口线,示例如图3-7所示。矩阵式键盘又叫行列式键盘。用I/O口线组成行、列结构,键位设置在行列的交点上。例如4×4的行、列结构可组成16个键的键盘,比一个键位用一根I/O口线的独立式键盘少了一半的I/O口线。对矩阵键盘的工作过程可分两步:第一步是CPU首先检测键盘上是否有键按下;第二步是再识别是哪一个键按下。图3-7 独立式键盘本设计由于按键数量较少,为节省单片机的内部资源,故采用了独立式接法如图3-8所示。当某一个按键按下之后,都会产生一个低电平的中断信号,根据每个键的功能定义执行相应的操作。各个键的功能定义如下:第一个键用来切换波形的输出方式,第二个键和第三个键用来调节频率大小,分别为频率加和频率减,第四个键用来确认输出。图3-8 按键电路3.6 LCD显示模块的设计通过液晶1602显示输出的波形、频率,1602的八位数据端接单片机的P1口,其三个使能端RS、RW、E分别接单片机的P2.2P.4。通过软件控制液晶屏可以显示波形的种类以及波形的频率。电路如图3-9所示。图 3-9 LCD液晶显示电路3.7 D/A 转化电路和I/V电路的设计DAC0