红外电子体温计的设计方案二_第1页
红外电子体温计的设计方案二_第2页
红外电子体温计的设计方案二_第3页
红外电子体温计的设计方案二_第4页
红外电子体温计的设计方案二_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

..摘要:体温计是人们日常生活中的必备品,但是传统的水银体温计测量时间长,读数也不方便。本课题基于传统体温计的这些缺点设计出一种新型的电子体温计,它在测温精度能与传统的水银温度计相媲美的情况下,大大的缩短了测温时间,携带方便,对环境几乎没有污染。本次设计以单片机为整个体温计的核心,运用红外线原理去设计一个基于单片机的无线电子体温计,利用热释电红外传感器,采集人体发射出的红外线,再将转换之后的电信号通过A/D转换送入单片机,由MCS-51单片机来实现温度值的转换及送入LED显示,同时还加入了时钟功能和超温报警功能,在软件的控制下,实现智能化的体温测量,精确测温,使设计具有实用性。关键字:体温计、红外线、单片机Abstract:Thermometerisanessentialgoodsinourdailylife,butthetraditionalmeasurementofthemercuryneedsalongtime,readingisnotconvenient.Thissubjectwhichbasedonthetraditionalthermometer’defectsdesignedanewtypeofelectronicthermometer,hascomparablecircumstancesontemperaturemeasurementaccuracywithtraditionalmercurythermometers,greatlyreducedthetemperaturetime,anditiseasytobecarried,ithasalmostnopollutionontheenvironment.Thedesignuseamicrocontrollerasthecoreofthethermometer,useinfraredprinciplestodesignamicrocontroller-basedwirelesselectronicthermometer,usepyroelectricinfraredsensors,collecttheinfraredthatbodyemits,thendeliverthesignaltothemicrocontrollerbyA/Dconversion,usetheMCS-51microcontrollertoimplementtheconversion,anddeliverthetemperaturevalueintotheLEDdisplay,thisdesignalsoaddedaclockfunctionandover-temperaturealarmfunction,underthecontrolofsoftware,intelligenttemperaturemeasurements,accuratetemperaturemeasurement,makethedesignpractical.Keyword:thermometer、infrared、microcontroller目录TOC\o"1-3"\u摘要 IAbstractII目录 III引言 11、绪论 21.1红外测温技术简介 21.2单片机简介 22、整体方案设计 52.1整体设计方案的实现 5设计原理 52.1.2系统框图 52.2系统总方案 62.2.1系统工作原理 62.2.2系统总硬件原理图 62.3系统开发方法及开发工具………….72.3.1硬件开发工具介绍…………..72.3.2软件开发工具介绍82.4元器件方案选择 92.4.1单片机芯片选择92.4.2红外温度传感器 92.4.3ADC芯片选择102.4.4显示器件选择113、系统硬件设计 123.1系统的模块设计 123.1.1信号采集模块 12ADC模块 18单片机控制模块 21显示模块 253.2系统改进设计 273.2.1时钟显示功能 273.2.2超温报警功能 294、系统软件设计 304.1软件实现304.1.1程序设计方法4.1.2程序设计语言选择4.1.3系统流程图4.2程序模块分析 324.2.1AD转化模块程序分析324.2.2时钟显示模块程序分析344.2.3主程序分析384.3软件仿真 314.3.1Proteus仿真软件介绍314.3.2仿真过程315、硬件制作与调试 415.1所用仪器 415.2PCB板画图、焊接与调试过程 41结束语………………..43参考文献 44谢辞46附录一 47附录二 48附录三 49附录四50引言体温生理参数是人体最重要、最基本的生命指标,对危重病人进行生命指标参数的监测是医务工作者及时了解病情状况的重要手段之一,对于日常护理和病情检测都是非常重要的。现有体温计大概分为三种类型:一种是常见的玻璃水银体温计;一种是电子体温计;另一种是红外体温计。水银体温计虽然价格便宜,但是有诸多弊端:首先,水银体温计遇热或安置不当,体温计同一脾破裂。其次,人体接触水银后会中毒,中毒症状是恶心、头痛、腹泻、脱发等,严重者会造成血液凝固。因为水银有剧毒,一旦它污染了水源或者事物,可以对人的肾脏、肺等造成极大的伤害,水银也能加速人神经系统退变。最后,采用水银体温计测温需要相当长的时间〔5min-10min,使用不便。没过一些城市和医院已开始禁止使用水银体温计。电子体温计是采用热敏电阻测量温度的,采用电子体温计测温也需要较长的时间,同样使用不便。红外体温计是通过对物体自身辐射的红外能量的测量,准确地测定它的表面温度。它用的红外传感器只是吸收人体辐射的红外线而不向人体发射任何涉嫌,采用的是被动式且非接触式的测量方式,因此红外体温计不会对人体产生辐射伤害。比起前两种测温方法,红外体温计有着响应时间快、使用安全及使用寿命长等优点。近20年来,外体温计在技术上得到迅速发展,性能不断完善,功能不断增强,品种不断增多,适用范围也不断扩大。本设计要介绍的就是一个基于单片机的无线电子体温计,利用红外测温技术,实现快速,安全的测量温度。运用理论基础和软件平台对本次设计进行了仿真设计和硬件制作。绪论红外测温技术简介红外测温原理:一切温度高于绝对零度的物体都在不停地向周围空间发出红外辐射能量。物体的红外辐射能量的大小及其按波长的分布——与它的表面温度有着十分密切的关系。因此,通过对物体自身辐射的红外能量的测量,便能准确地测定它的表面温度,这就是红外辐射测温所依据的客观基础。在20XX全国防"非典"斗争中,我国对红外技术应用于非接触式测温进行了深入研究,在短时间内开发成功了"非接触式红外测温仪",打开了国内"非接触式测温"新篇章。在国外,非接触式红外测温仪已经非常先进了,自1999年就有许多国家致力于这方面的开发研究,到现在为止很多国家的铲平已经达到国际先进水平,并已广泛应用于各个领域。比如:美国早在20XX就颁布了有关红外测温仪的计量标准,美国雷泰公司生产的ST系列红外测温仪已达到世界领先水平。由于红外测温仪测量温度范围宽,除了用于人体温度检测外,还可用于电器的红外测温、供暖的红外测温、运输/汽车维修时的红外测温等各个领域。因此,它具有广泛的开发前景!目前国内开发的红外体温计主要有华中科技大学研制的"慧眼:HW一05"人体温度红外热图像仪.其分辨率高达0.06℃;中科院上海物理研究所研制的红外测温仪和XX大学合华技术应用开发中心开发的LHW—I型红外线测温仪。国外产品有德国博郎集团开发的只需1秒即可测出体温的红外体温计;日本欧姆龙研制的几款非接触式红外体温计和BJ40型非接触式医用红外线体温计<精度为±O.2℃>,其主要器件是红外温度传感器。单片机简介单片微型计算机简称单片机,是典型的嵌入式微控制器〔MicrocontrollerUnit,常用英文字母的缩写MCU表示单片机,它最早是被用在工业控制领域。单片机由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。INTEL的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。早期的单片机都是8位或4位的。其中最成功的是INTEL的8031,因为简单可靠而性能不错获得了很大的好评。此后在8031上发展出了MCS51系列单片机系统。基于这一系统的单片机系统直到现在还在广泛使用。随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。90年代后随着消费电子产品大发展,单片机技术得到了巨大提高。随着INTELi960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。而传统的8位单片机的性能也得到了飞速提高,处理能力比起80年代提高了数百倍。目前,高端的32位单片机主频已经超过300MHz,性能直追90年代中期的专用处理器,而普通的型号出厂价格跌落至1美元,最高端的型号也只有10美元。当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的Windows和Linux操作系统。单片机比专用处理器更适合应用于嵌入式系统,因此它得到了最多的应用。事实上单片机是世界上数量最多的计算机。现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。而个人电脑中也会有为数不少的单片机在工作。汽车一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!单片机的数量不仅远超过PC机和其他计算的总和,甚至比人类的数量还要多。单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。单片机芯片可以说,二十世纪跨越了三个"电"的时代,即电气时代、电子时代和现已进入的电脑时代。不过,这种电脑,通常是指个人计算机,简称PC机。它由主机、键盘、显示器等组成。还有一类计算机,大多数人却不怎么熟悉。这种计算机就是把智能赋予各种机械的单片机〔亦称微控制器。顾名思义,这种计算机的最小系统只用了一片集成芯片,即可进行简单运算和控制。因为它体积小,通常都藏在被控机械的"肚子"里。它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——"智能型",如智能洗衣机等。现在有些工厂的技术人员或其它业余电子开发者搞出来的某些产品,不是电路太复杂,就是功能太简单且极易被仿制。究其原因,可能就卡在产品未使用单片机或其它可编程逻辑器件上。2整体方案设计2.1、整体设计方案的实现2.1.1、设计原理本设计是利用红外线测体温的原理:物体因其自身的温度不同,便会发射出不同波长的红外线辐射能力,这个值是相对稳定的。将被测物体发射的红外线具有的辐射能转变为电信号,红外线辐射能量的大小与物体本身的温度是相关的,根据转变成的电信号的大小,就可以确定物体的温度。本设计利用这个原理,通过红外传感器进行体温测量,红外传感器将收集到的被测人员的红外线转换成电信号,电信号被放大后再经A/D转换器转换为数字信号,并将数字信号送入单片机,单片机将接受到的信号送显示电路显示。此外,本设计还增加了超温报警功能,当被测人体温超过38度时,LED灯亮报警;体温超过39度时,LED灯亮的同时蜂鸣器蜂鸣报警。2.1.2、系统框图本次红外测温仪的设计主要由红外传感器、放大电路、A/D转换电路、时钟电路、单片机控制电路、显示电路、报警电路等部分构成。2.2、系统总方案2.2.1、系统工作原理本课题设计了一个基于单片机的无线电子体温计,通过按键控制数码管显示。当测温键按下时,系统利用红外温度传感器检测到被测物体温度,并将其转换为微弱电信号,通过A/D转换电路将电信号转换为数字信号,并将之送入单片机控制电路,这样单片机便可以对信号进行比较系统的处理,这些处理时通过对单片机的编程来实现的,然后,单片机将处理结果输入到显示电路中,显示模块便能准确显示人体温度。当被测人体温超过38度时,LED灯亮报警;体温超过39度时,LED灯亮的同时蜂鸣器蜂鸣报警。在测温键没有按下时,系统在时钟电路作用下显示当前时间。2.2.2、系统总硬件原理图2.3系统开发方法及开发工具2.3.1硬件开发工具介绍Protel是由始建于1985年的ProtelTechnonology公司开发的、功能强大的电子电路设计软件。本设计主要用Protel电子设计软件进行电子线路的设计,电路原理图见附录二。Protel电子线路设计软件是在TANGO基础上改进的电路CAD软件,它在原理图文件格式、印制板文件格式、原理图器件库文件格式、印制板封装库文件格式、原理图编译和网络表转换与检查等方面保持了与TANGO版本一致或兼容的前提下,对原TANGO版本做了一些改动。Protel电子线路设计软件由原理图编辑、印制板设计、原理图输出、印制板输出、原理图器件库编辑和其他应用程序组成。电路原理图的设计是印制电路板设计中的第一步,也是非常重要的一步。电路原理图设计得好坏将直接影响到后面的工作。首先,原理图的正确性是最基本的要求,因为在一个错误的基础上所进行的工作是没有意义的;其次,原理图应该布局合理,这样不仅可以尽量避免出错,也便于读图、便于查找和纠正错误;最后,在满足正确性和布局合理的前提下应力求原理图的美观。电路原理图的设计过程可分为以下几个步骤:1、设置电路图纸参数及相关信息根据电路图的复杂程度设置图纸的格式、尺寸、方向等参数以及与设计有关的信息,为以后的设计工作建立一个合适的工作平面。2、装入所需要的元件库将所需的元件库装入设计系统中,以便从中查找和选定所需的元器件。3、设置元件将选定的元件放置到已建立好的工作平面上,并对元件在工作平面上的位置进行调整,对元件的序号、封装形式、显示状态等进行定义和设置,以便为下一步的布线工作打好基础。4、电路图布线利用Protel所提供的各种工具、命令进行画图工作,将事先放置好的元器件用具有电气意义的导线、网络标号等连接起来,布线结束后,一张完整的电路原理图基本完成。5、调整、检查和修改利用Protel所提供的各种工具对前面所绘制的原理图做进一步的调整和修改。6、补充完善对原理图做一些相应的说明、标注和修饰,增加可读性和可观性。7、保存和打印输出这部分工作主要是对设计完成的原理图进行保存,包括存盘、打印输出等,以供以后的工作中使用。2.3.2软件开发工具介绍单片机开发中除必要的硬件外,同样离不开软件。随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机开发软件也在不断发展,Keil软件是目前最流行的单片机开发的软件。KeilC51uVision2集成开发环境是美国KeilSoftware公司开发的基于80C51内核的微处理器软件开发平台,内嵌多种复合当前工业标准的开发工具,可以完成从工程建立到管理、编译、链接、目标代码的生成、软件仿真、硬件仿真等完整的开发流程尤其是C编译工具在产生代码的准确性和效率方面达到了较高的水平,而且可以附加灵活的控制选项,在开发大型项目时非常理想。KeilC51uVision2集成开发环境的主要功能有以下几点:KeilC51uVision2:是一个集成开发环境,它将项目管理、源代码编辑和程序调试等组合在一个功能强大的环境中;C51国际际准化C交叉编译器:从C源代码产生可重定位的目标模块;A51宏汇编器:从80C51汇编源代码产生可重定位的目标模块;BL51链接器/定位器:组合由C51和A51产生的可重定位的目标模块,生成绝对目标模块;LIB库管理器:从目标模块生成连接器可以使用的库文件;OH51目标文件至HEX格式的转换器,从绝对目标模块生成IntelHex文件;RTX-51实时操作系统:简化了复杂的实时应用软件项目的设计。2.4、元器件方案选择2.4.1单片机芯片选择方案一:选用AT89C52芯片。AT89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器〔RAM,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。方案二:选用AT89S52芯片。与AT89C52相比,AT89S52新增加了高可靠性、安全性的功能,所以能避免因外部环境恶劣而引起的信号失真、电磁干扰等现象的发生。因此,用它作为系统的控制器可以满足检测与控制的要求。而且,从经济性的方面来看,AT89S52不但硬件结构简单,而且价格低、功能强、性价比高,符合本设计的要求。综上所述,本设计采用AT89S52作为单片机控制芯片。2.4.2、红外温度传感器选择方案一:采用红外温度传感器MLX90615ESG-DAA,MLX90615在信号调节芯片中使用了先进的低噪音放大器,一枚16-bitADC以及功能强大的DSP元件。温度计能适应从-40°C到85°C的广泛工作温度范围,目标的体表可操作温度为-40°C至115°C。但是从设计角度而言,由于该传感器输出的是精准的且与温度大小线性相关的数字信号,简化了设计难度。而且价格不菲,易于损坏。故不选用此方案。方案二:采用红外线温度传感器IRTP。IRTP系列红外测温系统是一种集成专用信号处理电路以及环境温度补偿电路的多用途红外温度测量系统,它属于工业测温传感器。不能用作人体测温,故不选用此方案。方案三:采用热释电红外线传感器D203S。热释电红外线传感器是80年代发展器起来的一种新型高灵敏度探测元件。它能以非接触形式检测出人体辐射的红外线能量的变化,并将其转换成电压信号输出。将这个电压信号加以放大,便可驱动各种控制电路。热释电红外线传感器本身不发任何类型的辐射,器件功耗很小,隐蔽性好,价格低廉。综上所述,本设计采用热释电红外传感器。2.4.2、ADC芯片选择目前业界专用ADC芯片,外围电路结构越来越简单、精度越来越高,可靠性与稳定性都要远远高于ARM处理器集成的A/D转换器。并参考表一各自优缺点。在设计中选用专用A/D芯片完成模拟量采集。表一A/D采集方案对比A/D采集位数优点缺点ARM处理器集成A/D12位无需外加IC,电路简单。可靠性不高,采样频率低。专用A/D芯片16-32位不占用CPU资源,精度高。外围电路结构较复杂。专用A/D芯片选择方案:方案一:选用ADC0809。ADC0809是8路8位逐次逼近式A/D转换器,具有三态数据总线,可以直接和MCU接口。0809由8路模拟开关、通路地址锁存器、8位A/D转换器和三态锁存器缓冲器等组成,但它适用于精度要求不高〔分辨率1/256的多路A/D转换,故不选用此方案。方案二:选用AD574。AD574是具有三态输出总线的高速〔10-35us高精度〔0.05%A/D转换器,可以直接和MCU接口。AD574内部含有12位逐次逼近式A/D转换器、时钟电路、基准电源电路、三态数据锁存器缓冲器等。AD574精度高,但与8位的单片机接口较复杂,且价格昂贵,考虑到体温计是对温度的测量,其响应时间的要求不高,故不选用此方案。方案三:选用ADC0832。ADC0832是8脚双列直插式双通道A/D转换器,能分别对两路模拟信号实现模—数转换,可以用在单端输入方式和差分方式下工作。8位的分辨率〔最高分辨可达256级,可以适应一般的模拟量转换要求。它体积小,兼容性,性价比高,符合本设计的要求。综上所述,本设计采用ADC0832作为A/D转换器。2.4.4显示器件选择方案一:选用LCD液晶显示器。LCD的构造是在两片平行的玻璃当中放置液态的晶体,两片玻璃中间有许多垂直和水平的细小电线,透过通电与否来控制杆状水晶分子改变方向,将光线折射出来产生画面。虽然显示效果颇佳,但是价钱较其贵。由于该设计显示数字较少。故不选用此方案。方案二:选用LED数码管。LED数码管是一种半导体发光器件,其基本单元是发光二极管。LED数码管是一类显示屏。通过对其不同的管脚输入相对的电流,会使其发亮。从而显示出数字数码管能够显示时间、日期、温度、等所有可用数字表示的参数。而且工作电低,显示简单明了。综上所述,本设计采用LED数码管显示器。系统的硬件设计3.1、系统的模块设计3.1.1、信号采集模块在介绍整个模块前,先简要介绍几个相关概念。〔一黑体辐射定律红外体温计的测温原理是基于黑体辐射定律。在任何温度下都能全部吸收投射到其表面的任何波长的辐射能量的物体称为黑体。黑体的单色辐射出度是描述在某一波长辐射源单位面积上发出的辐射通量。黑体辐射定律:黑体是一种理想化的辐射体,它吸收所有波长的辐射能量,没有能量的反射和透过,其表面的发射率为1。应该指出,自然界中并不存在真正的黑体,但是为了弄清和获得红外辐射分布规律,在理论研究中必须选择合适的模型,这就是普朗克提出的体腔辐射的量子化振子模型,从而导出了普朗克黑体辐射的定律,即以波长表示的黑体光谱辐射度,这是一切红外辐射理论的出发点,故称黑体辐射定律。物体发射率对辐射测温的影响:自然界中存在的实际物体,几乎都不是黑体。所有实际物体的辐射量除依赖于辐射波长及物体的温度之外,还与构成物体的材料种类、制备方法、热过程以及表面状态和环境条件等因素有关。因此,为使黑体辐射定律适用于所有实际物体,必须引入一个与材料性质及表面状态有关的比例系数,即发射率。该系数表示实际物体的热辐射与黑体辐射的接近程度,其值在零和小于1的数值之间。根据辐射定律,只要知道了材料的发射率,就知道了任何物体的红外辐射特性。影响发射率的主要因纱在:材料种类、表面粗糙度、理化结构和材料厚度等。当用红外辐射测温仪测量目标的温度时首先要测量出目标在其波段范围内的红外辐射量,然后由测温仪计算出被测目标的温度,用公式可表达为:E=δε〔T4-T04E是辐射出射度.单位是W/m3;δ是斯蒂芬一波尔兹曼常数,5.67x10-8W/〔m2·K4;ε是物体的辐射率;T是物体的温度〔K;To是物体周围的环境温度〔K。人体主要辐射波长在9~10μm的红外线,通过对人体自身辐射红外能量的测量,便能准确地测定人体表面温度。由于该波长范围内的光线不被空气所吸收,因而可利用人体辐射的红外能量精确地测量人体表面温度,便能准确地测定人体表面温度。红外温度测量技术的最大优点是测试速度快,1秒钟以内可测试完毕。由于它只接收人体对外发射的红外辐射,没有任何其它物理和化学因素作用于人体,所以对人体无任何害。〔二菲涅尔透镜简介:菲涅尔透镜是由法国物理学家奥古斯汀.菲涅尔〔Augustin.Fresnel>发明的,他在1822年最初使用这种透镜设计用于建立一个玻璃菲涅尔透镜系统——灯塔透镜。菲涅尔透镜<FresnelLense>是一种微细结构的光学元件,从正面看其象一个飞镖盘,由一环一环的同心园组成。菲涅尔透镜<Fresnellens>多是由聚烯烃材料注压而成的薄片,也有玻璃制作的,镜片表面一面为光面,另一面刻录了由小到大的同心圆,它的纹理是利用光的干涉及扰射和根据相对灵敏度和接收角度要求来设计的,透镜的要求很高,一片优质的透镜必须是表面光洁,纹理清晰,其厚度随用途而变,多在1mm左右,特性为面积较大,厚度薄及侦测距离远。菲涅尔透镜的在很多时候相当于红外线及可见光的凸透镜,效果较好,但成本比普通的凸透镜低很多。多用于对精度要求不是很高的场合,如幻灯机、薄膜放大镜、红外探测器等。菲涅尔透镜作用有两个:一是聚XX用,即将热释红外信号折射〔反射在PIR上,第二个作用是将探测区域内分为若干个明区和暗区,使进入探测区域的移动物体能以温度变化的形式在PIR上产生变化热释红外信号。〔三D203S简介红外传感器是红外体温计的关键部件,在本设计中红外温度传感器我们选用D203S。D203S是通用双元热释电红外线感测器,它是利用温度变化的特征来探测红外线的辐射,采用双灵敏元互补的方法抑制温度变化产生的干扰,提高了感测器的工作稳定性。D203S应用非常广泛,例如:保险装置、防盗报警器、感应门、自动灯具、智能玩具等。D203S规格尺寸如下:D203S的引脚图如图a所示,等效电路如图b所示。图aD203S引脚图图bD203S等效电路热释电红外传感器利用的正是热释电效应,是一种温度敏感传感器。它由陶瓷氧化物或压电晶体元件组成,元件两个表面做成电极,当传感器监测范围内温度有ΔT的变化时,热释电效应会在两个电极上会产生电荷ΔQ,即在两电极之间产生一微弱电压ΔV。传感器主要有外壳、滤光片、热释电元件PZT、场效应管FET等组成。其中,滤光片设置在窗口处,组成红外线通过的窗口。滤光片为6mm多层膜干涉滤光片,对太阳光和荧光灯光的短波长〔约5mm以下可很好滤除。热释电元件PZT将波长在8mm~12mm之间的红外信号的微弱变化转变为电信号,为了只对人体的红外辐射敏感,在它的辐射照面通常覆盖有特殊的滤光片,使环境的干扰受到明显的抑制作用。D203S热释电红外传感器能无接触地检测人体运动时辐射出的红外线并转换成电信号输出。人体的体温约为37℃,辐射最多红外线的波长是10μm左右,而D203S对5~14μm范围波长比较灵敏,他采用了2个热释电元件PZT板,PZT板表面吸收红外线,并在受光面的内外各自安装取出电荷的一对电极,能敏感的捕捉到被测物体或光源,具有很高的灵敏度。D203S红外感测器的放置方向和器件平面图的尺寸,结合菲涅尔透镜的焦点可以获得一种最佳的光学设计。菲涅尔透镜用于感测器的探测方位:〔四LM324简介LM324系列器件为价格便宜的带有真差动输入的四运算放大器。与单电源应用场合的标准运算放大器相比,它们有一些显著的优点。该四放大器可以工作在低到3.0伏或者高到32伏的电源下,静态电流大致为MC1741的静态电流的五分之一〔对每一个放大器而言。共模输入范围包括负电源,因而消除了在许多应用场合中采用外部偏置元件的必要性。输出电压范围也包含负电源电压。功能特性如下:短路保护输出;真差动输入级;单电源工作:3.0伏至32伏;低输入偏置电流:最大100纳安;每一封装四个放大器;内部补偿;共模范围扩展到负电源;行业标准引脚输出;在输入端的静电放电箔位增加可靠性而不影响器件的工作。管脚图如下图所示:引脚功能如下表所示:引脚功能电压〔V引脚功能电压〔V1输出13.08输出33.02反向输入12.79反向输入32.43正向输入12.810正向输入32.84电源5.111地05正向输入22.812正向输入42.86反向输入21.013反向输入42.27输出23.014输出43.0由于LM324四运放电路具有电源电压范围宽,静态功耗小,可单电源使用,价格低廉等特点,因此它被非常广泛的应用在各种电路中。〔五信号采集模块电路图本单元电路主要由菲涅尔透镜、热释电红外传感器、信号放大器几个部分组成,电路如下图所示。该部分的作用采集人体红外线信号并进行放大。在放大之前加了一个射级跟随器,作用是提高输入阻抗。其中后端LM324的输出接A/D转换电路的输入端。信号采集模块电路图如下:在该部分设计中,要在传感器正前方适当位置放置菲涅尔透镜。运动的人体一旦出现在透镜的前方,人体辐射出的红外线通过透镜后在传感器上形成不断交替变化的阴影区〔盲区和明亮区〔可见区,使传感器表面的温度不断发生变化,从而输出电信号。菲涅尔透镜不仅可以形成可见区和盲区,还有聚XX用,其焦点一般为5厘米左右,实际应用时,一般把透镜固定在传感器正前方1-5厘米的地方。其工作原理示意图如下图所示。3.1.2、ADC模块〔一ADC0832简介本设计中的A/D转换器采用ADC0832芯片。ADC0832是8脚双列直插式双通道A/D转换器,能分别对两路模拟信号实现模—数转换,可以用在单端输入方式和差分方式下工作。ADC0832采用串行通信方式,通过DI数据输入端进行通道选择、数据采集及数据传送。8位的分辨率〔最高分辨可达256级,可以适应一般的模拟量转换要求。其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在0~5V之间。具有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。独立的芯片使能输入,使多器件挂接和处理器控制变的更加方便。它的特性如下:8位分辨率;双通道A/D转换;输入输出电平与TTL/CMOS相兼容;5V电源供电时输入电压在0~5V之间;工作频率为250KHZ,转换时间为32μS;一般功耗仅为15mW;8P、14P—DIP〔双列直插、PICC多种封装;商用级芯片温宽为0°Cto+70°C,工业级芯片温宽为-40°Cto+85°C;ADC0832管脚图如下图所示:各引脚功能如下:·CS_片选使能,低电平芯片使能。·CH0模拟输入通道0,或作为IN+/-使用。·CH1模拟输入通道1,或作为IN+/-使用。·GND芯片参考零电位〔地。·DI数据信号输入,选择通道控制。·DO数据信号输出,转换数据输出。·CLK芯片时钟输入。·Vcc/REF电源输入及参考电压输入〔复用ADC0832的工作原理:正常情况下ADC0832与单片机的接口应为4条数据线,分别是CS、CLK、DO、DI。但由于DO端与DI端在通信时并未同时使用并与单片机的接口是双向的,所以在I/O口资源紧张时可以将DO和DI并联在一根数据线上使用。当ADC0832未工作时其CS输入端应为高电平,此时芯片禁用,CLK和DO/DI的电平可任意。当要进行A/D转换时,须先将CS使能端置于低电平并且保持低电平直到转换完全结束。此时芯片开始转换工作,同时由处理器向芯片时钟〔CLK输入端输入时钟脉冲,DO/DI端则使用DI端输入通道功能选择的数据信号。在第一个时钟脉冲的下沉之前DI端必须是高电平,表示启始信号。在第二、三个脉冲下沉之前DI端应输入两位数据用于选择通道功能。ADC0832的工作时序:当cs由高变低时,选中ADC0832。在时钟的上升沿,DI端的数据移入ADC0832内部的多路地址移位寄存器。在第一个时钟期间,Dl为高,表示启动位,紧接着输入两位配置位。当输入启动位和配置位后,选通输入模拟通道,转换开始。转换开始后,经过一个时钟周期延迟,以使选定的通道稳定。ADC0832接着在第4个时钟下降沿输出转换数据。数据输出时先输出最高位<D7~DO>;输出完转换结果后,又以最低位开始重新输出一遍数据<D7~DO>,两次发送的最低位共用。当片选cS为高时,内部所有寄存器清0,输出变为高阻态。如果要再进行一次模傲转换,片选cs必须再次从高向低跳变,后面再输入启动位和配置位。〔二AD转换电路图AD转换电路图如下:ADC0832的CH1作为红外电信号的输入,DO输出至单片机。其中CLK连接单片机的P1.2,DIDO连接单片机的P1.3,CS连接单片机的P1.5。ADC0832将接受到的人体红外电信号转换为二进制数字信号输入给单片机。3.1.3、单片机控制模块〔一AT89S52单片机简介本系统选用美国Atmel公司AT89S52单片机,AT89S52单片机是AT89S系列单片机中的一种,它是在现已广泛应用于工业控制等各领域的AT89C52系列单片机的换代产品。它具有89C52的全部功能,是80C51的增强型并且指令完全兼容,AT89S52新增加的功能有特殊功能寄存器完成,信心日后他将更广泛地应用与工业控制、汽车控制、智能仪器仪表及电极控制等应用领域。1、主要功能特性:1、兼容MCS51单片机;2、8k字节FLASH村租期支持在系统编程ISP1000次擦写周期3、32个可编程I/O口;4、256字节内部RAM;5、3个16位定时器/计数器;6、全静态时钟0Hz-33MHz;7、全双工UART串行通道;8、8个中断源;9、3级加密程序存储器;10、低功耗空闲和掉电模式,掉电后中断可唤醒;11、双数据指针;此外,与AT89C52相比,AT89S52新增加了许多功能,这将使单片机在工作过程中具备更高的稳定性和电磁抗干扰性。AT89S52内部增加了片内看门狗定时器,这将有利于坚固用户应用系统,提高系统可靠性;AT89S52独有的双数据指针使数据操作更加快捷方便;再次,AT89S52运行速度更高,最高晶振可达到33MHz;最后,AT89S52支持ISP在线下载功能。AT89S52中ISP应缴共有4个:RST、MOSI、MISO和SCK。用户可以直接替换应用系统中的AT89C52,而软硬件均不需做任何修改,带来了很多方便。正因为AT89S52单片机增加了高可靠性、安全性的功能,所以能避免因外部环境恶劣而引起的信号失真、电磁干扰等现象的发生。因此,用它作为系统的控制器可以满足检测与控制的要求。而且,从经济性的家督来看,AT89S52不但硬件结构简单,而且价格低、功能强、性价比高,符合本设计的要求。2、引脚介绍:P0口:P0口是一组8位漏极开路型双向I/O口。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写"1"时,可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址〔低8位和数据总线复用,在访问期间激活内部上拉电阻。在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。P1口:P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动〔吸收或输出电流4个TTL逻辑门电路。对端口写"1",通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流<IIL>。此外,P1.0和P1.2还可分别作为定时/计数器2的外部计数输入〔P1.0/T2和输定时器/计数器2的触发输入。Flash编程和程序校验期间,P1接收低8位地址。P2口:P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动〔吸收或输出电流4个TTL逻辑门电路。对端口P2写"1",通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流<IIL>。在访问外部程序存储器或16位地址的外部数据存储器〔例如执行MOVXDPTR指令时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器〔如执行MOVXRI指令时,P2口输出P2锁存器的内容。Flash编程或校验时,P2亦接收高位地址和一些控制信号。P3口:P3口是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动〔吸收或输出电流4个TTL逻辑门电路。对P3口写入"1"时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的P3口将用上拉电阻输出电流〔IIL。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。ALE/PROG:当访问外部程序存储器或数据存储器时,ALE〔地址锁存允许输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对Flash存储器编程期间,该引脚还用于输入编程脉冲〔PROG。如有必要,可通过对特殊功能寄存器〔SFR区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。PSEN:程序储存允许〔PSEN输出是外部程序存储器的读选通信号,当AT89S52由外部程序存储器取指令〔或数据时,每个机器周期两次PSEN有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次PSEN信号。EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器〔地址为0000H—FFFFH,EA端必须保持低电平〔接地。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平〔接Vcc端,CPU则执行内部程序存储器中的指令。Flash存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。XTAL1:振荡器反相放大器的及内部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出端。3、时钟电路与复位电路:AT89S52钟有两种方式产生,即内部方式和外部方式。AT89S52中有一个构成内部震荡器的高增益反向放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英或陶瓷震荡器一起构成自激震荡器震荡电路如图。外接石英晶体〔或陶瓷震荡器及电容C1、C2接在放大器的震荡回路中构成并联震荡电路。对外接电容C1、C2虽然没有非常严格的要求,但电容的大小会轻微影响震荡频率的高低、震荡工作的稳定性、起震的难易程序及温度稳定性,如果使用石英晶体,推荐使用30pF±10pF,而如果使用陶瓷谐振器建议选择40pF±10pF。用户还可以采用外部时钟。在这种情况下,外部时钟脉冲接到XTAL1端,既内部时钟发生器的输入端,XTAL2悬空。由于外部时钟信号是通过一个2分频的触发器后作为内部时钟信号的所以外部时钟的占空比没有特殊要求,但最小高电平持续的时间和最大低电平持续的时间应符合产品技术条件的要求。本次设计采用内部震荡电路,瓷片电容采用30P,晶振采用12MHZ。复位时单片机的初始化操作,其主要功能是PC初始化为0000H,使单片机从0000H单元开始执行程序。除了进入系统的正常初始化之外,当由于程序运行时出错或操作错误使系统处于死锁状态时,为使单片机正常工作,也需要按复位键以重新启动。RST引脚是复位信号的输入端,复位信号是高电平有效,其有效时间持续24个振荡脉冲周期〔即两个机器周期以上。复位操作有上电自动复位、按键电平复位、外部脉冲复位和自动复位四种方式。本设计中采用按键电平复位方式,使复位端经电阻与VCC电源接通而实现。<二>单片机控制模块电路图单片机控制模块电路图如下:单片机的P1口用来接受A/D转换的数据,P0口控制显示电路,P3口控制报警和时钟显示电路。3.1.4、显示模块〔一74LS164简介74LS164为8位移位寄存器,管脚图如图3-11所示。当清除端〔CLEAR为低电平时,输出端〔QA-QH均为低电平。串行数据输入端〔A,B可控制数据。当A、B任意一个为低电平时,则禁止新数据输入,在时钟端〔CLOCK脉冲上升沿作用下Q0为低电平。当A、B有一个为高电平,则另一个就允许输入数据,并在CLOCK上升沿作用下决定Q0的状态。74LS164引脚图:引脚功能:CLOCK:时钟输入端CLEAR:同步清除输入端〔低电平有效A,B:串行数据输入端QA—QH:输出端74LS164真值表InputsOutputsClearClockABQAQB….QHLHHHHXLXXXXHHLXXLLL….LQA0QB0….QH0HQAn….QGnLQAnQGnLQAn….QGnH——高电平,L——低电平,X——任意电平,——低到高电平跳变,QA0、QB0、QH0——规定的稳态条件建立前的电平,Qan、QGn——时钟最近的前的电平。〔二LED数码管为了能以十进制数码直观地显示数字系统的运行数据,目前广泛使用了七段字符显示器,或称做七段数码管。这种字符显示器由七段可发光的线段拼合而成。半导体数码管的每个线段都是一个发光二极管〔LightEmittingDiode,简称LED,因而也把它叫做LED数码管或LED七段显示器。半导体数码管不仅具有工作电压低、体积小、寿命长、可靠性高等优点,而且响应时间短〔一般不超过0.1us,亮度也比较高。本设计我们采用四位共阳极的数码管来显示。〔三显示模块电路图显示模块电路图如下:显示部分的数码管是通过1片74LS164来驱动的,用循环送显的方式,通过9012来选择要送显的数码管。单片机的P0.5和P04.来控制74LS164的片选和CLK时钟端,74LS164的输出Q0-Q7分别接到数码管的a-h端口,从而实现单片机控制数码管显示的功能。3.2、系统改进设计3.2.1时钟显示模块在原有基础上加入时钟显示模块,使整个设计在按键的时候显示温度,不按键测温的时候显示时间。〔一DS1302简介DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。引脚图如下:功能特色:时钟计数功能,能对秒、分钟、小时、月、星期、年的计数、年计数可达到2100年。有31*8位的额外数据暂存寄存器最少I/O引脚传输,通过三引脚控制工作电流小于320纳安读写时钟及岑琦或内部RAM可以采用单字节模式和突发模式8-pinDIP封装或8-PinSOICs兼容TTL可选的工业级别,工作温度-40—85摄氏度DS1302可以用于数据记录,特别是对某些具有特殊意义的数据点的记录,能实现数据与出现该数据的时间同时记录。这种记录对长时间的连续测控系统结果的分析及对异常数据出现的原因的查找具有重要意义。传统的数据记录方式是隔时采样或定时采样,没有具体的时间记录,因此,只能记录数据而无法正确记录其出现的时间;若采用单片机计时,一方面需要采用计数器,占用硬件资源,另一方面需要设置中断、查询等,同样耗费单片机的资源,而且,某些测控系统可能不答应。但是,在系统中采用时钟芯片DS1302,则能很好地解决这个题目。〔二时钟显示模块电路图时钟显示电路图如下:3.2.2超温报警模块本设计还增加了超温报警功能,报警器件我们采用蜂鸣器和LED灯。蜂鸣器使用简单、方便,是较为理想的报警元件。当被测人体温超过38度时,LED灯亮报警;体温超过39度时,LED灯亮的同时蜂鸣器蜂鸣报警。超温报警电路图如下:4系统软件设计4.1、软件实现4.1.1、程序设计方法程序设计就是用计算机所能接受的语言把解决问题的步骤描述出来,也就是编制程序。编制程序有以下几种方法。自顶向下模块化设计方法随着单片机应用日益广泛,软件的规模和复杂性也不断增加,给软件的设计、调试和维护带来很多困难。自顶向下的模块化设计方法能有效解决这个问题。程序结构自顶向下模块化程序设计方法就是把一个大程序划分成一些较小的部分,每一个功能独立的部分用一个程序模块来实现。分解模块的原则是简单性、独立性和完整性,即:模块具有单一的入口和出口;模块不宜过大,应让模块具有单一功能;模块和外界联系仅限于入口参数和出口参数,内部结构和外界无关。这样各个模块分别进行设计和调试就比较容易实现。逐步求精设计方法模块设计采用逐步求精的设计方法,先设计出一个粗的操作步骤,只指明先做什么后做什么,而不回答如何做。进而对每个步骤细化,回答如何做的问题,每一步越来越细,直至可以编写程序为止。结构化策划过内需设计方法按顺序结构、选择结构、循环结构模式编写程序。本设计的软件编程部分主要采用自顶向下模块化设计方法来编程,整个程序大致分为AD转换模块、DS1302时钟模块、显示模块、报警模块等,通过主函数和函数调用来实现程序的功能。4.1.2、程序设计语言选择常用的程序设计语言有MCS-51汇编语言,C51,PLM51等高级语言。对于熟悉指令系统并且有经验的程序员,喜欢用汇编语言编写程序,根据流程图可以编制出高质量的程序。对于指令系统不熟悉的程序员,喜欢用C51语言编写程序。C语言是一种常用的高级语言之一,C语言简洁、紧凑、使用方便灵活。用C语言编程容易实现程序的模块化和结构化,程序容易阅读、修改和移植。C51程序在结构上具有如下特点:C51源程序可以由一个或多个源文件组成,其扩展名为".c";C51源文件中含有若干个函数,函数相当于汇编语言程序中的子程序,它完成一个特定的功能,函数的一版形式为:类型说明函数名〔形参{说明语句}在整个程序中只有一个而且必须有一个Viodmain<Viod>的函数,称为主函数,程序从mian<>开始执行,并由它调用其他函数,由各种函数〔包括函数中断实现整个程序的功能,因此C语言被称为函数式语言;在源程序中含有预处理命令〔如常用的文件包含命令#includereg51.h、语句、说明等,说明和语句以分号结尾,预处理命令后一般不加分号、程序中可以/*…注释…*/或//…注释…的形式加以注释,用于说明程序段得功能。在C51程序设计时,应注意和所设计的硬件结构协调一致,注意以下事项:存贮中内和存贮模式的选择应和硬件存贮器物理地址范围对应,还应该注意存贮器是否溢出。外部I/O口绝对地址的定义和I/O口物理地址对应,还须考虑P2口是否作为地址总线口使用来选择XBYTE或PBYTE来的ing一,选用PBYTE时注意和P2口操作一致。寄存器定义文件的选择和单片机型号一致。动态参数选择应考虑时钟频率的因素。算法选择应考虑硬件和C51的特点。设法提高内部RAM使用效率。本设计采用C51编程,总程序见附录四。4.1.3、系统流程图本设计软件采用C51编程,根据实际设计的要求和所要达到的功能,系统流程图如下:开始开始初始化端口、中断A/D读数将数据转换为温度值报警判断是否超出正常温度?送显是否有按键按下?NYNY时钟显示时钟显示时钟显示4.2、程序模块分析4.2.1、ADC模块程序分析ucharReadAdc0832<ucharchannel>{uchari=0;ucharoutdata=0;CS=0;/*使能*/DIDO=1;SCK=0;/*第一次触发*/delay<5>;SCK=1;delay<5>;DIDO=1;SCK=0;/*第二次触发*/delay<5>;SCK=1;delay<5>;if<channel==1>{DIDO=1;}else{DIDO=0;}SCK=0;/*第三次触发*/delay<5>;SCK=1;delay<5>;SCK=0;delay<5>;DIDO=1;/*置为输入准备读数据*/SCK=1;delay<5>;outdata=0;/*初始化*/for<i=1;i<=8;i++>{if<DIDO==1>{outdata|=0x01;}SCK=1;SCK=0;outdata=outdata<<1;/*左移一位*/}/*此函数不再读数据D0~D7<注意D0位重叠>*/CS=1;/*禁止*/returnoutdata;}4.2.2、时钟显示模块程序分析通过MCS-51系列单片机对DS1302进行读写访问,只需要严格遵循DS1302的数据读写时序即可。在程序编写过程中,值得注意的是在写时钟/日历寄存器单元之前,应打开DS1302的写保护,并需要在DS1302的初始化过程中正确设定涓流充电寄存器的内容。下面的程序代码采用模块化的结构。〔1DS1302的初始化程序:voidDS1302Initial<void>{ uchards1302st;/*DS1302的转台,0x55时不能进行初始化*/ slk=0;/*将同步时钟slk置低*/ rst=0;/*禁止对DS1302的读写访问*/ ds1302st=readDS1302<0x0c1>;/*读取DS1302的RAM1单元中的标志数据*/ if<ds1302st!=0x55>/*判断标志数据是否为0x55*/ {writeDS1302<0x8e,0x00>;/*打开写保护*/ writeDS1302<0x82,0x30>;/*预置分钟数30*/ writeDS1302<0x84,0x12>;/*预置小时数12*/ writeDS1302<0x90,0x0a6>;/*写充电控制寄存器10100110*/writeDS1302<0x0c0,0x55>;/*RAM单元写入0x55,防止再次初始化*/ writeDS1302<0x80,0x00>;/*启动时钟*/ } } <2>往DS1302地址单元写入一个数据:voidwriteDS1302<uchardsRamAdr,uchards1302data>{ uchari; slk=0;/*slk置低*/ delay<5>; rst=1;/*rst置高,启动数据传输过程*/ delay<5>; DS1302adr=dsRamAdr;/*参数传递*/ DS1302dat=ds1302data; for<i=0;i<8;i++>/*连续写8位命令字节*/ { CY=0;/*单片机CY标志清零*/slk=0; CY=ds1302adrBit;/*将命令字节最低位D0取出*/IO=CY;/*将D0送到数据输入输出IO引脚*/ delay<5>; slk=1; DS1302adr=DS1302adr>>1;/*命令字节右移一位*/ } for<i=0;i<8;i++> { CY=0; slk=0; CY=ds1302datBit;/*将数据字节最低位D0取出*/ IO=CY; delay<5>; slk=1; DS1302dat=DS1302dat>>1;/*数据字节右移一位*/ }rst=0; delay<5>; slk=0;}在单片机与DS1302进行数据传输的过程中,数据写入DS1302的顺序是低位字节在先,高位字节在后。所以在writeDS1302时,不论是命令还是数据都首先将D0位取出进行写操作,然后不断循环右移将其他位移到D0位上进行写操作。〔3读取DS1302某地址的数据:ucharreadDS1302<ucharDS1302Adr>{ uchari; slk=0; delay<5>; rst=1;/*rst引脚置高,启动数据传输过程*/ delay<5>; DS1302adr=DS1302Adr;/*参数传递*/ for<i=0;i<8;i++> { slk=0; IO=ds1302adrBit;/*取出命令字节的最低位D0,并送到IO引脚*/ delay<5>; slk=1; DS1302adr=DS1302adr>>1; } IO=1; for<i=0;i<7;i++>/*连续读取8位*/ { slk=0; ds1302datHbit=IO;/*暂存DS1302输出的数据位*/ slk=1; DS1302dat=DS1302dat>>1; slk=0;/*slk产生其他的下降沿,DS1302输出数据*/ ds1302datHbit=IO;/*暂存DS1302输出的数据位*/ } rst=0;/*将rst引脚置低,结束本次数据传输过程*/ delay<5>; slk=0; returnDS1302dat;/*返回所读取的数据*/}在从DS1302中读取数据时,从DS1302输出的第一个数据位发生在8位命令字节最后一位后的第一个下降沿处,也就是说在第8个slk时钟脉冲的下降沿处,第一个数据位就开始输出了。所以readDS1302子函数在读取数据的for循环体中,仅循环了7次,但由于slk在for循环体外是高电平,而进入for循环后的第一条slk置零指令会产生了第一个下降沿,这个下降沿并不是由for循环产生的,所以for循环尽管只有7次循环,但实际上时读出了8位数据。〔4读取DS1302的时钟数据:voidread1302<void>{ HR=readDS1302<0x85>;/*读取小时数据*/ MIN=readDS1302<0x83>;/*读取分钟数据*/} 〔5读DS1302数据到显示器:voidREAD_1302_DISP<void>{uchari; ucharj; j=DS1302[0]; delay<1>; writeDS1302<0xed0,0x00>; delay<1>; readDS1302<0xed0>; if<j!=DS1302[0]> { JP1=!JP1; } i=DS1302[2]&0x0f; if<JP1==0> { DISP_SAVE[1]=BCD_TAB[i]&0xfe; } else { DISP_SAVE[1]=BCD_TAB[i]; }/*读分钟的十位到显示位1*/ i=<DS1302[2]&0x70>>>4; DISP_SAVE[0]=BCD_TAB[i];/*读分钟的各位到显示位0*/ i=DS1302[1]&0x0f; DISP_SAVE[3]=BCD_TAB[i];/*读时钟的十位到显示位3*/ i=<DS1302[1]&0x70>>>4; DISP_SAVE[2]=BCD_TAB[i];/*读时钟的各位到显示位2*/}4.2.3、主程序分析voidmain<void>{ucharlop;uintteo;FMQ=0; KEY_PIN=1; QU_write<0x00,0x16>; QU_write<0x01,0x03>;while<1>{get_key<>; if<cotot==1>/*当有键按下时*/ { temper=MCP3204_READ<0xc0>;/*ADC芯片读数*/ if<temper>2700>/*AD读数转换为温度值*/ { temper=temper-2600; if<temper>teo> { teo=temper; } if<teo>400> { teo=teo-100; } lop=teo/1000; DISP_SAVE[0]=BCD_TAB[lop];/*读转换后的温度值到显示位*/ lop=<teo%1000>/100;DISP_SAVE[1]=BCD_TAB[lop]; lop=<teo%100>/10; DISP_SAVE[2]=BCD_TAB[lop]&0xfe; lop=teo%10; DISP_SAVE[3]=BCD_TAB[lop]; } else if<temper<2660> { temper=0; teo=0; lop=teo/1000; DISP_SAVE[0]=BCD_TAB[lop]; lop=<teo%1000>/100;DISP_SAVE[1]=BCD_TAB[lop]; lop=<teo%100>/10; DISP_SAVE[2]=BCD_TAB[lop]&0xfe; lop=teo%10; DISP_SAVE[3]=BCD_TAB[lop]; } if<teo>300> { FMQ=1;/*体温超温时,报警*/ } else { FMQ=0;/*体温正常时,不报警*/ } } elseif<cotot==0>/*当没有键按下时*/ { READ_1302_DISP<>;/*读取时钟电路的时间*/ } disp_all<>;}}主程序所要实现的功能就是整个体温计设计所要求达到的功能,即当测温键按下时,系统通过A/D转换电路将电信号转换为数字信号,并将之送入单片机控制电路,单片机将处理结果输入到显示电路中,显示模块便能准确显示人体温度。当被测人体温超过38度时,LED灯亮报警;体温超过39度时,LED灯亮的同时蜂鸣器蜂鸣报警。在测温键没有按下时,系统在时钟电路作用下显示当前时间。4.3、软件仿真4.3.1、Proteus仿真软件介绍Proteus软件是英国Labcenter

electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。功能特点:Proteus软件具有其它EDA工具软件〔例:multisim的功能。这些功能是:〔1原理布图〔2PCB自动或人工布线〔3SPICE电路仿真互动的电路仿真用户甚至可以实时采用诸如LED/LCD、键盘、RS232终端等动态外设模型来对设计进行交互仿真。仿真处理器及其外围电路可以仿真51系列、AVR、PIC等常用主流单片机。还可以直接在基于原理图的虚拟原型上编程,再配合显示及输出,能看到运行后输入输出的效果。配合系统配置的虚拟逻辑分析仪、示波器等,Proteus建立了完备的电子设计开发环境。用Proteus实现软件仿真:1支持多种主流单片机系统的仿真支持当前的主流单片机,如51系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列、68000系列等。2提供软件调试功能3提供丰富的外围接口器件及其仿真RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。这样很接近实际。在训练学生时,可以选择不同的方案,这样更利于培养学生。4提供丰富的虚拟仪器利用虚拟仪器在仿真过程中可以测量外围电路的特性,培养学生实际硬件的调试能力。5具有强大的原理图绘制功能随着科技的发展,"计算机仿真技术"已成为许多设计部门重要的前期设计手段。它具有设计灵活,结果、过程的统一的特点。可使设计时间大为缩短、耗资大为减少,也可降低工程制造的风险。相信在单片机开发应用中Proteus也能茯得愈来愈广泛的应用。4.3.2、仿真过程运行Proteus的ISIS后出现程序主窗口界面,鼠标左键单击窗口左侧的元器件工具栏的component.按钮,接着再点击窗口左侧的元器件选择区的PickDivices.按钮,弹出如图1所示的PickDevices窗口,再在Categ栏里点击MicroprocessorICs项后,在Results栏里会出现各种类型的CPU器件,找到AT89C51后双击,AT89C51就被添加到当前窗口左侧的元器件列表区了。用同样的方法依次把温度传感器、DS1302、数码管、晶振以及多个电阻、电容也添加到器件列表区里。然后再依次点击列表区里的器件,单击左键把他们放到绘图区,右键选中元件,并编辑其属性,合理布局后,进行连线。连线时当鼠标的指针靠近一个对象的引脚时,跟着鼠标的指针就会出现一个"×"提示符号,点击鼠标左键即可画线了,需要拐弯时点击一下即可,在终点再点击确认一下就画出了一段导线,所有导线画完后,点击工具栏的Inter-sheeTerminal.按钮,添加上电源和接地符号,原理图的绘制就完成了。最后在ISIS的原理图中,右键单击AT89C51将其选中,然后单击左键打开AT89C51的EditComponent对话框。选择相应的.Hex文件,再在ProteusISIS编辑窗口的File菜单中选择SaveDesign选项,保存设计,生成.DSN文件。由于ProteusISIS软件中没有本设计的红外释热传感器原件,所以由温度传感器18B20代替红外释热传感器,省略了AD转换器,特此声明。系统仿真图见附录三所示。5硬件制作与调试5.1所用仪器数字万用表,编程器,电烙铁,剪刀,剥线钳,镊子,吸锡器等。5.2PCB板制作、焊接与调试过程电脑制图方面:虽然Protel99SE功能强大,人机界面友好,但在设计过程中往往遇到一些问题。在画PCB板时,应尽量做到:1、布局要合理,根据电路的功能单元,对电路的全部元器件进行布局。2、布线要尽量平行,导线拐角处一般取圆弧形。焊接电路板方面:焊接是电气设备制造中最为关键的一道工序,焊接质量的好坏直接影响到设备正

温馨提示

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

评论

0/150

提交评论