版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGE9倾角测量仪的设计摘要当前,大多数行业测量角度时依然沿用传统的水泡式(条式)水平仪.其检测方法有诸多缺点,如测量值因人而易、功能单一、测量范围小等。本倾角测量仪,它与传统的水泡式(条式)水平仪相比具有电子检测、即时数值显示、测量精度高、测量范围大、使用及携带方便等特点,大大提高了工作效率。本文详细介绍了一种利用倾角传感器、AD转换器、单片机实现高精度倾角测量的方法,它可以测量-45°~+45°范围内的任意倾角,分辨率可达0.1°。此外,由于该倾角仪输出为数字结果,因此它也可以与其他的数字设备结合起来,组成一个功能更加强大的仪器。该装置可满足大量工程上的应用。该数字倾角仪具有携带方便、精度高、功能多等特点。它使用方便,应用范围广泛。该数字倾角仪可广泛用于建筑、机械、道路、桥梁、石油、煤矿和地质勘探等各种需要测量重力参考系下倾角的场合。关键词:倾角测量;AD转换器;单片机目录引言6第1章绪论71.1测试系统方案选择71.2测试系统一般结构7第2章系统硬件设计92.1系统硬件组成92.2倾角传感器选择92.2.1选择传感器的的基本原则92.2.2倾角传感器原理102.2.3本设计选用的传感器112.3单片机的选择及其外围电路设计162.3.189S52单片机的原理与结构172.3.289S52在本设计中的应用192.4A/D转换电路设计222.4.1AD574A的A/D转换原理222.4.2AD574A在本设计中的应用232.4.3AD574A在本系统中的应用262.5显示模块设计272.5.1LED驱动器功能简介282.5.2本设计LED显示器的应用32第3章系统软件设计353.1系统主流程图353.2系统初始化设计353.3A/D转换子程序设计363.4数制转换程序设计373.5LED显示模块子程序设计383.6X5045模块程序设计39致谢43参考文献44附录A电气原理图45附录C主要参考文献及其摘要51附录D程序清单53引言当前,大多数行业测量角度时依然沿用传统的水泡式(条式)水平仪.其检测方法依然是―水泡移动,肉眼分辨‖。这种原始的检测方法有诸多缺点,如测量值因人而易(由于是用肉眼观察水泡的位置来估计值,所以测量误差偏大,且测量误差主要有认为因素导致)、功能单一(其只能在一定的环境下测量角度,而不能完成其他测量)、测量范围小(传统的水泡式水平仪由于是靠观察水泡的位置来估计值的,所以其测量范围受到很大的限制)等[9]。本倾角测量仪,它与传统的水泡式(条式)水平仪相比具有电子检测、即时数值显示、测量精度高、测量范围大、使用及携带方便等特点,彻底摆脱了―看水泡移动、估计值‖的传统测量方法,大大提高了工作效率。此外,由于该倾角仪输出为数字结果,因此它也可以与其他的数字设备结合起来,组成一个功能更加强大的仪器。该装置测量误差小于0.1°,可满足大量工程上的应用。该数字倾角仪具有携带方便、精度高、功能多等特点。它使用方便,应用范围广泛,该倾角测量仪可广泛用于建筑、机械、道路、桥梁、石油、煤矿和地质勘探等各种需要测量重力参考系下倾角的场合。所以该倾角仪有良好的发展前景和使用价值。它与传统的一些测量角度的仪器相比有着很大的优越性,所以其必将逐渐取代传统的水泡式(条式)水平仪。本文分3章对本设计进行了阐述。第1章绪论介绍了系统整体方案的选择,提出了系统的整体结构及设计思路。第2章为系统硬件的设计,对倾角传感器、主控模块、A/D转换模块和显示模块的选择及应用分别做了说明。第3章为系统软件的设计,介绍了系统各个模块的软件设计思想及程序。嵌入式应用软件园,版权所有,请勿转载/销售。-7-第1章绪论1.1测试系统方案选择本设计采用了单片机测试系统。随着超大规模集成电路技术的发展,微型计算机正以惊人的速度飞速发展。目前,微型计算机的发展有两个大的趋向:一个发展是向128位以上的巨型机迈进,另一个发展方向是向更加微型化、多功能化,使其在一块芯片是构成一台完整的微型计算机,即所谓的单片机。单片机只要用于工业过程控制及智能控制仪器中,特别是在传感器智能仪器发展中,已显示出巨大的优越性,因而深受人们的欢迎,成为近年来最为活跃的领域[3]。单片机之所以在智能仪器中广泛采用,主要是因为其具有以下特点[11]。①体积小、价格低廉目前的单片机不但把CPU、存储器及I/O接口集成在一块芯片上,而且集成了用户常用的硬件内容,使用起来特别方便、灵活。例如,目前刚传入国内不久的高速SOC(systemonchip,片上系统)美国CYGNAL公司的80C51系列单片机,全兼容51指令集、最高配置为芯片上集成了高达64KB的Flash存储器、4352B的RAM、12位ADC(转换速率为500kb/s,32通道输入)、两路12位DAC(带基准电源)、两路模拟电压比较器、温度传感器等,采用TQ48、TQ64、TQ100和MLP11封装。芯片的输入、输出口由用户自定义,而且直接在线仿真编程、擦除、校验、加密,大大简化了传统的―仿真器+编程器‖结构。②便于产品小型化、智能化由于单片机体积小、功能强、用它不仅能代替常规的控制逻辑,而且还具有计算和处理功能,因而被广泛用于智能化仪器、自动化测控装置、家用电器和机器人等广大领域。③研发周期短、可靠性高一般微型机用于过程控制和智能仪器的研制周期都比较长,需要二次开发;而单片机通过简单的开发装置,即可实现所谓在线开发,因而大大缩短了研制周期。此外,由于单片机都集成在一块芯片上,所以节省了大量的外部连线,简化了印刷线路板的设计和加工,因而减小了外部干扰,其可靠性大大提高。单片机集成度高、运算速度快、体积小、运行可靠、价格低廉,因此在非电量测控、传感器智能化仪器仪表中得到了广泛应用[9]。基于以上单片机的优点和使用范围,本设计采用了单片机为倾角测量系统的微处理器。1.2测试系统一般结构传感器与单片机相结合构成的检测系统,本质上就是单片机控制系统。一般说来,采用单片机做智能控制部件的测控系统,为了对被测控非电量实施控制,对其参数和状态进行检测是必不可少的。单片机控制是以自动化控制理论和计算机技术为基础的。控嵌入式应用软件园,版权所有,请勿转载/销售。-8-制对象从小到大,从简单到复杂,都可以有单片机参与控制。传感器与单片机相结合构成的检测系统,根据其用途和功能的不同可以采用各种不同的类型。但是,实际上这些系统的基本结构是完全相同的,如图1-1所示。收集信息端把从传感器得到的信息通过输入接口送给单片机,把结果通过输出接口送给显示器、记录设备等[11]。根据本设计的任务要求:测量范围:-45°~+45°测量精度:≤0.1°本倾角测量仪的设计按照图1-1系统结构进行设计。检测对象传感器输入接口单片机输出接口显示/记录设备图1-1单片机测试系统的一般结构嵌入式应用软件园,版权所有,请勿转载/销售。-9-第2章系统硬件设计前面我们对测试系统的一般结构有了个大概的了解,在接下来的一章中我们将对倾角测量仪的传感器、A/D转换电路、单片机电路、LED显示以及驱动电路等进行设计和分析并给出以上各部分的实际电路,为系统软件开发打下坚实的基础。2.1系统硬件组成系统硬件结构主要包括以下组成部分:倾角传感器、A/D转换模块、单片机、显示模块、如图2-1所示。其中,倾角传感器作为测试单元输出电压信号;A/D转换模块则将调理过的电压模拟信号转换为数字信号,以便送给单片机进行数据的处理;单片机是整个系统的核心,负责协调各部分的工作,以及进行数据处理;显示模块则是人机交互的通道。2.2倾角传感器选择从单片机诞生的最初年代开始,非电量测量技术和仪器仪表行业就成为单片机应用的重要领域。传统的仪器仪表配以单片机做智能部件,构成了当今各种的所谓智能化仪器仪表。这些智能化仪器仪表主要由硬件和软件两部分组成。其中的硬件主要由传感器(包括信号的采集和放大)和单片机两部分组成。二者通过一定的接口进行连接,构成典型的智能化仪表。所以选择一个合适的倾角传感器对本设计至关重要[12]。2.2.1选择传感器的的基本原则实现非电量测量的关键技术之一就是正确地选择和使用好传感器。传感器处于系统前向通道的最前端,是构成系统信息输入的主要窗口,为系统提供进行处理和决策控制所必须原始信息。倾角传感器的精度直接影响整个自动测试系统的精度,能否找到一些恰当的传感器来准确、迅速、全面反映倾角的特性,并把它变换成便于识别、传输、接收、处理和控制的信息,即尽可能地选择性能优异有价格低廉的合适倾角传感器至关重要[13]。倾角传感器单片机A/D转换模块显示模块图2-1系统硬件结构框图嵌入式应用软件园,版权所有,请勿转载/销售。-10-传感器种类繁多,性能各异。从测量角度看,根据输出电信号形式的不同,可以把传感器分为开关式、数字式和模拟式3大类[11]。(1)开关式传感器其工作特性是:当输入位移量高于某一设定值(阈值)时,传感器处于接通状态,输出高电平(或低电平);当输入位移量低于某一设定值(阈值)时,传感器处于断开状态,输出低电平(或高电平)。所以这类传感器输出是高、低电平变化的。(2)数字式传感器采用数字式传感器可将被测参数直接转换成数字信号输出,因此它具有以下特点:①精确度和分辨率高;②抗干扰能力强,便于远距离传送;③信号易于处理和存储,便于与计算机接口;④可以减小读数误差。正因为如此,数字式传感器引起了人们的普遍重视。然而到目前为止,数字式传感器的种类还不多。根据工作原理不同可分为脉冲数字式传感器(如光电编码传感器、光栅传感器、感应同步器、磁栅传感器等)和频率输出式数字传感器(如振弦式传感器、振筒式传感器和振膜式传感器等)。(3)模拟式传感器其输出以各种连续量的形式变化,可以是电压、电流、电阻、电感、电容等。连续变化量与数字系统连接,需要通过模拟通道,再经A/D转换器把模拟信号转换成数字信号。实际应用中,选择传感器的基本原则可概括为以下几方面:①具有确定的传感特性,即能保证一定的灵敏度、精确度、重视性和长时间的工作稳定性;②具有高的可靠性,能在价格适中的前提下有较长的工作寿命;③具有良好的工作环境适应性,受外界因素如高低温冲击、振动、潮湿等的影响小;④具有高的非电量识别和抑制能力,即在多个非电量环境中,要求传感器对不属于它们的自然输入量应有较强的识别和抑制能力;⑤具有较小或者适宜的几何尺寸和形状,便于使用。2.2.2倾角传感器原理倾角传感器经常用于系统的水平测量,从工作原理上可分为―固体摆‖式、―液体摆‖式、―气体摆‖三种倾角传感器[1],下面就它们的工作原理进行介绍。(1)―固体摆‖式惯性器件固体摆在设计中广泛采用力平衡式伺服系统,其由摆锤、摆线、支架组成,摆锤受重力G和摆拉力T的作用,其合外力F为:F=Gsinθ=mgsinθ(2-1)其中,θ为摆线与垂直方向的夹角。在小角度范围内测量时,可以认为F与θ成线性关系。如应变式倾角传感器就是基于此原理。(2)―液体摆‖式惯性器件液体摆的结构原理是在玻璃壳体内装有导电液,并有三根铂电极和外部相连接,三嵌入式应用软件园,版权所有,请勿转载/销售。-11-根电极相互平行且间距相等。当壳体水平时,电极插入导电液的深度相同。如果在两根电极之间加上幅值相等的交流电压时,电极之间会形成离子电流,两根电极之间的液体相当于两个电阻R1和R2。若液体摆水平时,则R1=R2。当玻璃壳体倾斜时,电极间的导电液不相等,三根电极浸入液体的深度也发生变化,但中间电极浸入深度基本保持不变。左边电极浸入深度小,则导电液减少,导电的离子数减少,电阻R1增大,相对极则导电液增加,导电的离子数增加,而使电阻R2减少,即R1>R2。反之,若倾斜方向相反,则R1<R2。在液体摆的应用中也有根据液体位置变化引起应变片的变化,从而引起输出电信号变化而感知倾角的变化。在实用中除此类型外,还有在电解质溶液中留下一气泡,当装置倾斜时气泡会运动使电容发生变化而感应出倾角的―液体摆‖。(3)―气体摆‖式惯性器件气体在受热时受到浮升力的作用,如同固体摆和液体摆也具有的敏感质量一样,热气流总是力图保持在铅垂方向上,因此也具有摆的特性。―气体摆‖式惯性元件由密闭腔体、气体和热线组成。当腔体所在平面相对水平面倾斜或腔体受到加速度的作用时,热线的阻值发生变化,并且热线阻值的变化是角度θ或加速度的函数,因而也具有摆的效应。其中热线阻值的变化是气体与热线之间的能量交换引起的。―气体摆‖式惯性器件的敏感机理基于密闭腔体中的能量传递,在密闭腔体中有气体和热线,热线是唯一的热源。当装置通电时,对气体加热。在热线能量交换中对流是主要形式[5]。基于以上传感器的选择原则及本设计的任务要求,本设计采用了气体摆式倾角传感器。在下一目中将做一阐述。2.2.3本设计选用的传感器本设计采用的是CJRS-A01型气体摆式倾角传感器。(1)CJRS-A型气体摆式倾角传感器CJRS-A型气体摆式倾角传感器是一种新型传感器。它的工作介质是气体,敏感元件是热敏丝。这种传感器可用于坦克、舰船和机器人的姿态测控系统,也可用于测井斜、房屋建筑等工程中。它具有测量范围宽、响应快、精度高、寿命长和成本低等优点。在重力场内,密度大的气体下沉,密度小的气体上浮。利用热敏丝加热空气,其周围空气密度减小,由于浮升力的存在,热空气上浮,热气流力图保持在竖直向上方向,这就形成一个具有单摆特性的―气体摆‖。
VhRRr2r1V0敏感轴方向图2-2A型气体摆式倾角传感器敏感头示意图嵌入式应用软件园,版权所有,请勿转载/销售。-12-利用一对热敏丝作敏感元件,既可形成―气体摆‖,又可以检测敏感元件的倾斜角度。热敏丝装在敏感元件内,敏感元件内腔内为圆柱形或球形。图2-2示出采用平行丝结构的敏感元件电路示意图。热敏电阻r1和r2是电桥的两臂。敏感元件平直并无振动时,r1和r2在同一水平面内,r1=r2=r,电桥平衡,输出为零。当有倾角θ输入时,由于r1和r2的温度相互影响,r1≠r2,输出信号为V0,其大小与倾角θ呈线性关系,即V0=Kθ(2-2)式中,K为比例常数。通过信号处理,根据终端信号的大小和极性,就可以得知倾角θ的大小及方向。倾角传感器的电路包括电源、电桥电源、放大、滤波、补偿、限幅等电路,其电路框图如图2-3所示[8]。①工作原理:CJRS型气体摆式倾角传感器是一种新型传感器,它的工作介质是气体,敏感元件是热敏丝。在重力场内,密度大的气体下降,密度小的气体上升。利用热敏丝加热空气,其周围空气密度减小,由于浮力的存在,热空气上升,热气流力图保持在竖直向上方向。这就形成一个具有单摆特性的―气体摆‖。利用热敏丝既可以产生―气体摆‖又可以检测―摆‖的倾斜角度。②特点:输出电压敏感元件零位补偿灵敏度补偿零位补偿非线性补偿滤波倾角图2-3倾角传感器电路原理图补偿电路放大电路嵌入式应用软件园,版权所有,请勿转载/销售。-13-它具有测量范围宽、响应快、精度高、交叉耦合小、寿命长和成本低等优点。采用气体作为敏感质量,由于气体质量极小,在高过载和强冲击情况下引入的惯性力小,因此可以承受高过载和强冲击。试验表明,气体摆式倾角传感器承受16000g冲击后还能正常工作。并且,此种类型的传感器不受电磁干扰的影响。③应用范围:可广泛用于坦克、舰船、汽车和机器人的姿态测控系统,也可应用于测井斜、海上石油平台、建筑、桥梁、交通(铁路和公路)等工作。④主要性能指标:表2-1CJRS-A型一维气体摆式倾角传感器的主要性能指标指标型号测量范围分辨率非线性度满量程输出供电电源响应时间质量工作温度外形尺寸(mm)CJRS-A1±45°0.01°<1%±5V±15VDC<75mA<100ms350g-40~+50℃60×70CJRS-A2±30°<0.5%CJRS-A3±15°<0.5%(2)CJRS-A01型气体摆式倾角传感器本设计要求倾角仪的测量范围为-45°~+45°,精度为0.1°。所以选择CJRS-A01型做为本设计的倾角传感器。CJRS-A01型气体摆式倾角传感器工作原理如图2-4所示,在密闭腔体中设置一热源,热敏电阻构成电桥的两个敏感臂,当传感器水平放置时,热气流垂直通过两个热敏电阻组成的平面,两个热敏电阻吸收的热量相同,温度也相同,电桥平衡;当传感器倾斜时,热气流由于摆的特性,仍然保持垂直向上,但偏离热敏电阻平面法线方向,从而使热敏电阻吸收的热量不一样。温度不相同,导致电桥失去平衡,输出与倾角成正比的电压信号。θ法线a)b)图2-4CJRS-A01型气体摆式倾角传感器工作原理θ热敏丝热敏丝气流法线热敏丝热敏丝气流嵌入式应用软件园,版权所有,请勿转载/销售。-14-CJRS-A01型气体摆式倾角传感器结构如图2-6所示。敏感元件是圆柱的密闭腔体,两电极通过玻璃绝缘子向外引出。热敏电阻r1和r2既起加热作用,使密闭腔体内气体产生自然对流,又起敏感倾角的作用。密闭腔体内的气体为干燥空气。传感器壳体平行于水平面时,密闭腔体内两个几何对称的热敏电阻r1和r2所产生的热气流均垂直向上,两者互不影响,故由它们分别使电桥电路臂的电桥平衡,输出为零。若传感器壳体相对于水平面产生倾角θ时,由于自然对流气体的浮升力(方向与重力相反)作用,两个热敏丝产生的热气流仍然保持在铅直方向,而两束热气流对彼此的气流源(r1和r2)产生作用。当θ角为正时,r2产生的热气流作用在r1上,电桥失去平衡,输出与倾角θ大小成正比的正模拟电压;当θ为负时,r1产生的热气流作用在r2上,电桥失去平衡,输出与倾角θ大小成正比的负模拟电压。即V0=Kθ,CJRS-A01型气体摆式倾角传感器的比例系数K为(100±1)mV/(°),本设计以K=100mV/(°)来进行计算。如:当倾角θ=25°时,V0=Kθ=2.5V则经A/D转换后输送给单片机的数字量:D=2048(1+2VIN/VFS)=2048(1+2×2.5V/10V)=3072=C00H当倾角θ=0°时,V0=Kθ=0V则经A/D转换后输送给单片机的数字量:D=2048(1+2VIN/VFS)=2048(1+2×0V/10V)=2048=800H当倾角θ=-25°时,V0=Kθ=-2.5V则经A/D转换后输送给单片机的数字量:D=2048(1+2VIN/VFS)=2048[1+2×(-2.5V)/10V]=1024=400H嵌入式应用软件园,版权所有,请勿转载/销售。-15-本设计中,倾角传感器的1脚接+12V,2脚接-12V,3脚接地,5脚悬空。由于CRJS-A1型气体摆式倾角传感器内部电路包括放大、滤波、补偿、限幅等电路,输出电压为-5V~+5V,所以将4脚直接与A/D转换器件的输入端相连。CJRS-A01型气体摆式倾角传感器主要技术指标见表2-2。表2-2CJRS-A01型气体摆式倾角传感器主要技术指标测量范围±45°非线性度≤1%分辨率≤0.01°Vhr2电极RRV0敏感轴方向敏感元件外壳r1图2-6CJRS-A01型气体摆式倾角传感器结构原理124531(红)—+12V2(黑)—地3(黄)—-12V4(绿)—输出5(白)—外壳图2-5CJRS-A01型气体摆式倾角传感器插座接点分配图嵌入式应用软件园,版权所有,请勿转载/销售。-16-比例系数(100±1)mv/(°)显示时间≤100ms准备时间≤5min零位电压±50mV工作电源DC±15V,≤250mA工作温度-40~+65℃外形尺寸Φ60mm×70mm输出电压-5V~+5V2.3单片机的选择及其外围电路设计单片机就是单片微型计算机,它是把微型计算机的主要部件CPU、存储器、I/O接口电路部分及其他功能部件,如定时/计数器、中断系统和串、并行口,都集成在一片半导体芯片上,它具有微型计算机最基本的功能。MCS-51系列单片机是美国Intel公司在1980年继MCS-48系列8位单片机之后推出的8位单片机。具有性价比高、稳定性可靠、通用性强、体积小及价格低等优点,目前是国内单片机应用及教学的主流产品。MCS-51系列单片机的典型产品有8031、8051、8751和89S52,它们的功能、内部逻辑部件基本相同,引脚都一样(40个引脚),可以互换,不同的是8031内部没有程序存储器ROM,8051内部有4KB的ROM,8751内部有4KB的紫外线可擦除可编程只读存储器EPROM,而89S52内部有8KB的电擦除可编程只读存储器[6]。本次设计选用的单片机是AT89S52,下面对AT89S52单片机的硬件结构、引脚功能用法以及在本设计中的应用作一阐述。AT89S52是一种低功耗、高性能CMOS八位微控制器,具有8K在系统可编程Flash存储器,使用ATMEL公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许ROM在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使其为众多嵌入式控制应用系统提供灵活的解决方案。其主要特性为:●与MCS-51单片机产品兼容;●8K字节在系统可编程Flash存储器;●1000次擦写周期;●全静态操作:0Hz~33Hz;●三级加密程序存储器;●32个可编程I/O口线;●三个16位定时器/计数器;●八个中断源;●全双工UART串行通道;●低功耗空闲和掉电模式;●掉电后中断可唤醒;嵌入式应用软件园,版权所有,请勿转载/销售。-17-●看门狗定时器;●双数据指针;●掉电标识符。单片机是本设计的核心,它要负责系统个模块的协调工作和数据处理。选择AT89S52完全满足本设计的要求。2.3.189S52单片机的原理与结构(1)89S52单片机的内部结构89S52单片机内部的主要功能部件有CPU,4KB的程序存储器ROM,256B的数据存储器RAM,两个16位的定时/计数器T0和T1,4个8位的并行I/O接口P0、P1、P2、P3,1个串行接口;5个中断源。其功能结构示意图2-7所示[2]。其中,CPU是单片机内部最核心的部件,它是单片机的大脑和心脏,单片机的性能主要取决于CPU的性能。CPU的主要功能是控制程序的运行、数据的传送和运算,其主要功能部件如下:①控制器:程序计数器PC(16位,用户不可用指令改变其内容、数据(地址)指针寄存器DPTR(16位,用户可用指令改变其内容)等。②运算器:算术逻辑运算单元(ALU)、累加器(ACC)、程序状态寄存器(PSW)等。(2)89S52单片机引脚及功能89S52单片机有40个引脚,采用双列直插(DIP)封装形式,其引脚见图2-8所示。VCC(40脚):接+5V电源线。VSS(20脚):接地线。外部计数脉冲总线复位电路CPU晶振电路8KBROM256BRAM16位×2定时/计数器并行接口串行接口中断系统P0P1P2P3RXDTXDINT0图2-7单片机内部结构图嵌入式应用软件园,版权所有,请勿转载/销售。-18-XTAL1(19脚)、XTAL2(18脚):外接晶振引脚。51系列单片机的晶振频率fosc的范围在1.2~12MHz。RST(9脚):复位引脚。信号输入引脚(即该引脚功能受输入信号控制),高电平有效,就是该引脚高电平使单片机复位,当该引脚输入的高电平信号保持至少两个机器周期以上时即可使单片机复位(如晶振频率fosc为12MHz,机器周期就等于1μs,也就是说,只要RST引脚有2μs以上的电平,就可以使单片机复位)。单片机正常工作期间该引脚应该为低电平。PSEN(29脚):CPU访问片外程序存储器输出信号。低电平有效。该引脚在CPU要从某片外程序存储器读取指令时,输出负脉冲作为读该片外程序存储器的选通信号。ALE(30脚):低8位地址锁存允许引脚。信号输出引脚,高电平有效。当CPU访问片外存储器时,在ALE引脚输出高电平期间用于将低8位地址锁存起来。平常ALE引脚输出矩形脉冲,频率为晶振频率的1/6。因此ALE引脚也可用来作时钟脉冲。例如:当晶振频率fosc为12MHz时,ALE引脚输出2MHz的方波。EA(31脚):低电平时CPU访问片外程序存储器;高电平时CPU先访问片内程序存储区4KB的地址范围,若访问片内程序存储器的地址超过4KB范围时,CPU会自动使PC指向片外程序存储器。4个8位并行I/O接口:用来输入/输出数据。P0口(P0.0~P0.7):39~32脚;作低8位地址线和8位数据线用。程序中用到外部存储器时,不能作I/O接口。P0口在不作数据/地址总线时可作I/O口用,当作为输出口用时要外接上拉电阻。P1口(P1.0~P1.7):1~8脚;是用户最常用的I/O口。输出可直接(或通过同相反相驱动集成电路)带发光二极管或数码管。P2口(P2.0~P2.7):21~28脚;可作为8位I/O接口,又可有第二功能,若某个P389S52EA/VP31X119X218RESET9INT012INT113T014T115P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P0.039P0.138P0.237P0.336P0.435P0.534P0.633P0.732P2.021P2.122P2.223P2.324P2.425P2.526P2.627P2.728RD17WR16PSEN29ALE/P30TXD11RXD10图2-889S52单片机引脚图嵌入式应用软件园,版权所有,请勿转载/销售。-19-口位已经用作第二功能,就不能再用作I/O接口使用。一般在接有片外数据存储器或I/O芯片的情况下,P3.6(WR)和P3.7(RD)不作为I/O使用。P3口的第二功能如表2-3所示。表2-389S52P3口第二功能2.3.289S52在本设计中的应用由于本设计选用的A/D转换器AD574A为12位逐次逼近型A/D转换器。所以单片机的P0口作为数据线分别与AD574A高8位输出接口相连,AD574A的低4位分别与P0.4~P0.7相连。然后通过控制总线RD、WR、PSEN、ALE和EA等信号将采集到的数据传送给单片机。单片机对这些数据量处理后在显示器中显示对应的角度值。单片机是本设计的核心不但要进行数据的处理,而且还要负责系统各部分的协调工作。单片机是一个复杂的系统,它需要有合适的外围电路和内部程序才能达到整个系统的要求[15-17],下面就介绍一下本设计单片机的外围电路(1)振荡器和时钟电路如果说CPU是单片机的心脏,那么石英晶振就相当于心脏起搏器。单片机系统的各部分都要以时钟频率为基准,才能在CPU的指挥下有条不紊一拍一拍地协调工作。在89S52单片机内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,输出端为引脚XTAL2,在芯片的外部通过这两个引脚跨接晶体震荡器和微调电容,形成反馈电路,就构成了一个稳定的自激震荡器。这是单片机时钟信号产生的方式之一,称为内部时钟方式。另一种称为外部时钟方式,如图2-9(b)所示。其是把外部时钟信号引入到单片机内。本设计单片机的时钟电路如图2-9(a)所示。其中C1和C2的作用是稳定频率和快速口线专用功能口线专用功能P3.0RXDP3.4T0P3.1TXDP3.5T1P3.2INT0P3.6WRP3.3INT1P3.7RD(a)C2C1晶振XTAL1XTAL289S52XTAL1XTAL289S52悬空外部时钟信号(b)图2-9单片机时钟电路嵌入式应用软件园,版权所有,请勿转载/销售。-20-起振,电容值为30pF。晶振的振荡频率为6MHz。(2)复位电路的设计单片机的RST引脚为主机提供一个外部复位信号输入端口。复位信号是高电平有效的持续时间应为2个机器周期以上。复位后,单片机内部各部件恢复到初试状态,单片机从ROM的0000H开始执行程序。单片机复位电路设计的好坏,直接影响到整个系统工作的可靠性。许多人在设计完单片机系统,并在实验室调试成功后,在现场却出现了―死机‖、―程序走飞‖等现象,这主要是单片机的复位电路设计不可靠引起的。考虑到倾角测量仪的应用环境,本设计采用了看门狗复位电路。看门狗型复位电路主要利用CPU正常工作时,定时复位计数器,使得计数器的值不超过某一值;当CPU不能正常工作时,由于计数器不能被复位,因此其计数会超过某一值,从而产生复位脉冲,使得CPU恢复正常工作状态。此复位电路的可靠性主要取决于软件设计,即将定时向复位电路发出脉冲的程序放在何处。一般设计,将此段程序放在定时器中断服务子程序中。然而,有时这种设计仍然会引起程序走飞或工作不正常。原因主要是:当程序―走飞‖发生时定时器初始化以及开中断之后的话,这种―走飞‖情况就有可能不能由Watchdog复位电路校正回来。因为定时器中断一但在产生,即使程序不正常,Watchdog也能被正常复位。为此提出定时器加预设的设计方法。即在初始化时压入堆栈一个地址,在此地址内执行的是一条关中断和一条死循环语句。在所有不被程序代码占用的地址尽可能地用子程序返回指令RET代替。这样,当程序走飞后,其进入陷阱的可能性将大大增加。而一旦进入陷阱,定时器停止工作并且关闭中断,从而使Watchdog复位电路会产生一个复位脉冲将CPU复位。当然这种技术用于实时性较强的控制或处理器件中有一定的困难。在选用或自己设计Watchdog型复位电路时,应注意输入Watchdog的―喂狗‖信号应该是沿信号,而不是电平信号,同时应考虑撤销复位电压的电源电压值应大于系统最小正常电压值。美国Xicro公司生产的X5045芯片集断电数据保存功能、看门狗功能、上电掉电复位功能、电源电压监控功能于一身,所以这次复位电路的设计用X5045来完成。Ⅰ.X5045芯片介绍X5045芯片的引脚排列如图2-10所示。VCC8RESET7SCK6SI5CS/WDI1SO2WP3VSS4X5045引脚功能:①串行输出(SO):SO是串行数据输出引脚。在读周期内,数据在此引脚上输出,数据由串行时钟的下降沿同步输出。②串行输入(SI):SI是串行数据输入引脚。所有操作码,字节地址以及写入存储器的数据在此引脚上输入。串行时钟的上升沿锁存SI数据。图2-10X5045引脚排列图嵌入式应用软件园,版权所有,请勿转载/销售。-21-③串行时钟(SCK):串行时钟控制用于数据输入和输出的串行总线定时。出现在SI引脚上的操作码,地址或数据在时钟输入的上升沿锁存,而SO引脚上的数据在时钟输入的下降沿之后发生改变。④芯片选择(CS):当CS为高电平时,将X5045置于等待电源方式,SO输出引脚处于高阻状态。CS为低电平将X5045置于工作电源方式。上电之后,在任何操作开始之前需要CS从高电平至低电平的跳变。⑤写保护(WP):当WP为低电平时,禁止向X5045的非易失性写操作,但是器件的其它功能还正常。当WP保持高电平时,所有的功能都正常。在CS仍为低电平时,WP变为低电平将中断对X5045的写操作。如果内部写周期已经开始,则WP变为低电平将不影响写操作。⑥复位(RESET):X5045的复位是高电平有效。CS的下降沿将复位看门狗定时器。另有接地端和电源端,X5045芯片的电源电压有两种规格,一种是4.5~5.5V,另一种是2.7~5.5V。X5045为4K位串行EEPROM芯片,可编程的看门狗定时器。低电压VCC检测,直至VCC=1V复位输出有效;SPI接口方式;低功耗,待机电流为10μA,工作电流为3mA,工作电压为2.7~5V;具有块锁定保护功能,可以保护1/4、1/2,或所有EEPROM阵列;片内异常事件写保护:上电、掉电保护电路,写锁存,写保护引脚;1MHz时钟频率;可擦写次数100000次,数据保存期为100年;ESD静电放电保护;有8引脚DIP和SOIC或14引脚TSSOP封装三种形式;高电平复位信号输出。(最高有效位)在前方式传送。读写指令中3位的A8是高位地址,此位用于选择器件的上半部或下半部[13]。表2-4X5045指令寄存器指令集指令名称指令格式操作WREN00000110设置写使能锁存器,允许写操作WRDI00000100复位写使能锁存器,禁止写操作RDSR00000101读状态寄存器WRSR00000001写状态寄存器READ0000A8011从所选地址开始的存储器中读数据WRITE0000A8010把数据写入所选地址开始的存储器中Ⅱ.X5045芯片与AT89S52单片机接口电路本设计X5045芯片与AT89S52单片机的接口电路如图2-11所示。该电路为AT89S52扩展了上电复位、可编程看门狗定时、电源电压监控、串行EEPROM等功能。该芯片在其上电后自动产生复位信号,这样就实现单片机的上电自动复位;当电源VCC低于规定值时,(如VCC=5V,则规定值为4.25-2.5V),将产生复位信号。这样就实现系统电源的掉电复位;当程序在编程选择的时间里没有访问X5045时,即设有一个看WDT的语句——FeedDOG语句,则看门狗(WDT)将起作用RST将产生复位信号,迫使单片机复位。电阻R1选择为10KΩ。CS1SI6SCK5SO2RESET7Vss4Vcc8WP3X5045+5VR10KP1.0P1.1P1.2P1.3RST嵌入式应用软件园,版权所有,请勿转载/销售。-22-2.4A/D转换电路设计在一些信号处理电路中,输出往往是连续变化的模拟量,由于计算机只能处理离散的数字量,需要将连续变化的模拟量转换为数字量,这一操作过程就是A/D转换。目前,市场上A/D转换器芯片种类繁多,为了适应各种需要,不同的厂家生产了很多不同类型、不同性能和档次的A/D转换芯片。根据本设计的要求,倾角测量仪的测量范围为-45°~+45°,精度要求0.1°。则由[45°-(-45°)]/212=0.022°知选择12位的A/D转换器可以满足设计精度的要求。而且要求A/D转换器内部必须具有双极性输入电路。这里选择美国模拟数字公司(Analog)推出的单片高速12位逐次比较型A/D转换器AD574A。它内置双极性电路构成的混合集成转换显片,具有外接元件少,功耗低,精度高(≤0.05%)等特点,并且具有自动校零和自动极性转换功能,只需外接少量的阻容件即可构成一个完整的A/D转换器。所以选择AD574A完全能够满足本设计的要求。2.4.1AD574A的A/D转换原理A/D转换的原理很多,常见的有双积分式、逐次逼近式、计数式等,输出码制有二进制、BCD码等,输出数据宽度有8位、12位、16位、20位等(二进制)。根据设计的需要,我们这里只介绍12位逐次逼近式A/D转换器。由于在本设计中选择的是逐次逼近式A/D转换器,所以我们这里简单阐述一下逐次逼近式A/D转换器原理。原理如图2-12所示,当转换器接收到启动信号后,逐次逼近寄存器清0,通过内部D/A转换器输出使输出电压V0为0,启动信号结束后开始A/D转换[10]。控制电路8位D/A转换器逐次逼近寄存器CLK启动信号转换结束Vi比较器:Vi>V0输出为“1”Vi≤V0输出为“0”输出模拟电压V0嵌入式应用软件园,版权所有,请勿转载/销售。-23-2.4.2AD574A在本设计中的应用为了说明AD574A在本设计中的应用,这里先对AD574A芯片的部分引脚作个说明。AD574A为28引脚双列直插式封装,各个引脚功能如下:①DB11~DB0:12位数据输出线,DB11为最高位,DB0为最低位,它们可由控制逻辑决定是输出数据还是对外呈高阻状态。在本设计中,将此12位数据线接到单片机的P0口,将转换的结果传送给单片机。AD574A的DB口与单片机连接如图2-13所示。在本设计,AD574A在输出数据时采用12位输出,所以先传送高8位数据DB4~DB11,再传送低4位DB0~DB3。②12/8:数据模式选择。当此引脚输入为高电平时,12数据并行输出;当此引脚输入为低电平时,与引脚A0配合,把12位数据分两次输出,见表2-3所示。应该注意,此引脚不与TTL兼容,若要此引脚为高电平,则应接脚1,若要此引脚为低电平,则应接脚15。由于本设计采用的是8位单片机,所以这里是把12位数据分两次输出,即此引脚接低电平,也就是与脚15相接。AD574ADBR/CCS74LS373D0~D7ALE单片机AD574ADB0~DB3DB4~DB11P0.0P0.7A0图2-13的口连接图嵌入式应用软件园,版权所有,请勿转载/销售。-24-③A0:字节选择控制。此引脚有两个功能,一个功能是决定方式是12位还是8位。若A0=0,进行全12位转换,转换时间为25uS;若A0=1,仅进行8位转换,转换时间为16uS。另一个功能是决定输出数据是高8位还是低4位。若A0=0,高8位数据有效;若A0=1,低4位有效,中间4位为―0‖,高4位为高阻状态。因此,低4位读出时,应遵循左对齐原则(即:高8位+低4位+中间4位的‗0000‘)。本设计为了提高精度,在这进行全12位转换。此脚的应用很灵活,在后面将给出详细的介绍。④CS:芯片选择。当CS=0时,AD574A被选中,否则AD574A不进行任何操作。⑤R/C:读/转换选择。当R/C=1时,允许读取结果,当R/C=0时,允许A/D转换。在本设计中,我们将R/C、A0、CS三个引脚接到74LS373锁存器的Q0、Q1、Q2三个引脚上,通过地址的选择来连接并实现转换的要求。如图2-14所示。要想芯片AD574A保持在工作状态,Q2必须为0,以使AD574A芯片处于选中状态。在输出数据时,先输出高8位数据,这时A0=0;接着输出低4位,这时A0=1,所以在读取转换结果期间,A0的状态是变化的。当系统在A/D转换时,74LS373的Q0输出为0,允许A/D转换;当系统读取结果时,74LS373的Q0输出为1,读取A/D转换结果。这样系统在整个的过程中Q2Q1Q0的变化是:000-001-011。第一个状态000表示,芯片片选,AD574A进行全12位转换,系统允许A/D转换;第二个状态001表示,芯片片选,AD574A输出高8位数据,系统允许读取结果;第三个状态011表示,芯片片选,AD574A输出低4位数据,系统允许读取结果。⑥CE:芯片启动信号。当CE=1时,允许读取结果,到底是转换还是读取结果与R/C有关。⑦STS:状态信号。STS=1表示正在进行A/D转换,STS=0表示转换已完成。本设计中利用此引脚对单片机进行中断方式响应,判断STS端口是0还是1来对单片机进行中断。AD574A的CE和STS端口与单片机的连接如图2-15所示。在这里还需说明的是,STS口还可以与单片机的P2.7口相连,这样,系统就进行查询方式来读取转换结果。在74LS373AD574AQ0Q1Q2R/CA0CS图2-1474LS373与AD574A的连接嵌入式应用软件园,版权所有,请勿转载/销售。-25-后面的软件设计中,我们将给出两种方式的程序,然后进行比较选择出最佳方式。只有当单片机的外部RAM读选通和写选通信号同时有效时,即同时为低电平,AD574A的CE端口为1,这时启动AD574A芯片。⑧REFOUT:+10V基准电压输出。⑨REFIN:基准电压输入。只有由此脚把从―REFOUT‖脚输出的基准电压引入到AD574A内部的12位DAC,才能进行正常的A/D转换。本设计采用双极性输入,所以此脚将与―REFOUT‖和―BIPOFF‖两引脚结合使用。⑩BIPOFF:双极性补偿。此引脚适当连接,可实现单极性或双极性输入。○1110VIN:10V量程模拟信号输入端。本设计所采用的是双极性输入,所以这里的输入范围是-5V~+5V,而信号处理电路出来的电压范围是-5V~+5V。满足设计要求。AD574A各控制输入脚功能说明如表2-5示。这里需要注意的是,AD574A的各引脚的功能不是某个单独的引脚决定系统的功能,而是多数引脚联合起来共同决定系统的功能。表2-5AD574A各控制输入脚功能CECSR/C12/8A0功能说明0××××不起作用×1×××不起作用100×0启动12位转换100×1启动8位转换101接引脚1×12位数据并行输出101接引脚150高8位数据输出101接引脚151低4位数据尾接4位0输出AD574A在本设计中的极性输入方式:AD574A有两种极性输入方式,即为单极性和双极性输入。如图2-16所示。本设计所采用的是双极性输入方式,如图2-16(b)所示。R1用于调整双极性输入INT189S52WRRDCESTS图2-15CE和STS端口与单片机连接图嵌入式应用软件园,版权所有,请勿转载/销售。-26-电路的零点。如果输入信号VIN在-5V~+5V之间,应从10VIN引脚输入;当VIN在-10V~+10V之间,应从20VIN引脚输入。双极性输入时输出数字量D与输入模拟电压VIN之间的关系:D=2048(1+2VIN/VFS)(2-3)或:VIN=(D/2048-1)VFS/2(2-4)式中VIN为输入模拟量(V),VFS为满量程值10V。(a)单极性输入(b)双极性输入由上式求出的数字量D是12位偏移二进制码。把D的最高位求反便得到补码。补码对应模拟量输入的符号和大小。同样,从AD574A读到的或应代到式中的数字量D也是偏移二进制码。例如,当模拟信号从10VIN引脚输入,则VFS=10V,若读得D=FFFH,即111111111111B=4095,代入式中可求得VIN=4.9976V。在本设计中,传感器所采集的信号,经信号放大电路放大后,输入A/D转换器的电压为-5~+5V,所以这里A/D转换器采用双极性输入方式时,信号由―10VIN‖端口输入。2.4.3AD574A在本系统中的应用AD574A是具有三态输出锁存器的12位逐次比较ADC芯片,转换速度快(25us),是目前国内使用最广泛的ADC芯片之一。ADC574A可并行输出12位数据,也可以分两次输出(先高8位,后低4位)数据;既可进行8位转换,也可进行12位A/D转换。这在上面的芯片介绍中已经提到了。AD574A与本系统连接如图2-17所示。本设计采用双极性输入方式,可对范围-5V~+5V的模拟信号进行转换。当AD574A与单片机配置时,由于AD574A输出12位数据,所以当单片机读取转换结果时,应分两次进行:当A0=0时,读取高8位;当A0=1时,读取低4位。根据STS信号线的三种不同接法,转换结果的读取有三种方式:(a)如果STS空着不接,单片机就只能在启动AD574A转换后延时25μS以上再读取转换结果,即延时方式;(b)如果STS接到单片机的一条端口线上,单片机就可以采用查询方式。当查得STS为低电平时,表示转换结束;(c)如果STS接到单片机的中断端,则可以采用中断+15V-15V100kΩ100kΩ100Ω100Ω0~10V0~20VDGAG10VIN20VINBIPOFFREFINREFOUTAD574-5V~+5V-10V~+10VDGAG10VIN20VINAD574REFIN100ΩREFOUTBIPOFF100ΩR2R1R2R1图2-16AD574A的极性输入方式嵌入式应用软件园,版权所有,请勿转载/销售。-27-方式读取转换结果。本设计中AD574A的STS与AT89S52的外部中断端口相连,故采用中断方式读取转换结果。也可以用查询方式设计编制相应的服务程序,即将AD574A中的STS端与单片机中的P2.7端口相连,如图2-18所示。在本章我们就不介绍查询方式,在下一章的软件设计中,我们将给出中断和查询两种方式服务程序,以用来作比较。在系统硬件调试时,AD574A中的R1用于调整双极性输入电路的零点,R2用于调整增益。2.5显示模块设计单片机应用系统中,通常都需要进行人—机对话。这包括人对应用系统的状态干预与数据输入,以及应用系统向人们显示运行结果等。显示器、键盘电路就是用来完成人机对话的人—机通道。本设计LED由ZLG7289A驱动。下一目将LED驱动器ZLG7289A在本设计中的应用作一介绍。-10V-+10VALEP0.7P0.089S52VccEAGD7D0Q7Q0DGA0DB11DB4DB3DB0REFINREFOUTBIPOFFR1AD574A74LS373CESTSAG10VIN20VIN-5V-+5V+WRRDINT112/8CSR/COESTS图2-17AD574A与单片机接口电路图P2.789S52图2-18采用查询方式的连接图嵌入式应用软件园,版权所有,请勿转载/销售。-28-2.5.1LED驱动器功能简介ZLG7289A是广州周立功单片机发展有限公司自行设计的具有SPI串行接口功能的、可同时驱动8位共阴式数码管或64只独立LED的智能显示驱动芯片,该芯片同时还可连接多达64键的键盘矩阵,单片即可完成LED显示﹑键盘接口的全部功能。ZLG7289A内部含有译码器,可直接接受BCD码或16进制码,并同时具有2种译码方式,此外,还具有多种控制指令,如消隐﹑闪烁﹑左移﹑右移﹑段寻址等。ZLG7289A具有片选信号,可方便地实现多于8位的显示或多于64键的键盘接口[19]。(1)典型应用仪器仪表工业控制器条形显示器控制面板(2.)特点●串行接口无需外围元件可直接驱动LED●各位独立控制译码/不译码及消隐和闪烁属性●(循环)左移/(循环)右移指令●具有段寻址指令方便控制独立LED●64键键盘控制器内含去抖动电路(3)ZLG7289的引脚排列如图2-19所示,引脚说明如表2-6所示。23Title/RESOSC2OSC1DIG0DIG7DIG6DIG5DIG4DIG3DIG2DIG1RTCCVCCNCNCVSS/CSCLKDATA/KEYSGSFSESDSCSBSADPZLG7289A12345678910111213141516171819202122232425272826表2-6ZLG7289A引脚说明引脚名称说明1,2VDD正电源3,5NC悬空4VSS接地6/CS片选输入端,此引脚为低电平时,可向芯片发送指令及读取键盘数据图2-19ZLG7289A的引脚排列图嵌入式应用软件园,版权所有,请勿转载/销售。-29-7CLK同步时钟输入端,向芯片发送数据及读取键盘数据时,此引脚电平上升沿表示数据有效8DATA串行数据输入/输出端,当芯片接收指令时,此引脚为输入端;当读取键盘数据时,此引脚在‗读‘指令最后一个时钟的下降沿变为输出端9/KEY按键有效输出端,平时为高电平,当检测到有效按键时,此引脚变为低电平10-16SG-SA段g—段a驱动输出17DP小数点驱动输出18-25DIG0-DIG7数字0—数字7驱动输出26OSC2振荡器输出端27OSC1振荡器输入端28/RESET复位端(4)控制指令ZLG7289A的控制指令分为二大类纯指令和带有数据的指令。在此只对带有数据的指令作一简介①下载数据且按方式0译码D7D6D5D4D3D2D1D0DPXXXd3d2d1d0X=无影响命令由二个字节组成,前半部分为指令,其中a2,a1,a0为位地址,具体分配如下:表2-7位地址分配表d0—d3为数据,收到此指令时,ZLG7289A按以下规则(译码方式0)进行译码,如下表:表2-8ZLG7289A译码方式0D7D6D5D4D3D2D1D010000a2a1a0a2a1a0显示位00010012010301141005101611071118嵌入式应用软件园,版权所有,请勿转载/销售。-30-小数点的显示由DP位控制,DP=1时,小数点显示,DP=0时小数点不显示。②下载数据且按方式1译码D7D6D5D4D3D2D1D0DPXXXd3d2d1d0X=无影响此指令与上一条指令基本相同,所不同的是译码方式,该指令的译码按下表进行表2-9ZLG7289A译码方式1d0—d3(十六进制)d3d2d1d07段显示00H0000001H0001102H0010203H0011304H0100405H0101506H0110607H0111708H1000809H100190AH1010-0BH1011E0CH1100H0DH1101L0EH1110P0FH1111空(无显示)D7D6D5D4D3D2D1D011001a2a1a0嵌入式应用软件园,版权所有,请勿转载/销售。-31-(5)ZLG7289A在本设计中应用ZLG7289A采用串行方式与单片机相连,如图2-20示。串行数据从DATA引脚送入芯片,并由CLK端同步。当片选信号变为低电平后,DATA引脚上的数据在CLK引脚的上升沿被写入ZLG7289A的缓冲寄存器。ZLG7289A的指令结构有三种类型:1.不带数据的纯指令指令的宽度为8个BIT,即微处理器需发送8个CLK脉冲。2.带有数据的指令,宽度为16个BIT,即微处理器需发送16个CLK脉冲。3.读取键盘数据指令宽度为16个BIT,前8个为微处理器发送到ZLG7289A的指令,后8个BIT为ZLG7289A返回的键盘代码。执行此指令时,ZLG7289A的DATA端在第9个CLK脉冲的上升沿变为输出状态,并与第16个脉冲的下降沿恢复为输入状态,等待接收下一个指令。ZLG7289A应连接共阴式数码管,应用中,无需用到的数码管和键盘可以不连接,省去数码管和对数码管设置消隐属性均不会影响键盘的使用。ZLG7289A需要一外接晶体振荡电路供系统工作。其典型值分别为F=16MHz,C=15P,其RESET复位端在一般应用情况下,可以直接和VCC相连,在需要较高可靠性的情况下,可以连接一外部复位电路,或直接由MCU控制。在上电或RESET端由低电平变为高电平后,ZLG7289A大约要经过18-25MS的时间才会进入正常工作状态。d0—d3(十六进制)d3d2d1d07段显示00H0000001H0001102H0010203H0011304H0100405H0101506H0110607H0111708H1000809H100190AH1010A0BH1011B0CH1100C0DH1101D0EH1110E0FH1111F嵌入式应用软件园,版权所有,请勿转载/销售。-32-2316M/RESOSC2OSC1DIG0DIG7DIG6DIG5DIG4DIG3DIG2DIG1RTCCVCCNCNCVSS/CSCLKDATA/KEYSGSFSESDSCSBSADPZLG7289A+5P1.5P1.6P1.7DGDFDEDDDCDBDADDP1234567891011121314151617181920212223242526272815P15PP本设计LED显示器的应用通常与单片机接口的显示器主要是LED显示器和LCD显示器两种。LCD显示器好控制、节能,但是其成本较高,考虑到倾角测量仪个工作环境主要在工程建设中,需要有较强机械强度和光亮度,还有就是考虑倾角测量仪的设计成本,本设计选择了LED显示器。本次设计中要求用到4位LED显示,LED显示器的控制方式为静态显示和动态显示两种,因此在选择LED驱动时,一定要先确定显示方式。若选择静态显示,则LED驱动器的选择较为简单,只要驱动器的驱动能力与显示器电流相匹配即可。而且只须要考虑段的驱动因为共阳极接+5V,而共阴接地,所以位的驱动不要考虑。动态显示则不同,由于一位数据的显示是由段选和位选信号共同配合完成的,因此,要同时考虑段和位的驱动能力,而且段的驱动能力决定位的驱动能力。动态显示就是一位一位地轮流点亮显示器的各个位(扫描),在同一时刻只有一位显示器在工作(点亮)。由于本设计用到了4位LED,所以为了节省系统的功耗,本设计选择了动态显示。LED显示器由7个发光二极管组成,因此也称之为七段LED显示器。此外,显示器中还有一个圆点型发光二极管,用于显示小数点。通过七个发光二极管亮暗的不同组合,可以显示多种数字、字母以及其它符号。其排列形状如图2-21所示。图2-20ZLG7289A与89S52的接口嵌入式应用软件园,版权所有,请勿转载/销售。-33-abcefgdpCOMdabcdfegdpLED显示器中的发光二极管共有两种连接方法:●共阳极接法把发光二极管的阳极连在一起构成公共阳极。使用时公共阳极接+5V。这样阴极端输入低电平的段发光二极管就导通点亮,而输入高电平的则不点亮。●共阴极接法把发光二极管的阴极连在一起构成公共阴极。使用时公共阴极接地,这样阳极端输入高电平的段发光二极管就导通点亮,而输入低电平的则不点亮。使用LED显示器时要注意区分这两种不同的接法。为了显示数字或符号,要为LED显示器提供代码,因为这些代码是为显示字形的,因此称之为字形代码。字形代码需要七段发光二极管,再加上一个小数点位,共计八段。因此提供给LED显示器的字形代码正好一个字节。各代码位的关系如表2-10所示。在驱动LED显示器时需要将BCD码转换成七位段码,有很多LED数码管显示驱动的译码器,如CD4051/CD4061等,也可以采用软件译码的方式,通过指令将原有的二进制数转换成BCD码,再转换成数码管的七位段码。表2-10LED显示器字形代码代码位D7D6D5D4D3D2D1D0显示段dpgFedcba用LED显示器显示十六进制数的字形代码在表2-11中列出。表2-11十六进制数字形代码表字型共阳极代码共阴极代码字型共阳极代码共阴极代码0C0H3FH990H6FH1F9H06HA88H77H2A4H5BHb83H7CH3B0H4FHCC6H39H499H66HDA1H5EH592H6DHE86H79H682H7DHF8EH71H7F8H07H灭FFH00H880H7FH本设计由于选用的LED驱动器为ZLG7289A,其只能驱动共阴极接法的LED,所以选用了共阴极接法LED。其构成了本设计的显示模块如图2-22。其中ZLG7289A的SA~SG和DP为输出口(段控位),以输出8位字型代码(段控线)连接于各LED的a~g和DP位。DIG0~DIG7也为输出口(位控口),输出位控线连接于个LED的COM端口。由倾角传感器CJRS-A01输出的模拟电压V0,经A/D转换器AD574A转换为数字图2-21LED显示器嵌入式应用软件园,版权所有,请勿转载/销售。-34-量输送给单片机,单片机调用子程序把数字量转换为对应所测倾角角度值的BCD码,然后在输送给LED驱动器ZLG7289A的缓冲寄存器,最终在LED中显示出所测量的角度值。123123DCBATitleSizeNumberA4Date:14-Dec-2007File:C:\DocumentsandSettings\MS\2827268M/RESOSC2OSC1DIG0DIG7DIG6DIG5DIG4DIG3DIG2DIG1RTCCVCCNCNCVSS/CSCLKDATA/KEYSGSFSESDSCSBSADPZLG7289A252423222120COM019COM118COM217COM3161514DA1312DB11DC10DD9DE8DF7DG6DDP54321VCCP1.5P1.6P1.7DGDFDEDDDCDBDADDPabcdefgDPCOM4COM3COM2COM1COM3270*8COM2COM1COM0由于本设计测量的倾角范围为-45°~+45°,精度为0.1°。本设计只用了4片LED显示器,所以要用软件方法使第3片LED的DP为一直置1。如果测量的倾角值为负值(本设计规定向重力参考线左侧倾斜的倾角为负值,反之则为正值),则第1片LED的g段发光二极管点亮表示负号。若测量的倾角值为正值,则第1片各段发光二极管均不亮。软件设计均在下一章中作一阐述。例如:当所测倾角θ=+25°时,倾角传感器的输出电压为:V0=Kθ=100mV/(°)×25°=2.5V则,A/D转换器的输出数字量为:D=2048(1+2VIN/VFS)=2048(1+2×2.5V/10V)=3072=C00H式中K为CJRS-A01型气体摆式倾角传感器的比例系数K=100mV/(°);VIN为输入模拟量VIN=V0;VFS为满量程值10V。经单片机处理后,把数据传送到LED驱动器中,并最中在4组LED显示器中显示出对应的倾角值,如图2-23所示。图2-22显示模块图2-23LED显示的角度值嵌入式应用软件园,版权所有,请勿转载/销售。-35-第3章系统软件设计系统软件设计采用模块化设计方法,采用汇编语言编程。整个软件系统由初始化模块、A/D转换模块、数制转换模块、LED显示模块。下面我们对整个软件系统做详细的介绍。3.1系统主流程图系统软件流程图如图3-1所示。3.2系统初始化设计在本设计中,首先对单片机进行初始化设计,然后通过单片机对LED显示的驱动器进行控制,使LED有显示角度的变化。单片机初始化完成后,将进行中断等待状态,即是否A/D转换结束。A/D转换结束后再控制LED的显示,以达到设计目的。(1)单片机的初始化ORG0000HSTART:AJMPMAINORG0013H;外部中断1入口地址AJMPWZ1;外中断服务子程序入口地址堆栈设置ORG0030HORG0100H图3-1系统软件流程图开始初始化启动A/D转换启动显示子程序数制转换嵌入式应用软件园,版权所有,请勿转载/销售。-36-MAIN:MOVSP,#70H;设置堆栈指针SP=70H在本设计中,将A/D转换器转换的结果进行堆栈,保护转换结果的准确性。设置中断方式SETBEA;开总中断SETBEX1;开外部中断1SETBIT1;边沿触发在本设计中,利用外部中断来判断A/D转换器转换是否结束。(2)延时子程序DELAY:MOVR1,#40;延时20msD1:MOVR2,#248NOPD2:DJNZR2,D2;498DJNZR1,D13.3A/D转换子程序设计本设计是以中断方式读取转换结果的,但这里我们也将查询方式读取转换结果的程序流程图写出来,以用来比较。查询方式程序流程图如图3-2所示,中断方式如图3-3所示[15]。AD574A的中断方式转换程序段如下:ORG0000HMOVR7,#41HMOVDPTR,#0FFF8H;端口地址送DPTRMOVX@DPTR,A;启动A/D转换SETBEASETBEX1;开外中断1SETBIT1;外中断请求信号为下跳沿触发方式LOOP:SJMPLOOP;等待中断;中断服务程序:WZ1:MOVDPTR,#0FFF9HMOVXA,@DPTR;读高8位数据MOV@R0,A;存高8位数据INCDPTRINCDPTRMOVXA,@DPTR;读低4位数据ANLA,#0FH;屏蔽高4位随机数DECR1MOV@R1,A;存低4位数据LCALLHB2;跳至数制转换子程序嵌入式应用软件园,版权所有,请勿转载/销售。-37-LCALLSET_DOGRETI3.4数制转换程序设计入口条件:待转换的双字节十六进制整数在R6、R7中。出口信息:转换后的三字节BCD码整数在R3、R4、R5中。影响资源:PSW、A、R2~R7堆栈需求:2字节HB2:CLRA;BCD码初始化MOVR3,A执行主程序启动A/D转换P2.7=0?数据处理高8位41H低8位40H返回YN图3-2A/D转换查询方式服务程序流程图执行主程序启动A/D转换等待中断中断返回转换结果处理程序保护现场读取转换结果高8位41H低8位40H图3-3A/D转换中断方式服务程序流程图嵌入式应用软件园,版权所有,请勿转载/销售。-38-MOVR4,AMOVR5,AMOVR2,#10H;转换双字节十六进制整数HB4:MOVA,R7;从高端移出待转换数的一位到CY中RLCAMOVR7,AMOVA,R6RLCAMOVR6,AMOVA,R5;BCD码带进位自身相加,相当于乘2ADDCA,R5DAA;十进制调整MOVR5,AMOVA,R4ADDCA,R4DAAMOVR4,AMOVA,R3ADDCA,R3MOVR3,A;双字节十六进制数的万位数不超过6,不用调整DJNZR2,HB3;处理完16bitLCALLDISPLAYS;跳至显示子程序RETI3.5LED显示模块子程序设计程序中使用单片机内RAM位寻址的29H单元。29H单元的位地址为48H~4FH。1)发送29H单元中的数据到ZLG7289A,高位在前,程序入口条件为CS=1,CLK=0。DISPLAYS:MOVR2,#08H;发送8位数据CLRP1.5;=0LCALLDELY1;延时32μs(T1)LOOP1:MOVC,4FH;29H单元的D7位传至ZLG7289AMOVP1.7,C;数据出现在DATA引脚上SETBP1.6;置CLK为高电平,数据写入ZLG7289AMOVA,29H;待发数据左移1位RLAMOV29H,ALCALLDELY2;延时8μs(T2)CLRP1.6;置CLK为低电平LCALLDELY2;延时8μs(T3)嵌入式应用软件园,版权所有,请勿转载/销售。-39-DJNZR2,LOOP1;检测8位数据是否发送完毕CLRP1.2;发送完毕,DATA为低(输出状态)2)查询方式显示程序。MOVP1,#0F9H;=1,KEY=1,CLK=0,DATA=0LCALLDELY3;延时24msMOV29H,#0A4H;复位指令LCALLDISPLAYS3.6X5045模块程序设计1.X5045看门狗复位电路的程序框图产生复位信号的条件要满足:①该芯片在其上电后自动产生复位信号,这样就实现单片机的上电自动复位;②当电源VCC低于规定值时,(如VCC=5V,则规定值为4.25-2.5V),将产生复位信号。这样就实现系统电源的掉电复位;③当程序在编程选择的时间里没有访问X5045时,即设有一个看WDT的语句——FeedDOG语句,则看门狗(WDT)将起作用RST将产生复位信号,迫使单片机复位。只要满足其一,就将使系统产生复位,迫使程序从起点执行,因此在软件设计方案中必须区分开上电复位、故障复位启动这两种情况,分别处理。其程序框图如图3-5所示SET_DOG:MOVB,A;存入BMOVA,#10H;设置看门狗定时溢出时间为600msMOVC,ACC.4开始写入数据到ZLG7289AYesNoLED显示数据是否写完?结束图3-4显示程序流程图嵌入式应用软件园,版权所有,请勿转载/销售。-40-MOVB.4,CMOVC,ACC.5MOVB.5,CCLRSCKCLRCSMOVA,#01HMOVA,B;送出状态寄存器内容CLRSCKSETBCSRETDELY1:MOVR5,#4DEL
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 玻璃钢制品检验员岗前核心能力考核试卷含答案
- 纯碱生产工复测知识考核试卷含答案
- 办公设备再制造工岗前工作质量考核试卷含答案
- 野生动物实验辅助工班组评比强化考核试卷含答案
- 2026年药店经营管理规范课件
- 2026年脑卒中患者康复护理课件
- 桥梁巡视养护工安全素养测试考核试卷含答案
- 电力机车钳工5S执行考核试卷含答案
- 绒线编织工技能掌握考核试卷含答案
- 客运计划员操作能力评优考核试卷含答案
- 护理员排痰照护
- 农投集团笔试题库及答案
- 黑龙江邮政易通java面试题及答案
- 2025-2030年中国天然石膏行业深度研究分析报告
- 2013奥迪q7使用说明书
- 郴州市高中分班数学试卷
- 人教版四年级下册数学计算题每日一练带答案(共30天)
- 《分子病理学》课件
- 《人工智能基础第2版》全套教学课件
- 15D501 建筑物防雷设施安装
- 某项目质量创优策划方案课件
评论
0/150
提交评论