红外线温度测量.doc_第1页
红外线温度测量.doc_第2页
红外线温度测量.doc_第3页
红外线温度测量.doc_第4页
红外线温度测量.doc_第5页
已阅读5页,还剩75页未读 继续免费阅读

下载本文档

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

文档简介

河南理工大学毕业设计(论文)说明书摘要红外测温技术在生产过程,产品质量控制和监测,设备在线故障诊断和安全保护以及节约能源等方面发挥了着重要作用。它打破了传统的测温模式,并且具备回应速度快、测量精度高、测量范围广和可同时测量环境温度和目标温度的特点,测量距离可达30米左右。本设计是一种方便用户使用的温度测量工具,功能稳定,运行速度快,通过单片机的运算处理,完成数据的显示与语音播报功能。本系统主要是以凌阳科技推出的一款16位结构的微控制器SPCE061A单片机作为主控制器进行设计的。利用红外线温度传感器测量目标温度,进行AD转换,传给单片机,经单片机处理信息之后,把信息传给SPLC501 液晶模块显示出来,经过内部计算,并由语音模块外接功放,实现语音播报温度。测量范围是-33C220C ,测量精度是0.6C 。本系统包括语音播报和SPLC501 LCD液晶显示、TN红外测温传感器接入等部分。关键词:红外线温度测量,凌阳SPEC061A单片机,语音播报 ,SPLC501 液晶模块AbstractInfrared temperature measurement technology in the production process、quality control and monitoring、equipment online fault diagnosis and security protection, and energy conservation has played an important role. It breaks the traditional temperature measurement mode, and has the charcteristics of fast response、high accuracy 、wide measurement range 、simultaneously measuring temperature and target temperature ,and the distance measurement can be up to 30 meters. The design is a user-friendly tool for temperature measurement, which is stable, running fast through the MCU operation processing for data display and voice broadcast function. This system is designed by using Sunplus introducing the structure of a 16-bit single chip micro-controller as the master controller SPCE061A . Using infrared temperature sensor to measure target temperature, then for AD conversion, and transmitting to single chip, after single chip processing information ,trasmitting information to SPLC501 LCD module to display,through the internal calculation by the voice module external power amplifier, voice broadcast temperature. Measurement range is -33C220C, accuracy is 0.6C. The system includes voice broadcast and SPLC501 LCD liquid crystal display, TN access to other parts of infrared sensors. Key words: infrared temperature measurement, Sunplus SPEC061A microcontroller, voice broadcast, SPLC501 LCD Module 目录1 绪论11.1 课题开发的背景和现状11.2 课题开发的目的和意义21.3 课题的要求22 红外测温工作原理43 系统总体设计63.1 系统基本设计63.1.1 系统设计思路63.1.2 系统设计总体框架63.2 系统设计方案选择74 硬件设计114.1 硬件总体设计114.2 红外温度传感器选型114.3 电源模块144.4 语音播报154.5 SPLC501 LCD液晶显示164.6 凌阳SPCE061A单片机194.6.1 凌阳SPCE061A单片机设计194.6.2 凌阳SPEC061A单片机电路215 软件设计235.1 主程序235.1.1 主程序流程图235.1.2 主程序的设计245.2 红外线测温子程序设计255.3 语音播报285.4 LCD液晶显示316 系统调试346.1 系统硬件调试346.1.1 系统硬件环境346.1.2 系统硬件调试346.2 系统软件调试346.2.1 系统软件环境346.2.2 系统软件调试39总结和展望40致谢41参考文献42附录1 原理图43附录2 源程序44 V1 绪论1.1 课题开发的背景和现状红外辐射这一物理现象被发现在1800年,但直到本世纪50年代,红外技术才开始进入广泛应用的阶段。非接触测温技术也叫辐射测温,最早的非接触测温就是以光学高温计为代表的高温法,以后,人们根据斯蒂芬.玻尔兹曼公式,利用黑体辐射能与热力学温度的关系进行测温,这就是全辐射测温和部分辐射测温法,还有的人在光学高温计上进行改进,出现了光电高温计、红外温度计等。红外测温优点如下:1.它的测量不干扰被测温场,不影响温场分布,从而具有较高的测量准确度。2.测温范围宽,在理论上无测量上限,可以测量相当高的温度3.探测器的响应时间短,反应速度快,易于快速与动态测量4.不必接触被测物体,操作方便5.可以确定微小目标的温度随着工农业、国防事业、医学的发展,对温度测量越来越迫切。红外测温技术在生产过程中,在产品质量控制和监测,设备在线故障诊断和安全保护以及节约能源等方面发挥了着重要作用。近20年来,国内红外温度测量在技术上得到迅速发展,性能不断完善,功能不断增强,品种不断增多,适用范围也不断扩大,市场占有率逐年增长。 比起接触式测温方法,红外测温有着响应时间快、非接触、使用安全及使用寿命长等优点。但是比起国外,我们仍处于起步晚,高度低的状况,就温度仪来说,美国红外线测温仪型 号: Fluke 62 Mini(非接触式温度测量) 特 点: 较宽的温度范围到500;高光学分辨率;激光瞄准;高精度;背景光显示;同时显示测量的最大值 温度范围: -30-500(932) 精 度: 10C-30(50F-86)时为1(2),德国一家公司制造的,响应时间因为一秒钟,日本的温度测量技术精确度远远领先世界同种技术。1.2 课题开发的目的和意义为了克服传统的温度计测量温度的主要缺点需要测量者与被目标近距离接触和测量不方便。在顾及仪器测量高精度前提下,以追求最低成本为原则,本文设计红外测温的整体系统构架。接着根据红外测温原理,主要针对人体体温测量进行了具体的设计开发开发包括硬件电路,外围工艺,单片机程序和主机程序,对人体的温度测量的误差低于o1。红外测温为测量各种温度提供了快速、红外测量手段,可广泛、有效地用于密集人群的体温测量。红外测温针对特定人群,比如儿童或老人,极其方便。且利用单片机技术开发的语音功能便可克服传统体温计的许多缺陷。它不但可以以数字的方式显示出测量结果,使测量过程变得直观,而且可以根据需要以语音播报出当前的温度值,除此之外,语音体温计还具有较高的灵敏度,可以在几秒钟内测得结果,且寿命长,是较为理想的测温仪器。在本设计中,整合大学所学的各种专业知识,并运用到实际生活中,并在其中中应用了当今的新技术,此设计能跟上科技大潮的步伐。红外测温现在应用日益广泛,在生活中应用很多。在我国甲流、SARS时,红外测温是最常用的测量技术,无接触,不感染,对人们战胜疾病,起到很重要的作用。无论是过去还是将来,红外测温应用必将日益广泛。本设计就是基于这种思路,从基础入手,利用红外测温技术,提高了测温的距离,和测温的范围,并应用了语音播报技术,在传统测温的基础上更进一步。本设计在人们的生活中,会得到推广并应用与各个领域。1.3 课题的要求本设计实现红外温度测量,具有红外非接触测温功能。利用红外测温原理,使用红外测温传感器,测量出目标在其波段范围内的红外辐射量,经过AD转换后,将测量值发送到处理器,根据公式计算出物体的实际温度值。可以对室温或体温进行测量,经液晶显示,并且将温度值语音播报出来。主要要求包括(1)了解红外线温度测量的设计原理,制定合理的设计方案;(2)根据实际的应用,选择合适的芯片和温度传感器;(3)测量范围在-33至200; (4)测量误差在0.6,或温度值的1%;(5)使用音频芯片播报测量温度值; (6)使用SPLC501液晶模块显示数据根据以上要求: 本文以凌阳SPCE061A单片机和红外测温传感器、SPLC501液晶模块为基础,进行设计,了解芯片的结构,总结系统设计的框架,选择需要匹配的元器件,并进行线路的连接,画出系统原理图,和各个芯片的原理图。设计完成,进行焊接和调试。 2 红外测温工作原理红外测温是辐射式测温的一种,是利用物体的热辐射现象来测量物体温度的。红外辐射的基本依据是玻耳兹曼、普朗克等人的黑体辐射定律。黑体是一种理想物体,它们在相同的温度下都发出同样的电磁波谱,而与黑体的具体成分和形状等特性无关,通过实现和计算得出黑体辐射定律。一切温度高于绝对零度的物体都在不停地向周围空间发出红外辐射能量。物体的红外辐射能量的大小及其按波长的分布与它的表面温度有着十分密切的关系。因此,通过对物体自身辐射的红外能量的测量,便能准确地测定它的表面温度,这就是红外辐射测温所依据的客观基础。物体发射率对辐射测温的影响:自然界中存在的实际物体,几乎都不是黑体。所有实际物体的辐射量除依赖于辐射波长及物体的温度之外,还与构成物体的材料种类、制备方法、热过程以及表面状态和环境条件等因素有关。因此,为使黑体辐射定律适用于所有实际物体,必须引入一个与材料性质及表面状态有关的比例系数,即发射率。该系数表示实际物体的热辐射与黑体辐射的接近程度,其值在零和小于1的数值之间。根据辐射定律,只要知道了材料的发射率,就知道了任何物体的红外辐射特性。影响发射率的主要因素在:1. 材料种类2. 表面粗糙度3. 理化结构4. 材料厚度自然界一切温度高于绝对零度(一27315)的物体,其辐射能量密度与物体本身的温度关系符合基尔霍夫辐射定律。只要测量出所发射的E,就可得出温度,这就是红外测温的原理。利用这个原理制成的温度测量仪表在测量时不需要与被测对象接触,因此属于非接触式测量。红外测温范围很宽,从一5O直至高于3 000。在不同的温度范围,对象发出的电磁波能量的波长分布不同,在常温(0100)范围,能量主要集中在中红外和远红外波长。本设计选用的TN9红外模块,测温范围为-33+220。当用红外线测温,测量目标的温度时首先要测量出目标在其波段范围内的红外辐射量,红外能量被红外温度传感器接收,并转变为相应的电信号。该信号经过放大器和信号处理电路,并按照系统内部的算法校正后转变为被测目标的温度值,然后由测温系统计算出被测目标的温度。3 系统总体设计3.1 系统基本设计3.1.1 系统设计思路本次文设计的是一个红外线温度测量系统,方便用户使用的温度测量工具,功能稳定,运行速度快,通过单片机的运算处理,完成数据的显示与语音播报功能。一切温度高于绝对零度的物体都在不停地向周围空间发出红外辐射能量。物体的红外辐射能量的大小及其按波长的分布与它的表面温度有着十分密切的关系。因此,通过对物体自身辐射的红外能量的测量,便能准确地测定它的表面温度,这是红外辐射测温所依据的客观基础。利用红外测温原理,使用红外测温传感器,测量出目标在其波段范围内的红外辐射量,经过AD转换后,将测量值发送到处理器,根据公式计算出物体的实际温度值,通过语音模块外接功放语音读出数据,并通过液晶显示出温度值。 3.1.2 系统设计总体框架 TN9红外测温SPEC061A音频输出SPLC501 LCD液晶显示图3-1 系统总体结构图 本系统采用凌阳61板和TN9红外测温传感器、SPLC501 LCD液晶模块,组建这个系统主要包括音频播报,红外线测温,液晶显示三部分,可以实现红外线温度测量,并经由音频播报温度,液晶显示温度。3.2 系统设计方案选择 TN红外测温MCS-51LCD液晶模块语音播报电源图3-2 基于c51单片机的方案TN9红外测温SPEC061A单片机LCD液晶显示语音播报 图3-3 基于凌阳61的方案方案一:图3-2采用MCS-51系列单片机外接红外测温探头进行温度的数字化采集,并将结果通过LED/LCD模块显示,并进行语音播报。同样也可以采用其它的8位单片机实现,但是现在单片机已经需要四个模块,再加上必须要的晶振模块、AD转换模块、复位模块、I/O端口,显得复杂繁琐,而且不容易设计方案结构如图3-2所示:方案二:图3-3采用SPCE061A单片机外接红外测温探头进行温度的数字化采集,通过内部语音算法将结果播报出来,并由液晶显示模块显示温度。观整体结构,因为61板集成了晶振输入模块(OSC)、锁相环外围电路(PLL)、复位电路(RESET)、指示灯(LED),系统显的简洁,较容易设计,能较好的完成本次设计,如图3-3所示:比较一下思路一和思路二,发现大多的同学做的都是用LED显示,设计时可以经过测量直接读出数字,并经由LCD液晶显示,也显的很新颖。经过查阅资料,了解到PSPCE061A单片机集成了音频芯片,又集成了单片机需要的几个模块,能方便用户处理音频,功能强大,设计较为简单,于是就选择了凌阳SPCE061A单片机。下面主要介绍一下凌阳SPCE061A单片机的功能特性。SPCE061A单片机是台湾凌阳公司生产的一种十六位的单片机,使用它可以非常方便的实现控制和语音播报的系统,凌阳十六位单片机具有易学易用的效率较高的一套指令系统和集成开发环境。在此环境中,支持标准C语言,可以实现C语言与凌阳汇编语言的互相调用,并且,提供了语音录放的库函数,只要了解库函数的使用,就会很容易完成语音播报,这些都为软件开发提供了方便的条件。该芯片拥有8路10位精度的AD,其中1路AD为音频转换通道,并且内置有自动增益电路。这为实现语音录入提供了方便的硬件条件。2路10位精度的DA,只需要外接2个功放(LM386)即可完成语音的播放。SPCE061A的主要性能特点是:(1) 16位微处理器;(2) 工作电压(CPU) VDD为2.43.6V (I/O) VDDH为2.45.5V(3) CPU时钟:0.32MHz49.152MHz ;(4) 内置2K字SRAM;(5) 内置32K FLASH;(6) 可编程音频处理;(7) 晶体振荡器;(8) 系统处于备用状态下(时钟处于停止状态),耗电仅为3.6V;(9) 2个16位可编程定时器/计数器(可自动预置初始计数值);(10) 2个10位DAC(数-模转换)输出通道;(11) 32位通用可编程输入/输出端口;(12) 14个中断源可来自定时器A / B,时基,2个外部时钟源输入,键唤醒;(13) 具备触键唤醒的功能;(14) 使用凌阳音频编码SACM_S240方式(2.4K位/秒),能容纳210秒的语音数据;(15) 锁相环PLL振荡器提供系统时钟信号;(16) 32768Hz实时时钟;(17) 7通道10位电压模-数转换器(ADC)和单通道声音模-数转换器;(18) 声音模-数转换器输入通道内置麦克风放大器和自动增益控制(AGC)功能;(19) 具备串行设备接口;(20) 具有低电压复位(LVR)功能和低电压监测(LVD)功能;(21) 内置在线仿真电路ICE(In- Circuit Emulator)接口;SPCE061A的结构如图3-4所示: 图3-4 SPEC061A结构图SPCE061A单片机的芯片图如图3-5所示: 图3-5 SPEC061A单片机芯片引脚图4 硬件设计4.1 硬件总体设计 喇叭本设计采用TN9红外温度测量传感器,经TN9红外测温测的目标温度,经AD转换,传给SPEC061A单片机,并由单片机处理后,将信号传给SPLC051 LCD液晶模块显示温度,并进行语音播报。电源SPLC501 LCD液晶显示 SPCE061AVCC IOA15IOB8GNDVDTN9 C G A图4-1 硬件设计总体框图 4.2 红外温度传感器选型本设计选择的是TN9红外温度传感器。TN9红外测温模块解决了传统测温中需接触的问题,并且具备回应速度快、测量精度高、测量范围广和可同时测量环境温度和目标温度的特点,配合凌阳的SPCE061A测量距离可以达到30米的红外线的温度测量。主要功能:红外线自动测温测温理想距离可达100英尺(30米)回应时间比较短,大约0.5秒该红外传感器可与SPI接口,可以与MCU相连基本特性与参数指标:表4-1 TN9特性参数表 特性 参数量程 -33220C / -27428F 工作温度-1050C / 14122F 精度+/-0.6C 反应时间1sec 重量9g 电压范围3V or 5V V DTN9 C G ASPCE061AVCC IOA15IOB8GND 图4-2 红外模块与凌阳单片机硬件连接图连线如下: V3.3v DIOA15 CIOB8 GGND A按键GND 运行程序,把按键按住直到有声音播出,第一个温度为环境温度,第二个为目标温度。红外线传感器和SPEC061A相连接,属于外接,也是此设计除了外接功放和液晶显示模块以外还需要外接的元器件,SPI接口与SPEC061A连接时序如图4-3所示: 图4-3 时序图一帧数据包括5Byte,每个Byte代表含义如下:Item “L”(4CH): 此帧为目标温度,“f”(66H): 此帧为环境温度MSB 8 bit Data Msb LSB 8 bit Data Lsb Sum Item+MSB+LSB=SUM CR 0DH,结束码系统刚从盒中取出,还未适应环境温度,所以连续测量都会出现数据不同的情况,相同的情况亦会发生于室温相差太多的房间,例如:设有暖炉房间的温度要比其他的高出很多,快速改变环境温度亦是造成系统数值不准的原因之一。因此在这种情况下,建议使用者先将系统放置室内,大约分钟后,让其适应环境温度,这样就可以得到较正确的数值由于采用SPEC061单片机,系统的大部分电路集中在61板上面,只有传感器部分电路是采用独立设计,由于TN9红外模块集成了多个电路,但是和单片机连接时,只有几个端口,因此该部分电路如图4-4,TN9红外传感器与SPEC061板的连接如图4-4所示图4-4 TN9部分电路图4.3 电源模块图4-5是电源部分的电路,由电池盒提供的4.5V直流电压经过SPY0029后产生3.3V给整个系统供电。SPY0029是凌阳公司设计的电压调整IC,采用CMOS工艺,具有静态电流低、驱动能力强、线性调整出色等特点。 图中的VDDH3为SPCE061A的I/O电平参考,如果该点接SPCE061A(PLCC84封装,下面的介绍中当出现SPCE061A的引脚描述时,均指此封装的芯片)的VDDH脚,可使I/O输出高电平为3.3V;VDDP为PLL锁相环电源,接SPCE061A的VDDP脚;VDD和VDDA分别为数字电源与模拟电源,分别接SPCE061A的VDD脚、VDDA脚,AVSS1是模拟地,接SPCE061A的AVSS1脚;VSS是数字地,接SPCE061A的AVSS2脚; AVSS2接音频输出电路的AVSS2。 图4-5为电源电路图:图4-5 电源电路图 4.4 语音播报 语音播报电路由语音输出和语音输入两部分组成。图4-6是语音输出电路图。SPCE061A内置2路10位精度的DAC,只需要外接功放电路即可完成语音的播放。图4-6中的SPY0030是凌阳的一款音频放大芯片,可以工作在2.46V范围内,最大输出功率可达700mW。由于此音频芯片是SPEC061A单片机内置的,所以芯片外部的电路连接比较简单。该SPEC061A集成了音频输入ADC以及AGC放大电路,因此输出部分电路如图4-6所示,外接一个功放电路可自动完成语音播放。 图4-6 语音播报电路图4.5 SPLC501 LCD液晶显示为方便进行单片机接口方面的学习专门设计的模块,SPLC501液晶显示模组可以方便的和61板连接,可进行字符显示、汉字显示以及图形显示;应用在需要图形、文本显示的系统中。功能简介 SPLC501液晶显示模组为128X64点阵,面板采用STN(Super Twisted Nematic)超扭曲向列技术制成并且由128 Segment和64 Common组成,LCM非常容易通过接口被访问。模组上的液晶显示器采用凌阳科技的SPLC501芯片作为LCD驱动和控制器,为128X64点阵图形液晶显示器。表4-2为SPLC501液晶显示模组的电气参数: 表4-2 电气参数参数符号条件最小典型最大单位工作电压VDD-3.35V输入电压highlevelVIH0.7VddVDDV输入电压LowlevelVILVss0.3VDDVLCD驱动电压VLCDBias=1/98.79.09.3V SPLC501液晶显示模组上提供了液晶显示器的接口,及其所需的复位电路等;并把对液晶模组的操作接口引出,方便用户使用;此外还提供有背光、电源指示灯。下面主要介绍SPLC501液晶显示模组的模组接口。SPLC501液晶显示模组引出了时序操作的接口引脚,还引出了对操作时序进行选择的C86和PS接线,模组接口定义:模组接口各个引脚的定义请参考模组接口引脚定义表。SPLC501液晶显示模组中,接口引脚:“+”、“V3”分别为电源输入端和高电平引针(供时序选择跳线用),而“-”、“GND”都是接地引脚。图4-7 为模组的接线原理图 图4-8 SPLC501液晶实物图SPLC501液晶显示模组使用凌阳公司的SPLC501A芯片作为控制、驱动器,采用COG技术,把芯片封装在液晶显示器的环玻璃上,在模组的显示器面板的上部,可以看到有一块黑色的胶封区,SPLC501A芯片即在该胶块下面。表4-3 模组接口定义表 引脚 功能R/W 对于6800系列MPU的读/写信号(R/W),对于8080系列MPU的写信号(W/R) EP 对于6800系列MPU的时钟信号使能脚(EP),对于8080系列MPU的读信号(RD) DB0DB7 8位数据总线VR 端口输出电压C86 C86=H 选择6800MPU系列C86=L 选择8080MPU系列PS 串、并行时序选择 本应用实例的介绍,主要针对 SPCE061A 精简开发板(61 板)连接 SPLC501 模组的实验进行介绍, 模组电源由 61 板提供;模组上的 VR、C86、PS 跳线短接到 V3 端;选择 6800 的时序。可以用 10PIN 的排线将 61 板的 J8(即 IOA 的低八位)对应地接到 SPLC501 液晶显示模组的“+”和 “-”,以及其间的 DB07;要注意电源的正负极。控制线AO、R/W 和 EP 分别用连线与 SPCE061A 的 IOB3、IOB4、IOB5 相连。液晶显示原理图如图4-9: 图4-9 液晶模块原理图4.6 凌阳SPCE061A单片机4.6.1 凌阳SPCE061A单片机设计因为此设计要考虑到语音播放功能,所以选择了SPEC061A单片机,该单片机功能强大,因此应用于此设计时,诸多问题都不用考虑,设计过程中比较简单,并且有利于将来该系统的拓展和升级。该单片机还有另外的特色,就是功耗较低,节约能源。与现代社会的能源建设接轨,跟得上潮流,不会设计出来立即就被淘汰。61板除了具备单片机最小系统电路外,还包括有电源电路、音频电路(含MIC输入部分和DAC音频输出部分)、复位电路等,采用电池供电,方便随身携带。61板上有调试器接口(Probe接口)以及下载线(EZ_Probe)接口,分别可接凌阳科技的在线调试器、简易下载线,配合IDE,可方便地在板上实现程序的下载、在线仿真调试。该单片机与红外模块、液晶模块和音频芯片相结合,在最简单的设计中能显出很大的优势。由于该单片机集成了音频芯片,因此需要外接红外线温度传感器和一个外接功放、LCD液晶显示模块,即可实现对温度的测量,既可以实现LCD液晶显示温度,又可以实现音频播报。表4-4为SPEC061A单片机的部分硬件说明表4-4 SPEC061A硬件表名称 说明 POWER 5V和3.3V供电电路 S3 复位按键 S5 EZ-PROBE和PROBE切换的3 pin排针 EZ-PROBE 下载线的5 pin接口 MIC 麦克风输入电路 VRT A/D转换外部参考电压输入接口 K1K3 扩展的按键,接IOA0IOA2 PLL 锁相环外部电路 RESET 复位电路 PROBE 在线调试器5 pin接口 J3 2 pin喇叭插针 OSC 32768Hz晶振电路 PORTA/B 32个I/O口 61板的硬件电路大体上可分为SPCE061A最小系统、电源电路、音频电路、ICE接口等模块,下面小节中这种介绍分别介绍61板的各部分电路。4.6.2 凌阳SPEC061A单片机电路 图4-10 SPEC061A硬件结构图 SPCE061A最小系统中,包括SPCE061A芯片及其外围的基本模块,其中外围的基本模块有:晶振输入模块(OSC)、锁相环外围电路(PLL)、复位电路(RESET)、指示灯(LED)等,如下图4-11所示。在OSC0、OSC1端接上晶振及谐振电容,在锁相环压控振荡器的阻容输入VCP端接上相应的电容电阻后即可工作。其它不用的电源端和地端接上0.1F的去藕电容提高抗干扰能力。单片机OSC320脚和OSC321脚分别构成片内振荡器和反相放大器的输入和输出端,外接石英晶体或陶瓷荡器以及补偿电容C25、C24构成并联谐振电路。当外接石英晶体时,电容C25、C24选30pF10pF;当外接陶瓷振荡器时,电容C25、C24选47pF10pF。SPCE061A系统中晶振可在1.2MHZ12MHZ选择。外接电容C25、C24的大小会影响振荡器频率的高低、振荡频率的稳定度、起振时间及温度稳定性。在设计电路板时,晶振和电容应靠近单片机芯片,以便减少寄生电容,保证振荡器稳定可靠工作。 图4-11 SPEC061A单片机最小系统图5 软件设计5.1 主程序5.1.1 主程序流程图系统总体设计是指从系统高度考虑程序结构、数据形式、程序功能的实现手法和手段。程序总体设计包括拟定总体方案、确定算法和绘制程序流程等。在总体框图基础上,还应结合数学模型确定各子模块的具体算法和步骤,并演化成计算机能处理的形式,然后画出系统流程图。该系统软件运行总体设计流程包括:系统初始化,系统等待感应信号,根据不断检测到的的红外信号来判断体温的度数。需要测温时,按键按下时,红外探测器感应到信号时,则立即通知系统及时做出反映。对所要测的目标做出温度液晶显示,并进行语音通报主程序主要负责系统整体软件设计:包括SPCE061A本身的初始化、红外检测、液晶显示初始化系统检测判断、执行。主程序流程图如图5-1所示。图5-1 主程序流程图5.1.2 主程序的设计 SPCE061A单片机程序设计语言的基本成分有:数据成分,用于描述程序所涉及的数据;运算成分,用以描述程序中所包含的运算;控制成分,用以描述程序中所包含的控制;传输成分,用以表达程序中数据的传输。而SPCE061A单片机支持C和汇编语言。汇编语言适合用于实现很高的代码效率和实时性,具有灵活的寻址方式,底层控制灵活性好,但汇编指令集庞大,掌握困难,需要长期的实践积累流程控制不便,开发周期长;程序可读性差,修改升级困难。C语言是一种通用的程序设计语言,其代码率高,数据类型及运算符丰富,并具有良好的程序结构,适用于各种应用的程序设计,是目前使用较广的单片机编程语言。单片机的C语言采用C51编译器(简称C51)。由C51产生的目标代码短,运行速度高,所需存存储空间小,符合C语言的ANSI标准,生成的代码遵循Intel目标文件格式,而且可与A51汇编语言或PL/M51语言目标代码混合使用。所以本课题采用C语言编写。通过在线调试器PROBE实现的。因此该主程序使用c语言来调用汇编程序,调用模式如下图所示图5-2 程序调用图该程序见附录1 源程序 部分。5.2 红外线测温子程序设计SPCE061A读取红外传感器的测量结果,是采用SPI接口进行读取,其中数据格式如下:图5-3 红外测温时序图红外测温模块的时序图如图 10.6,为SPI数据格式,在CLOCK的下降沿接收数据,一次温度测量需接收5个字节的数据,这五个字节中:Item为0x4c表示测量目标温度,为0x66表示测量环境温度;MSB为接收温度的高八位数据;LSB为接收温度的低八位数据;Sum为验证码,接收正确时Sum=Item+MSB+LSB;CR为结束标志,当CR为0x0dH时表示完成一次温度数据接收。一帧数据包括5个Byte,每个Byte代表含义如下: Item: “L”(4CH): 代表此帧为目标温度 “f”(66H): 代表此帧为环境温度 MSB: 8 bit Data Msb LSB: 8 bit Data Lsb Sum: Item+MSB+LSB=SUM CR: 0DH,结束码红外测温模块温度值的计算: 无论测量环境温度还是目标温度,只要检测到Item为0x4cH或0x66H同时检测到CR为0x0dH,它们的温度的计算方法都相同。计算见公式5-1: 温度 = Temp/16 273.15 (5-1)其中Temp为十进制, 而测量结果为16进制,把它直接转换为十进制即可。比如MSB为0x14H,LSB为0x2aH,测量结果为0x142aH,十进制表示为5162,则测得温度值为:5162/16-273.15=49.475 (5-2)读传感器流程: 红外传感器部分为标准SPI接口,鉴于061没有SPI数据接口,结合传感器的数据时钟格式采用软件虚拟SPI接口,其中IOA15为数据,IOA8为时钟,SPCE061A工作在从模式下,时钟由NTR传感器提供,该部分的关键是数据的校验,只有数据校验完全正确才能获取采集结果。 图5-4 读传感器流程图测试: 运行程序,按住启动按键S2直到有声音播出,第一个播报的温度为环境温度,第二个为播报的温度为目标温度。子程序:_TN_ReadData:push bp to spr2 = 40 /读5个字节的数据r5 = _TN_Data_Buff /取缓冲区数据TN_Read_loop:r1 = 0x0001P_Watchdog_Clear = r1r1 = IO_Port r1 &= TN_Clk /检测时钟数据 jnz TN_Read_loop /不为零时继续检测 r1 = IO_Port /为0时读一个bit数据,即检测到下跳沿r1 &= TN_Data jnz TN_Read_Data_H /不为0时转到TN_Read_Data_Hr1 = 0 /返回数据0jmp TN_Read_Data_NNTN_Read_Data_H:r1 = 1 /返回数据1TN_Read_Data_NN:/r5+ = r1r3 = r5+2 /第一个字数据处理r3 = r3 lsl 1 / r3 = r3|r1 /r5+2 = r3 r4 = r4 lsl 3r3 = r5+1 /第二个字数据处理r3 = r3 rol 1r4 = r4 lsl 3r5+1 = r3r3 = r5 /第三个字数据处理r3 = r3 rol 1r4 = r4 lsl 3r5 = r3r2-=1jnz TN_Read_Wait /40个bit数据没有读完转向TN_Read_Waitjmp TN_Read_Exit /读完转向TN_Read_ExitTN_Read_Wait:r1 = 0x0001P_Watchdog_Clear = r1r1 = IO_Port /检测时钟 r1 &= TN_Clk jnz TN_Read_loop /时钟不为0时转向TN_Read_loopjmp TN_Read_WaitTN_Read_Exit:nopnoppop bp from spretf5.3 语音播报因为凌阳的十六位单片机开发环境使用方便,并支持C语言与汇编语言的互相调用,且提供丰富的凌阳语音函数库,只要了解这些函数的使用方法,就可以很容易的实现语音的播放。本系统采用S480压缩格式,该压缩算法压缩比较大80:3,存储容量大,音质介于A2000和S240之间,适用于语音播放。 图5-5 自动方式流程图该子程序播放代码和函数如下所示intSACM_S480_Initial(intInit_Index)/初始化voidSACM_S480_ServiceLoop(void)/获取语音资料,填入译码队列voidSACM_S480_Play(intSpeech_Index,intChannel,intRamp_Set)/播放voidSACM_S480_Stop(void)/停止播放voidSACM_S480_Pause(void)/暂停播放voidSACM_S480_Resume(void)/暂停后恢复voidSACM_S480_Volume(Volume_Index)/音量的控制unsignedintSACM_S480_Status(void)/获取模块的状态CallF_FIQ_Service_SACM_S480/中断服务函数各函数具体内容如下面1)【API格式】C:intSACM_S480_Initial(intInit_Index)ASM:R1=Init_IndexCallF_SACM_S480_Initial【功能说明】SACM_S480语音播放之前的初始化。【参数】Init_Index=0表示手动方式;Init_Index=1则表示自动方式。【返回值】0:代表语音模块初始化失败1:代表初始化成功。【备注】该函数用于对定时器、中断和DAC等的初始化。2)【API格式】C:voidSACM_S480_ServiceLoop(void)ASM:CallF_SACM_S480_ServiceLoop【功能说明】从资源中获取SACM_S480语音资料,并将其填入解码队列中。【参数】无。【返回值】无。【备注】播放语音文件中数据,当出现FFFFFFH数据时便停止播放。 3)【API格式】 intSACM_S480_Play(intSpeech_Index,intChannel,intRamp_Set); ASM:R1=Speech_IndexR2=ChannelR3=Ramp_SetCallSACM_S480_Play【功能说明】播放资源中SACM_S480语音。【参数】Speech_Index表示语音索引号。 Channel:1.通过DAC1通道播放;2.通过DAC2通道播放;3.通过DAC1和DAC2双通道播放。 Ramp_Set:0.禁止音量增/减调节;1.仅允许音量增调节;2.仅允许音量减调节;3.允许音量增/减调节。【返回值】无。【备注】 SACM_S480的数据率有4.8Kbps7.2Kbps三种,可在同一模块的几种算法中自动选择一种。Speech_Index是定义在源程序中resource.inc的偏移地址。中断服务子程序中F_FIQ_Service_SACM_S480必须放在TMA_FIQ中断向量上。函数允许TimerA以所选的的数据采样率(计数溢出)中断。子程序见附录15.4 LCD液晶显示为了使用户能够方便快速地使用SPLC501液晶显示模组,凌阳大学计划提供了基于SPCE061A单片机的SPLC501液晶显示模组的驱动程序,包括文本显示、几何图形绘制和位图显示等功能函数。利用 SPLC501 液晶显示模组显示英文(ASCII)字符时,需要对LCD 进行初始化操作,以初始化LCD 内部的供电方式、驱动设置等

温馨提示

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

评论

0/150

提交评论