医用红外测温仪设计_第1页
医用红外测温仪设计_第2页
医用红外测温仪设计_第3页
医用红外测温仪设计_第4页
医用红外测温仪设计_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

毕业论文(设计)诚信声明本人声明:所呈交的毕业论文(设计)是在导师指导下进行的研究工作及取得的研究成果,论文中引用他人的文献、数据、图表、资料均已作明确标注,论文中的结论和成果为本人独立完成,真实可靠,不包含他人成果及已获得青岛农业大学或其他教育机构的学位或证书使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。论文(设计)作者签名:日期:年月日毕业论文(设计)版权使用授权书本毕业论文(设计)作者同意学校保留并向国家有关部门或机构送交论文(设计)的复印件和电子版,允许论文(设计)被查阅和借阅。本人授权青岛农业大学可以将本毕业论文(设计)全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本毕业论文(设计)。本人离校后发表或使用该毕业论文(设计)或与该论文(设计)直接相关的学术论文或成果时,单位署名为青岛农业大学。论文(设计)作者签名:日期:年月日指导教师签名:日期:年月日目录摘要 高达几十分之一摄氏度。红外测温是非接触式测量,不破坏物体本身的温度分布,这样测得的温度是真实,准确,误差达0.1℃以下[2]。1.2红外测温仪的分类红外测温仪根据原理可分为全辐射测温仪、单色测温仪和双色测温仪(辐射比色测温仪)。1.2.1全辐射测温仪全辐射测温仪是通过测量波长从零到无穷大的整个光谱范围内的辐射功率来确定物体的辐射温度[3]。辐射温度指的是总辐射功率时,实际的对象(包括所有波长),和绝对总黑体辐射功率等于实际的对象被称为辐射温度的黑体的温度。有没有全频段均匀辐射探测器,也没有窗口或镜头通过全频段的红外光学材料,辐射测温只是一个理想化的概念。仅在很宽的波长范围内的辐射进行辐射温度计测量的实际使用情况,接收到的辐射能量的大部分的总辐射能量的值。全辐射测温仪通常要通过黑体定标。设黑体温度为,它所对应的辐射功率为(1-1)在仪器定标和实测时,若两者的接收功率相同,应有如下关系(1-2)由此得(1-3)其相对误差为(1-4)由于被测物体的发射率总是小于1,它表示的辐射温度计的温度总是低于对象的真实温度。显然,目标的发射率越接近1,表明是更接近目标的真实温度的温度计的温度,相反,发射率越小,误差越大[4]。1.2.2单色测温仪单色测温仪是通过测量物体发射的某一波长范围内的辐射功率以确定目标亮温的仪器[5]。若用黑体标定,这时,温度为的黑体辐射能量应等于温度为T的目标辐射能量。即(1-5)于是得(1-6)有式(1-6)可知,实验选择的波长越短,用发射率引起的误差较小,因此单色测温计一般工作在短波长区域。但短波单色测温计温度范围窄,容易受到外界的干扰。在长波长的单色测温计虽然测量误差较大,但它有一个很宽的温度范围,和高温物体不是由杂散辐射引起的误差敏感。此外,格局维恩位移定律,随着温度的升高,最大辐射功率的波长就会想短波方向移动。因此,低温测量应使用长波长,以高温物体的温度测量宜采用短波长。1.2.3比色测温仪比色测温仪是根据两个波段辐射能量的比值与物体温度的函数关系来测定物体色温的[5]。设T为实际物体的真实温度,光谱发射率为和的波长分别为和λ2,当在两个博城的辐射功率比,在这两个波长的辐射功率的黑体温度对象是相等的比率,黑体的温度称为该对象的颜色温度,即色温。比色温度计可以消除一定程度上的发射率误差,只要在两个波段的发射率的变化是比较缓慢的,辐射能量的两波段比值主要取决于被测目标的额表面温度。对部分遮挡场的光学系统,有烟雾测试空间,灰尘和位置的变化,只要他们辐射的几乎相同的两个频带的功率,这些因素对测量结果的影响不显著。同样,在性能上的变化或电路元件放大对测量结果的影响不显著。1.3环境因素对红外测温仪的影响环境因素对红外测温仪主要存在以下两方面的影响:一方面,辐射出红外源,大多经过一定距离传输,在一个气体分子,有很强的红外辐射的吸收,非干燥的大气红外吸收能力最强的是水蒸气和二氧化碳。除了这些气体分子吸收红外线,将红外散射。由于吸收和散射的气体分子,使红外辐射衰减,严重时,可使红外仪器无法正常工作。另一方面,由于外部辐射源的存在,尤其是在热辐射,辐射温度的实际测量透镜就超过目标输入透镜的能量,产生的测量误差也十分明显。1.4医用红外测温仪的现状红外测温技术发展的非常快,已被用于国内外市场上,美国许多温度微机测量仪器,生产手提式双色测温仪、各种扫描式高温计。红外测温仪在日本十分活跃,产品系列化、标准化和应用工作,有便携式、台式机和其他类型的。近年来,德国推出了一系列高性能的测量仪器,如品浦东测量仪器,精度可达1%,作为一个比较领先的仪器,可以测量1200℃的温度,减小发射率的影响。红外线人体测温仪是红外测温技术的一个重要应用,它是利用人体发出的红外线来测量出人体的温度。它采用高精度的红外传感器和微电子技术,能够快速、准确、方便地测出人体的温度,解决了传统水银式温度计的容易破碎、水银污染环境与不易读数等问题。这可以说是医学测量的一个重大进步。尽管红外测温仪早已在工业领域广泛应用,但由于医用红外测温仪的特殊要求,直到1986年T.Shinozaki等才首次应用热电堆探测器制成了耳道式红外体温计,用来测量人体鼓膜的温度。我国在这方面的起步较晚。2003年,由中科院物理研究所王树铎教授研制的“非接触、口腔式红外线电子体温仪”才获得专利授权。在此之前,完全不与人体接触、又满足医疗测量精度的要求的体温计,还没有面世。2红外温度传感器2.1红外温度测量技术非接触式红外温度测量,通常用作热电探测器或光检测器元件。该温度测量系统是比较简单,可以实现大面积的温度,它可以是被测量物体的温度测量上的一个点,可以是便携式,它可以是固定的,并且容易使用,其制造工艺简单,成本也必然比不接触被测物体温度低,响应时间短,无干扰的温度场,使用寿命长,操作简便,一系列的优点,但使用的红外辐射来测量温度,由物体的发射率,温度距离,烟雾和蒸汽及其他外部因素的影响,测量误差大。此温度测量技术红外线温度传感器的选择是很重要的,不仅可以使用红外线温度传感器的温度测量点,大面积的温度测量,也可以使用红外线温度传感器。这种设计是利用红外温度传感器,温度测量技术,其温度分辨率高,响应速度快,不干扰被测目标的温度分布场,精度高,稳定性好;另外红外温度传感器发展速度非常快,技术比较成熟,它也是使用非接触式红外线温度传感器设计温度测量仪的原因。2.2红外温度传感器红外温度传感器按照测量原理可以分为两类:光电红外温度传感器和热电红外温度传感器。本红外测温仪选用热电红外温度传感器。光电传感器是通过把光强度的变化转换成电信号的变化来实现控制的。光电传感器在一般情况下,有三部分构成,它们分为:发送器、接收器和检测电路。发送器对准目标发射光束,发射的光束一般来源于半导体光源,发光二极管(LED)、激光二极管及红外发射二极管。光束不间断地发射,或者改变脉冲宽度。接收器有光电二极管、光电三极管、光电池组成。在接收器的前面,装有光学元件如透镜和光圈等。在其后面是检测电路,它能滤出有效信号和应用该信号。此外,光电开关的结构元件中还有发射板和光导纤维[6]。热电传感器是将温度变化转换为电量变化的装置,它利用敏感元件的电磁参数随温度变化而变化的特性来达到测量目的。热电红外温度传感器是利用红外辐射的热效应,通过温差电效应、热释电效应和热敏电阻等来测量所吸收的红外辐射,间接地测量辐射红外光物体的温度[6]。2.3红外测温传感器otp-538u介绍本设计中选择的是otp-538u红外传感器。otp-538u是一个有着传统TO-46外壳的热电堆传感器,该传感器是由串联的116个热电偶元素,传感器芯片经由微细加工,可快速反应环境里的温度改变,导致输出端电压相应,红外窗口是一个带通滤波器,具有恒定的信号反应至其截止频率。Otp-538u是一款零功耗,输出为便于采取的电压信号,检测温度范围较广的非接触式温度检测的红外传感器。红外传感器的外观图如图1所示。图1红外传感器otp-538u外观图2.3.1传感器特点红外传感器otp-538u的传感器特点如表1。表1传感器特点参数描述传感器帽集成的红外窗口的金属帽传感器顶部TO-46引脚三个孤立+1接地引脚焊金属层滤光片硅基红外滤光片绝缘气体密封该传感器密封在氮气环境中2.3.2传感器的特性红外传感器Otp-538u的特性如表2。表2传感器的特性参数MinTypMaxUnitConditions输出电压0.771.44mVTamp=25℃Tobj.=50℃敏感性7085100V/WTC灵敏度2%/KTypical敏感区直径545μm热电堆阻抗506580KΩ25℃TC的阻尼0.09%/KTypical时间常数16ms噪声电压283236nV/Hz1/2NEP0.280.360.48nW/Hz1/22.3.3信号输出特性红外传感器otp-538u的信号输出特性如图2。图2信号输出特性2.3.4滤波器的特性红外传感器otp-538u滤波器的特性如表4。表4滤波器的特性参数MinTypMax截止波长4.75.0光学特性红外传感器otp-538u的光学特性如表5。表5光学特性参数MinTypMaxUnitConditions视场66Degree50%的目标信号2.3.6机械制图与引脚分配图2机械图与引脚分配

3总体方案设计与主要芯片的介绍3.1总体方案设计本方案中系统可以分为模拟红外温度传感器模块、放大电路模块、AD转换电路模块、主控模块、8255扩展模块和LED显示模块。总体方案图如图3所示。首先模拟红外温度传感器接收人体发出的红外线,然后经过转换后输出对应的电压值,传感器同时通过片上温度传感器测量温度,这两个红外温度传感器的输出量通过放大电路和AD转换电路的处理后传输到主控模块进行相关的处理,然后通过LED模块显示相应的人体温度。AD转换LED显示放大电路主控模块红外测温AD转换LED显示放大电路主控模块红外测温电源模块电源模块图3总体方案设计图3.2主要芯片的介绍本设计采用AT89C51作为核心,集合集成运放LM324,ADC0809转换芯片,8255扩展,LED数码管显示实现红外测温仪的功能。3.2.1AT89C51单片机AT89C51是一种带4K字节闪烁可编程可擦除的只读存储器的低电压,高性能CMOS8高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价的案。AT89C51引脚图如图4所示。图4AT89C51引脚图P0口、P1口、P2口等引脚功能介绍如下:P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻抗输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3.0/RXD串行通信输入P3.1/TXD串行通信输出P3.2/INT0外部中断0输入,低电平有效P3.3/INT1外部中断1输入,低电平有效P3.4/T0计数器0外部事件计数输入端P3.5/T1计数器1外部事件计数输入端P3.6/WR外部随机存储器的写选通,低电平有效P3.7/RD外部随机存储器的读选通,低电平有效RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时当8051通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位。初始化后,程序计数器PC指向0000H,P0-P3输出口全部为高电平,堆栈指针写入07H,其它专用寄存器被清“0”。RESET由高电平下降为低电平后,系统即从0000H地址开始执行程序。然而,初始复位不改变RAM(包括工作寄存器R0-R7)的状态。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

EA/VPP:当/EA保持低电平时,则此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源。

XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2:来自反向振荡器的输出。振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。AT89C51各中断源向量地址如表6所示。表6中断源向量地址中断源向量地址外部中断00003H定时/计数器0000BH外部中断10013H定时/计数器1001BH串行通讯0023HVCC:AT89C51电源正极输入,接+5V电压。GND:电源接地端。AT89C51个中断源向量地址3.2.2LM324运算放大器LM324系列运算放大器是价格便宜的带差动输入功能的四运算放大器。它的内部包含形式完全相同的运算放大器,除电源共用外,四组运放相互独立。可工作在单电源下,电压范围是3.0V-32V或16V。LM324的引脚如图5所示。LM324的特点:(1)短跑保护输出;(2)真差动输入级;(3)可单电源工作:3V-32V;(4)低偏置电流:最大100nA(LM324A);(5)每封装含四个运算放大器;(6)具有内部补偿的功能;(7)共模范围扩展到负电源;(8)行业标准的引脚排列;(9)输入端具有静电保护功能。图5引脚图3.2.3ADC0809ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。它是逐次逼近式A/D转换器,可以和单片机直接接口。

(1)ADC0809的内部逻辑结构由下图7可知,ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。图6内部结构图(2)ADC0809引脚结构ADC0809引脚功能如下:D7-D0:8位数字量输出引脚。IN0-IN7:8位模拟量输入引脚。VCC:+5V工作电压。GND:地。REF(+):参考电压正端。REF(-):参考电压负端。START:A/D转换启动信号输入端。ALE:地址锁存允许信号输入端。(以上两种信号用于启动A/D转换).EOC:转换结束信号输出引脚,开始转换时为低电平,当转换结束时为高电平。OE:输出允许控制端,用以打开三态数据输出锁存器。CLK:时钟信号输入端(一般为500KHz)。A、B、C:地址输入线。图7ADC0809引脚ADC0809对输入模拟量要求:信号单极性,电压范围是0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。ADC0809引脚如图7所示。ST为转换启动信号。当ST为上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。EOC为转换结束信号。当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。OE=1,输出转换得到的数据;OE=0,输出数据线呈高阻状态。D7-D0为数字量输出线。CLK为时钟输入信号线。因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ,VREF(+),VREF(-)为参考电压输入。ALE为地址锁存允许输入线,高电平有效。当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进入转换器进行转换。A,B和C为地址输入线,用于选通IN0-IN7上的一路模拟量输入。通道选择表如表7所示。表7通道选择CBA选择的通道000IN1001IN2010IN3011IN4100IN5101IN6110IN7111IN83.2.474LS74四分频器74LS74内含两个独立的双d触发器,每个触发器有数据输入(D)、置位输入(SD)复位输入(RD)、时钟输入(CP)和数据输出(Q)。SD、RD的低电平使输出预置或清除,而与其它输入端的电平无关。当SD、RD均无效(高电平式)时,符合建立时间要求的D数据在CP上升沿的作用下传送到输出端。图874LS74内部结构3.2.5可编程并行接口芯片82558255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。其各口功能可由软件选择,使用灵活,通用性强。8255可作为单片机与多种外设连接时的中间接口电路。8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。同时必须具有与外设连接的接口A、B、C口。由于8255可编程,所以必须具有逻辑控制部分,因而8255内部结构分为3个部分:与CPU连接部分、与外设连接部分、控制部分。8255的特性为:(1)一个并行输入/输出的LSI芯片,多功能的I/O器件,可作为CPU总线与外围的接口。(2)具有24个可编程设置的I/O口,即3组8位的I/O口,分别为PA口、PB口和PC口。它们又可分为两组12位的I/O口:A组包括A口及C口(高4位,PC4~PC7),B组包括B口及C口(低4位,PC0~PC3)。A组可设置为基本的I/O口,闪控(STROBE)的I/O闪控式,双向I/O三种模式;B组只能设置为基本I/O或闪控式I/O两种模式,而这些操作模式完全由控制寄存器的控制字决定。引脚说明为:RESET:复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。CS:芯片选择信号线,当这个输入引脚为低电平时,即CS=0时,表示芯片被选中,允许8255与CPU进行通讯;CS=1时,8255无法与CPU做数据传输。RD:读信号线,当这个输入引脚为低电平时,即RD=0且CS=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。WR:写入信号,当这个输入引脚为低电平时,即WR=0且CS=0时,允许CPU将数据或控制字写入8255。图98255芯片引脚图D0~D7:三态双向数据总线,8255与CPU数据传送的通道,当CPU执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。PA0~PA7:端口A输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器。PB0~PB7:端口B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器。PC0~PC7:端口C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入缓冲器。端口C可以通过工作方式设定而分成2个4位的端口,每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。A1,A0:地址选择线,用来选择8255的PA口,PB口,PC口和控制寄存器。当A1=0,A0=0时,PA口被选择;当A1=0,A0=1时,PB口被选择;当A1=1,A0=0时,PC口被选择;当A1=1.A0=1时,控制寄存器被选择。3.2.6共阴极数码管LED数码管实际上是由七个发光管组成8字形构成的,加上小数点就是8个。其引脚分布图如图10所示。这些段分别由字母a、b、c、d、e、f、g、dp来表示。当数码管特定的段加上电压后,这些特定的段就会发亮,以形成我们眼睛看到的数码管字样了。单个发光二极管的管压降为1.8V左右,电流不超过30mA。发光二极管的阳极连接到一起连接到电源正极的称为共阳极数码管,发光二极管的阴极连接到一起连接到电源负极的称为共阴极数码管。图10共阴极数码管

4系统硬件电路的设计4.1单片机的外围电路4.1.1复位电路无论是在刚开始接上电源时,还是运行过程中发生故障都需要复位。复位电路用于将单片机内部电路的状态恢复到一个确定的初始值,并从这个状态开始工作。单片机的复位条件:必须使其RST引脚上持续出现两个机器周期的高电平。单片机的外围电路如图11。图11单片机的外围电路4.1.2时钟电路单片机的时钟信号选用的是内部时钟方式,在单片机XTAL1和XTAL2引脚上跨界上一个晶振和两个稳频电容,可以与单片机内的电路构成一个稳定的自激振荡器。晶振频率为11.0592MHz。4.2放大电路的设计电路中输入级由两个同相输入运算放大器电路并联,再与第三个运算放大器差分输入串联的三运放差动放大电路构成,电路优点:电路放大差模信号,抑制共模信号。放大电路图如图12所示。图12放大电路4.3ADC0809与单片机的连接ADC0809与单片机的连接应符合关系为:(1)ADC0809那个内部带有输出锁存器,可以与AT89S51单片机直接相连。(2)初始化时,使ST和OE信号全为低电平。(3)送要转换通道的地址到A,B,C端口上。(4)在ST端给出一个至少有100ns宽的正脉冲信号。(5)是否转换完毕,我们根据EOC信号来判断。(6)当EOC变为高电平时,这时给OE为高电平,转换的数据就输出给单片机了。连接如图13所示。图13ADC0809与单片机的连接4.4单片机外8255扩展8255的片选信号及地址选择线A0、A1分别由AT89C51的P0.7和P0.0、P0.1经74LS373地址锁存后提供。单片机外8255扩展如图14所示。图148255扩展4.58255扩展显示8255扩展显示如图15所示。图158255扩展显示电路

5系统软件的设计与电路的仿真5.1红外测温程序该红外测温模块的数据输出信号和脉冲信号分别接单片机P1.5,P1.6口,测温控制端接P1.7口。它的程序流程图如图17所示,此模块首先定义一个字符型数组用于存放读取到的一帧数据,然后启动测温,读取数据,数据是在脉冲的下降沿一位一位传送的。把五个字节数据都读完后判断第一个字节是否为0x4c或0x66并且第五个字节为0x0d,若是则计算温度值返回,否则继续读取数据。在此红外测温仪的软件设计中,温度值的计算也是一个非常重要的部分,它关系到整个产品的设计精度,因此把它的温度数据读取与计算用单独的程序给出,其流程图如图17。因为红外测温模块的数据是一位一位地送入单片机的,所以用双重循环,内循环接收一个字节的数据,外循环接收五个字节的数据。图16红外测温流程图5.2ADC0809转换程序设计进行A/D转换时,采用查询EOC的标志信号来检测A/D转换是否完毕,若完毕则把数据通过P2端口读入,经过数据处理之后在数码管上显示。进行A/D转换之前,要启动转换的方法:ABC=110选择第三通道ST=0,ST=1,ST=0产生启动转换的正脉冲信号程序:#include

unsignedcharcodedispbitcode[]={0xfe,0xfd,0xfb,0xf7;0xef,0xdf,0xbf,0x7f};unsignedcharcodedispcode[]={0x3f,0x06,0x5b,0x4f,0x66;0x6d,0x7d,0x07,0x7f,0x6f,0x00};unsignedchardispbuf[8]={10,10,10,10,10,0,0,0};unsignedchardispcount;sbitST=P3^0;sbitOE=P3^1;sbitEOC=P3^2;unsignedcharchannel=0xbc;//IN3unsignedchargetdata;voidmain(void){

TMOD=0x01;TH0=(65536-4000)/256;TL0=(65536-4000)%256;TR0=1;ET0=1;EA=1;P3=channel;while(1){ST=0;ST=1;ST=0;while(EOC==0);

OE=1;getdata=P0;OE=0;dispbuf[2]=getdata/100;getdata=getdata%10;dispbuf[1]=getdata/10;dispbuf[0]=getdata%10;}

}voidt0(void)interrupt1using0{

TH0=(65536-4000)/256;TL0=(65536-4000)%256;P1=dispcode[dispbuf[dispcount]];P2=dispbitcode[dispcount];dispcount++;if(dispcount==8){dispcount=0;}5.38255转换与数码显示程序设计Assumecs:codecodesegmentorg100hstart: nopnopstart1:movcx,06hmovbx,00fehmov dx,04a6h mov ax,80h out dx,ax disp:movdi,offsetsegcodmovdx,04a0hmoval,bhmovah,00hadddi,axmoval,cs:[di]outdx,almovdx,04a2hmoval,bloutdx,alpushcxcalldelaypopcxincbhrolbl,1loopdispjmpstart1delay: movcx,45h delay1: nop nopnopnop loopdelay1 retsegcoddb6dh,7dh,07h,7fh,6fh,77hcode endsend start5.4用Proteus软件对电路进行仿真Proteus是英国Labcenter公司开发的电路分析与实物仿真软件,它运行于Windows操作系统上,可以仿真、分析各种模拟器件和集成电路。Proteus仿真步骤为:(1)点击ProjectNewProject,在“文件名”中输入一个C程序项目名称。“保存”后的文件扩展名为uv2,这是KEILuVision2项目文件扩展名,以后可以直接点击此文件以打开先前做的项目。(2)选择所要的单片机,这里选择常用的AT89C51。(3)首先要在项目中创建新的程序文件或加入旧程序文件。点击File—New按钮,或快捷键Ctrl+N。出现一个新的文字编辑窗口,(4)保存源文件,扩展名为.C。并将该文件加入到刚才建立的项目中。(5)编译源文件。点击Buildtarget或Rebuildalltargetfiles,查看编译结果是否有错,若有错,则修改源程序。否则,则可以进行调试。(6)点击DebugStart/stopDebugsession,进入调试模式。可连续运行,也可以单步运行。程序如下:#include<regx52.h>#include<intrins.h>#include<absacc.h>#defineucharunsignedchar#defineuintunsignedintsbitreset=P2^5;//adc0809/08端口//A/D转换启动信号输入端。sbitST=P3^0;//转换结束信号输出引脚。sbitEOC=P3^1;//输出允许控制端sbitOE=P3^2;//时钟信号输入端。sbitCLK=P3^3;uintad0=0;//延时函数msvoid_delay_ms(uintt){uinti,j;for(i=0;i<t;i++)for(j=0;j<250;j++);}//延时函数usvoid_delay_us(uchart){while(t>0)t--;}voidad(){ _delay_ms(4); //拉高P0置为输入 P1=0xff; //转换结束信号输出引脚。 EOC=1; //A/D转换暂停 ST=0; //输出禁止 OE=0; //A/D转换启动 ST=1; //A/D转换结束 ST=0; //判断结束标志 while(EOC==0); //输出允许 OE=1; //读取数据 ad0=P1; //输出禁止 OE=0; //计算公式实际有差别 ad0=ad0/10*45/2;}//共阴极段码/*0,1,2,3,4,5,6,7,8,9,*/ucharcodeseg[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};//端口映射地址#definePAXBYTE[0x3fff]#definePBXBYTE[0x7fff]#definePC1XBYTE[0xbfff]#defineCTLXBYTE[0xffff]//数据缓存uintad1=0;//显示函数voiddisplay(){PA=~seg[ad1%1000/100];_delay_ms(3);PA=0;PB=~(seg[ad1%100/10]|0x80);_delay_ms(3);PB=0;PC1=seg[ad1%10];_delay_ms(3);PC1=seg[ad1%10];//PC1=0xff;}//主函数voidmain(){_delay_ms(1);_delay_us(1);reset=1;_nop_();reset=0;CTL=0x80;//写8255控制字,设置PA,PB,PC为输出口//定时器配置TMOD=0x00;//定时器0工作方式0TH0=(8192-5000)/32;//5ms定时TL0=(8192-5000)%32;//允许T0中断IE=0x82;//开启定时器TR0=1;while(1){//读取ADad();ad1=ad0;//显示子函数display();}}//T0中断函数voidclkad()interrupt1{//频率TH0=(8192-50)/32;//恢复初值TL0=(8192-50)%32;CLK=~CLK;}(7)单击仿真运行开始按钮,仿真图如图16所示。由于红外温度传感器不能进行仿真,因此用变阻器代替进行仿真。当电阻值变化时,电压值随之变化,最后显示温度值。图16仿31参考文献[1]蒋凯,叶树明,李志锋,吕维敏,甄辉,黄钢妹.高精度医用红外测温仪的开发.计算机工程.2004.30(23)[2]白春丽,沈慧南,韩旭波.基于单片机的智能红外测温系统.信息技术,InformationTechnology,2012年02期

[3]苗玉杰.医用红外测温仪及温度补偿技术的研究.2005年05期[4]张越,张炎,赵延军.基于DS18B20温度传感器的数字温度计.国家重点基础研究发展(973)计划资助项目(2004CB217702-04-01)[5]丁霞,司文娟,王福明.基于单片机的红外测温仪的设计山西电子技术,ShanxiElectronicTechnology,2011年04期[6]张璇.基于51单片机的红外测温仪的设计与实现硅谷.SiliconValley,编辑部邮箱,2010年19期[7]陈可中,谭翔,董建杰,郑明晖,王戎丞,肖桂平.红外测温仪的社计电子测量技术.ElectronicMeasurementTechnology.2007年10期[8]刘学志.红外测温仪的机械设计.中国科技信息,ChinaScienceandTechnologyInformation,2005年19期[9]崔旭晶.单片机在红外测温上的开发应用.微处理机,MICROPROCESSORS,1999年01期[10]付文羽.热释电红传感器噪声特性分析.传感器技术,2001,20(8):25-27[11]李军,刘梅冬.热释电红外自动测温系统研究.传感器世界,2001,(2):32-37[12]CongDaCheng,DaiJingMing,SunXiaoTao.DevelopmentofInfraredMulti-SpectralRadiationThermometer.HarbinInstituteofTechnology.ProceedingofTheSecondInternationalsymposiumonInstrumentationScienceandTechnology,JinanChina.2002:337-342[13]V.AlexandnaHaria,BerbecarnCicerons,StanculescuFlorin.DopedTGSCrystalsforIRDetectorandSensors.SensorsandActuators2004,113(3):387-38致谢光阴似箭,日月如梭。转瞬间,四年的大学生活即将结束,思念之情难以言表,总结大学四年的生活,我学到了很多,同时也要感谢许多人,是他们让我这大学四年有了全新的改变。首先,我想特别感谢我的导师——温利老师,在设计过程中,温老师和我一起解决方案和结构设计的难题,指导设计硬件电路、控制系统的思路和解决方法等等。让我从中得到很多的经验和启发。在此,向温老师表示最真诚的感谢和诚挚的敬意。另外,感谢同学,我们一起不断学习、突破和创新,相互帮助和激励,一起为心中的梦想努力奋斗;希望这种努力学习气氛传承并发扬下去,营造一种积极努力向上的氛围,给更多的同学发展的机会,证明自己的能力。最后要感谢我的父母,是你们在我身后不断地给我提供支持,让我完成了大学梦。你们劳累的身影不时出现在我眼前,发自内心的说声我爱你们,爸爸妈妈,我会用实际行动让你们过上更加幸福的生活。路漫漫其修远兮,吾将上下而求索。我愿在未来的学习和工作过程中,以更丰厚的成果来答谢曾经关心、帮助和支持我的所有领导、老师、同学。四年的大学生活让我学到了许多宝贵知识和经验,在此衷心感谢母校的培育之恩,祝母校:桃李满天下,明天更辉煌!谢谢大家!

附录1:总体硬件电路的设计图

附录2:程序#include<reg51.h>#include<intrins.h>#include<math.h>Unsignedintdatabai,shi,ge;unsignedlongintidatatemp,temp1,tp;//unsignedchardatadis[5];unsignedcharcodetable[]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39};unsignedcharcodew[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09};unsignedchardataCode5[]="NO:";unsignedchardataCode6[]="GETREADY!";unsignedchardataCode7[]="AMBIENTTEMP:" ;unsignedchardataCode8[]="INPUTDONE!";unsignedchardataCode9[]="PRESSTORECALL" ;inti,j,k;k=0;unsignedcharidataa[5][6];unsignedlongintidatapp[7];unsignedcharm;unsignedcharxdatakey;sbitACS=P3^3;sbitALE=P3^4;sbitSTART=P3^5;sbitOE=P3^6;sbitEOC=P3^7;sbitLCDRS=P3^0;sbitLCDRW=P3^1;sbitLCDEN=P3^2;voiddelay(unsignedcharn){inti,j;for(i=0;i<n;i++)for(j=0;j<100;j++);}voiddelay1(unsignedcharn){inti,j;for(i=0;i<n;i++)for(j=0;j<1000;j++);}//*****************voidfree(){while(1){P1=0xf0;if(P1==0xf0)break;}}voidWrite_Cmd(unsignedcharC){LCDEN=1;LCDRS=0;P0=C;delay(5);LCDEN=0;}voidWrite_Data(unsignedcharD){LCDEN=1;LCDRS=1;P0=D;delay(5);LCDEN=0;}voidLCD_Init(){LCDRS=0;//指令寄存器选择Write_Cmd(0x01);//清屏Write_Cmd(0x38);//Write_Cmd(0x0F);//开关显示设置Write_Cmd(0x06);//输入方式设置,光标从左向右移动,内容不移动}voidwelcome(){unsignedcharCode1[]="WELCOMETOTHE";unsignedcharCode2[]="TEMPSYSTEM!";unsignedcharm;LCDRW=0;//写选择LCD_Init();P1=0xfe;Write_Cmd(0x01);Write_Cmd(0x80+0x01);//for(m=0;m<14;m++){Write_Data(Code1[m]);delay1(30); }Write_Cmd(0xc0+0x02);//for(m=0;m<12;m++){Write_Data(Code2[m]);delay1(30); }delay1(1000); Write_Cmd(0x08);delay1(500); Write_Cmd(0x0f);delay1(500); Write_Cmd(0x08); delay1(500);Write_Cmd(0x0f);}voidstart(){P1=0xfe;while(1){if(P1==0xee){ delay(5); if(P1==0xee) {free(); break; } }}}voidok(){P1=0xfe;while(1){if(P1==0xbe){ delay(5); if(P1==0xbe) {free(); break; } }}}voidinputnumber(){unsignedcharCode3[]="INPUTANUMBER!";unsignedcharCode4[]="NO:";unsignedcharm;LCDRW=0;//写选择Write_Cmd(0x01);Write_Cmd(0x80+0x01);for(m=0;m<14;m++){Write_Data(Code3[m]);delay(3);}Write_Cmd(0xc0+0x01);for(m=0;m<3;m++){Write_Data(Code4[m]);delay(3);}}unsignedcharadc(){ALE=0;START=0;OE=0;EOC=1;ALE=1;_nop_();_nop_();ALE=0;START=1;_nop_();_nop_();START=0;_nop_();_nop_();_nop_();_nop_();while(EOC==0);OE=1;temp1=P2;OE=0;//temp1=128;temp=temp1*19400/(49600-temp1*194);if(temp<66)tp=floor(((66-temp)/2.4+35)*10.0)+5;elseif(temp<81)tp=floor(((81-temp)/3.0+30)*10.0)+5;elseif(temp<100)tp=floor(((100-temp)/4.2+25)*10.0)+5;elseif(temp<124)tp=floor(((124-temp)/4.9+20)*10.0)+5;//tp=temp;bai=tp/100;shi=tp%100/10;ge=tp%10;LCDRW=0;Write_Cmd(0xc5);Write_Data(table[w[bai]]);Write_Data(table[w[shi]]);Write_Data(0x2e);Write_Data(table[w[ge]]);Write_Data(0x44);Write_Data(0x45);Write_Data(0x47);returntp;}//********************unsignedcharadc2(){ALE=0;START=0;OE=0;EOC=1;ALE=1;_nop_();_nop_();ALE=0;START=1;_nop_();_nop_();START=0;_nop_();_nop_();_nop_();_nop_();while(EOC==0);OE=1;temp1=P2;OE=0;tp=temp1*194;pp[k]=tp;k++;bai=tp/10000;shi=tp%10000/1000;ge=tp%1000/100;LCDRW=0;//写选择Write_Cmd(0xc5);Write_Data(table[w[bai]]);Write_Data(table[w[shi]]);Write_Data(0x2e);Write_Data(table[w[ge]]);Write_Data(0x44);Write_Data(0x45);Write_Data(0x47);returntp;}unsignedcharsckey(){while(1) { P1=0xf0; if(P1!=0xf0) { delay(5); if(P1!=0xf0) {P1=0xfe; if(P1!=0xbe){delay(5); if(P1!=0xbe) break; } } } }P1=0xfe;if(P1!=0xfe){delay(5);if(P1!=0xfe){switch(P1){case0xde:key='0'; free();break;case0xee:key='/'; free();break;}}}P1=0xfd;if(P1!=0xfd){delay(5);if(P1!=0xfd){switch(P1){case0xed:key='1'; free();break;case0xdd:key='2'; free();break;case0xbd:key='3'; free();break;}}}P1=0xfb;if(P1!=0xfb)

温馨提示

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

评论

0/150

提交评论