《基于51单片机的高精度数字电压表的设计(26页).doc》由会员分享,可在线阅读,更多相关《基于51单片机的高精度数字电压表的设计(26页).doc(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-基于51单片机的高精度数字电压表的设计-第 26 页基于51单片机的高精度数字电压表的设计摘要:随着电子科学技术的发展,电子测量成为广大电子工作者必须掌握的手段,对测量的精度和功能的要求也越来越高,而电压的测量甚为突出,因为电压的测量最为普遍1。本文介绍一种基于STC89C51单片机的一种电压测量电路。该电路采用高精度、双积分A/D转换电路ICL7135,测量范围为直流0-+5伏,使用LED数码管显示。论文简单介绍了双积分电路的原理、STC89C51的特点、ICL7135的功能和应用,重点描述了高精度数字电压表的设计思想,分析了软、硬件各部分电路的工作原理、设计过程和调试过程,最后给出详细的
2、测试数据并且进行了分析。关键词:电压测量;STC89C51;ICL7135;高精度 Abstract: Along with the electronic science technologys development, the method which the electronic surveying into general electron worker must grasp, is also getting higher and higher to the survey precision and the function request, but the voltage survey
3、 is prominent really, because voltage survey most universal 1. This article introduced that one kind based on the STC89C51 monolithic integrated circuits one kind of voltage measurement electric circuit, this electric circuit uses the ICL7135 high accuracy, the double integral A/D switching circuit,
4、 the measuring range directs current 0-+5 volts, uses the LED nixietube to demonstrate. The main text has given software and hardware systems various part of electric circuits emphatically, introduced the dyadic power distribution roads principle, the STC89C51 characteristic, the ICL7135 function an
5、d the application.Keywords: Voltage measurement; STC89C51; ICL7135; double integral A / D converter 序言在电量的测量中,电压、电流和频率是最基本的三个被测量,其中电压量的测量最为经常。而且随着电子技术的发展,更是经常需要测量高精度的电压,所以数字电压表就成为一种必不可少的测量仪器1。数字电压表(Digital Voltmeter)简称DVM,它是采用数字化测量技术,把连续的模拟量(直流或交流输入电压)转换成不连续、离散的数字形式并加以显示的仪表1。传统的实验用模拟电压表功能单一、精度低、体积大,
6、且存在读数时的视差,长时间连续使用易引起视觉疲劳,使用中存在诸多不便。而目前数字万用表的内部核心多是模数转换器,其精度很大程度上限制了整个表的准确度,可靠性较差。而数字式仪器具有读数准确方便、精度高、误差小、灵敏度高和分辨率高、测量速度快等特点而倍受青睐。目前,由各种单片A/D 转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出强大的生命力2。与此同时,由DVM扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新水平2。本文介绍一种基于STC89C51单片机的一种电压测量电路,该电路采用ICL7135高精度、双积分A/D转
7、换电路,使用LED数码管显示。目 录第一章 设计任务5 1.1功能5 1.2技术指标5第二章 设计思路62.1方案确定62.2设计框图7第三章 硬件设计93.1A/D转换电路9 3.1.1双积A/D 转换器的工作原理9 3.1.2 A/D转换电路主要构造10 3.2控制部分的设计 183.2.1 STC89C51单片机的结构 183.2.2 STC89C51单片机最小系统19 3.3 显示部分的设计203.3.1显示电路原理图 203.3.2 LED显示器接口原理21第四章 系统软件设计244.1软件总体设计思路及结构 244.2软件流程图 24 4.2.1.定时器1中断服务程序 254.2.
8、2数据处理程序264.2.3显示程序26第五章安装与调试 275.1 安装和调试工具 275.2硬件的调试 275.3软件的调试 285.4 设计中遇到的问题 285.5数据分析 28总结 30参考文献31致谢32附录 33 附录一 电路元件清单 33附录二 高精度数字电压表电路原理图 34附录三 程序清单36第一章 设计任务1.1 功能1.总的工作功能本设计的任务: 设计一个高精度数字电压表,其测量范围为0-5V直流电压,最小分辨率0.001V,精度不低于1%,测量结果数字显示。2.原理框图及各部分的功能(1)电源:给各模块提供所需的电压。(2)A/D转换:将输入模拟电压转换成数字信号,并将
9、其送给控制、处理电路。(3)控制、处理系统:采集A/D转换器传过来的信号进行相应的处理,送往显示部分;(4)显示电路:将数字信号显示出来。显示电路控制、处理系统AD转换图1-1总体框图1.2 技术指标1. 测量电压范围:0-5V的直流电压;2. 最小分辨率0.001V;3. 显示要清晰稳定。第二章 设计思路(设计方案论证)2.1方案确定1.电源方案(1)利用78、79系列三端固定正、负稳压器来实现稳压并提供给所需芯片所需电压,这一系列有固定的电压输出,应用广泛。每种类型由于内部电流的限制,以及过热保护和安全工作区的保护,使它基本上不会损坏。(2)使用实验室里的双稳压电源,虽然精度得到保证,但不
10、是很方便。通过比较,选用 实现?V电源2.A/D转换方案(1)积分型(如ICL7135)5 积分型AD工作原理是将输入电压转换成时间(脉冲宽度信号)或频率(脉冲频率),然后由定时器/计数器获得数字值。其优点是用简单电路就能获得高分辨率,成本低廉,非常适合现在所需。(2)逐次比较型(如TLC0831)4 逐次比较型AD由一个比较器和DA转换器通过逐次比较逻辑构成,从MSB开始,顺序地对每一位将输入电压与内置DA转换器输出进行比较,经n次比较而输出 数字值。其电路规模属于中等。其优点是速度较高、功耗低,在低分辩率(12位)时价格很高。(3)压频变换型(如AD650)3 压频变换型(Voltage-
11、Frequency Converter)是通过间接转换方式实现模数转换的。其原理是首先将输入的模拟信号转换成频率,然 后用计数器将频率转换成数字量。从理论上讲这种A/D的分辨率几乎可以无限增加,只要采样的时间能够满足输出频率分辨率要求的累积脉冲个数的宽度。其优点是 分辩率高、功耗低、价格低,但是需要外部计数电路共同完成AD转换。选用3. 控制和处理系统方案(1)利用STC89C51来实现控制和处理,它功能强,速度快,寿命长,价格低。(2)利用ARM技术来实现控制和处理,ARM的RISC体系结构的发展中已经提供了低功耗、小体积、高性能的方案。而为了解决代码长度的问题,ARM体系结构又增加了变种,
12、开发了一种新的指令体系,这就是Thumb指令集,它是ARM技术的一大特色,但是价格昂贵。4.显示电路(1)八段LED数码管来显示电压结果,价格廉价。(2)LCD液晶显示,液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用,但价格昂贵。选用综上所述电源部分我选取的是78、79系列三端固定正、负稳压器,A/D转换选取的是ICL7135双积分AD,控制、处理系统选用的是STC89C51,显示部分选用的是八段LED数码管,此方案既能完成预定目标,材料费又比较低廉。2.2设计框图1.设计过程框图如图2-1图2-1 设计过程框图2.电路原理框
13、图如图2-2如图2.2所示,模拟电压送到ICL7135进行A/D转换,然后送到单片机中进行数据处理。处理后的数据送到数码管中显示。LM317和7905(和前面不符)分别提供正负电压给ICL7135工作所需电压,TL431提供基准电压。(更详细叙述) 图2-2 原理框图第三章 硬件设计3.1 A/D转换电路A/D 转换器的转换精度对测量电路极其重要,它的参数关系到测量电路性能。本设计采用双积A/D 转换器ICL7135,它的性能比较稳定,转换精度高,具有很高的抗干扰能力,电路结构简单,其缺点是工作速度较低。在对转换精度要求较高,而对转换速度要求不高的场合如电压测量有广泛的应用。3.1.1双积A/
14、D 转换器的工作原理10图3-1双积A/D 转换器如图3-1所示:对输入模拟电压和基准电压进行两次积分,先对输入模拟电压进行积分,将其变换成与输入模拟电压成正比的时间间隔 T1,再利用计数器测出此时间间隔,则计数器所计的数字量就正比于输入的模拟电压;接着对基准电压进行同样的处理,在常用的A/D转换芯片(如ADC -0809、ICL7135、ICL7109等)中,ICL7135与其余几种有所不同,它是一种四位半的双积分A/D 图3-2双积A/D 转换器的波形转换器,具有精度高(精度相当于14位二进制数)、价格低廉、抗干扰能力强等优点。波形如图3-2所示。3.1.2 A/D转换电路主要构造(的组成
15、及各集成电路功能介绍)AD转换电路主要由ICL7135、LM317、TL431、LM358、74LS74等芯片及其它器件构成。电路如图3-3所示。图3-3AD转换电路原理图1ICL7135的应用11(没有应用)ICL7135引脚如3-4所示3-4 ICL7135引脚图ICL7135是采用CMOS工艺制作的单片4位半A/D转换器,其所转换的数字值以多工扫描的方式输出,只要附加译码器,数码显示器,驱动器及电阻电容等元件,就可组成一个满量程为5V的数字电压表。(1)ICL 7135主要特点如下:(序号不连续)a.双积型A/D转换器,转换速度慢b.在每次A/D转换前,内部电路都自动进行调零操作,可保证
16、零点在常温下的长期稳定。在20000字(2V满量程)范围内,保证转换精度1字相当于14bitA/D转换器。c.具有自动极性转换功能。能在但极性参考电压下对双极性模拟输入电压进行A/D转换,模拟电压的范围为04.9999V。 d.模拟出入可以是差动信号,输入电阻极高,输入电流典型值1PA。 e.所有输出端和TTL电路相容。 f.有过量程(OR)和欠量程(UR)标志信号输出,可用作自动量程转换的控制信号。 g.输出为动态扫描BCD码。 h.对外提供六个输入,输出控制信号(R/H,BUSH,ST,POL,OR,UR),因此除用于数字电压表外,还能与异步接收 /发送器,微处理器或其它控制电路连接使用。
17、 i.采用28外引线双列直插式封装,外引线功能端排列如图所示。 (2)ICL7135数字部分数字部分主要由计数器、锁存器、多路开关及控制逻辑电路等组成。ICL7135一次A/D转换周期分为四个阶段:a、自动调零(AZ);b、被测电压积分(INT);c、基准电压反积分(DE);d、积分回零(ZI),主要介绍引脚的使用。(a)R/H(25脚)当R/H=“1”(该端悬空时为“1”)时,ICL7135处于连续转换状态,每40002个时钟周期完成一次A/D转换,图3-5所示。若R/H由“1”变“0”,则ICL7135在完成本次A/D转换后进入保持状态,此时输出为最后一次转换结果,不受输入电压变化的影响。
18、因此利用R/H端的功能可以使数据有保持功能。若把R/H端用作启动功能时,只要在该端输入一个正脉冲(宽度300ns),转换器就从AZ阶段开始进行A/D转换。注意:第一次转换周期中的AZ阶段时间为9001-10001个时钟脉冲,这是由于启动脉冲和内部计数器状态不同步造成的。(b)/ST(26脚)每次A/D转换周期结束后,ST端都输出5个负脉冲,其输出时间对应在每个周期开始时的5个位选信号正脉冲的中间,ST负脉冲宽度等于1/2时钟周期。图3-5 ICL7135的波形图第一个ST负脉冲在上次转换周期结束后101个时钟周期产生。因为每个选信号(D5-D1)的正脉冲宽度为200个时钟周期(只有AZ和DE阶
19、段开始时的第一个D5的脉冲宽度为201个CLK 周期),所以ST负脉冲之间相隔也是200个时钟周期。需要注意的是,若上一周期为保持状态(R/H=“0”)则ST无脉冲信号输出。ST信号主要用来控制将转换结果向外部锁存器、UARTs或微处理器进行传送。(c)BUSY(21脚)在双积分阶段(INT+DE),BUSY为高电平,其余时为低电平。因此利用BUSY功能,可以实现A/D转换结果的远距离双线传送,其还原方法是将BUSY和CLK“与”后来计数器,再减去10001就可得到原来的转换结果。(d)OR(27脚)当输入电压超出量程范围(20000),OR将会变高。该信号在BUSY信号结束时变高。在DE阶段
20、开始时变低。(e)UR(28脚)当输入电压等于或低于满量程的9%(读数为1800),则一当BUST信号结束,UR将会变高。该信号在INT阶段开始时变低。(f)POL(23脚)该信号用来指示输入电压的极性。当输入电压为正,则POL等于“1”,反之则等于“0”。该信号DE阶段开始时变化,并维持一个A/D转换调期。(g)位驱动信号D5、D4、D3、D2、D1(12、17、18、19、20脚)每一位驱动信号分别输出一个正脉冲信号,脉冲宽度为200个时钟周期,其中D5对应万位选通,以下依次为千、百、十、个位。在正常输入情况下,D5-D1输出连续脉冲。当输入电压过量程时,D5-D1在AZ阶段开始时只分别输
21、出一个脉冲,然后都处于低电平,直至DE阶段开始时才输出连续脉冲。利用这个特性,可使得显示器件在过程时产生一亮一暗的直观现象。 (h)B8、B4、B2、B1(16、15、14、13脚)该四端为转换结果BCD码输出,采用动态扫描输出方式,即当位选信号D5=“1”时,该四端的信号为万位数的内容,D4=“1”时为千位数内容,其余依次类推。在个、十、百、千四位数的内容输出时,BCD码范围为0000-1001,对于万位数只有0和1两种状态,所以其输出的BCD码为“0000”和“0001”。当输入电压过量程时,各位数输出全部为零,这一点在使用时应注意。 最后还要说明一点,由于数字部分以DGNG端作为接地端,
22、所以所有输出端输出电平以DGNG作为相对参考点。基准电压,基准电压的输入必须对于模拟公共端COM是正电压。 2.LM3174的介绍LM317是美国国家半导体公司的三端可调稳压器集成电路。国内和世界各大集成电路生产商均有同类产品可供选用,是使用极为广泛的一类串连集成稳压器。LM317 的输出电压范围是1.2V 至37V,负载电流最大为1.5A。它的使用非常简单,仅需两个外接电阻来设置输出电压。此外它的线性调整率和负载调整率也比标准的固定稳压器好。LM317 内置有过载保护、安全区保护等多种保护电路。通常LM317 不需要外接电容,除非输入滤波电容到 LM317 输入端的连线超过6 英寸(约 15
23、 厘米)。使用输出电容能改变瞬态响应。调整端使用滤波电容能得到比标准三端稳压器高的多的纹波抑制比。LM317 能够有许多特殊的用法。比如把调整端悬浮到一个较高的电压上,可以用来调节高达数百伏的电压,只要输入输出压差不超过 LM317 的极限就行。当然还要避免输出端短路。还可以把调整端接到一个可编程电压上,实现可编程的电源输出。LM317塑料封装外壳如图3-6所示。3-6 封装外壳它主要特性:(1)可调整输出电压低到1.2V。(2)保证1.5A 输出电流。(3)典型线性调整率0.01%。(4)典型负载调整率0.1%。(5)80dB纹波抑制比。(6)输出短路保护。(7)过流、过热保护。(8)调整管
24、安全工作区保护。(9)标准三端晶体管封装。 (10)1.25V 至 37V 连续可调。3.TL4314的功能(介绍)与应用TL431,A、B集成电路是三端可编程并联稳压二极管。这些单片集成电路电压基准如同低温度系数齐纳管一样运行,通过2个外部电阻可从Vref编程至36V。这些器件显示出宽工作电流范围,在典型动态电阻0.22欧姆时为1.0 mA至100mA。这些基准的特性使他们能在数字电压表、电源和运放电路等许多应用中代替齐纳二极管。2.5V参考从5.0V逻辑电源可方便地获得稳定参考电压。由于TL431,A、B工作方式为并联稳压器,所以可以用作正压或负压参考。TL431塑料封装外壳如图3-7所示
25、。图3-7塑料封装外壳及符号管脚1.参考 2.阳极 3.阴极(1) 可编程输出电压,达36V。(2) 电压参考源误差:典型+/-0.4%25摄氏度。(3) 低动态输出阻抗,典型为0.22欧姆。(4) 1.0 mA至100 mA的灌电流能力。(5) 典型值为50PPM/摄氏度的等效全范围温度系数。(6) 在整个额定工作温度范围内可进行工作温度补偿。(7) 低输出噪声电压。 TL431为用于多方面的可编程精密参考。在需要非标准参考电压的电路中它可作为参考电压。其它用途包括驱动电压监视器、恒流源、横流宿、串联稳压器和电源中的光耦合器的反馈控制。在每一项上述应用中在各种工作电流和负载电容情况下保持器件
26、的稳定性相当关键。有些情况下,电路设计者可以从图 3-8 提供的稳定性边界条件曲线估计出稳定电容。然而这些曲线仅提供在指定阴极电压和指定负载条件下的稳定性信息。需要更多的信息以确定优化相位余量或允许处理偏差所需的电容。图3-8稳定性边界条件4.LM3583的功能介绍 LM358内部包括有两个独立的、高增益、内部频率补偿的双运算放大器, 适合于电源电压范围很宽的单电源使用,也适用于双电源工作模式,在推荐的工作条件下,电源电流与 电源电压无关。它的使用范围包括传感放大器、直流增益模组,音频放大器、工业控制、DC增益部件和其他所有可用单电源供电的使用运算放大器的场合。 LM358的封装形式有塑封8引
27、线双列直插式和贴片式,内部结构图如图3-9所示。 图3-9 LM358内部结构LM358有以下几个特性:(1) 内部频率补偿。(2) 直流电压增益高(约100dB) 。(3) 单位增益频带宽(约1MHz) 。(4) 电源电压范围宽:单电源(330V);双电源(1.5一15V) 。(5) 低功耗电流,适合于电池供电。(6) 低输入偏流。(7) 低输入失调电压和失调电流。(8) 共模输入电压范围宽,包括接地。 (9) 差模输入电压范围宽,等于电源电压范围。5.74LS749功能介绍74LS74是一个边沿触发器数字电路器件,每个器件中包含两个相同的、相互独立的边沿触发D触发器电路模块。如图3-10所
28、示。3-1074LS74内部逻辑图3.2 控制部分的设计3.2.1 STC89C51单片机的结构8 1.STC89C51结构框图内部中断中断控制 外部中断 CPU OSCE()A() ALE P()S()E()N()程序存贮器4K字节 ROM总线控制 P0 P1 P2 P3 数据存贮器128字节 RAM 48 I/O口TXD RXD 串行口外部计数脉冲定时器1定时器0 STC89C51内部结构框图如图3-11。图3-12 STC89C51引脚图图3-11 STC89C51内部结构框图2.引脚功能说明14 STC89C51是双列制插封装形式的器件,其引脚图如图3-12所示。 STC89C51的引
29、脚P00P07、P10P17、P20P27、P30P37为四个8位并行输入/输出口,其中P3口、P0口、P2口为双功能口,可以作为普通输入/输出口(第一功能),也可以作为特殊输入/输出口。RST为复位输入线,ALE、P()S()E()N()、E()A()为系统扩展控制线,XTAL1和XTAL2为时钟电路输入/输出线,VCC、VSS为电源输入线,一般接5V和地。3.2.2 STC89C51单片机最小系统7最小系统包括单片机的基本供电、时钟电路和复位电路。1.时钟和时钟电路 时钟电路是计算机的心脏,它控制着计算机的工作节奏。STC89C51单片允许的时钟频率的典型值12MHZ,也可以是6MHZ。本
30、设计采用12MHZ。单片机时钟电路图如图3-13 图3-13 单片机时钟电路 图3-13中晶振频率选择12MHZ。接到晶振两端的瓷片电容作用是使振荡器起振和对f 微调补偿,典型值为30PF,本设计中选用20PF瓷片电容。当单片机加电以后延迟约10ms的时间振荡器起振产生时钟,不受软件控制(XTAL2输出幅度为3V左右的正弦波。2.复位和复位电路计算机在启动运行时都需要复位,使中央处理器CPU和系统中的其它部件都处于一个确定的初始状态,并从这个状态开始工作。单片机的复位引脚是RST,当振荡器起振后,该引脚上出现2个周期的高电平,是器件复位,只要RST保持高电平,单片机保持复位状态。单片机复位方式
31、有二种:上电复位(如图3-14)、人工复位(如图3-15)。 图3-14 上电复位电路 图3-15 上电复位和开关复位注:RST与Vss之间的那个电阻在NMOS型单片机种需要接,但是在CMOS型单片机中不接。其中电容一般为10UF的电解电容。3.STC89C51单片机最小系统连接原理图 本设计的STC89C51单片机最小系统原理图6如图3-16图3-16 STC89C51最小系统连接原理图(说明外界元器件的值以及作用)。3.3 显示部分的设计3.3.1显示电路原理图如图3-17所示 图3-17 显示电路原理图该显示部分电路原理图用9012PNP型三极管来驱动共阳极LED数码管。数码管的abcd
32、efg接单片机的I/O口P0.0-P0.7,控制P0.0-P0.7的高低电平(0或1)来控制LED数码管的字型。如数码管是共阳的,当P0.0-P0.7(即a,b,c,d,e,f)为低电平,g为高电平时,显示器显示“0”。对于数码管的COM脚(共阳数码管)应接高电平(即“1”),在此次设计中用9012PNP型三极管来控制三极管的导通,关断来控制COM端的高低电平,而控制三极管的导通,关断是由三极管的基极接单片机I/O口(P2.0-P2.3)来控制的。若P2.0送低电平0,三极管T1则导通,再配合P0.0-P0.7送出的字型码,便可在数码管上显示相应的字样。若P.0送低电平1,三极管T1则关断,数
33、码管即灭。显示部分通过此原理来工作。3.3.2 LED显示器接口原理6 LED(Light Emitting Diode)是发光二极管的缩写。LED显示器是由发光二极管构成的。LED显示器在单片机中的应用非常普遍。1LED显示器的结构如图3-18所示(a) 外形 (b)共阳极 (c)共阴极图3-18 七段发光显示器的结构 常用的LED显示器为8段(或7段,8段比7段多了一个小数点“dip”段)。每一个段对应一个发光二极管。这种显示器有共阴极和共阳极两种,如图3-17所示。共阴极LED显示器的发光二极管的阴极连结在一起,通常此公共阴极接地。当某个发光二极管的阳极为高电平时,发光二极管点亮,相应的
34、段被显示。同样,共阳极LED显示器的发光二极管的阳极连结在一起,通常此公共阳极接正电压,当某个发光二极管的阳极为低电平时,发光二极管点亮,相应的段被显示11。为了使LED显示器显示不同的符号或数字,就要把不同段的发光二极管点亮,这样就要为LED显示器提供代码,因为这些代码可使LED相应的段发光,从而显示不同的字型,因此该代码称之为段码(或字型码)。7段发光二极管,再加上一个小数点位,共计8段。因此提供给LED显示器的字型码正好是一个字节。各段与字节中的各位对应的关系如表3-1。表3-1 显示段与代码位的对应关系表代码位D7D6D5D4D3D2D1D0显示段dipgfedcba按照表3-1格式,
35、8段LED显示器的字型码如表3-2所示。表3-2 8段LED显示器部分字型码显示字符共阴极段码共阳极段码显示字符共阴极段码共阳极段码03FHC0H67DH82H106HF9H707HF8H25BHA4H87FH80H34FHB0H96FH90H466H99H“灭”00H88H56DH92H注:段码是相对的,它由个字段在字节中所处的位决定。应根据实际情况确定,以上表格用来参考。2.LED显示器工作原理 LED显示器有静态显示和动态显示两种显示方式。 (1)LED静态显示方式7所谓静态显示,就是当显示器显示某一个字符时,相应的发光二极管恒定地导通或截止。这种显示方式的每一个8段显示器需要一个8位输
36、出口控制。如图3-19用STC89C51单片机控制LED静态显示方式接口4.7K排阻STC89C51图3-19 用STC89C51单片机控制LED静态显示方式接口(2)LED动态显示方式所谓的动态显示,就是一位一位地轮流点亮各位显示器(扫描)。在多位LED显示时,为简化硬件电路,节省I/O口资源,通常将所有位的段码线相应的并联在一起,由一个8位I/O口控制,而各位的共阳极或共阴极分别由相应的I/O线控制,形成各位的分时选通。如图3-20用STC89C51单片机控制LED动态显示方式接口图3-20用STC89C51单片机控制LED动态显示方式接口说明本设计选择什么方式第四章 系统软件设计4.1软
37、件总体设计思路及结构7该程序由一个主程序及五个子程序所组成,子程序中包括:中断程序、显示程序、数据处理程序及延时程序。如图4-1所示主程序中断程序数据处理程序显示程序延时程序图4-1 软件结构图中断程序是处理中断信号,当中断信号没有来得时候,那么会去处理其它指令,而当中断信号到来,它会暂时搁下现在正在处理的指令,而去处理中断指令;数据处理程序是将所需的数据转换成数码管显示的字型码送给显示程序显示;显示程序是将最终的放大倍数通过数码管显示出来。4.2软件流程图知道了软件的总体结构,下面一步便是完成软件流程图的设计,根据流程图便可以编写程序了。本次的程序采用C语言编写12。图4-2为软件主流程图。
38、初始化将测量值转换为十进制拆为非压缩BCD码调用显示子程序图4-1主程序流程图4.2.1.定时器1中断服务程序重设TH1、TL1读TH0、TL0清零TH0、TL0返回相关程序如下所示void rec(void) interrupt 0 m=(TH0*256+TL0-20000)/8; TH0=0x00; TL0=0x00;4.2.2数据处理程序数据处理程序是将所需的数据转换成数码管显示的字型码送给显示程序显示。相关程序如下所示void bcd(void)buf3=(m/1000)%10; buf2=(m/100)%10; buf1=(m/10)%10; buf0=m%10;4.2.3显示程序单
39、片机需要将信号送到输出端显示出来,即单片机通过显示子程序将信息送到显示电路显示出来。在编写此数码管动态显示程序时,应根据电路的具体接法先建立一个字形段码表TAB,表中存放所能显示的字形段码。而在区开辟一个显示缓冲区,它对应各位数码管0-9要显示的内容。当需要显示程序或更新显示内容时,先向缓冲区存入要显示的内容,再调用显示子程序。相关程序如下所示:void disp(void) uint i; for(i=0;i4;i+) P2|=0x0f; P0=tabbufi; P2&=btabi; if(i=3) P0&=0x7f;第五章安装与调试5.1 安装和调试工具一.安装工具 1.电烙铁 2.焊锡丝
40、 3.锡枪 4.钳子等二.调试工具 1.电脑2.仿真机3.电源 4.MF47型万用表 5.焊接工具一套5.2硬件的调试在按照设计搭建好电路板后,要对各部电路进行一系列的调试工作。对于硬件调试,在通电前应检查电路板上元器件及连线是否接错,电容极性是否正确,检查有无短路、虚焊、错焊、漏焊等情况,测量核实电源电压的数值和极性是否正确。只有这样,才能提高调试效率、保障调试顺利进行、减少不必要的麻烦。通电后观察有无异常气味,各种调试仪器是否正常。如发现异常现象,应立即断电。在此上都没有错误的情况下方可进行软件的调试。当硬件出现问题时,应该首先按单元电路功能依次进行调试。直至各部分电均符合技术文件规定的指
41、标为止。然后再进行整机调试。各主要元件极性与好坏判断如下:1.电容极性与好坏检测:如果电容无符号,则先将电容短路放电,再将两引线做好A、B标记,万用表置R100或R1k挡,黑表笔接A引线,红表笔接B引线,待指针静止不动后读数,测完后短路放电;再将黑表笔接B引线,红表笔接A引线,比较两次读数,阻值较大的一次黑表笔所接为正极,红表笔所接为负极。本次使用的是有符号的,要检测其好坏只要用万用表置R100或R1k挡,看其有无放电现象,没有放电现象则电容是坏的,放电过快则可能是电容漏电,反之电容是好的。2.数码管好坏的检测:由于本次实验使用的是共阳极数码管,所以以共阳极数码管为例,先将万用表置R10k或R
42、l00k挡,然后将红表笔与数码管的“地”引出端相连,黑表笔依次接数码管其他引出端,七段均应分别发光,否则说明数码管损坏。共阴极数码管则把红黑表笔颠倒即可,其他检测方法类似。3.晶振的好坏判断:先用万用表(R10k挡)测晶振两端的电阻值,若为无穷大,说明晶振电路无短路或漏电;再将试电笔插入试电插孔内,用手指捏住晶振的任一引脚,将另一引脚碰触试电笔顶端的金属部分,若试电笔氖泡发红,说明晶振是好的;若氖泡不亮,则说明晶振损坏。5.3软件的调试软件测试需要遵循,先整体,再分步,再整体的原则。也就是首先要对整体进行编写测试,如果有问题,则一步一步执行,一步一步检查。比如:显示程序,一步一步进行排查。最后再联系起来总体调试,这样提高了检查效率,增加了成功率。5.4 设计中遇到的问题(加强)虽然设计完成了基本任务,但是,在本次设计过程中出现的问题有许多,主要有以下几点:1. 由于数字电位器属于精度仪器,其精度是最主要的一项技术指标,刚开始测量时,精度不是很高,误差较大,经过分析得知原因是有些电容选择不当,经过不断的换电容与调试,最终解决了这项弊端。2. 由于数码管的动态连接。因为动态连接时需要连接的脚比较多也比较紧,所以在焊接的时候要特别的小心,不能焊接错误。我在焊接时就发生了类似的错误,没有把数码管的公共端和单片机的接口一对一的连接起来,然后在数码管调试的时候发生了数码位置混乱的情况