热电偶的线性化LCD显示毕业论文.doc_第1页
热电偶的线性化LCD显示毕业论文.doc_第2页
热电偶的线性化LCD显示毕业论文.doc_第3页
热电偶的线性化LCD显示毕业论文.doc_第4页
热电偶的线性化LCD显示毕业论文.doc_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

内蒙古科技大学智能仪表综合训练设计说明书题 目:热电偶的线性化-LCD显示学生姓名:学 号:0605112130专 业:测控技术与仪器班 级:指导教师: 教授摘 要温度测量应用中有多种类型的传感器,热电偶是最常用的一种。与电热调节器、RTD、温度检测集成电路(IC)相比,热电偶能够检测更宽的温度范围,具有较高的性价比。另外,热电偶的牢固、可靠性和快速响应时间使其成为各种工作环境下的首要选择。本设计以STC89C52RC单片机为核心,由热电偶测量热端温度T,经过放大电路和ADC0832进行模数转换, 再由单片机进行线性化处理,最后由1602字符型LCD显示测量温度。该设计的软件由C51语言编写,采用模块化结构设计。关键词:热电偶;A/D转换器;单片机;线性化;LCD显示目 录摘 要I目 录II第一章 前言11.1 热电偶测温原理11.1.1 热电偶测温原理11.1.2 热电偶冷端温度补偿11.2 线性化方法简介2第二章 热电偶线性化的总体方案设计52.1 硬件设计方案52.2 软件设计方案5第三章 智能仪表硬件设计73.1 热电偶温度传感器73.2 单片机STC89C52及其外围接口电路83.2.1 单片机STC89C52简介83.2.2 STC89C52的外围接口电路103.3 仪表放大和ADC0832模数转换电路113.3.1 仪表放大电路113.3.2 模数转换芯片123.4 LCD1602显示模块13第四章 软件设计164.1 智能仪表主程序164.2 ADC0832数据采集程序164.3 线性化标度变换程序164.4 LCD显示程序17第五章 总结18参考文献19附录A20第一章 前言1.1 热电偶测温原理1.1.1 热电偶测温原理热电偶是差分温度测量器件,由两段不同的金属/合金线构成,一段用作正端,另一段用作负端。将两种不同材料的导体或半导体A和B焊接起来,构成一个闭合回路。只要两执着点处的温度不同时,则在该回路中就会产生电动势。如图1.1所示,环路电压是两个结点温差的函数。这种现象称为Seebeck效应,用于解释热能转换为电能的过程。测量电压VOUT是检测端(热端)结电压与参考端(冷端)结电压之差。因为VH和VC是由两个结的温度差产生的,VOUT也是温差的函数。定标因数:,对应于电压差与温差之比,称为Seebeck系数。热电动势由两部分电动势组成,一部分是两种导体的接触电动势(帕尔贴电势),另一部分是单一导体的温差电动势(汤姆逊电势)1。图1.1 Seebeck效应原理图1.1.2 热电偶冷端温度补偿在热电偶应用初期,冰点被当作热电偶的标准参考点。冷端温度为0 (冰点)时是一种最简单的情况,如果TC = 0,则VOUT = VH。这种情况下,热端测量电压是结点温度的直接转换值。美国国家标准局(NBS)提供了各种类型热电偶的电压特征数据与温度对应关系的查找表。所有数据均基于0冷端温度。利用冰点作为参考点,通过查找适当表格中的VH可以确定热端温度。但在大多数应用中获得一个冰点参考温度不太现实。如果冷端温度不是0,那么,为了确定实际热端温度必须已知冷端温度。考虑到非零冷端温度的电压,必需对热电偶输出电压进行补偿,既所谓的冷端补偿。热电偶冷端温度补偿方法有冷端温度修正法、冷端0恒温法、冷端温度自动补偿法(补偿电桥法)。热电偶补偿导线分为补偿型和延伸型两种,延伸型的导线也并不是用和热电偶相同材质的金属,一般采用和热电偶具有相同电子密度的导线代替。图1.2 常见的热电偶配置图1.2所示是一种最常见的热电偶应用。该配置中引入了第三种金属(中间金属)和两个额外的节点。本例中,每个开路端与铜线电气连接,这些连线为系统增加了两个额外节点,只要这两个节点温度相同,中间金属(铜)不会影响输出电压。这种配置允许热电偶在没有独立参考结点的条件下使用。VOUT仍然是热端与冷端温度之差的函数,与Seebeck系数有关。然而,由于热电偶测量的是温度差,为了确定热端的实际温度,冷端温度必须是已知的。从简便性、测量准确度等方面考虑, 为充分发挥微处理器的计算能力, 在热电偶测温中可采用计算法进行参考端补偿。计算法就是先测出热电偶参考端的温度,然后按下式计算(1): (1)式中: 为热电偶测量端温度为, 参考端温度为时的热电势; 为热电偶测量端温度为,参考端温度为时的热电势;为热电偶测量端温度为, 参考端温度为时的热电势1。1.2 线性化方法简介一般测温仪表所采用的线性化方法大致有以下几种:1. 计算方法:即先用数学上的曲线拟合方法对热电势和对应温度进行拟合,得出误差最小的近似表达式。为简化起见,常常是分段表达式,然后用计算机程序进行分区计算得到温度。2. 直接查表法:对分度表不经处理,直接按一定的排列形式存入,用测得的A/D转换值靠软件搜索来查的相应的温度值。3. 数据压缩法:即将分度表进行压缩处理,减少数据表字节数,通过软件的适当计算得出所测温度。以上几种方法虽然都有其各自的优点,但它们所占的字节数,对把十几种分度好的线性修正数据或公式放入有限的单片机内存中,都是很困难的。设计采用分段直线拟合方法,既节省大量存储器,又有很高的测量精度,流程图如4.2。光进行线性化还不够,还要进行标度变换。在该热电偶测温仪表中,需要将测量的温度通过热电偶转换成0+5V的电压信号,再将对应的电压信号经A/D转换,转换成对应的00FFH的数字量DX。之后还需要将DX值滤波,滤波后的码值为NX,最后在程序进行过程中,将转换成实际测量温度的显示码值。在这个信号转换过程,就是标度变换。线性化标度变换的前提是被测量参数值与A/D转换结果为线性关系。线性表度变换公式(2): (2)该式是线性化标度变换的通用公式。(2)式中:A0:一次测量仪表的下限;AM:一次测量仪表的上限;AX:实际测量值(工程量);N0:仪表下限所对应的数字量;NM:仪表上限所对应的数字量;NX:测量时所对应的数字量。其中,AM、A0、NM、N0对于某一固定的被测参数来说都是常数,不同的参数有着不同的值。为了使程序设计简单,一般把一次测量仪表的下限A0所对应的A/D转换值置为0,也即N0=0,这样可以简写成:在很多测量系统中,仪表下限值A0=0,此时,对应的N0,下式可进一步化简:或者是本热电偶测温仪表的测量范围为01300,采用8位A/D转换器,而电压信号为0+5V,转换后的数字量是00FFH3。表1.1 N型热电偶的线性化标度变换表温度t()热电势Et(mV)放大器输出u(V)转换值T00000T11303.680.38620T22607.9410.83443T339012.6031.32367T452017.5151.83994T565022.5562.368121T678027.6692.905148T791032.7613.440175T8104037.7953.968202T9117042.7274.486229T10130047.5135255第二章 热电偶线性化的总体方案设计热电偶是最广泛的温度传感器之一,它具有构造简单、使用方便、热惯性小、稳定性及复现性好、温度测量范围宽等优点,适用于信号的远传、自动纪录和集中控制,在温度测量中占有重要地位。但由于热电偶的热电势与温度呈非线性关系,增加了显示与处理的复杂性;且随着工业发展、自动化的不断加强,对温度精度要求也越来越高。为了提高热电偶测量温度的精度,必须从硬件和软件两方面同时入手。硬件设计必须使用高精度A/D 器件,软件设计必须设计出合理的满足工业要求的线性化算法,从这两方面解决热电偶测试高温的精度问题。2.1 硬件设计方案本次设计的热电偶线性化LCD显示器在生产中组成的控制系统如图2.1所示,由图可知显示器采用的是单片机STC89C52RC进行核心编程;A/D转换芯片ADC0832,实现0-5V模拟电压到8位数字量的转换;LCD1602实现温度t以及A/D转换值的实时显示。图2.1 热电偶显示系统的组成2.2 软件设计方案本次课程设计要求热电偶线性化显示器能够实现的功能及相应的硬件设备如下:1. 温度的采集与放大,通过热电偶与放大电路实现;2. 模拟量的转换,通过ADC0832实现;3. 实时分析与线性化功能,通过STC89C52实现;4. 实际温度值与A/D转换值的显示,通过LCD1602实现。该热电偶温度显示器的编程采用模块化结构设计。按照上述的功能要求,可得该显示器的软件设计总体流程图如图2.2所示,由图可知,软件部分的设计由硬件的初始化程序、ADC0832采样程序,线性化标度变换程序、温度值和A/D转换值的显示程序构成。数据采集是向ADC0832发出控制信号,将模拟量采入并转换成数字量传给STC89C52进行处理;线性化标度变换处理是将A/D转换后的数字量与模拟量构成的线性关系,再还原为与之对应的模拟量,由LCD显示程序进行显示。图2.2 主程序流程图第三章 智能仪表硬件设计3.1 热电偶温度传感器本设计选用的是镍铬硅镍硅热电偶(分度号为N,Nicrosil-Nisil),它是70年代由澳大利亚的Burley等人首先研制出来的。它是一种新型镍基合金测温材料,也是国际上近20年来在贱金属热电偶合金材料研究方面取得唯一的重大成果。N型热电偶的主要特性有以下五点: 1、高温抗氧化能力强,长期稳定性好。在N型热电偶的正极中增加Cr,Si含量使镍铬合金的氧化模式由内氧化转变成外氧化,致使氧化反应仅在表面进行;又在负极中增添溶质元素Mg与Si,使金属与氧化物间的钝化膜更加致密,阻止“绿蚀”现象向内部扩散。因此,它的高温稳定性与使用寿命较K型热电偶明显提高。 2、在250550范围内的短期热循环稳定性好。实验结果证明,无论是经退火或时效的N型热电偶样品,在250550范围内的升降温过程中,热电动势的变化不超过10V。 3、在250550范围内抑制了磁性转变,不再出现热电动势明显地不规则变化。K型热电偶负极,约在170发生磁性转变。为此,对N型热电偶的负极合金成分作了很大调整,从而抑制了新型合金的磁性转变,使其转变温度降到室温以下。因此,N型热电偶不会因磁性变化造成热电动势值偏离分度表。4、在中子辐照环境下具有良好的稳定性。在中子积分通量小于1020/cm2的条件下,K型热电偶具有良好的耐辐照能力,而N型热电偶在K型热电偶的基础上,又取消了易蜕变元素Mn,Co等。因此,N型教K热电偶具有更好的耐核辐照的能力。5、在4001300范围内,N型热电偶热电特性的线性比K型好。在4001300范围内,N型热电偶非线性误差仅占1300热电动势的0.4%。当然N型热电偶与K型热电偶相比,在低温范围内(-200400)的非线性误差较大,同时材料教硬,难于加工。综上所述,N型热电偶有可能取代其余四扎种贱金属热电偶,目前正在引起人们的高度重视。在-2001300范围内,有全面取代贱金属热电偶与部分代替S热电偶的趋势2。3.2 单片机STC89C52及其外围接口电路3.2.1 单片机STC89C52简介本次设计采用STC89C52RC/RD+系列单片机,是宏晶科技推出的新一代超强抗干扰/高速/低功耗的单片机,指令代码完全兼容传统的8051单片机,12时钟/机器周期和6时钟/机器周期可任意选择5,可以用串口(P3.0与P3.1)下载用户程序,实现在线编程功能。图3.1 STC89C52RC结构框图STC89C52的引脚分布如图3.2所示,各部分引脚功能如下4:1. P0.0P0.7引脚:作为I/O引脚使用时,P0口是漏极开路双向口,向口锁存器写入1时,I/O引脚将悬空,是高阻输入引脚;在读写外部存储器时P0口作低8位数据/地址总线。2. P1.0P1.7引脚:内部带有弱上拉的准双向I/O口,作输入引脚使用前,先向P1口锁存器写入1,使P1口引脚上拉至高电平;另外,P1.0与P1.1还有第二功能:T2(P1.0)定时器T2的计数输入端或定时器T2的时钟输出端,T2EX(P1.1)定时器T2的外部触发输入端。3. P2.0P2.7引脚: 内部带有弱上拉的准双向I/O口,作输入引脚使用前,先向P2口锁存器写入1,使P2口引脚上拉至高电平;在读/写外部存储器时,P2口输出高8位地址信号A15A8。4. P3.0P3.7引脚:内部带有弱上拉的准双向I/O口,作输入引脚使用前,先向P3口锁存器写入1,使P3口引脚上拉至高电平;另外,P3口还有第二功能:RXD(P3.0)串行数据接收(输入)端;TXD(P3.1)串行数据发送(输出)端;(P3.2)外中断0输入端;(P3.3)外中断1输入端;T0(P3.4)定时/计数T0的外部输入端;T1(P3.5)定时/计数T1的外部输入端;(P3.6)外部数据存储器写选通信号,低电平有效;(P3.7)外部数据存储器读选通信号,低电平有效;图3.2单片机STC89C52引脚图5. 引脚:外部程序存储器选择信号,低电平有效;在复位期间CPU检测并锁存引脚的电平状态,当读引脚为高电平时,从片内程序存储器取指令,只有当程序计数器PC超出片内程序存储器地址编码范围时,才转到外部程序存储器中取指令;当该引脚位低电平时,一律从外部程序存储器中取指令。6. :外部程序存储器读选通信号,低电平有效。7ALE:低8位地址锁存信号,在访问外部程序存储器时,ALE下降沿锁存从P0口输出的低8位地址信息A7A0,以便随后将P0口作为数据总线使用;在正常情况下,ALE输出信号为1/6振荡频率,并可用作外部时钟或定时信号。8. XTAL1:片内晶振电路反向放大器输入端,接CPU内部时钟电路; XTAL2:片内晶振电路反向放大器输出端;9. RST:复位信号输入端,高电平有效;10. VCC:电源引脚,VSS:电源地。STC89C52系列单片机属于MCS51型系列单片机,它们的存储器在组织结构上有4个物理上相互独立的空间:片内程序存储器和片外程序存储器,内部数据存储器和片外数据存储器7。其中片外数据存储区共64KB,相应的地址空间为0000FFFFFH;片内数据存储区共256B,其中80HFFH为SFR(特殊功能寄存器区),20H2FH为位寻址区,00H1FH为R0R7工作寄存器区,30H7FH为用户存储数据用的存储区,共80个字节;片内程序存储区有4KB,通过=1进行选通;片外程序存储区有64KB是通过=0进行选通。3.2.2 STC89C52的外围接口电路该单片机的外围电路由时钟晶振电路、上电复位电路、+5V电源供电及抗干扰电路组成。如图3.3所示,晶振电路中芯片的晶振频率为37.768KHZ,接入的电容分别为C1和C2,电容值为30PF;复位电路选择为上电自动复位和手动图3.3 单片机STC89C52外围接口电路按键复位相结合的方式,按键通过按动K0键可以实现复位,接入C3 10uF的电容能够保证芯片可靠的复位;芯片的供电采用+5V的供电电源,为了防止高频信号的干扰,可在电源端与地之间接入C5 0.1uF的电容来减弱高频信号的干扰;此外引脚应该接入高电平信号,以使在程序调用时顺序为从片内到片外。3.3 仪表放大和ADC0832模数转换电路本设计采用高共模抑制比放大电路和美国国家半导体公司生产的8位分辨率、双通道A/D转换芯片ADC0832,来进行热电偶温度的放大以及模数转换。3.3.1 仪表放大电路三运放仪用放大器是最常使用的生理电前置放大器。 它不但可以提供很高的输入阻抗, 而且如果第一级设为高增益, 无须匹配就可以得到高共模抑制比。 可以有效地抑制工频干扰等共模噪声6。三运放仪用放大电路特点:1)高输入阻抗。被提取的信号是不稳定的高内阻源的微弱信号,为了减少信号源内阻的影响,必须提高放大器输入阻抗。 一般情况下,信号源的内阻为100k,则放大器的输入阻抗应大于1M。图3.6 ADC0832以及差分放大电路的接线图2)高共模抑制比CMRR。信号工频干扰以及所测量的参数以外的作用的 干扰,一般为共模干扰,前置级须采用CMRR高的差动放大形式,能减少共模干扰向差模干扰转化。3)低噪声、低漂移。主要作用是对信号源的影响 小,拾取信号的能力强,以及能够使输出稳定。因此,如图3.6所示电路具有输入阻抗高,共模抑制比高等优点,可作为热电偶线性化温度测量的放大器使用。3.3.2 模数转换芯片ADC0832由于它体积小,性价比高而深受单片机爱好者及企业欢迎,其目前已经有很高的普及率。本次设计采用它来实现模数转换功能,它能将变送器传送到的模拟信号转换为可让STC89C52接收的数字信号,以方便后续工作的进行。该芯片的引脚及与STC89C52连线如图3.6所示,相应的引脚功能如下7: 片选使能,低电平芯片使能; CH0 模拟输入通道0,或作为IN+/-使用; CH1 模拟输入通道1,或作为IN+/-使用; GND 芯片参考0 电位(地); DI 数据信号输入,选择通道控制; DO 数据信号输出,转换数据输出; CLK 芯片时钟输入; Vcc/REF 电源输入及参考电压输入(复用);如图3.6所示,本次设计中模拟量的输入采用滑动变阻器与+5V电源来实现,ADC0832可以接收CH0与CH1两路模拟信号,它的选通引脚CS端受单片机的STC89C52的P2.0控制,时钟CLK信号由单片机的P3.6引脚提供,P3.7引脚输出针对CH0与CH1的通道选择信号,经过处理后,在DO端输出转换后的数字信号,通过P3.7引脚发送给STC89C52。正常情况下ADC0832 与单片机的接口应为4条数据线,分别是CS、CLK、DO、DI。但由于DO端与DI端在通信时并未同时有效并与单片机的接口是双向的,所以电路设计时可以将DO和DI 并联在一根数据线上使用。当ADC0832未工作时其CS输入端应为高电平,此时芯片禁用,CLK 和DO/DI 的电平可任意。当要进行A/D转换时,须先将CS使能端置于低电平并且保持低电平直到转换完全结束。如图3.7所示,当此2 位数据为“1”、“0”时,只对CH0 进行单通道转换。当2位数据为“1”、“1”时,只对CH1进行单通道转换。当2 位数据为“0”、“0”时,将CH0作为正输入端IN+,CH1作为负输入端IN-进行输入。当2 位数据为“0”、“1”时,将CH0作为负输入端IN-,CH1 作为正输入端IN+进行输入。到第3 个脉冲的下沉之后DI端的输入电平就失去输入作用,此后DO/DI端则开始利用数据输出DO进行转换数据的读取。从第4个脉冲下沉开始由DO端输出图3.7 ADC0832时序图转换数据最高位DATA7,随后每一个脉冲下沉DO端输出下一位数据。直到第11个脉冲时发出最低位数据DATA0,一个字节的数据输出完成。也正是从此位开始输出下一个相反字节的数据,即从第11个字节的下沉输出DATD0。随后输出8位数据,到第19个脉冲时数据输出完成,也标志着一次A/D转换的结束。最后将CS置高电平禁用芯片,直接将转换后的数据进行处理就可以了。3.4 LCD1602显示模块LCD1602字符型液晶模块是一种用5x7点阵图形来显示字符的液晶显示器,显示的容量是2行16个字。LCD1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,其代码与标准的ASCII字符代码一致。因此,我们只要写入显示字符的ASCII码即可,这种标准化的设计给使用带来很大的方便,实物如图3.8所示。1602LCD分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别,两者尺寸差别如图3.9所示。1. LCD1602主要技术参数: 显示容量:162个字符 芯片工作电压:4.55.5V 工作电流:2.0mA(5.0V) 模块最佳工作电压:5.0V 字符尺寸:2.954.35(WH)mm图3.8 1602字符型液晶显示器实物图图3.9 1602尺寸图2. 引脚功能说明:1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表3.1所示。第3引脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4引脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5引脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。第6引脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。表3.1 引脚接口说明表编号符号引脚说明编号符号引脚说明1VSS电源地9D2双向数据线2VDD5v电源正极10D3双向数据线3VL液晶显示偏压11D4双向数据线4RS数据/命令选择12D5双向数据线5R/W读/写选择13D6双向数据线6E使能信号14D7双向数据线7D0双向数据线15BLA背光源正极8D1双向数据线16BLK背光源负极从上述对LCD1602的简介中了解到了它的引脚功能,下面是根据本设计要实现的功能来将其各引脚与单片机进行连接。连接图如下图3.10所示。图3.10 LCD1602与单片机连接图第四章 软件设计4.1 智能仪表主程序主程序设计流程详见第二章的第二节。4.2 ADC0832数据采集程序按照ADC0832的工作方式,可以得到如图4.1所示的程序流程图。在将ADC0832的端口定义好后,用CS=0选通ADC0832,之后,将DI端置1,开始AD转换,然后送入通道0或者1的选择信息,在DO端先输出D7-D0数据,再输出D0-D7数据,然后比较两次输出的数据值是否相等,若不相等,继续采样,若相等,返回采样值。 图4.1 A/D转换子程序流程图4.3 线性化标度变换程序根据设计要求,进行线性化程序的编写,流程如图4.2所示。基本原理是:预先根据分度值表计算出A/D转换值所对应折点的温度值T0、T1T10,形成数据表,单片机进行修正时,根据测量值的大小,找到合适的修正直线段两个端点温度值,通过简单直线方程计算出被测温度。图4.2 线性化子程序流程图4.4 LCD显示程序根据设计要求,进行LCD显示程序的编写,流程如图4.3所示。液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。设置显示的字符模式,显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,最后将字符码写入到指定位置。 图4.3 LCD显示子程序流程图第五章 总结本次我们在老师的指导下完成了对热电偶线性化LCD显示的设计,本次设计是一次正规且全面的训练。我们确实学到了很多知识,自己搜索资料的能力和在短期内自学的能力得到了进一步增强,同时熟悉了Keil uvision3、Protel等工具软件,并能够按照设计要求自己设计硬件电路、编写程序、调试程序等。在整个设计的环节当中,硬件设计环节相对来说比较简单,其中主处理器选用的芯片是STC89C52RC,A/D转换部分选用的芯片是ADC0832,它接收的模拟信号来自电位器,将0-5V的模拟量转换成0-255的数字量。LCD显示部分选用LCD1602。而相对硬件设计而言,对它软件的设计是一个比较复杂的过程。按照设计的要求,整个程序的设计和编写,主要采用了模块化的设计思想,分别将A/D转换、线性化标度变换和LCD显示部分的程序进行模块化编程,在对这些程序模块以子程序调用的方式进行整体化,进而实现设计的要求。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。有了这次的设计经验,相信在以后的学习设计实践过程中,我们可以做到更好。参考文献1 俞志根.热电偶基本原理和使用方法J.湖州职业技术学院,2009.11.2 梁越永.N型热电偶及其应用J.马钢职工大学学报,2002,12.3 潘新民.王燕芳.微型计算机控制技术实用教程M.北京:电子工业出版社,2006.1,27248.4 STC12C5410AD系列8052单片机中文指南.宏晶科技.STC89C52RC/RD+系列单片机器件手册M.2007,11:77.5 陈廷侠、赵红枝.MAX232在串口通信中的作用分析与测试J.新乡学院学报:自然科学版,2009.26-4.6 姜苇、李刚.新型高共模抑制比生理电信号前置放大器设计的研究J.仪器仪表学报,2003.z1.7 杜洋.A/D转换芯片ADC0832的应用J.电子制作,2006.7.8 周祖茗.液显模块LCD1602的接口设计及编程技巧J.中国科技纵横,2010.14.9 R. Pallas2 A reny, J. G. W ebster . Common mode reject ionrat io in different ial amp lif iersJ . IEEE T rans . Inst rum.M eas, 1991, 40 (4) : 669 676.10 郝长胜.C语言程序设计M.内蒙古:内蒙古大学出版社,2005.11 蔡杏山.Protel 99 SE电路设计M.北京:人民邮电出版社,2007.12 潘永雄.新编单片机原理与应用M.西安:西安电子科技大学出版社,2007.附录A源程序#include#include#define uint unsigned int #define uchar unsigned charuchar table=T: A:;uchar table1=0605112130;sbit adclk=P36;/与单片机连接口sbit adio=P37;sbit adcs=P20;uint t=0;sbit en=P12; /使能信号sbit rw=P11; /读或者写选择 ,低时写sbit rs=P10; /高时写数据uint code WENDU=0x000,0x082,0x104,0x186,0x208,0x28A,0x30C,0x38E,0x410,0x492,0x514; /温度转折点(温度的16进制数)uchar code N=0,20,43,67,94,121,148,175,202,229,255; /二进制数转折点(转换值)uchar table2=0123456789;/*声明各个子函数*/bit lcd_bz();/忙检测void write_com(uchar com);/写指令void write_data(uchar date);/写数据void lcd_pos(uchar pos);/设定显示位置void lcd_clr();/清屏子函数unsigned char read_com (void);unsigned char read_data(void);/*延时1毫秒*/void delay1ms(uint ms) uchar x; while(ms-) for(x = 0;x200;x+) _nop_() ; _nop_() ; _nop_() ; _nop_() ; _nop_() ; /*LCD显示*/bit lcd_bz() /忙检测 bit result; rs = 0; rw = 1; en = 1; delay1ms(5); result = (bit)(P0&0x80); en = 0; return result;unsigned char read_com(void) unsigned char address; while(lcd_bz(); rs=0;rw=1;en=1;delay1ms(5);address=(P0|0x80);en=0;return address;unsigned char read_data(void) uchar Data; rs=1; rw=1; en=1; delay1ms(5); Data=P0; en=0; return Data;void write_com(uchar com)/写命令 while(lcd_bz(); rs=0; rw=0; en=0; P0=com;/8位数据口 delay1ms(5); en=1; delay1ms(5); en=0;void write_data(uchar date)/写数据 while(lcd_bz(); rs=1; rw=0; en=0; P0=date; delay1ms(5); en=1; delay1ms(5); en=0; void lcd_pos(uchar pos)/设定显示位置 write_com(pos|0x80); void lcd_clr()/清屏子程序 write_com(0x01);/清除LCD的显示内容 delay1ms(100); void init()/初始化 rw=0; en=0; write_com(0x38);/显示模式设置 write_com(0x0d);/开显示,没光标,不闪烁 write_com(0x06);/当读或写一个字符后指针加1,光标加1,当写一个字符时整屏不动 write_com(0x01);/清屏 所有显示清0,所有指针清0 void display1(uint Pv) uint i,j,k,w; i=Pv%1000%100%10; j=Pv%1000%100/10; k=Pv%1000/100; w=Pv/1000; lcd_pos(0x02); write_data(table2w); lcd_pos(0x03); write_data(table2k); lcd_pos(0x04); write_data(table2j); lcd_pos(0x05); write_data(table2i); lcd_pos(0x06); void display2(uint Pv) uint i,j,k; i=Pv%1000%100%10; j=Pv%1000%100/10; k=Pv%1000/100; lcd_pos(0x0A); write_data(table2k); lcd_pos(0x0B); write_data(table2j); lcd_pos(0x0C); write_data(table2i); lcd_pos(0x0D); /*线性化*/Xianxinghua(uint n)uint c,d; uchar a; for(a=0;a=Na&nNa+1) c=(n-Na)*130/(Na+1-Na); /线性化公式 d=c+WENDUa; return(d); /返回转换值 /*ADC0832模数转换*/uchar getvalue0832(bit channel)/ADC0832数据读取uchar i,dat1=0,dat2=0;adclk=0;adio=1;adcs=0;adclk=1;adclk=0;adio=1; adclk=1; adclk=0; /第二个脉冲,模式选择adio=channel; /第三个脉冲,通道选择adclk=1; adclk=0;adio=1; /释放总线for(i=0;ii; for(i=0;i8;i+) /从低到高取一次 if(adio) dat2|=0x01i; adclk=1; adclk=0; adcs=1; adio=1; adclk=1; /释放总线if(dat1=dat2) /校验数据是不是正确 return dat1; /*主函数部分*/void main(void) unsigned char ADtemp=0,ADtemp1,i;/定义中间变量 init();/初始化lcd_clr();/清屏 delay1ms(500);lcd_pos(0x00);/设定第一行显示位置 i=0;while(tablei!=0) write_data(tablei);/显示字符Ti+;lcd_pos(0x40);/设定第二行显示位置 i = 0; while(table1i != 0) write_data(table1i);/ 显示学号 i+; while(1) ADtemp1=ADtemp; ADtemp=getvalue0832(0); if(ADtemp1!=ADtemp) t=Xianxinghua(ADtemp); delay1ms(300); /延时调用显示程序display1(t);display2(ADtemp); 袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论