




已阅读5页,还剩39页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数字显示仪摘要通常数字显示仪只能接单一的传感器信号,通过分立元件构成的硬件电路进行线性处理、放大,然后经过a/d转换器,送显示器显示;若接另一传感器信号,则进行线性处理和放大电路的更换。这种情况,对应每一传感器都要备相应的仪表,相互之间不能互换,既对管理工作带来麻烦,又造成资金浪费。本设计用mcs-51系列单片机为核心来制作数字显示仪,详细分析了标准信号和各种传感器信号的输入电路、运算放大器lm324、a/d转换、单片机线性化处理等的实现过程,然后送led数码管显示。该数字显示仪能满足电流信号010ma、420ma,热电偶信号,pt100热电阻信号的测量要求。 关键词:单片机 lm324 a/d转换 数字显示仪 abstractthe usually digital meter can only accept a sort of the sensor signal. in the meter, the hardware electric circuit consisted of the separately element carry on non-linear processing enlargement, then a/d finally shows the numbers. if meet to show another sort of the sensor signal, the non-linear processing and the enlargement electric circuit must be replaced. such situation, corresponding each kind of sensor have to prepare the corresponding digital meter, cannot exchange each other, it brings the trouble to the management work, and also bring waste. this design uses mcs-51 to design a new digital meter. it gives the realization of input circuit on the standard current signal and all kinds of temperature sensors, amplifiers lm324, a/d transformation, software linearization processing and delivers the led to demonstrate various parameters. the digital meter can satisfy standard signal 0 10ma, 4 20ma, the thermo-element signal, the pt100 thermal resistance signal survey request.keywords: single-chip lm324 a/d digital meter目录第一章 课题概述11.1 仪器/仪表国内外发展概况11.2 课题设计的内容2第二章 硬件的总体设计32.1 硬件设计概述32.2 硬件电路图及工作过程介绍42.3 运算放大电路52.4 a/d转换电路102.5 x25045多功能串行eeprom142.6 电路核心部分的设计152.7 数字显示电路182.8 键盘部分20第三章 软件的设计233.1 软件系统的总体设计233.2 软件的整体程序流程233.3 x25045的读写程序293.4 数据采集信号的设计323.5 软件的线性化处理32第四章 电路的调试334.1 硬件电路的调试334.2 程序编写以及调试344.3 调试结果分析35第五章 总 结38参考文献39附 录40致 谢5741第一章 课题概述数字显示仪是测量仪表发展较快的一个领域,它有显示直观、易读的优点,正得到广泛的应用。根据数字显示仪的现状,迫切地需要一种能进行多种参数测量的数字显示仪。近年来,显示逐渐向数字化显示迈进。数字显示仪表测量精度高,稳定性好,功耗低,抗震性强,这此都是动圈式指示仪表所不具有的。在数字显示仪表中,采用的是先进的cmos大规模集成电路,且大多数采用led数字显示,因此,仪表线路简单,结构合理,性能稳定可靠,使用简便,维护方便。由于数字显示仪表采用了大规模集成电路,解决了运算放大、非线性校正、温漂、零漂等关键性问题,a/d转换集成电路实现了模拟量与数字量之间的转换,从而使仪表达到较高的技术指标,所以,数字显示仪表跨出了动圈式仪表的局限,上一个大台阶。随着电子技术的迅速发展和超大规模集成电路的出现,特别是单片机的出现,正是引起测量、控制仪表领域新的技术革命。1而本设计正是采用了mcs-51系列单片机为核心组成的数字显示仪。它克服了以往产品体积大,功能单一的缺点。1.1 仪器/仪表国内外发展概况仪器/仪表是计算机技术向测量仪器移植的产物。是含有微计算机或微处理器的测量仪器。由于它拥有对数据的存储、运算、逻辑判断等功能,这一观点也逐渐得到国内外学术界所接受。如我国电磁测量信息处理仪器学会于1984年正式成立“自动测试与智能仪器专业学组”,1986年imeco(international measurement confederation,国际测量联合会)以“智能仪器”为主题召开了专门的讨论会,ifac(international federation of automatic control,国际自动控制联合会)1988年理事会正式确立“智能元件及仪器”(intelligent components and instruments)(tc25)(c&i)为系列学术委员会之一。此外,1989年5月在我国武汉召开了第一届测试技术与智能仪器国际学术讨论会(ismt ii89)。近20年来,仪器/仪表与微计算机取得了令人瞩目的进展,就其技术背景而言,硬件的不断发展及创新不能不说是一个非常重要的因素。1.2 课题设计的内容在设计数字显示仪的过程中,着重进行了以下两个方面的设计工作:硬件和软件两方面的设计。硬件方面用一块集成的四运算放大器lm324完成电路的放大,用12位串行a/d转换芯片tlc2543完成模数转换,用一块八段四位led进行显示。在软件设计方面,通过单片机在固定周期内对脉冲信号计数和计算,同时完成线性化处理。第二章 硬件的总体设计2.1 硬件设计概述数字显示仪采用美国atmel公司的at89c52作为核心部份,该设计主要由多路输入端口输入信号,低通滤波、四运算放大器lm324、12位串行a/d转换、显示等几个功能模块组成。电流信号010ma、420mapt100热电阻热电偶低通滤波低通滤波低通滤波运算放大器12位串行的a/d转换单运放大器初始化设置键分析运 算按键x25045 eepromled显示89单片机图2-1硬件原理框图本仪表需要多个输入通道,其中为各路外路信号输入端,前置运算放大器组成放大电路,可分别接入电流信号010ma、420ma,热电偶信号,pt100热电阻信号。由单片机在固定时间内对脉冲信号进行计算,从而完成a/d转换的功能,再由单片机对a/d转换的结果进行标度变换,得到被测的数值(bcd码),通过单片机驱动led数码管显示结果。2.2 硬件电路图及工作过程介绍数字显示仪的硬件电路设计的一个核心部份是模拟信号的输入,模拟信号(电流、热电偶、热电阻)运算放大器进行放大后输出到tlc2543,转换为与模拟信号成正比的数字信号,用这种方法可以保证a/d转换的精度,提高了性能价格比。数字显示采用一块八段四位的led数码管,由单片机以动态扫描方式驱动,在此方式下能保证足够的亮度和较长的使用寿命。作为数字显示仪设计的另一核心部分,采用12位串行的tlc2543转换的方法实现a/d转换,经实践检验,其能满足精度高的要求,取得了满意的效果。2.2.1 输入信号由于输入参数众多,可将其分为3类信号。即热电偶信号,电流信号(010ma、420ma),热电阻信号(pt100、cu100、cu50)。热电偶信号从两个输入端子输入;电流信号从另外两个端子输入;各分度号的热电阻采用电桥法,在显示仪的电路板上有一个100的可调电位器,调节它的大小可以使电桥达到平衡,利用硬件电路tlc431产生2.495v的恒压源,从而将电阻值的变化转化为电压的变化。2.2.2数据采集模块由于lm324的输出脉冲与输入电压数值成正比,当被测电压变化时,lm324的脉冲频率线性变化。数字显示仪的量程可以手动设置,在200毫秒内对lm324输出脉冲进行计数, 用12位串行的a/d转换为数字量。在工业过程控制系统中,由于被控对象的环境比较恶劣,干扰源比较大,如环境温度、电场、磁场等,所以在模拟系统中,为了消除干扰,常采用rc滤波电路。图2-2为信号采集电路方框图。单片机信号tlc2543时钟基准电压基准cs图2-2 信号采集电路方框图2.3 运算放大电路通常,检测信号的放大采用集成运算放大器。运算放大器可以实现模拟信号的加、减、微分、积分等运算。运算放大器电压增益高,输入阻抗小,根据负反馈的接法,可以实现反相运算和同相运算。由于经传感器变换后的模拟电压信号有时是很微略的微伏级信号,而一般的通用放大器具有毫伏级的失调电压和每度数微伏的温度漂移,显然是不能用于放大微弱信号的。因此在设计中采用四运算放大器lm324,其输出电压为02.495v。2.3.1 热电阻放大电路温度测量热电阻的放大电路如图2-3所示。图2-3为铂热电阻放大电路,把铂热电阻随温度变化的阻值r变换为电压再进行放大的电路。采用阻值=100的100铂金属热电阻为传感器。它有较高的测量精度,并且在较大的温度范围内有很大的线性,测温范围可达-250+640。图2-3 温度测量热电阻放大电路为了把电阻的变化转化为电压的变化。常用转换电路有恒流源供电方式和恒压源供电方式。这里采用tlc431精密电压源的恒压源供电,电桥b点的输出电压2 (2.3.1-1)式(2.3.1-1)中为调位器的某一部份阻值。由图2-3可知,电桥平衡的条件是3 (2.3.1-2)式(2.3.1-2)表明:一对相对桥臂电阻的乘积等于另一对相对桥臂电阻的乘积。当温度变化使热电阻的阻值增大时,电桥的输出电压也会发生变化。调节调位器,使其等于0时的值,则0时电桥输出=0v。 在恒压源供电时,适当选择串联电阻可使传感器非线性和转换电路非线性带来的误差为最小。设在测温范围内,铂热电阻的下限、中点、上限的阻值分别为、,相应c点电压的下限、中点、上限值分别为、,使其满足下式的关系4解得 (2. 3. 1-3)按上式(2.3.1-3)选择参数时,在测温范围的两端点和中点,电桥输出的非线性误差为零;正负最大非线性误差相等。 由图2-3可知,此时单运算放大器741放大倍数其输出电压 (2. 3. 1-4)又由图2-3可知,四运算放大器lm324的放大倍数其输出电压 (2. 3 .1-5)例如,采用阻值=100的100铂热电阻,测量0100的温度, 的0时100,输出为01.0v。其100时为138.5,就可求出随温度变化的r=38.5,用来确定增益的电阻,使其输出电压为38.5mv,输出电压为1.0v。电位器调测量电桥平衡的同时还可以补偿运算放大器741的输入失调电压。用调电位器来对放大倍数等系统参数进行调节,当输入到合适的数值后将其锁定。如果输入不同种类的传感器信号和标准信号,由于它们的最大量程相差甚大,必须采用多套放大器电路,显然增大了硬件成本和设备体积。在该数字显示仪的设计过程中,用四运算放大器lm324来组成放大电路使它能很好的放大到我们所需要的倍数,该运算放大器具有高增益、低漂移、低噪声的特点,而且价格便宜,市场货源充足。2.3.2输入电流的采样电路图2-4为输入电流的采样电路,输入标准信号010ma、420ma。则a点的电压为图2-4输入电流采样电路5由图2-4可知,四运算放大器lm324的放大倍数=其输出电压 (3.3.2-1)如输入4 ma,由式(3.3.2-1)得 =(1+10k/2k)*(4*20)=0.48v。其输出的电压送给后面的a/d转换电路。2.3.3热电偶放大电路热电偶是一种高温测量传感器,它的种类很多,有e,j,k、c,r,s,b等型号。6其中,s型热电偶测温范围为01500,可用于测量加热炉的温度,炉温变化1可使热电偶两端有几十v的电压变化;k型热电偶测温范围为01700,温度变化1,可产生40v左右的电压变化。图2-5所示为本设计实际应用的热电偶测温检测放大电路。7图2-5中,tc为热电偶,其电压输出决定热端与冷端的温度差。热端每变化1,k型热电偶有40v的电位差输出,其灵敏度为v级。采用lm324运算放大组成低漂移前置放大电路,对几十v变化信号测量比较精确,其放大倍数与r205/r203成正比,可根据需要设计。前置放大器的输出为mv级信号,再接四运算放大器lm324的另一组运算放大可将mv级信号放大到需要的幅度0v2.495v。四运算放大器lm324的输出给后面的a/d转换电路。图2-5热电偶放大电路由图2-5可知,四运算放大器lm324的前级放大倍数 其输出电压 (2.3.3-1)又由图2-5可知,四运算放大器lm324的后级放大位数 其输出电压 (2.3.3-2)如输入2.44mv的热电偶信号,则a点电压由式(2.3.3-1)得 =(1+5.1k/510)*2.44mv =26.84 mv又由式(2.3.3-2)得 =(1+8.2k/2k)*26.84mv =0.137v2.4 a/d转换电路a/d转器的主要技术指标有转换精度、转换速度等。选择a/d转换器时,除考虑这两项技术指标外,还应注意满足其输入电压的范围、输出数字的编码,工作温度范围和电压稳定度得寸进等方面的要求,同时a/d转换也是决定测量精度和稳定性的重要环节。8该数字显示仪采用了12串行a/d转换器tlc2543。在模拟信号输入通道之前,都加上了rc滤波电路,可以有效的防止tlc2543的高速a/d转换过程发生跳变,而本设计对速度要求不高,此接法是很有必要的,同时外接tlc431精密电压源提供基准电压2.495v。2.4.1 12位串行a/d转换芯片tlc2543的介绍tlc2543是美国德州ti公司生产的串行a/d转换器。tlc2543a/d转换位数是12位,输入通道达11个,而其国内市场价又仅售五十多元,因此tlc2543的要求高精度,而输入通道又多的a/d转换设计方面很受设计者的青睐。2.4.2 tlc2543的特点(1) 12位分辨率a/d转换器;(2) 在工作温度范围内10s转换时间;(3) 11个模拟输入通道;(4) 3路内置自测试方式;(5) 采样率为66kbps;(6) 线性误差1lsbmax;(7) 有转换结束输出eoc;(8) 具有单、双极性输出;(9) 可编程的msb或lsb前导;(10) 可编程输出数据长度。据ti公司的资料,tlc2543的引脚排列如图2-6。9图2-6 tlc2543的引脚图在20引脚的芯片引脚中:电源引脚为vcc,gnd共2脚。输入通道引脚为ain0ain10共11脚。a/d转换参考电压引脚ref+,ref-共2脚。余下的五个引脚是与单片机作串连通讯的引脚:控制引脚为cs(低电平的效),clk,data in共3脚。转换结束指示引脚为eoc(高电平表示转换完成)1脚。数据输出引脚为data out 1脚。由于采用了串行总线方式,使tlc2543的引脚大大简化,比起可以实现同样功能的并行总线12a/d转换器(如ad574、7109等)来说,引脚和芯片面积都大大减少了。2.4.3 tlc2543的工作原理据ti公司的时序图如图2-7。图2-7 tlc2543的时序图以片选信号cs的电平去分,它的过程可以分为a/d转换周期和i/o周期相互交替进行的两部份。1、 当cs=1时,a/d转换周期此时tlc2543未被选通,其data out脚显高阻态,此时,tlc2543被禁止。这样,为共同使用串行数据总线的其他芯片让出了总线使用权。之所以说这个周期是a/d周期,是因为tlc2543仍在进行着a/d转换,其a/d转换的通道是上一次i/o周期从data in输入信号高4位所确定的通道。2、 当cs=0时,i/o周期之所以说这个周期是i/o周期,是因为对tlc2543来说它既是通过data in脚输入数据,又通过data out脚向外输出数据,因而称这个周期是i/o周期。从时序图可以看到,伴随着clk时钟信号的data in脚在向tlc2543输入的是可编程数据,而通道data out脚输出的是把上一周期已转换完成的a/d数据从该引脚输出。(1)、从data in 引脚输入一个可编程8位数据:、这四位可编程 a/d输入通道(对应于ain 0脚)至 a/d输入通道(对应于ain 10脚 )这四位从00001010变化,便可以让a/d输入通道不断地循环工作,若然不需要那么多通道,只要把程序中循环的中止值减少至所需的通道号即可。、这两位可以编程选择输出数据长度。输出数据长度可选8位、12位、16位,要指出的是tlc2543既然是12位a/d转换器,其转换长度必然是12位,而当,则选择输出数据长度是8位,即只取转换数据的高8位,而舍去低4位,这样做是以降低转换精度以求i/o周期耗时的减少,这种选择方法在实践中较少采用。当,则选择输出数据长度是16位,此时把转换数据12个有效位置于16位数据的高12位,余下的低4位要用0去填充,这种数据长度的选择方法在实际是较多采用。位是输出数据格式选择位,当,则让msb先从data out输出,然后再让lsb从data out输出;当,则反之。多数使用前者。位是转换结果单/双极性表示选择位,当,则转换结果为单极性表示,当,则转换结果为双极性(即补码形式)表示。多数使用前者。从时序图可知,上述的8位可编程数据是从i/o周期的第1个clk开始便从一位接一位与clk信号上升沿同步地输入tlc2543的输入寄存器。这个8位数据特别是通道号数据将对下一个a/d转换周期的待转换通道号做出规定。从第5个clk开始,tlc2543的多通道选择器(即多路模拟开头)便根据本次i/o周期的输入数据去选择多通道模拟开头的位置。(2)、data out脚输出一个a/d转换数据以输出数据长度取16位为例,即设输入数据,这时i/o周期要占用16个clk,再设,从时序图可知,a/d转换的16位数据(包括前12位有效数据和后4位补0位)将从位开始与第一个clk时钟同步地从data out脚一位接一位地输出。2.5 x25045多功能串行eepromx25045把三种常用的功能:看门狗定时器,电压监控和eeprom集成在单个封装之内。这种组合降低成本并减少了对电路板的空间要求。p1.689c52 p1.7p0.0p1.5resetso vccsck x25045 si reset vss vcc28635174reset图2-8 x25045的应用电路电路如图2-8所示,x25045的、si、sck和so分别与89c52的p1.5、p0.0、p1.7和p1.6相连,而x25045的接口线7与89c52的reset端相连,同时也作系统的复位信号。当x25045监控到在指定的看门狗超时周期内接口线无活动或(和)检测到vcc低于转换电压时,则输出高电平周期。高电平保持直到vcc上升到最小检测电平200ms为止。2.6电路核心部分的设计电路核心部分用美国atmel公司生产的mcs-51系列单片机的增强型89c52,具有8k片内闪速程序存储器,不必外扩e-prom,减少了硬件体积,节约了硬件成本。复位电路利用xirox公司生产的x25045,这是一个可编程看门狗监控eeprom,它把三种常用的功能:看门狗定时器、电压监控和eeprom组合在单个封装之内,这种组合进一步降低了成本,并减少了对电路板空间的要求,采用12m晶振。2.6.1 mcs-51单片机的特点单片机(microcontroller,又称微控制器)是在一块硅片上集成了各种部件的微型计算机,这些部件包括中央处理器cpu、数据存储器ram、程序存储器rom、定时器/计数器和多种i/o接口。10mcs-51系列单片机的基本结构如图2-9所示。时钟电路romram定时器/计数器cpu并行接口串行接口中断程序t0 t1p0 p1 p2 p3txd rxd 图2-9 mcs-51系列单片机的基本结构2.6.2 at89c52芯片的引脚at89c52单片机是采用40引脚双列直插封装的芯片,有些引脚具有两种功能。11引脚见图2-10。图2-10 at89c52的引脚图引脚功能如下:(1) vcc(40):电源+5v。(2) vss(20):接地。(3) xtal1(19)和xtal2(18):使用内部振荡电路时,用来接石英晶体和电容;使用外部时钟时,用来输入时钟脉冲。(4) p0口(3932):双向i/o口,既可以作地址或数据总线口,也可以作普通的i/o口用。(5) p1口(18):准双向通用i/o口。(6) p2口(2128):准双向口,既可以作地址总线口输出地址高8位,也可以作普通i/o口用。(7) p3口(1017):多用途端口,既可作普通i/o口用,也可以按每位定义的第二功能操作。(8) ale/prog(30):地址锁存信号输出端。在访问片内存储器时,ale为有效高电平时,p0输出地址低8位,可以用ale信号作外部地址锁存器的锁存信号。=1/6,可以作系统中其他芯片的时钟源。第二功能prog是对8751的eprom编程时的编程脉冲输入端。(9) rst/vpd(9):复位信号输入端。at89c52接通电源后,在时钟电路作用下,该脚上出现两个机器周期(24个振荡周期)以上的高电平,使内部复位。第二功能是vpd,既备用电源输入端。当主电源vcc发生故障,降低到低电平规定值时,vpd将为ram提供备用电源,以保证储存在ram中的信号不丢失。(10) /vpp(31):内部和外部程序存储选择线。=0时访问外部rom 0000ffffh;=1时,地址00000fffh空间访问内部rom,或地址1000ffffh空间访问外部rom。在对8751的eprom编程时,此脚接编程电压12.5v。(11) (29):片外程序存储选通信号,低电平有效。对at89c52单片机,由于内部多了一个定时器,还需要附加别的输入端,为此,又借用p1.0和p1.1作为定时器2的输入t2和t2ex。2.6.3 at89c52的复位电路rst引脚是复位信号的输入端,复位信号是高电平有效。高电平有效的持续时间应为24个振荡周期以上。若时钟频率为6mhz,则复位信号至少持续4s以上,才可以使单片机复位。复位以后,07h写入指针sp,p0p3口均置1(允许输入),程序计数器pc和其他特殊功能寄存器sfr全部清“0”。只要该脚保持高电平,at89c52便循环复位。当rst端由高变低后,at89c52由rom的0000h开始执行程序。at89c52的复位操作不能影响内部ram的内容。当vcc加电后,ram的内容是随机的。单片机的复位方式有上电自动复位和手工复位两种,51单片机常用的上电复位及手动复位电路,只要vcc上升时间不超过1ms,它们都能很好的工作。图2-11为本设计使用的复位电路。图2-11复位电路2.7 数字显示电路数字显示由一块4位八段led组成,用以实现各种瞬时参数。具体显示由键盘按键决定。七段led显示器由数个led组成一个阵列、并封装于一个标准的外壳中。为了适应不同的驱动电路,有共阳极和共阴极两种结构。用七段led显示器可以组成09数字和多种字母,为了适应各种装置的需要,这种显示中还提供有一个小数点,所以实际上共有8段。为了显示某个数字或字符,就要点亮对应的段,这就需要点亮对应的段。译码有硬件译码和软件译码之分。硬件译码电路的优点是计算机的开销比较小,但硬件开支大。软件的译码的优点是占用时间少,显示稳定可靠;缺点是占用的i/o口较多。2.7.1 8段数码管是如何显示单片机数据用单片机驱动led数码管有很多种方法,按显示方式分,有静态显示和动态显示。12静态显示就是显示驱动电路具有输出锁存功能,单片机将要锁存的数据送出后就不再控制led,直到下一次显示时再传送一次新的显示数据。静态显示的数据稳定,占用的cpu时间少。静态显示中,每一个显示器都要占用单独的具有锁存功能的i/o口,该接口用于笔划段字形代码。这样单片机只要把要显示的字形代码发送到接口电路,该字段就可以显示发送的字形。另一种方法是动态扫描显示。动态扫描方法是用其接口电路把所有显示器的8个笔划段ah同名段连在一起,而显示器的com各自独立在受i/o线控制。cpu向字段输出口送出字形码时,所有显示器接收相同的字形码,但究竟是哪个显示器亮,则取决于com端,而这一端是由i/o控制的,由单片机何时显示哪一位了。动态扫描用分时的方法轮流控制各个显示器的com端,使各个显示器轮流点亮。在轮流点亮扫描过程中,每位显示器的点亮时间及为短暂,但由于人的视觉暂留现象及发光二极管的余辉效应,给人的印象就是一组稳定的显示数据。本设计采用动态扫描方式,采用串入并出的移位寄存器74ls164来驱动led数码管。其接口电路如图2-12所示。 图2-12 led显示电路该显示电路用了单片机2个端口p00、p01,配以1片串入并出的移位寄存器74ls164。其中的引脚为并行输出口,分别接到led数码管的adp段,作动态显示;引脚a、b为串行输入口;引脚clk为时钟脉冲输入端,在clk脉冲的上升沿作用下实现移位,在clk=0、清除端mr=1时,74ls164保持原来数据状态;mr=0时,74ls164输出清零。在选择每段的串联电阻时,我们可以通如下的计算来选择,发光二极管正常工作时,其两端正向压降约为1.6v,正向电流约为10ma,因此,每段的串联电阻可由下式计算:串联电阻=(5-1.6v)/10ma=340(可取330)本设计选用200的电阻,目的是使led更亮。2.7.2 静态扫描与动态扫描的利弊静态显示虽然数据显示稳定,占用很少的cpu时间,但每个显示单元都需要单独的显示驱动电路,使用的电路硬件较多;动态显示需要cpu时刻对显示器件进行数据刷新,显示数据有闪烁感,占用的cpu时间多,但使用的硬件少,能节省线路板空间。在一般较为简单的系统中,为了降低成本,动态显示方案具有一定的实用性,本电路采用了动态显示。2.8 键盘部分单片机系统所用的键盘有编码键盘和非编码键盘两种。编码键盘本身除了按键之外,还包括产生键码的硬件电路。只要按下编码键盘的某一个键,它就能产生这个键的代码,并称为键码,与此同时还产生一个脉冲信号,以通知cpu接收键码,编码键盘的优点是使用比较方便,亦不需要编写太复杂的程序。其缺点是使用的硬件较复杂。非编码键盘的按键是排列成行、列矩阵形式的。按键的作用只是简单地实现接点的接通或断开,因此必须有一套相应的程序与之配合,才能产生相应的键码,非编码键盘几乎不需要附加什么硬件电路。因此为了简洁电路,我使用非编码键盘。但使用非编码键盘需要通过软件来解决按键的识别、防抖动以及如何产生键码的问题。2.8.1 按键的去抖动1、硬件。可通过滤波电路来消除抖动。2、软件。在第一次检测到有按键闭合时,首先执行一段延时10ms的子程序,然后再确认为该按键电平是否仍为闭合状态电平。如果仍保持,则确认为真正有按键按下。2.8.2 本设计按键操作部份为方便说明,以设置010ma输入信号为例。(1) 长按(约15秒)设置键,直至led闪动显示“set=”,“set=”的意思为可输入设置。(2) 紧接着,led显示“iii”,表示输入为电流值,按或键可选择其它输入方式。若显示“pt40”则表示输入为pt100热电阻,量程为0400。若显示“ieu”则表示输入为k型热电偶。若显示“pt15”则表示pt100,量程0150。(3) 下一步为是量程设置(本项只用于电流信号,以下几类不必作量程设置,pt40则固定量程为400,pt15固定量程为150,k固定量程为1100,它也包括了k型600,两者只是输入毫伏值大小不同而已),再按选择键,led首先显示四位数字“0000”,再按或键,则数字会加或减,当短按键,则每次个位加(减)1,若长按键,则每次十位加(减)1,本例直按至0600为此。(4) 再按选择键,至led显示“dot”,意思设置小数点,再按或键,则小数点会左移或右移。本例按两下键让小数点左移,则显示06.00。(也可以按键让小数点右移)。(5) 短按设置键,即退出回到工况显示状态。(6) 零点/量程设置:在主板上有设置的端口,见图2-13。变压器at89c52复位设置图2-13设置前,先要用短路插头,(在主板上)插入设置的二根针,使其短路,然后开始设置步骤。在(2)的基础上再短按设置键,led显示.000。调节输入为零点信号,在本例由于输入信号为010ma,故对应零点输入为0ma,在调节输入时led的后三位(十六进制数)也相应变化,直至稳定,在稳定后,按键(注意勿按错键),则已把零点的a/d值记忆。(注:对于010ma的输入信号,零点的输入为0ma,对应于420ma输入信号,零点输入为4ma)。再调节输入为满量程,(在本例为10ma),在调节输入信号时led的后三位数(十六进制数)同样会相应变化,直至稳定,在稳定后,按键(注意勿按错键),则又把量程的a/d值记忆。(7) 再短按设置键,回复到工况显示状态至此初始化设置已完成,此时要把短路插头拔开(为了防此插头丢失,可以仅插设置一根针),这样拔开插头后,上述的初始化设置便不能进行,也可以防止旁人不懂而乱按仪表造成设置混乱。第三章 软件的设计3.1 软件系统的总体设计软件主要包括a/d转换程序、单片机的电压数据采集程序及led数码管的显示程序。单片机是通过在固定的周期内对tlc2543输出的脉冲信号进行计数,获取数字信号。整个软件系统可以完成电压数值采集、存储、显示。使仪表能正确的显示各信号的温度。它的软件系统方框图如图3-1所示。各路信号a/d数据采集和处理单片机处理程序led显示图3-1 软件系统方框图3.2 软件的整体程序流程单片机主要的程序模块有数据采集模块(包括脉冲计数、数字滤波、数据处理、中断处理等几个子模块)、显示模块等主要的功能模块。图3-2为软件总体流程图。开始程序初始化自检执行相应按键功能采集各路输入信号各输入信号写入x25045led显示返回a/d转换运算处理有键按下图3-2软件总体流程图开始i/o口初始化写入初始时间开中断清t1启动t1显示程序延时200ms停止t1读取t1计算电压数值led显示yn图3-3 单片机整体流程图图3-3为单片机整体流程图,程序开始后,先初始化。包括i/o的初始化,把单片机的i/o引脚设置成相应的输入输出状态,还包括存储单元的清零。初始化后,程序进入主循环。在主循环中,单片机串口首先被设置为接受状态,并打开外部中断允许。然后进行脉冲的采集和计算,得到电压数值送显示缓冲区显示。3.2.1热电阻信号输入程序流程开始输入热电阻运算输出电压送入a/d转换单片机作线性化处理led显示ny图3-4 热电阻信号输入流程图图3-4为热电阻信号输入流程图,从外部输入不同阻值的热电阻,通过lm324转换为电压信号,产生02.495v的电压后输送到tlc2543进行a/d转换,然后单片机进行线性化处理,最后送led显示。3.2.2标准电流信号输入程序流程开始输入标准信号运算输出电压送入a/d转换单片机线性化处理led显示ny图3-5 标准电流信号输入流程图图3-5为标准电流信号输入流程图,输入010ma、420ma的标准信号,给它设置一个零点和满度量程,如设置零点为0,满度为600,用单片机对它进行线性化处理,然后送led显示。3.2.3热电偶信号输入程序流程开始输入热电偶运算输出电压送入a/d转换单片机线性化处理led显示图3-6 热电偶信号输入流程图图3-6为热电偶信号输入流程图,从外部输入k型热电偶,通过lm324转换为电压信号,产生02.495v的电压后输送到tlc2543进行a/d转换,然后单片机进行线性化处理,最后送led显示。3.3 x25045的读写程序表3-1为x25045指令集,表3-2为x25045状态寄存器位表3-1 x25045指令集指令名指令格式操作wren0000 0110设置写使能锁存器(允许写操作)wrdi0000 0100复位写使能锁存器(禁止写操作)rdsr0000 0101读状态寄存器wrsr0000 0001写状态寄存器(块锁定位)read0000 011从开始于所选地址的寄存器阵列中读出数据write0000 010把数据写入开始于所选地址的寄存器阵列(1至4字节)*最左边的位置表示最高有效位(msb)。以最高有效位在先的方式传送指令。表3-2 状态寄存器位76543210xxwd1wd0bl1bl0welwip1 时钟和数据定时设看门狗定时600ms,在不用eeprom读写数据时,在程序的某一处,向发一个脉冲,向看门口狗表示程序正常运行,发出这样脉冲的间隔不超过600ms。表3-3 状态寄存器设置状态寄存器被保护的阵列地址状态寄存器看门口狗超时周期(典型)bl1bl0wd1wd000无0014s01$108-$1ff01600ms10$100-$1ff10200ms11$000-$1ff11禁止2 写时序图3-7 写时序图图3-7为写时序图,13当从eeprom存储器阵列读数据时,首先把拉至低电平以选择芯片:8位的read指令被发送到x25045,其中是8位的字节地址;读指令的位包含,此位用于器件的上半部或下半部。在发送了读操作和字节地址后,在所选定的地址的存储器中储存的数据被移到so线上。继续提供时钟脉冲可接着读出在下一地址的数据。在每一个数据字节移出之后,字节地址自动增至下一个较高的地址。当到达最高地址($1ff)时,地址计数器翻转至地址$000,使得读周期无限制的继续下去。把置高电平可终止操作。为了读状态寄存器,首先要把线接至低电平以选择芯片,然后是rdsr指令。在发出读寄存器操作码之后,状态字寄存器的内容被移出到so线上。把数据写至x25045之前,必须首先发出wren指令把“写使能”锁存器置位。首先被拉直低电平,然后wren指令由时钟同步送于x25045,在指令的所有8位被发送之后,必须接着使变为高电平。如果用户在发出wren指令之后不把变为高电平继续写操作,那么写操作将会被忽略。图3-8便是一个字节写操作的时序图。3. eeprom的存储格式要存储的数据有整数也有小数。有符号整型值只占两个字节,最高字节的最高位是符号位。如果小数则按浮点型存储,要占四个字节的空间。所用到小数的特点是它的绝对值比较小,并且保留小数点后两位,并且所有的存储数值的绝对值都不小于1500。根据这些特点,我们把小数乘以100,并且把最高位置“1”。当读这个值时检测这一位,如果即使是小数也可以按整数存储了,便于空间的安排,也节省了空间,同时也有利于进行数据上传。开始查询wip有无写操作置wel写使能查询wip有无写操作置开始状态置写结束位,复位写使能送双字节数据依次左移一位,送si口送地址依次左移一位,送si口送指令依次左移一位,送si口结束有有图3-8 写子程序框图3.4 数据采集信号的设计电压数据采集模块在中断程序中要把当时的电压值转存到电压数据存储单元,我们需要对在执行中断子程序过程中多计的脉冲予以处理,恢复中断发生前定时器t1的计数值。中断处理子程序如图3-9所示。中断入口保护现场读入t1低位存当时电压值再读t1低位有进位吗?数据调整恢复现场中断返回有进位数据调整yn图3-9中断处理子程序3.5 软件的线性化处理传统的测温仪表中通常用硬件实现线性化。它在放大器的输入回路或反馈回路中引入非线性,用线性化器的非线性来补偿传感器的非线性特性,使整个系统的输入温度t和输出电势之间为线性关系。硬件电路线性化器有三个缺点:一是仪表的成本加大;二是线性精度低,只能近似线性化或部份线性化;三是不同传感器对应不同的线性化器,若共用一线性化器必然会增大非线性误差。鉴于此,该仪表运用了软件线性化,以克制硬件线性化的不足,它只需要按传感器的型号设计不同的程序模块并分别调用这些模块即可完成线性化。 第四章 电路的调试在将元器件焊接到电路板上以后,下一个任务也是很重要的一个任务那就是对电路进行调试。电路的调试分为硬件电路的检测和软件程序的编写。这两部分在电路中的地位是等同的,任何一个环节出了问题,都将导致系统不能够按自己的意愿进行工作。下面就对这两部分进行描述。4.1 硬件电路的调试4.1.1 电路的检测焊接好元器件以后,就要对硬件电路进行检测了。硬件电路的检测通常可以分为目测、仪器检测、小程序初始化的验证等。在本设计中,我对硬件电路的检测是按以下的步骤进行的:第一步:先用眼睛整体观看整块电路板,看看什么地方是不是有断线,焊接的元器件是否牢固等。最重要的就是检测器件有没有放错了,像单片机、电压比较器之类的器件,很容易把它们倒过来插,如果芯片插反了的话,在我们加上电以后很有可能会把芯片烧毁了。还有就是看有没有虚焊的焊盘,电路不导通在很多情况之下就是由于虚焊的原因引起的。上面的这些工作就是所谓的目测。第二步:完成第一步工作之后,并不能够保证电路一定是没有问题的,有些地方眼睛是观测不出来的,这时候就要借助于我们的仪器了。在这一步中,我们所用的仪器是非常的简单的,也就是我们所用的普通万用表就可以了。我们主要检测的是整个电路是否已经完全导通了,这对找出那些虚焊的焊点和那些忘记焊了的焊点是非常有效的。第三步:在完成了前面的两步工作之后,不要认为电路已经是完全没有问题了。有一些就是前面的两步都检测不出来的,例如单片机的晶振不起振导致单片机无法运行工作,这样的毛病前面两步是无法检测出来的,这就要我们编写一些初始化的简单程序来判断单片机是否已经工作了。在本电路的调试当中,我编写的测试程序就是使三位数码管同时显示 “0”字,这样既能够检测出单片机是否已经工作了,又能够检测出数码管工作是否正常。在完成了上面的三步检测后,一般来说电路基本上不会有什么问题了,下面的工作就是硬件电路的调试及任务指标要求进行程序的编写和调试。4.1.2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 河北省三河市2025年上半年公开招聘村务工作者试题含答案分析
- 河北省乐亭县2025年上半年公开招聘城市协管员试题含答案分析
- 河北省广平县2025年上半年公开招聘村务工作者试题含答案分析
- 2025年文化创意产业承包经营协议书范本
- 2025年城市供水设施维修承包合同范本
- 2025年度环保材料独家代理销售与服务合同范本
- 2025瓷砖原材料供应商战略合作合同
- 2025大闸蟹产业链投资加盟合同范本大全
- 2025版企业内部培训课程体系设计与承包合同
- 2025版医疗健康企业收购合同范本
- 水利安全生产风险防控“六项机制”右江模式经验分享
- 2023版马原专题课件:专题一马克思主义观;专题二辩证唯物主义世界观
- 单侧双通道UBE手术
- 成年女性压力性尿失禁护理干预试题及答案
- 人教版八年级下学期期末考试英语试题(附听力原文及答案解析)
- 数智治水系统平台建设需求
- 燃气巡线员专业知识考试题库(附答案)
- 《高一数学开学第一课:学好高中数学》课件
- 工艺流程的可靠性与稳定性分析
- 信息资源管理 课件 1-信息资源管理概述
- 儿科护理学(高职)全套教学课件
评论
0/150
提交评论