资源描述
- -
目录
1 绪论1
1.1选题意义1
1.2 红外测温技术的开展历程2
1.3设计的目的与意义2
2 红外测温仪的原理和性能分析3
2.1红外线测温仪的理论依据3
2.2红外线测温仪的性能指标4
2.3影响温度测量的主要因素及修正方法5
2.4红外线测温仪的特点5
3 红外测温仪的硬件设计6
3.1 总体设计6
3.2 单片机最小系统的设计7
3.2.1 单片机的选型8
3.2.2 复位电路10
3.2.3 时钟电路11
3.3 温度检测系统设计12
3.3.1 热释电温度传感器的选型12
3.3.2 放大电路的设计13
3.3.3 模数转换电路的设计14
3.4 整体电路设计15
4 红外测温仪的软件设计17
4.1 主程序设计17
4.2 子程序设计18
5 系统调试18
5.1 系统硬件调试19
5.2 系统软件调试19
5.3 调试中出现的问题19
感想20
参考文献20
附录1源程序21
- - word.zl-
- -
1 绪论
由于医学开展的需要,在很多情况下,一般的温度计己经满足不了快速而又准确的测温要求,例如车站和机场等人口密度较大的地方进展人体温度测量。虽然现在国外这种测温的技术都比拟成熟,但是国这方面的技术还处于开展阶段。因此,为了适应医学开展的需要,有效地进展特殊环境下的温度测量,从而有力地控制和预防诸如甲流、非典之类型的特殊疾病的传播,急需设计一种测温速度快,准确率高的测温仪。针对一般的工业用的红外测温仪的准确度不够高,我们根据这种红外线测温的原理,通过关键器件的选择、瞄准系统的设计以及温度补偿的自动调节来提高红外线测温仪的准确度,设计了一种用红外线测温电路,用于人员密集且流量大的场合进展快速的人体温度测量。
1.1 选题意义
伴随着人们生活水平的不断提高以及对生活质量要求的提高,人们对自身的安康状况越来越关注,而人体的体温、血压、脉搏和呼吸是鉴别人体安康状况的重要参数,对这些生理指标的监控与测量那么可以更好的表达人体自身的安康状况,所以他们在医疗领域中占有十分重要的地位,也为人民的生活带来极大的方便。
全文主要阐述了非接触式人体体温测试仪的硬件设计和软件设计。硬件方面首先谈到了系统的总体设计,然后分别从红外线传感器,运算放大器,A/D转换,数据处理,显示局部等功能模块进展了论述并详细介绍了各个芯片的构造和功能,使系统具有稳定性好,精度高,测量平安,使用方便等特点。在软件方面,此设计使用C语言来编写程序代码,具有编译速度快,运行效率高等特点。 设计的软件局部采用模块化构造,每个模块作为一个子程序,根据系统功能划分,程序由模块组成,所以整个程序的编制、调试和维护都比拟方便,构造清晰,提高了可靠性和修改性,并给出了针对各个应用模块的设计思路和设计框架,对各局部程序进展解释说明,从而实现非接触式人体体温的数字显示。
对非接触式测温仪的设计是以功能性为根底,以创新性为指导,以实践性为依托,具有大好的开展前景和广泛的应用场合。通过本次设计,希望可以为今后拓展体温监测应用领域提供新的思路和方法,在医学、体育、消防、军事训练、等领域得到更广泛的应用。 最后,文章对本次设计做出了详细的总结。
1.2 红外测温技术的开展历程
红外测温技术在生产过程中,在产品质量控制和监测,设备在线故障诊断和平安保护以及节约能源等方面发挥了着重要作用。近20年来,非接触红外测温仪在技术上得到迅速开展,性能不断完善,功能不断增强,品种不断增多,适用围也不断扩大,市场占有率逐年增长。比起接触式测温方法,红外测温有着响应时间快、非接触、使用平安及使用寿命长等优点。非接触红外测温仪包括便携式、在线式和扫描式三大系列,并备有各种选件和计算机软件,每一系列中又有各种型号及规格。在不同规格的各种型号测温仪中,正确选择红外测温仪型号对用户来说是十分重要的。
红外检测是一种在线监测(不停电)式高科技检测技术,它集光电成像技术、计算机技术、图像处理技术于一身,通过接收物体发出的红外线(红外辐射),将其热像显示在荧光屏上,从而准确判断物体外表的温度分布情况,具有准确、实时、快速等优点。红外诊断技术正是通过吸收这种红外辐射能量,测出设备外表的温度及温度场的分布,从而判断设备发热情况。
目前应用红外诊断技术的测试设备比拟多,如红外测温仪、红外热电视、红外热像仪等等。目前,我国也在研发一种体积小,本钱较低,又不受外界环境温度干扰的人体红外测温仪,对医学的开展有很重大的意义。
1.3设计的目的与意义
生理参数是人体最重要、最根本的生命指标,对危重病人进展生命指标参数的监测是医务工作者及时了解病情状况的重要手段之一,它有利于对有生命危险的伤病员进展及时有效的治疗和抢救处理,完善病人的医疗护理以及研究人体对环境变化的反响都有着重要的意义。
其中体温是人体最根本的生理参数,对于日常护理和病情检测都是非常重要的。有许多疾病都能通过体温的变化来预测,所以体温计在医疗领域中占有十分重要的地位。人体体温测试仪应用围不仅仅局限于医学,在消防上消防员在扑火的同时也要对自己的体温做到了解,如果体温过高或者心率过快就要及时撤离,以免发生危险;军事上用于部队训练,必须实施随时监测,体温使训练能够在良好的体征下进展,提高效果。因此,在许多领域都需要这种测试仪对人体体温进展准确测试。
此设计的目的是在理论学习的根底上,通过完成一个涉及MCC-51单片机多种资源应用,并具有综合功能的小目标板的设计与编程应用,并在进展相关课程设计根底上进展的一次综合设计。
2 红外测温仪的原理和性能分析
本章节首先介绍红外测温的根底理论,然后针对其理论依据进展原理剖析,还简单介绍了红外测温仪的性能指标及影响测温的主要因素,最后给出了误差的具体修正方法。
2.1 红外线测温仪的理论依据
一切温度高于绝对零度(-273.15℃)的物体,由于分子的热运动,都在不停地向周围空间辐射包括红外波段在的电磁波。物体的红外辐射能量的大小及其按波长的分布与它的外表温度有这十分密切的关系,其辐射能量密度与物体本身的温度关系符合辐射定律。因此,通过对物体自身辐射的红外能量的测量,便能准确地测定它的外表温度,这就是红外辐射测温所依据的客观根底。红外辐射原理—辐射定律:
〔3-1〕
式中:为辐射出射度数,;为斯蒂芬―波尔兹曼常数,;为物体的辐射率;为物体的温度,单位;为物体周围的环境温度,单位。测量出所发射的,就可得出温度。
利用这个原理制成的温度测量仪表叫红外温度仪表。这种测量不需要与被测对象接触,因此属于非接触式测量。在不同的温度围,对象发出的电磁波能量的波长分布不同,在常温〔0~100℃〕围,能量主要集中在中红外和远红外波长。用于不同温度围和用于不同测量对象的仪表,其具体的设计也不同。根据式〔2.1〕的原理,仪表所测得的红外辐射为:
〔3-2〕
式中:为光学常数,与仪表的具体设计构造有关;为被测对象的辐射率;为红外温度计的辐射率;为被测对象的温度〔K〕;为红外温度计的温度〔K〕;它由一个置的温度检测元件测出。
辐射率是一个用以表达物体发射电磁波能力的系数,数值由0至1.0。自然界中存在的实际物体,几乎都不是黑体。
2.2 红外线测温仪的性能指标
总的来说,测温围、显示分辨率、精度、工作环境温度围、重复性、相对湿度、响应时间、电源、响应光谱、尺寸、最大值显示、重量、发射率等都是红外线测温仪的性能指标。
1〕确定测温围:测温围是测温仪最重要的一个性能指标。每种型号的测温仪都有自己特定的测温围。
2〕确定目标尺寸:红外测温仪根据原理可分为单色测温仪和双色测温仪〔辐射比色测温仪〕。对于单色测温仪,在进展测温时,被测目标面积应充满测温仪视场。否那么背景会干扰测温读数,造成误差。对于双色测温仪,其温度是由两个独立的波长带辐射能量的比值来确定的。
3〕确定距离系数〔光学分辨率〕:距离系数由D:S之比确定,即测温仪探头到目标之间的距离D与被测目标直径之比。如果测温仪由于环境条件限制必须安装在远离目标之处,而又要测量小的目标,就应选择高光学分辨率的测温仪。光学分辨率越高,测温仪的本钱也越高。
4〕确定波长围:目标材料的发射率和外表特性决定测温仪的光谱相应波长对于高反射率合金材料,有低的或变化的发射率。
5〕确定响应时间:响应时间表示红外测温仪对被测温度变化的反响速度,定义为到达最后读数的95%能量所需要时间,它与光电探测器、信号处理电路及显示系统的时间常数有关。
2.3 影响温度测量的主要因素及修正方法
影响红外人体测温仪的因素有:
1〕测温目标大小与测温距离的关系
2〕选择被测物质发射率3〕测量温度时的环境因素:4〕强光背景里目标的测量:。
5〕温度输出功能:由于在温度测量时是在不确定的环境中进展的,所以外界环境会对测温造成一定的影响,对测量结果产生误差,所以要对环境温度有一个修正。
2.4 红外线测温仪的特点
人体红外测温仪是通过接收人体发射的红外线的能量的大小来测量其体温的仪器。测温仪部的灵敏探测元件将采集的能量信息输送到微处理器中进展处理,然后转换成温度读数显示。所以人体红外测温仪具有以下优点:
1〕非接触测量;2〕测量围广;3〕测温速度快;4〕准确度高;5〕灵敏度高;6〕体积小,方便携带;7〕受外界环境温度干扰较小.
3 红外测温仪的硬件设计
红外测温仪是利用红外传感器对被测目标时的热辐射进展采集,通过转换电路将红外传感器采集到的光信号转换成电信号,再将电信号通过放大电路,A/D转换等单元电路处理后送到单片机中,最后单片机将带有数据信息的电信号进展分析处理,将电信号转变成与之相对应大小的温度值显示输出。其中要解决的问题有:体温信号的非接触测量、微弱电压信号的放大、传感器的环境温度补偿等。其中体温测量选用红外热释传感器PM611、LM324进展电压放大、ADC0804进展模数转换,系统控制及数据处理等功能都用AT89C52单片机实现,通过驱动共阴极LED数码管进展显示。红外测温仪由光学系统、光电探测器、信号放大器及信号处理、显示输出、报警电路等局部组成。
3.1 总体设计
在一个系统的硬件设计中应选择适宜型号的单片机后,进展系统所需的扩展和配置。按照系统功能要求进展扩展和配置外围设备。要设计适宜的接口电路,系统的扩展和配置应遵循以下原那么:
1) 尽可能选择典型电路,并符合单片机常规用法。为硬件系统的标准化、
模块化打下良好的根底。本次设计选取的是AT89C52单片机。
2〕系统扩展与外围设备的配置水平应充分满足应用系统的功能要求,并留有适当余地,以便二次开发。
3〕系统中的相关器件要尽可能做到性能匹配。
4〕可靠性及干扰设计是硬件设计必不可少的一局部。
5〕单片机外围电路较多时,应考虑其驱动能力。驱动能力缺乏时,系统工作不可靠,可通过增设线驱动器增强驱动能力或减少芯片功耗来降低总线负载。
6〕工艺设计必须考虑安装、调试、维护的方便。
由此可设计出人体红外测温仪系统的总体构造框图,如图3-1所示。
由图中可以看出,红外探测仪接收到人体发出的红外线后,经过温度检测系统采样后,再在信号处理单元对所测得的信号进展放大、滤波、模数转换处理传送到单片机,经单片机运算后送给显示单元显示出温度读数。如果经过处理后的数据大于所设置的预警数据,那么蜂鸣器报警。
图3-1 系统总体构造框图
3.2 单片机最小系统的设计
单片机加上适当的外围器件和应用
程序,构成的应用系统称为最小系
统,最小应用系统的设计是单片机
应用系统的设计根底。它包括单片
机的选择、时钟系统设计、复位电
路设计、简单I/O口扩展、掉电保
护等,对于CHMOS单片机,还包括
低功耗运行设计。AT89C52单片机
的最小应用系统如图3-2所示
3.2.1单片机的选型
为了硬件系统的标准化、模块化、便于二次开发,本次设计选取的单片机
型号是AT89C52。
AT89C52是一种低功耗、高性能CMOS八位微控制器,具有8KB的系统可编程Flash存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。AT89C52具有以下标准功能:8K字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断构造,全双工串行口,片晶振及时钟电路。另外,AT89C52可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停顿工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM容被保存,振荡器被冻结,单片机一切工作停顿,直
到下一个中断或硬件复位为止。
1.AT89C52的主要特点是:
·与MCC-51 单片机产品兼容;
·8k可反复擦写(>1000次)Flash ROM;
·全静态操作:0Hz~33Hz;
·三级加密程序存储器;
·32 个可编程I/O 口线;
·3个16 位定时器/计数器;
·8个中断源;
·全双工UART 串行通道;
·低功耗空闲和掉电模式,
·看门狗定时器及双数据指针; 3-3 AT89C52
·掉电标识和快速编程特性;
2.引脚功能:
AT89C52引脚图如图3-3所示:
电源及时钟引脚:
·Vcc〔40〕:接+5V电源;
·Vss〔20〕:接地;
·XTAL1〔19〕:接外部晶体的一个引脚。在单片机部,它是一个反相放大器的输入端;
·XTAL2〔18〕:接外部晶体的一个引脚。在单片机部接至部反相放大器的输出端;
控制引脚:
·RST/VPD〔9〕:当震荡器运行时,在此引脚外加上两个机器周期的高电平将使单片机复位〔RST〕。掉电期间,此引脚可接上备用电源〔VPD〕,以保持部RAM的数据,当Vcc下掉到低于规定的值,而VPD在其规定的电压围〔5+0.5v〕时,VPD就向部RAM提供备用电源;
·ALE/PROG〔30〕:当访问单片机外部存储器时,ALE〔地址锁存允许〕
输出脉冲的负跳沿用于16位地址的低8位的锁存器,ALE端仍有正脉冲信号输出,此频率为时钟震荡器频率的1/6。ALE端可以驱动8个TTL负载。对于单片机EPROM型〔8751〕,在EPROM编程期间,此引脚用来输入编程脉〔PROG〕;
·PSEN〔29〕:此引脚的输出是单片机访问外部程序存储器的读选通信号,
在由外部程序存储器取指令〔或常数〕期间,每个机器周期PSEN两次有效。PSEN可以驱动8个LSTTL负载;
·EA/VPP〔31〕:当EA保持高电平时,单片机访问部程序存储器,但在PC值超过0FFFFH,将自动转向执行外部程序存储器的程序。当EA保持低电平时,只访问外部程序存储器。对于89C51,因其片有4KBEEPROM,故该脚接高电平。在EEPROM编程期间,VPP编程电压为+12V或+5V。I/O口引脚:
·P0口〔39-32〕:双向8位三态I/O口,此口为地址总线〔低8位〕及数据
总线分时复用口,可带8个LSTTL负载;
·P1口〔1-8〕:8个准双向I/O口,可带4个LSTTL负载;
·P2口〔21-28〕:8位准双向I/O口,与地址总线〔高八位〕复用,可带4
个LSTTL负载;
·P3口〔10-17〕:8位准双向I/O口双功能复用。
3.2.2 复位电路
复位电路通常采用上电自动复位和按钮复位两种方式,此电路系统采用的是上电与按钮复位电路,如图3-4所示。复位是由外部的复位电路来实现的。复位电路是复位引脚RST通过一个斯密特触发器与复位电路相连的,斯密特触发器是用来抑制噪声的。
单片机的RST引脚是复位信号的输入
端,RST引脚上保持两个机器周期
〔24个时钟周期〕以上的高电平时,
单片机部可以平安复位。
图3-4 AT89C52的上电系统复位电路
复位后,单片机部各存放器的容将被初始化,复位不影响片RAM和片外RAM中的容。存放器包括程序计数器PC和特殊功能存放器,其中〔PC〕=0000H。
特殊功能存放器的复位状态见表3-1。
表3-1 复位特殊功能存放器的初始状态
SFR名称
初始状态
SFR名字
初始状态
ACC
00H
TMOD
00H
B
00H
TCON
00H
PSW
00H
TH0
00H
SP
07H
TL0
00H
DPL
00H
TH1
00H
DPH
00H
TL1
00H
P0-P3
FFH
SBUF
不确定
IP
XXX00000B
SCON
00H
IE
0XX00000B
PCON
0XXXXXXB
3.2.3 时钟电路
时钟电路用于产生时钟信号,时钟信号是
单片机部各种微操作的时间基准,在此
根底上,控制器按章指令的功能产生
一系列在时间上有一定次序的信
号,控制相关的逻辑电路工作,
实现指令的功能。如图3-5所示:
图3-5 外接石英晶振电路驱动器件
XTAL1和XTAL2分别为片反向放大器的输入和输出端口。该反向放大器可以配置为片振荡器。石英晶体振荡器和瓷振荡器均可使用,如果用外部时钟源,XTAL2应不接。输入至部时钟信号要通过一个二分频触发器,因此外部时钟信号的脉宽无任何要求,但必须保证脉冲的上下电平要求的宽度。
电容容量围为30PF+/-10PF,石英晶体频率的围为1.2-12MHz,常用6MHz或者12MHz。
1)时钟周期〔是时钟信号频率fosc的倒数〕
时钟周期=1/fosc
2)机器周期
机器周期=12*时钟周期
3)指令周期
一条指令从被读取到被执行的整个过程所需要的时间称为指令周期。
3.3 温度监测系统设计
3.3.1 热释电温度传感器的选型
本设计的探头使用的是红外线传感器,它能接收人体发射出的红外线并使之转换成电压信号。设计选用的是PM611单元热释电传感器,它是一种专门用于非接触式测量体温的器件,主要接收5~14um之间的红外线,
·1脚接+5V;
·2脚为电压输出端;
·3脚接地;
PM611的外形口和光阑聚焦在接收元
件(热电堆) 的受热片上, 受热片
上有60只串联的热电偶,每只热电
偶的热端图3-6传感器的部电路
在受热片的中央部位围成一圈,焊接在一起。这种构造设计具有较小的热惯性
和较高的灵敏度,传感器采用负温度系数电热调节器进展环境温度补偿。他的工作温度是-20℃——+100 ℃,特别适合测量人体的温度。而且PM611各项指数都比拟好,因此选用了它做温度仪的探头。其等效电路如上图3-6图所示:
3.3.2 放大电路的设计
由于传感器探测到的人体红外线信号较弱,当转化为电压后需要通过放大器放大电压信号。因为探测器测到的信号可能掺杂了外界环境的某些因素,所以放大电路中要参加低通滤波电路把多余的杂信号过滤掉。
放大电路如图3-7所示:
3-7 放大电路连接图
传感器输出的信号经47 μF电容耦合到第一个同相放大器,它的闭环增益
为23~24之间。同时第一个放大器还兼做高通滤波器,其截止频率为0.3 Hz。第二个放大器是一个低通滤波器,其闭环增益约为1,截止频率为7 Hz。第一个,第二个放大器分别把低于0.3Hz和高于7 Hz的信号滤掉,使输出的信号仅是经过调制器调制的1 Hz红外辐射信号。通过第二章的原理可知由信号转换为电压再转化成温度才显示出来的,那么这个过程将在第三个放大器中完成。通过放大滤波的信号就输入到模数转换器的Vin〔+〕端,模数转换器会把收到的信号进展模数转换。
3.3.3 模数转换电路的设计
ADC0804是用CMOS集成工艺制成的逐次比拟
引脚名称
功能
信号方向
有效电平
备注
Vin〔+〕
接模拟信号
输入
——
单极性
Vin〔-〕
接模拟信号
输入
——
双极性
D0~D7
数据输出
输出
——
——
AGND
接模拟信号地
输入
低
——
DGND
接数字信号地
输入
低
——
CLK IN
时钟脉冲
输入
——
外电路提供
CLK R
外接电阻
输出
——
与CLK IN端配合
CS
片选信号端
输入
低
——
WR
写信号
输入
低
启动转换
RD
读信号
输入
低
读取转换结果
INTR
转换完毕
输出
低
——
Vcc
电源
输入
高
——
Vref
基准电压
输入
——
表征输入信号围
型模数转换芯片。分辨率8位,输入电压
围是0~5V,增加一些外部电路后,输入模拟
电压为±5V。此芯片有输出锁存器,当与
计算机连接时,转换电路的输出可以直接连
接在CPU数据总线上,不用再加接口电路。
ADC0804芯片的外引脚图如3-8所示。 3-8 ADC0804
引脚名称及意义如表3-3所示:
表3-3 ADC0804引脚名称及意义
A/D模数转换电路连接图如下列图3-9:
本设计采用了CLK R端口和CLK IN端口配合,芯片本身产生时钟脉冲的方法,A/D转换器Vin〔+〕端口接收到经处理过的模拟信号在部进展模数转换,片选端口CS和WR写信号输入端口同为低电平时启动转换,因为0804部有输出锁存器,转换后的数字信号存在锁存器里,当CS、RD同为低电平时,可以读取转换输出的数字信号,由A/D模数转换器的D0~D7端输出,接入AT89S52
单片机的P0口的P0.0~P0.7,经过程序烧制显示到LED显示屏上。
3-9 A/D模数转换电路:
3.4 整体电路设计
本设计采用AT89C52系列单片机进展数据的采集存储和处理。由于信号只有一个输入,为了防止不必要的消耗,本设计A/D转换器采用的是ADC0804。芯片的CLKIN端和CLKR端配合可以由芯片自身产生时钟脉冲。测量物体外表辐射能量的热释电传感器选用的是尼赛拉传感器的PM611型热释电传感器,它有效调节外界环境的温度起伏影响,显示器采用4片8位LED数码管。
电路的主要功能是将热释电传感器接收的红外辐射能量转换可为供A/D转换器承受的电信号。LED数码管由P1口驱动,并由AT89C52单片机通过软件控制显示物体外表的温度。通过软件程序编制可以实现三位有效数字的显示下列图3-10是整个设计的电路连接图。
4 红外测温仪的软件设计
4.1 主程序设计
设计的思路是首先初始化系统,然后显示子程序,开场测温后复位各个端口,摁下开关,接通电源,确定翻开电源后A/D模数转换器Vin〔+〕输入端读取经过放大滤波计算后的数据进展模数转换,CS片选端、WR写入端同时设置成低电平,当芯片自身产生一个脉冲时,启动转换。然后A/D转换器的CS、RD同时为低电平0时读取转换输出的数据,转换后的数据存入模数转换器自身的锁存器里,由输出端口D0~D7输入到单片机的P0口中。读取三次数据,满三次后读数正确的写入单片机EEPROM存储器。同时计数器加1,继续读取下一组数据。如果读数满三次后数据不正确,那么要对单片机进展清零,复位后重新测量读数。
中断子程序设置INT0为外部中断,中断后对EEPROM里的数据进展读取,然后通过液晶屏显示出来,读取时要对数据进展一个判断,AT89C51单片机的P3口除了是多功能I/O口外还是第二功能口,它的第二功能是作为控制端口使用的,所以本设计用P3.0串行口输入端来控制报警系统,如果数据大于37.0℃,那么蜂鸣器报警。显示温度的围是30~60℃,当所测温度高于下限或者上限温度时,报警系统报警。执行完一次子命令后运行中断信号,子程序返回。主程序主要实现以下功能:
1〕开机或复位时能自动初始化设备,引导程序正确执行。
2〕开机或复位之后启动A/D转换,对环境温度进展采样,并在显示器上显示当前环境温度。
3〕保持环境温度显示的同时,对覆盖热释电探测器视场的物体外表的红外辐射进展转换和采样,并比拟各采样值,直到采样值为热释电探测器响应的峰值电压为止。
4.2 子程序设计
读取指令
读取EEPROM〔超过37度〕
报警
发送数据
LED显示
中断返回
Y
N
外部中断入口
如图4-2是软件设计局部的中断子程序流程图,主要实现以下功能:
1〕A/D采样子程序完成对热释电传感器放大电路输出信号的采样。要实现准确测温就必须得到输出信号的峰值,但在实际电路中,由于探测器响应延时不尽一样,且电路的延时也很难准确计算,所以要准确采集到峰值是十分困难的。为此,我们只有对输出信号不断地进展采样,并比拟各样值,取其中的最大者作为峰值的近似值
2〕数据处理子程序完成对采样值的计算处理。中间又经过了ADC0804数模转换器将结果转换为可供LED显示的代码。
3〕读取温度时超过预警温度,蜂鸣器报警,没超过直接显示所测温度。
4〕显示子程序完成最后的温度显示。
图4-2中断子程序流程图
图4-2中断子程序流程图
5 系统调试
在硬件焊接与软件编程完成后,需要对其进展调试,以保证硬件与软件连接成系统后能够到达设计要求。系统调试是系统开发最重要的环节之一,系统成型后能否正常工作,主要取决于系统调试是否成功。
5.1 系统硬件调试
绘制完成原理图之后,根据原理图焊接电路板。焊接完成后,首先目测焊点是有虚焊或漏焊现象,再用万用表测量各个芯片间连接和电源与地间的连接是否正确,由于本次设计需要用排线将主板和副版连接起来,这就涉及到引脚连接的问题,所以要把主板芯片引脚与副版芯片引脚直接用万用表测量,观察是否接通,然后上电测量,要十分注意芯片是否发热。系统硬件调试方法如下:
1) 对印刷电路板质量检查、测试,是否同印刷制电路板图一致。对所用的
元器件质量检查。两者无误后进展下一步。
2〕按照印刷电路板上的器件名称、表识焊接好各个元器件。
3〕采用万用表、示波器、信号发生器等一般调试工具和测试软件对硬件电
路电气性能测试,看是否能正常工作。
5.2 系统软件调试
软件调试采用模块化调试方法,每一模块逐一调试,然后再将所有模块组合一起,进展整体调试。软件的调试主要有语法错误和逻辑错误两类。语法错误可直接修改,逻辑错误那么需进展单步调试,看程序是否按逻辑顺序进展,然后写入到芯片,查看程序运行效果,反复调试。系统软件调试方法如下:
1) 软件在各个子程序模块调试都正确后,再将相互有关系的模块逐块组合
起来加以调试,以解决在程序模块连接中可能出现的逻辑错误。
2〕对所有程序模块的整体组合调试是在与系统联机后进展的。
5.3 调试中出现的问题
硬件调试过程中发现,无论输入为多少,数码管显示数据均不变。经屡次测量各芯片管脚的输入值发现,A/D采集并未实现,即有输入电压但并没输出,经测量研究发现供电电源没有采用稳压电源供电,将LM336连入其中,测试即正确。
由于本系统的编译采用汇编语言,故要注意文件的扩展名为.ASM,错误的使用了.C以致无法运行;注意自定义符号不要与伪指令重复,程序调试中发现HD7279的串行数据输入/输出的符号与伪指令DATA重复了,将其改为DAT即正确;还有一些逻辑错误,经仔细研究分析,修改后无误。
感想
经过将近一个月的忙碌和工作,本次毕业设计已经接近尾声,作为一个本科生的毕业设计,由于经历的匮乏,难免有许多考虑不周全的地方,如果没有指导教师的催促指导,想要完成这个设计是难以想象的。我要在这里对他们表示深深的意!
首先感我的指导教师——世林教师,感教师对本论文从选题、构思、资料收集到最后定稿的各个环节给予细心的指引和教诲,使我对本次设计有了深刻的认识,并最终得以完成毕业论文,同时,在此次毕业设计过程中我也学到了许多关于单片机和传感器方面的知识,实验技能有了很大的提高。其次要感和我一起作毕业设计的同学们,他们在本次设计中勤奋工作,克制了许多困难来完成此次毕业设计。因为有了他们的努力工作,此次设计的完成才会如此顺利。
最后,我要向在百忙之中抽时间对本文进展审阅、评议和参加本人论文辩论的各位教师表示感!
参考文献
[1] 那彦.电子及通信毕业设计[M].:电子科技大学,2008.
[2] 全利,肖兴达.单片机原理及应用教程(第二版)[M].:机械工业,2008.
[3] 承琳.生物医学传感器原理及应用[M].:高等教育,2000.
[4] 何希才.传感器及其应用实例[M].:机械工业,2004.
[5] 黄贤武,筱霞.传感器实际应用电路设计[M].:电子科技大学,1997.
[6] 继述.红外探测器[M].:国防工业,1986.
[7] 胡乾斌,光斌,玲.单片微型计算机原理与应用[M].:华中理工大学,1997.
[8] 柳刚,黄竹邻,周昊,王双保,易新建.非接触式红外研制[M].光电子科技与信息,2005.
[9] 马殿阁.多路红外温度监测仪[J].电子测量技术,1993(3):55—56.
[10] 瑞新.单片机原理及应用教程[M].:机械工业,2005.7.
附录1 源程序
# include <at89x51.h> //头文件
# include <absacc.h>
# include <ctype.h>
# include <math.h>
# include <stdio.h>
# include <string.h>
# include <PM611.h> //测温头文件
#include <LCD1602.h> //显示头文件
sbit upalarm=P3^0; //上限温度报警信号
sbit dc_motor_run=P2^6; //超过上限温度,报警
bit up_one,down_one; //加1和减1标志
bit alarm_up_flag; //上限报警设置标志
bit set_temper_flag; //设置控制标志温度标志
bit alarm_switch; //报警开关
bit set_temper_dot_flag;
unsigned char user_temper=37; //用户标定温度
unsigned char TH=30,TL=20,RS=0x3f; //上限温度50,下限20,分辨率10位,也就是0.25摄氏度
unsigned
unsigned char t[2],*pt; //用来存放温度值,测温程序就是通过这个数组与主函数通信的
unsigned char TempBuffer1[17]={0x2b,0x20,0x30,0x30,0x2e,0x30,0x30,0x20,
0x53,0x45,0x2b,0x20,0x30,0x30,0x2e,0x30,'\0'};
//显示实时温度,上电时显示+ 00.00 SET+ 00
unsigned char TempBuffer0[17]={0x54,0x48,0x3a,0x2b,0x20,0x30,0x30,0x20,
0x54,0x4c,0x3a,0x2b,0x20,0x30,0x30,0x20,'\0'};
//显示温度上下限,上电时显示TH:+ 00 TL:+ 00
unsigned char code dotcode[4]={0,25,50,75};
因显示分辨率为0.25,但小数运算比拟麻烦,故采用查表的方法*
再将表值别离出十位和个位后送到十分位和百分位********************/
void sounddelay();
void tempsound();
/***********用户设定温度转换为LED显示数据**************
*功能:将用户设定温度user_temper,别离出符号位,百、十、个位
并将它们转化为ACSII码,送到液晶显示缓冲区
void user_temper_LED(unsigned char temper)
{
TempBuffer1[10]=0x2b; / /0x2B为"+"的ASCII码
TempBuffer1[11]=temper/100+0x30; //别离出temper的百十个位
if( TempBuffer1[11]==0x30) TempBuffer1[11]=0xfe; //百位数消隐
TempBuffer1[12]=(temper%100)/10+0x30; //别离出十位
TempBuffer1[13]=(temper%100)%10+0x30; //别离出个位
TempBuffer1[15]=user_dot_temper+0x30;
}
/***************温度转换为LED显示数据************
*功能:将报警温度,别离出符号位,百、十、个位,并将它们转化为ACSII码,送到液晶显示缓冲区
void alarm_LCD( unsigned char TH, unsigned char TL)
{
TempBuffer0[3]=0x2b; //0x2B为"+"的ASCII码
if(TL>0x7f)
else TempBuffer0[11]=0x2b; //0x2B为"+"的ASCII码
TempBuffer0[4]=TH/100+0x30; //别离出TH的百
十个位
if( TempBuffer0[4]==0x30) TempBuffer0[4]=0xfe; //百位数消隐
TempBuffer0[5]=(TH%100)/10+0x30; //别离出十位
TempBuffer0[6]=(TH%100)%10+0x30; //别离
展开阅读全文