资源描述
摘 要目前,电子领域正朝着集成化、微型化的方向飞速发展。微电子技术的快速更新和工业测量的大量需求,使便携式仪表有着很好的发展前景。便携式仪表一般具有携带方便、界面友好、操作简单、成本低、功耗低等特点,这些在其电路设计中应给予充分考虑。本文通过对便携式仪表典型硬件结构的分析,总结了各通用模块的功能和特点,对几种解决方案进行了介绍和比较,并以多功能便携式仪表为例,进行了电路设计。本设计便携式仪表实现下列功能:数据采集,在单片机的控制下,使用功能传感器完成特定信号的测量和数据采集的功能。传感器将采集到的信号和数据传输到单片机中进行处理。结果显示,单片机将采集到的数据发送到液晶显示模块,并控制液晶显示模块按照一定的格式将其显示的功能。操作输入,操作者或其他器件向单片机发送控制指令,用于控制仪器的模式,该指令一般通过键盘输入。单片机在控制指令的要求下,完成一定功能,如进行信号测量、数据显示等。系统以AT89C52为核心,用键盘和液晶模块作为输入和输出装置,用汇编语言编程使单片机实现键盘识别、功能转换和液晶显示等控制。针对电源模块单电源供电多路电压输出的特点,文中给出了常见的解决方案,最后对系统调试的基本过程进行了较详细的介绍。关键词:便携式仪表;结果显示;操作输入;AT89C52 文档可自由编辑打印AbstractNowadays, Electronic area is fast developing to the integration and miniaturization. With the fast update of the microelectronics technology and the large demand of the industrial measurements, portable instruments have a very bright future. Portable instruments have many characteristics such as convenience, friendly interface, easy control, low cost, low power waste. These should be considered in the design of its circuit. By analyzing the typical hardware structure of portable instrument, this text summarizes the function and characteristics of the interchangeable modules, introduces several solutions compared. On this condition, the circuit of a multifunctional instrument given as an instance are designed. This project of portable instrument designed to achieve the following functions: data acquisition, under the control of the microcontroller, the use of functional sensor signals the completion of specific measurements and data acquisition functions. Collected sensor signals and data transmission to the Single-chip microcomputer for processing. The results showed that single-chip data to be collected is sent to the liquid crystal display modules, and control the liquid crystal display module in accordance with the format of certain functions to display. Input operation, the operator or other device to send control commands to the single-chip, the model is used to control equipment, the general through the keyboard input commands. Single-chip microcomputer in the control of the request command to complete certain functions, such as for signal measurement and data display.The project is base on the AT89C52, and the keyboard and LCD are used as the input and output device. The program compiled in Assemble Language make the SCM control keyboard scan, function switch and LCD display. In addition, on account of their special requirements of single voltage input and multi-voltage output, a common solution is given to solve such problems in the text, at the end of which introduce the basic process of debugging in detail.Keywords:portable instrument;results show;input operating;AT89C52目 录摘 要IAbstractII第1章 引言1第2章 技术方案32.1 电源方案的选择32.2 液晶模块的选择32.3键盘的选择4第3章 系统电路设计53.1系统工作原理53.2 系统电源电路53.2.1 电源电路的作用63.2.2 电源电路的技术方案63.2.3电源电路的具体实现83.3 单片机AT89C5293.3.1振荡器的选择113.3.2芯片擦除113.4 液晶显示电路113.4.1液晶显示模块的优点113.4.2 技术方案133.5 行列键盘的输入183.5.1 技术方案183.5.2 具体实现193.5.3键盘识别流程图213.5.4键盘的软件去抖223.6系统电路图223.6.1电路原理和器件选择233.6.2地址分配和链接23第4章 软件设计及调试244.1程序控制244.2系统调试254.2.1硬件测试254.2.2 程序调试25第5章 结论28参 考 文 献29致 谢30附 录31第1章 引言由于大规模集成电路等电子技术及信息处理功能的飞速发展,以微型计算机为中心的微电子也以其磅礴之势不断向人类社会各个领域扩散渗透。极大程度地改变着人们的科技、生产方式和生活、社会结构。把以单片机为核心,开发出来的各种测量及控制系统作为电子产品的一个组成部分嵌入其中,使其更具智能化、拥有更多功能便于人们操作和使用,这是电子产品的发展方向和趋势所在1。计算机最初的设计目的是为了提高计算数据的速度和完成海量数据的计算。随着技术的发展,人们发现计算机在逻辑处理以及工业控制等方面也具有非凡的能力。在控制领域,人们更多的关心计算机的低成本,小体积,运行的可靠性和控制灵活性。特别是智能仪表,智能传感器,智能家电,智能办公设备,汽车以及军事电子设备等应用系统要求将计算机嵌入这些设备中。单片机体积小,价格低,可靠性高,其非凡的嵌入式应用形态对于满足嵌入式应用需求具有独特的优势。目前,单片机应用技术已经成为电子应用系统设计最为常用的手段2。在微电子技术基础上发展起来的单片机及其外围器件,使仪表技术进入了一个崭新的智能化时代。此外,半导体工艺的发展使器件普遍地采用CMOS技术,CMOS器件不仅器件的体积越来越小,也为实现低电压、低功耗和功耗管理提供了良好的条件,使便携式仪表的普及成为可能。因此,低功耗的便携式仪表有着良好的发展前景。目前,便携式仪表广泛用于工业数据采集系统、矿场信号采集、电路调试等多种场合。从使用者的角度来说,希望便携式仪表在大多数情况下都能携带方便,操作简单,无需复杂维护又能长时间可靠地工作。为满足以上要求,一方面要选择合适的低功耗器件,另一方面也对电源模块的设计提出了更高的要求。 便携式仪表中大量CMOS器件的低功耗的特性,使得普通的电池就能为系统提供充足的电能,因此,利用单一的电池电源,来满足系统中各部分不同的电源需求,并确保电源正常供电,是便携式仪表电源处理模块的基本任务。目前,大部分的数字便携式仪表是基于单片机系统开发的。在单片机系统中,除了需要完成特定的功能算法和传感器等器件外,还需要输入、输出装置。在便携式仪表中,输入装置一般是键盘,而输出装置一般是液晶显示模块。液晶显示模块和键盘输入模块作为便携式仪表的通用器件,在单片机系统的开发过程中也可以作为常用的程序和电路模块进行整体设计。便携式仪表的输入输出模块具有以下的特点:携带方便:体积小,重量轻。界面友好:液晶显示模块可以清晰的显示出结果和功能提示。操作简单:采样行列式键盘输入,通过键盘实现显示功能和内容。成本低:采用普通的电池作为电源。功耗低:液晶显示模块可以设置为低功耗模式,从而延长工作时间。第2章 技术方案2.1 电源方案的选择电源稳压变换的集成电源器件的选择,在技术方案中,主要涉及到方案比较和器件的选择。可供选择的电源稳压变换的集成电源器件主要有如下几类:低压差线性稳压器件,通用开关型稳压器件,多功能或专用的电源器件,电压基准器件,各类电源监控管理器件。从体积上考虑,电源稳压变换器件与电路中的其他器件一样选用IC芯片,而不宜选用传统的线性稳压器件;由于使用电池供电,经过一段时间的放电后,电池电压会有所下降,这时电源模块应仍能保持稳定的输出,这就要求电源部分对输入电压的要求不能太苛刻,要允许输入电压在一定范围内变化。在各种集成电源器件中,通用开关型集成稳压器件具有较高的电源效率,适应较宽的输入电压范围,容易通过变换,产生多种类型的输出电压,非常适合于使用电池供电的系统,在便携式仪表产品中有着广泛的应用。这类DCDC转换器件按控制方式不同可以分4为脉冲宽度调制式(PWM),脉冲频率调制式(PFM)和开关电容泵式。按输入电压不同分为升压式降压式工作于升压和降压两种状态的转换器。按输出电压不同分为单一固定/可调电压输出和多路固定/可调电压输出。脉冲宽度调制式(PWM)转换器工作于固定的开关频率,其滤波电路的设计比较简单;脉冲频率调制式(PFM)转换器在小功率输出时可望获得较低的静态电流;开关电容泵式转换器的外围电路简单,适用于小输出电流的电源变换。从外围电路的复杂程度来看,固定电压输出比可调电压输出的简单,单一电压输出的比多路电压输出的简单。2.2 液晶模块的选择选择合适的液晶模块对于便携式仪表的外观和功能的实现起到至关重要的作用。目前,液晶模块有下述3种类型:1.数显液晶模块这是一种由段型液晶显示器件于专用的集成电路组装成一体的功能部件,只能显示数字和一些标识符号。段型液晶显示器件大多应用在便携、袖珍设备上。由于这些设备体积小,所以尽可能不将显示部分设计成单独的部件,即使一些应用领域需要单独的显示组件,那么也应该使其具有显示功能外,还应具有一些信息接收、处理、存储传递等功能,由于他们具有某种通用的、特定的功能而受市场欢迎。2.液晶点阵字符模块它是由点阵字符液晶显示器件和专用的行、列驱动器、控制器及必要的连接件,结构件装配而成的,可以显示数字和西文字符。这种点阵字符模块本身兵有字符发生器,显示容星大,功能丰富。一般该种模块最少也可以显示8位1行或16位1行以上的字符这种模块的点阵排列是由57、58或511的一组组像素点阵排列组成的,每组为1位,每位间有一点的间隔,每行间也有一行的间隔,所以不能显示图形4。3.点阵图形液晶模块这种模块也是点阵模块的一种,其特点是点阵像素连续排列,行和列在排布中均没有空格。因此可以显示连续、完整的图形。由于它也是有X-Y矩阵像素构成的,所以除显示图形外,也可以显示字符。有下述3种类型:行、列驱动型;行、列驱动-控制型;行、列控制型。2.3 键盘的选择键盘按结构的不同可分为独立式按键键盘和行列式键盘两类,每类按译码方式的不同又分为编码式和非编码式两种。单片机中一般使用的都是用软件来识别和产生键代码的非编码键盘。行列式键盘的编码方式有静态和动态两种。静态接口主要由一个行编码器和一个列编码器构成;动态接口可采用计数器、译码器和数据选择器构成。这两种键盘有硬件完成间的编码任务。 一般在小型仪器仪表和控制系统中,使用较多的是行列式和独立式的非编码键盘;如果系统要求实现多键同时按下的处理,则用非编码独立方式较为合适。第3章 系统硬件电路设计3.1系统工作原理便携式仪表的基本机构如图所示。从图中可以看出,对于任何一种便携式仪表而言,除了功能传感器需要具备自身的要求和特点之外,液晶显示模块和键盘输入均是通用模块,其主要的功能图3-1所示。图3-1 便携式仪表的基本结构从图3-1可以看出,便携式仪表的主要功能模块分为3类:数据采集,是指在单片机的控制下,使用功能传感器完成特定信号的测量和数据采集的功能。传感器将采集到的信号和数据传输到单片机中进行处理。传感器功能的不同一般决定了仪表功能的不同。结果显示,是指单片机将采集到的数据发送到液晶显示模块,并控制液晶显示模块按照一定的格式将其显示的功能。操作输入,是指操作者或其他器件向单片机发送控制指令,用于控制仪器的模式,该指令一般通过键盘输入。单片机在控制指令的要求下,完成一定功能,如进行信号测量、数据显示等。除此之外,在便携式仪表的设计中,电源模块也是一个重要的设计内容,是完成上述功能的基础模块。3.2 系统电源电路3.2.1 电源电路的作用电源电路设计的主要作用是为液晶显示模块提供工作电压。同时,液晶显示模块的电源设计也是整个系统电源设计中的重要组成部分。一般情况下,液晶器件的驱动需要两种不同的电源电压4,一种是5V,另一种是-10V。液晶电源电路就是需要将输入的电压转换成这两种电压信号输出,为液晶显示模块提供工作电压。同时,需要注意液晶电源的设计需要综合考虑整个单片机系统的供电方案。3.2.2 电源电路的技术方案便携式仪器体积虽小,却是一个很完整的系统,系统中不同的部分对于电源的需求是不同的,因此不可避免地会遇到两种甚至两种以上的电源需求,这就是电源部分要解决的关键问题。在设计具体的电源模块时要注意如下几个方面:为降低系统功耗,减小仪表体积,应尽可能地选用CMOS器件。根据容许的空间和需求的容量合理地选择电池作为电源,从互换性角度考虑应尽量选用普通电池作为电源。1.电源部分电压的输入输出要求市场上可供选择的电池规格多种多样,除了较常规的1.2V(l.2V整数倍)的镍镉充电电池(电池组)、1.5V和9V的干电池和3.6V的锂电池以外,还有各种特殊的3V、4.5V、5V、6V和12V的电池可供选择,但从使用者更换或购买备用电池的方便的角度考虑,应尽可能使用互换性更好的普通电池。因此希望选择2节5号干电池作为电源部分的输入。传感器及其驱动电路的电压需求为+5V;单片机及接口部分、外部存储器部分和其他些数字电路部分需要+5V电压;LCD显示输出除了需要提供5V工作电压外,还需要提供-10V的对比度调节电压。由以上分析得到电源部分的设计要求为+3V输入,+5V和-10v双电压输出。根据此电源输入输出要求选择相应的集成电源稳压变换器件,在满足电源要求的前提下,使外围电路尽可能的简单,体积尽可能小。 2.电源稳压变换器件的选择选用MAX1677作为超声硬度计电源部分的核心器件。由于MAX1677输入电压范围(0.7V到5.5V)较大,可以根据不同系统的安装的电池空间和所需要的不同电压与容量,灵活的选择电池的种类,1到3接普通干电池,碱性电池,镍镉充电电池或一节锂电池均可以使系统正常工作使用MAX1677的电源部分实际电路原理图3-3所示,若使用0805表贴原件,则此电源电路板上实际占用尺寸只有22mm17mm。表3-1 MAX1677管脚的定义管脚号管脚名功 能1OUT芯片电源输入端,接0.1F旁电容到地,与POUT脚间通过10串连电阻连接2FB主升压电路反馈输入端。短路到地为3.3V输出,外接分压电阻到OUT脚,输出电压2.5V到5.5V可调3LBI电池低电压检测比较器输入端。内部门限电平为614mV。可通过外部分压电阻设置电池低电压检测电平4LBO电池低电压检测比较器。LBI低于内部门限电平614mV时,LBI输出为低5CLK/SEL同步时钟和PWM模式选择输入端。CLK/SEL=低电平,小功率,低功耗电流PFM模式;CLK/SEL=高电平,低噪声,大功率PWM模式(300KHz),CLK/SEL=外部时钟(200KHz到400KHz),外同步PWM模式6LCDONLCD偏压电路使能端。高电平启动LCD偏压电路,主升压电路必须先启动7LCDPOLLCD偏压极性选择端8REF1.25V基准输出,外接0.1F旁电容9GND地10LCDFBLCD升压电路反馈输入端,正压输出时,内部门限电平为1.25V,负压输出时,为0V11ON芯片使能端,高电平启动MAX167712LCDLXLCD28V升压功率开关管漏极13LCDGNDLCD28V升压功率开关管源极14PGND主升压电路内部N沟道MOSFET源极15LX主升压电路内部功率开关漏极16POUT主升压电路电源输出端,内部同步整流器P沟道MOSFET源极MAX1677是双电压输出升压DC-DC变换器5,适用于需两种可调电压输出的便携式仪表。其主要性能为:允许的输入电压范围为0.7V5.5V;主输出,2.5V5V可调电压输出,或工厂预设值3.3V输出,最大输出电流可达350mA;第二输出,可为LCD对比度调节提供+28V-28V范围内的电压;电源效率可达95%;16脚QSOP封装,体积很小,不需要外部场效应管。其他性能还包括20A静态工作电流、1A关断维持电流和电池欠电压监测。3.2.3电源电路的设计1.器件选择和功能3图3-2 MAX1677 引脚图MAX1677:电压转换芯片,输入为3V,输出两路电压,分别是+5V和-10V,作为系统电源和液晶显示模块的背光电源。Ll、L2:磁芯电感,选用CoilCraft的DO1608C-103表贴磁芯电感,值为10H 。Dl、D2:肖特基二极管,但也可选用其他型号,只要反相耐压大于16V即可。R1、R2:电阻,Rl和R2的比值决定了LCD对比度输出的电压值Vlcd(图中的VOUT2),关系式为Rl=R2VLCD1.25 V11,其中R1取值范围为500K2M。R3、R4:电阻,R3和R4的比值决定了主输出电压值VOUT(对应图中的VOUT1),关系式为R3=R4(VOUTl.25V)111,其中R4的取值范围为10K200K。R5、R6:电阻,R5和R6的比值决定了系统欠电压监测的门槛电压值VTRIP,关系式为R5=R6(VTRIP0.614V)111,其中R6130K。当电池电压正常时,电池电压过低输出管脚LBO(Low-Battery Output)输出保持高电平;一旦电池电压低于门槛电压VTRIP时,LBO管脚输出变为低电平。如果不使用欠电压监测的话,只需将第3脚(LBI)接地。图3-3 MAX1677电源处理电路原理图2.地址分配和硬件连接6此处只列出和本例相关的、关键部分的单片机管脚连接和相关的地址分配。图中的一些电路参数的说明如下:Vin:电源电路的输入端,连接两节1.5V的电池,形成便携式仪表的电源。Vout1:连接MAX1677的16管脚,输出+5V的电压,作为系统的电源电压。Vout2:连接MAX1677的10管脚,输出-10V的电压,作为液晶显示模块的背光电源电压。Low-battery Output:连接MAX1677的4管脚,输出电源电压不足的报警信号,也就是MAXI677中的LBO的信号。3.3 单片机AT89C52AT89系列单片机是ATMEL公司生产的7。这是当前最新的一种电擦写8位单片机,与MCS-51系列完全兼容,有超强的加密功能,可完全替代87C51/52和8751/52。它物美价廉,深受用户欢迎10。图3-4 AT89C52芯片及管脚AT89C52是一种低功耗、高性能内含8K字节闪电存储器(Flash Memory)的8位CMOS微控制器。片内闪电存储器的程序代码或数据可在线写入,亦可通过常规的编程器编程。例如,MP-100这样一种经济型的编程器,它支持通用EPROM等各种存储器、PAL、GAL以及INTEL、ATMEL和PHILIPS等各公司的全系列51单片机的编程。ME5103和ME5105仿真器支持AT89系列所有器件的调试、仿真和编程。单片机AT89C52有内部RAM,可以作为各种数据区使用,内部闪电存储器存放控制程序。它的主要功能是完成键盘扫描程序,检测外部的操作指令,控制液晶显示模式和向液晶发送显示数据等。3.3.1振荡器的选择振荡器特性XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接8。有余输入至内部时钟信号要通过一二分频触发器,因此对外部时 钟 信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度 。3.3.2芯片擦除整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成9。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行此外,AT89C51设有稳 态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下CPU停止工作。但RAM,定时器,计数器串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止10。3.4 液晶显示电路的设计本设计中重点的部分是基于单片机系统的液晶显示部分。在单片机系统中,液晶显示是单片机系统中反映系统输出和操纵输入的有效器件。液晶显示模块是一种将液晶显示器件、连接件、集成电路、PCB线路板、背光源、结构件装配在一起的组件,英文名叫“LCD Module”,简 称“LCM”,中文一般称为“液晶显示模块”。3.4.1液晶显示模块的优点1. 显示质量高 由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像阴级射线管显示器(CRT)那样需要不断刷新亮点。因此,液晶显示器画质高而且不会闪烁。2. 数字式接口液晶显示器都是数字式的,和单片机系统的接口更加简单,操纵也更加方便。体积小、重量轻:液晶显示器通过显示屏上的电极控制液晶分子状态来达到显示目的,在重量上比相同显示面积的传统显示器件要轻得多。3. 功率消耗小相比而言,液晶显示器的功耗主要消耗在其内部的电极和驱动IC上,因而耗电量比其他显示器件也要小得多。4. 液晶显示简介液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。液晶显示器具有厚度薄适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA移 动通信工具等众多领域。5. 液晶显示器的分类液晶显示的分类方法有很多种,通常可按其显示方式分为段式、字符式、点阵式等。除了黑白显示外,液晶显示器还有多灰度有彩色显示等。如果根据驱动方式来分,可以分为静态驱动(Static)、单纯矩阵驱动(Simple Matrix)和主动矩阵驱动(Active Matrix)三种。6.液晶显示器各种图形的显示原理(1)线段的显示9点阵图形式液晶由MN个显示单元组成,假设LCD显示屏有64行,每行有128列,每8列对应1字节8位,即每行由16字节,共168=128个点组成,屏上6416个显示单元与显示RAM区1024字节相对应,每一字节的内容和显示屏上相应位置的亮暗对应。例如屏的第一行的亮暗由RAM区的000H00FH的16字节的内容决定,当(000H)=FFH时,则屏幕的左上角显示一条短亮线,长度为8个点;当(3FFH)=FFH时,则屏幕的右下角显示一条短亮线;当(000H)=FFH,(001H)=00H,(002H)=00H, (00EH)=00H,(00FH)=00H时,则在屏幕的顶部显示一条由8段亮线和8条暗线组成的虚线。这就是LCD显示的基本原理。(2)字符的显示用LCD显示一个字符时比较复杂,因为一个字符由68或88点阵组成,既要找到和显示屏幕上某几个位置对应的显示RAM区的8字节,还要使每字节的不同位为“1”,其它的为“0”,为“1”的点 亮,为“0”的不亮 。这样一来就组成某个字符。但由于内带字符发生器的控制器来说,显示字符就比较简单了,可以让控制器工作在文本方式,根据在LCD上开始显示的行列号及每行的列数找出显示RAM对应的地址,设立光标,在此送上该字符对应的代码即可。汉字的显示汉字的显示一般采用图形的方式,事先从微机中提取要显示的汉字的点阵码(一般用字模提取软件),每个汉字占32B,分左右两半,各占16B,左边为1、3、5右边 为2、4、6根据在LCD上开 始 显示的行列号及每行的列数可找出显示RAM对应的地址,设立光标,送上要显示的汉字的第一字节,光标位置加1,送第二个字节,换行按列对齐,送第三个字节直到32B显示完就可以LCD上得到一个完整汉字。3.4.2 技术方案1602液晶模块的特性字符型液晶模块1602是一种用57点阵图形来显示字符的液晶显示器,根据显示的容量可以分为1行16个字,2行16个字,2行20个字等等,常用的2行16个字的1602液晶模块来的编程方法来实现。一般1602字符型液晶显示器实物如图3-55:图3-5 1602LCD的基本参数及引脚功能1602LCD分为带背光和不带背光两种,基控制器大部分为HD44780,带背光 的比不带背光的厚,应用中并无差别,1602LCD主要技术参数如下:显示容量:162个字符芯片工作电压:4.55.5V工作电流:2.0mA(5.0V)模块最佳工作电压:5.0V字符尺寸:2.954.35(WH)mm2.1602液晶模块的特性字符型液晶模块1602是一种用57点阵图形来显示字符的液晶显示器,根据显示的容量可以分为1行16个字、2行16个字、2行20个字等等,常用的2行16个字的1602液晶模块来的编程方法如下。1602采用标准的16脚接口,其中表3-2:表3-2 1602接口7编号符号引脚说明编号符号引脚说明1Vss电源地9D2数据2Vdd电源正极10D3数据3Vl液晶显示偏压11D4数据4Rs数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA数据8D1数据16BLK数据第1脚:VSS为地电源第2脚:VDD接5V正电源第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。 第1516脚:空脚。其中Vss为地电源10,VDD接5V正电源,V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度高,对比度高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。RS为寄存器选择器,高电平时选择数据寄存器,低电平时选择指令寄存器,RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址。当RS为低电平RW共同为高电平时读忙信号,当RS为高电平RW为低电平时可以写入数据。E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。D0-D7为8位双向数据线。1602液晶模块内部的控制器共有11条控制指令,如表2所示。它的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)。 表3-31602LCD的指令指令RSRWD7D6D5D4D3D2D1D01清屏00000000012光标返回000000001*3输入模式00000001I/DS4显示控制0000001DCB5光标/字符位移000001S/CR/F*6功能00001DLNF*7置字符发生器地址0001字符发生存贮器地址8置数据存贮器地址001显示数据存贮器地址9读忙标志和地址01BF技术器地址10写数据到指令7.8所设地址10要写的数据11从指令7.8所设地址读数据11读出的数据指令1:清显示,指令码01H,光标复位到地址00H位置。指令2:光标复位,光标返回到地址00H。指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移。S:屏幕上所有文字是否左移或者右移,高电平表示有效,低电平则无效。指令4:显示开关控制。D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示。C:控制光标的开与关,高电平表示有光标,低电平表示无光标。B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令5:光标或显示移位S/C:高电平时移动显示文字,低电平时移动光标。指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线。N:低电平时为单行显示,高电平时双行显示。F: 低电平时显示57的点阵字符,高电平时显示510的点阵字符。指令7:字符发生器RAM地址设置。指令8:DDRAM地址设置。指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令10:写数据。指令11:读数据。3.电路中的应用液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,如下表3-4。表3-4 DM-162的内部显示地址12345678910111213141516000102030405060708090A0B0C0D0E0F第一行404142434445464748494A4B4C4D4E4F第二行比如第二行第一个字符的地址是40H,那么是否直接写入40H就可以将光标定位在第二行第一个字符的位置呢?这样不行,因为写入显示地址时要求最高位D7恒定为高电平1所以实际写入的数据应该是01000000B,即(40H)+10000000B(80H)=11000000B(C0H)。DM-162液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如表1所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,就能看到“A”图3-6 DM-162液晶模块单片机AT89C52的连接电路以下是在液晶模块的第二行第一个自负的位置显示字母“A”的程序:RS EQU P3.7RW EQU P3.6E EQU P3.5ORG 0000HMOV P1,#00000001B;清屏ACALL ENABLEMV P1 #00000110B;8位2行57点阵ACALL ENABLEMOV P1,#00001111B;显示器开,光标开,闪烁开ACALL ENABLEMOV P1,#00000110B;文字不动,光标自动右移ACALL ENABLE MOV P1,#0C0H;写入显示起止地址ACALL ENABLE MOV P1,#01000000B;字母A的代码SETB RS;RS=1CLR RW;RE=0CLR E;E=0ACALL DELAYSETB E;E=1ALMP$ENABLE;CLR RS;写入控制命令的子程序CLR RWCLR EACALL DELAYSETB RWCLR ENOP SETB EJB P1.7,DELAY;如果P1.7为高电平表示忙就循环等待RETEND 3.5 行列键盘电路的设计3.5.1 技术方案1.行列式键盘的基本结构8行列式键盘中的键实际上就是一个机械开关,位于行线和列线的交点处,图所示为本例中使用的4行4列的16键行列式键盘,当键被按下时,其交点的行线和列线接通,使相应行线或列线上的电平发生变化,根据电平变化情况确定被按下的键。2.键盘接口方式选择常用的键识别方法有:行扫描法、线翻转法和利用8279键盘接口的中断法。在本系统中,完全可以不使用中断法完成键盘接口,这是由系统的特殊性决定的。首先,对于本系统而言,要实现便携式的设计,硬件电路使用的器件越少越好。其次,被测信号由外中断引脚输入,未占用单片机4个并行I/O口中的任何一个,系统有足够的资源利用自身I/O口完成接口。最后,只有当传感器输出信号频率为空载频率,系统处于空闲待测的状态下,才允许键盘输入,因此键盘识别占用的CPU时间不会对系统正常工作造成影响。因此直接利用单片机并行接口完成键盘的接口,采用线翻转法进行键盘识别。图3-7 44行列式键盘鱼单片机的连接选用如图所示的44行列式键盘,将总共8根行线与列线直接与单片机的通用输入输出口Pl口相连,连接方式见图,高4位用于列控制,低4位用于行控制。3.5.2 具体实现本单片机系统使用简单的键盘和液晶显示器件来完成输入/输出操作的人机界面。键盘输入信息的主要过程是:1.CPU判断是否有健按下。2.确定按下的是哪一个健。3.把此键代表的信息翻译成计算机所能识别的代码,如ASCII或其他特征码。图3-8 行列式键盘的接口电路图3-8是89C52与行列式键盘接口电路图。P1口作键盘接口,P1.0-P1.3作键盘的行扫描输出线,P1.4-P1.7作列检测输入线。键的识别功能,就是判断键盘中是否有键按下,若有键按下则确定其所在的行列位置。采用查询方法实现的键盘扫描程序的过程如下。查询是否有键按下首先单片机向行扫描口P1.OP1.3输出全为“0”扫描码FOH,然后从列检测口P1.4P1.7输入列检测信号,只要有一列信号不为“1”,即P1口不为FOH,则表示有键按下。接着要查出按下键所在的行、列位置。查询按下键所在的行列位置单片机将得到的信号取反,P1.4P1.7中的为1的位便是键所在的列。接下来要确定键所在的行,需进行逐行扫描。单片机首先使P1.0接地,P1.1P1.7为“1”,即向门口发送扫描码FEH,接着输入列检测信号,若为全“1”,表示不在第一行。接着使P1.1接地,其余为“1”,再读入列信号。这样逐行发“O”扫描码,直到找到按下键所在的行,将该行扫描码取反保留。当各行都扫描以后仍没有找到,则放弃扫描,认为是键的误动作。对得到的行号和列号译码,得到键位扫描函数的返回值为行列键盘的键特征码,若无键按下,返回值为0。3.5.3键盘识别流程图键盘上有很多键,每一个键对应一个键码,以便根据键码转到相应的键处理子程序,进一步实现数据输入和命令处理的功能。键盘识别的流程如图所示。图3-9 键识别流程框图判断是否有键按下。设置列线输出方式,行线输入方式;向所有列线输出低电平;读取P1口状态,并从P1口状态中分离出行线状态;若行线状态皆为高电平,则无键按下,若有低电平状态,则有键按下;当有键按下时,保留此时的行线状态。去抖动。按键本身是机械开关,在触点闭合或断开的瞬间会出现电压抖动的现象,必须去除抖动的影响,才能正确识别被按下的键。为简单起见,使用软件方法消抖。延时10ms读取所有列线输出低电平情况下的行线状态,若两次的行线状态相同,说明信号稳定,可以继续确定按键的物理位置。 确定物理位置得到键码。将改变行线和列线的工作方式,由行线输出,列线输入。行线输出前次读取的行线状态,由列线读取相应的列线状态。闭合键对应的行线和列线的状态均为低电平,其它键均为高电平状态。将此行线和列线状态组合即可得到该闭合键对应的键码。等待键释放。得到闭合键对应的键码以后,继续延时并判断按键状态,直到闭合的按键被释放,再根据键码转到响应的键处理子程序中。3.5.4键盘的软件去抖1.软件去抖作用 但按下一个键时,往往会出现所按键在闭合位置和断开位置之间跳几下才稳定到闭合状态的情况。当释放一个键时,也会出现类似的情况,这就是键抖动,抖动的持续时间不一,通常不会大于10毫秒。若抖动问题不解决,就会引起对闭合键的多次读入,从而引起对输入状态判断的失误,所以很有必要进行按键的消抖。2.技术方案在单片机控制系统中,按键处理几乎存在于每个实际设计中。目前,有两种方法可以对按键进行消抖,一种是通过使用RS触发器构成的硬件电路消除按键的抖动。而另一种则是本系统中使用的软件消抖方法。软件消抖的方法也有所不同,一种是通过延时的方法消抖,这是一种常用的消抖方法判断有键后延时1020ms再次读键判断,以便达到每次按键操作只产生一次有效信号供单片机处理。由于键被按下的时间持续上百ms,延时后再扫描也不迟。3.具体实现在本例中,采用的键盘消抖方法是常用的软件延时方法,在键盘输入的扫描过程中嵌入如下的程序段,则能方便的实现键盘输出的消抖功能。VoidMain(void)uchar key;While(1)key=kbscan();键盘扫描程序Delays();键的消抖延时程序VoidDelays(void)uchar i For (i=300;i0;i-)3.6系统总体电路的设计便携式仪表输入输出模块的主要功能是提供单片机和外部的液晶显示模块以及键盘接口电路,此外还需要设计表便携式仪表的电源模块,便携式仪表的电路图见附录。液晶显示模块与单片机的连接中,行列式键盘的行输入和列输入分别连接到单片接的P1口的8个管脚上,通过单片机的键盘扫描程序,完成对输入信号的读取。3.6.1电路原理和器件选择在这里列出和本设计相关的部分主要器件名称及其主要功能。89C52单片机:主要完成键盘的扫描程序,检测外部的操纵指令;控制液晶显示模式和向液晶发送显示数据等功能。1602:液晶显示模块。在单片机的控制下,按照要求格式完成对接收的数据的显示。KEY:44行列式键盘,将总共8根行线与列线直接与单片机的通用输入输出口P1口相连。MAX1677:电压转换芯片,输入为3V,输出两路电压,分别是+5V和-10V,作为系统电源和液晶显示模块的背光电源。L1和L2:磁芯电感。D1,D2:肖特基二极管,但也可选用其他型号,只要反相耐压大于16V即可。3.6.2地址分配和链接Vin:电源电路的输入端,连接两节1.5V的电池,形成便携式仪表的电源。Vout1:连接MAX1677的16管脚,输出+5V的电压,作为系统的电源电压。Vout2:连接MAX1677的10管脚,输出-10V的电压,作为液晶显示模块的背光电源电压。Low-battery Output:连接MAX1677的4管脚,输出电源电压不足的报警信号,也就是MAX1677中的LBO的信号。A8:单片机对LCD的数据/指令通道的选择。A9:单片机对LCD读写选择信号。D0-D7:单片机和LCD的数据总线。P1.0-P1.7:单片机的P1口,直接和44键盘的行现和列线连接,形成矩阵式的行列键盘控制。第4章 软件设计及调试4.1程序控制YN键盘识别有键按下去抖动确定按键物理位置功能键A功能键D键盘输入测量电压计算键码显示测量结果等待键释放显示设定值功能键B系统初始化液晶初始化功能键C清屏测量温度超出域值?显示out of range显示测量结果启动图4-1 整个程序系统流程图4.2系统调试单片机应用系统一般都需要开发系统和开发软件来设计,除非应用十分简单。单片机开发系统主要具备在线仿真和调试功能,有的还有辅助设计和程序固化功能。所谓在线仿真,就是单片机开发系统的仿真器能够仿真目标系统中的单片机,并能模拟目标系统的ROM,RAM和I/O等,是在线仿真时的目标系统的运行环境与真正运行环境“逼真”,以实现目标系统的完全的一致性方针。所谓调试功能,就是为开发者提供一个调试目标系统的环境,如单步运行、断电运行、连续运行、跟踪功能、数据读出与修改等功能。4.2.1硬件测试1.静态测试在印刷电路板制作好以后,先不要急着加电,首先进行静态测试。检查线路:通过目测和使用万用表,检查线路连接的正确性,有无断路和短路, 无虚焊的存在等。核对元件:检察元件是否安装正确,有无损坏等。检查电源系统:在加入集成电路之前,应检查加入电源的品质,包括电源的电压以及负载能力等。只有当电源满足要求后,才能加上所有的元器件进行上电调试。2.联机调试虽然经过了静态测试,但仍有不少的硬件故障要在软硬件联机调试中才能发现。测试晶振电路和复位电路:这是单片机应用系统工作的最基本的条件,可用示波器或逻辑笔进行检查。测试存储器:将数据写入存储单元并读回比较,写入与读出的数据如果是一致的则表示存储单元能正常工作,否则有短路,断路或器件损坏的情况。测试I/O口和I/O设备:编写简单的测试程序,单独支持某一I/O口和与之相连的I/O设备,如果能自如的支配或控制,则表明I/O通道的工作正常。这些I/O口包括开关量、模拟量,人机界面,打印,报警等。4.2.2 程序调试这里主要介绍液晶模块的调试方法。编写完整的程序之前,可写入以下程序进行检测:在液晶模块的第二行第一个字符的位置显示字母“A”的程序:ORG 0000H RS EQU P3.7;确定具体硬件的连接方式 RW EQU P3.6 ;确定具体硬件的连接方式E EQU P3.5 ;确定具体硬件的连接方式MOV P1,#00000001B ;清屏并光标复位ACALL ENABLE;调用写入命令子程序 MOV P1,#00111000B ;设置显示模式:8位2行5x7点阵 ACALL ENABLE ;调用写入命令子程序 MOV P1,#00001111B ;显示器开、光标开、光标允许闪烁ACALL ENABLE ;调用写入命令子程序MOV P1,#00000110B ;文字不动,光标自动右移 ACALL ENABLE ;调用写入命令子程序MOV P1,#0C0H ;写入显示起始地址(第二行第一个位置)ACALL ENABLE ;调用写入命令子程序MOV P1,01000001B ;字母A的代码 SETB RS ;RS=1 CLR RW ;RW=0 ;准备写入数据CLR E ;E=0 ;执行显示命令ACALL DELAY ;判断液晶模块是否忙?SETB E ;E=1 ;显示完成,程序停车AJMP $ENABLE: CLR RS ;写入控制命令的子程序CLR RW CLR E ACALL DELAY SETB E RET DELAY: MOV P1,#0FFH ;判断液晶显示器是否忙的子程序CLR RS SETB RWCLR E NOP SETB EJB P1.7,DELAY ;如果P1.7为高电平表示忙就循环等待 RETEND 程序在开始时对液晶模块功能进行了初始化设置,约定了显示格式。注意显示字符时光标是自动右移的,无需人工干预,每次输入指令都先调用判断液晶模块是否忙的子程序DELAY,然后输入显示位置的地址0C0H,最后输入要
展开阅读全文