摘要:
在当今的生活中,传统的水银温度计有着很多大大小小的缺点, 虽然它价格低、性能稳 定,
但是它精度低、测量时间长、不安全等缺点,给我们带来了众多麻烦和不便。红外线测温仪集快速、
准确、安全、方便可靠等众多优点于一身,很快便被越来越多的人们所认知和接受。
本文根据红外线测温的原理,以 STCC52单片机作为核心控制部件,控制系统运行, 结合
TN901红外测温模块,搭配液晶显示器实现测温。本文大致介绍了这套系统的构成和实现方式,给
出硬件、软件方面的设计流程。此系统主要由光电探测部分、系统运行部分和显示输出部分等组成:
由TN901进行红外辐射采集,传入单片机,经由单片机处理转换为电信号,并在液晶模块中显示出
来。
关键词:红外线测温 STCC52TN901
第 1页 共 2页 |
|
Abstract
In today's life, the traditional mercurythermometer has many large and small faults, although its price islow, performa nee is stable, but its low precisi on, measurementtime, uneasy congruent faults, brings us manytroubles andinconvenience. In frared thermometer set rapid, accurate, safe,convenient and reliable, and many other adva ntages in one, soon cognitive and accepted by more and more people.
Thispaper accord ing to the prin ciple of in frared temperature measurement,
STCC52si ngle-chip computer as core con trol un it, con trol system, combined with
TN901in frared temperature measureme nt module, match LCD to realizetemperature measuring.
This paper Outlines the composition and implementation of the system,gives the hardware and software aspects of the design process. Thissystem is mainly composed of photoelectric detect ion system isrunning, and display output sect ions
such as: in fraredradiati on by TN901 collect ion, in troduced into si ngle chipmicrocomputer,
LCD module. processed by sin gle-chip microcomputer is con vertedto electrical sig nals, and displayed in the
Keywords Infrared temperature measureme nt STCC52 TN901
苏州市职业大学电子信息工程学院毕业设计
目录
1绪论......................................................................11.1 设计背景..............................................................11.2 设计应用..............................................................11.3 设计内容..............................................................22系统总体设计...............................................................32.1 方案论证..............................................................3 2.1.1 红外测温模块的方案论证..............................................3 2.1.2电源模块选取的方案论证................................................ 42.2系统总体设计.............................................................52.3系统总体框图.............................................................5
2.4STCC52单片机概述...................................................6 2.5红外测温的原理及方法.....................................................8 2.5.1红外测温的原理........................................................8
2.5.2红外测温的方法.........................................................92.6红外测温模块............................................................103硬件电路设计.............................................................113.1硬件电路图..............................................................113.2按键部分的制作..........................................................123.3电源模块的制作..........................................................123.4单片机模块的设计........................................................13 3.5 LCD显示模块设计..................................................... 134 软件的设计.............................................................154.1软件总体流程图..........................................................154.2红外测温模块............................................................1.3显示模块部分............................................................18
苏州市职业大学电子信息工程学院毕业设计
5 系统测试...............................................................19
结论......................................................................20
致谢...........................错误!未定义书签。
参考文献.................................................................21附录A元器件清单.........................................................22附录B电路原理图...........................................................24
附录C源程序 25
苏州市职业大学电子信息工程学院毕业设计
1绪论
1.1设计背景
在科技快速发展的今天,温度随时可见,“温度”这个定义的出现,给各行各业带来了新的认知。在工业中,有很多不能触及的地方和无法用传统测温方式去测量的发面,这种情况和下使用传统的测温方式,不仅了接触式测温仪的使用,严重的话,可能导致伤亡事件的发生。此时,我们更加应该去寻找一种方便、快捷的测温方式。在医学中尤为常见,人的体温,是检测一个人状态的重要标志,温度成为了确定物质状态的重要参数之一,通过体温来检查一个人的机能 是否正常已经成为我们现在很普遍的技术,如2003年的非典时期,由于测量人数庞大,医院的护士们需要一个一个使用传统的测温技 ,去测量术(水银测温)每一位待测人员的体温,等待水银温度计的反应,这样一来, 不仅在测量时间上有重大堵塞,并且在测量空间上给大家带来困惑和不便,把红外线测温技术运用到医学领域,不仅能大大节省时间(本设计温度仪反应时间小于 2秒),而且在 空间上给人们带来方便,也将工作效率提高到了一个新的高度。
1.2 设计应用
红外测温也叫辐射测温,通常情况下都是使用光或者热等探测器来进行测量,因为此测量方法较为简单,所以可以进行大面积的操作,亦或是物体的某一部分,使用方便、便捷,它的制作工艺很简单,而且成本也比较低,测量的时候不需要接触到物体,并且响应时间短、使用寿命长。另外,红外传感器的种类比较多、发展速度比较快,在将来将会普遍使用。
红外线测温的特点:
1)测量范围广、精确
2)反应时间短、反应速度快
3)方便、安全,无需接触物体
4)可以测微小的物体。
根据红外线测温的以上特点,我们可以应用在如:
第1页共35页
电力:燃煤发电、水电站、核电站等。
冶金:铝厂、铜厂、钢厂等。
石化:采油、石化厂、炼油厂等。
一般工业:空调厂、冷冻机、冰箱厂、啤酒厂、制药厂、汽车厂。温度原件和制造厂:温度开关,温度控制器制作。等诸多应用。
1.3设计内容
利用STCC5单片机,结合上TN901温度传感器,完成测温的功能,具体设计指导如下:
1)测量范围:0~55摄氏度,测量精度:0.5摄氏度
2)测量距离:W0.5米
3)反应时间:w2秒
4)通过TN901模块进行温度的采集、测量,并将采集到的数据通过端口传送到 STCC52^片机中,单片机进行数据的处理,转入液晶显示器中,液晶显示器
直观化呈现数据。另外,键盘模块可以进行部分操作,电源模块用于供电。
第2页共35页
2系统总体设计
2.1方案论证
2.1.1红外测温模块的方案论证
方案一:
在此方案中,系统分为模拟红外温度传感器模块、放大电路模块、AD转换电路模块、单片机模块、按键模块、报警(蜂鸣器)模块、 LCD显示模块和电源模块(如图2-1所示)。所谓的模拟传感器就是传感器的输出量是模拟量,而不是可以直接进行数据处理的数字量,所以它需要通过信号放大和
AD转换等处理后才能传输给单片机进行相关的处理。
图2-1方案一系统框图
此方案,首先模拟红外温度传感器接收人体发出的红外线, 然后经过转换后输出对应的电压值,传感器同时通过传感器温度。这两个红外温度传感器的输出量通过放大电路和AD转换电路的处理后传输到单片机模块进行相关的处理,然后通过LCD显示模块显示相应的人体温度。
万案一:
此方案与第一个方案的最大区别就是:在本方案中采用TN901红外
第3页共35页
温度传感器来代替模拟红外温度传感器。由于TN901红外温度传感器内部已经集成了运放电路、AD转换电路、滤波电路和数字信号处理器,所以只需通过传感器的数据接口就可以把 TN901传感器测量的人的体温数据直接传送给单片机模块处理并由LCD显示模块
显示。
图2-2方案二系统框架
方案对比和选择:
与方案二比较,方案一比较低廉,但是对设计要求和系统电路变的更加复杂,这样
求。 就使得电源的功耗增大,并且效率会有所降低,在增加工作量的同时也带来了更多的要
与方案一相比,虽然方案二采用的TN901模块成本会高一些,但是整个系统相对而
言就比较的简单,传感器可以和单片机直接连接,不仅简化了电路,而且 不会给电源模
块带来更多的消耗,所以电源的效率会提升一个新的档次。
考虑到各方面的成本,我觉得方案二更适合本次设计。
2.1.2电源模块选取的方案论证
方案一:
采用USE接口进行供电。随着科技的不断发达,电脑等产品的不断升级,电
子产品智能化,很多电子产品的供电已经开始慢慢的转向
USB供电,USB供电不
仅即插即用,而且更环保、更方便、更普遍,更能跟上时代的步伐
万案二: |
|
采用电池供电。电池供电已经有很长一段历史,并且一直持续到现在,很多遥
控器、手电筒等等常用家电至今也一直在使用电池供电, 使用电池供电方
便快捷,易于更换电源。
方案的对比和选择:
电池供电与USB供电比起来更加便携,如今,在市场上电池的种类繁多, 比
如干电池、锂电池和纽扣电池等。而干电池则几乎在每个大大小小的商店都有出售,这就在很大程度上方便了更换电池,虽然USB供电更方便快捷、即插即用、更环保,并且能
符合电子产品的走势,但是为了本设计的便携性,还是采取电池供电。
综上所述:
本设计采用3节1.5V的5号干电池作为电源模块部分的设计。
2.2系统总体设计
经过以上的论证比较,我选取了以上的各方案,在这些方案中,系统由:TN901传
感器模块、按键模块、报警(蜂鸣器)模块, STCC52单片机模块、电源模块和LCD显示模块等六部分组成。 此系统主要实现以下功能:体温快速测量;、当超出量程系统报警等等。
2.3系统总体框图
本设计采用了以下6个模块组成,通过电源部分供电,按键模块进行操作,传感器模
块采集数据,传送到单片机中处理,然后在
LCD显示模块中显示出来,
如若传感器采集到的数据超过了它的量程, 则将信息发到单片机中,单片机进行 处理,通过报警装置进行报警。(图2-3)
第5页共35页
图2-3红外测温系统总体框图
2.4STCC52单片机概述
STCC5是STC公司生产的一种低功耗、高性能CMOS位微控制器,具有8K在系
统可编程Flash存储器。STCC52使用经典的MCS-51内核,但做了很多的改进使得芯
CPU和在系统可编程Flash,使得STCC52为众多嵌入式控制应用系统提供高灵活、超
片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的 8位
有效的解决方案。 具有以下标准功能:8k字节Flash,512字节RAM
32位I/O口线,看门狗定时器,内置4KBEEPRO,MMAX81(复位电路,3个16位定时器
/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),
全双工串行口。另外STCC52可降至0Hz静态逻辑操作,支持2种软件可选择节电模
式。空闲模式下,CPU停止工作,允许RAM定时器/计数器、串口、中断继续工作。掉电
保护方式下, RAM内容被保存,振荡器被
冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz
6T/12T可选。
第6页共35页
(VVRJP3.e 匚(fC>
trm)p3.3c"C,F3
(TXO?
P3.7匚XTAL2C
4匚tri)P3.5匚
(RX3 / F'3.0 匸
rTrcF3.2匚
XTAL*匸
G^D匚匸□
r—三齐K
□
□
|尸二亡.:A1^
:
□
□F2.4<A12)
□
□
EAV°P
PSEN
F2fiA13:
P23 i A11:
P22^AIO:
F27 tAl5:二
1■二P1.CC□ vCC
(T2EX>P1J匚□PCC ■ AIX i
P1J2E□尸匚1AD'i
Pt.3C□RL2CAD2,
PT.4C□FC□ ■ AD3 i
{MOSI)P1.5C □FC^4■AD41
[MISO?PI.6 匚□FC? ■ ADf -
(SCK)P1+7CFC6(ADO,
RSTC□FC7(AD7>
□ P21 2耳
图2-4STCC52各引脚标注P2□ A3:
其各个参数如下:
1)增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意选择,指令代码完
全兼容传统8051
2)工作电压:5.5V?3.3V(5V单片机)/3.8V?2.0V(3V单片机)
3)工作频率范围:0?40MHz相当于普通8051的0?80MHz实际工作频率 可达
48MHz
4)用户应用程序空间为8K字节
5)片上集成512字节RAM
6)通用I/O口(32个),复位后为:P0/P1/P2/P3是准双向口/弱上拉,P0口
是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为 I/O口用时,
需加上拉电阻。
7)ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专 用仿真器,
可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,数秒即 可完成一片
8)具有EEPROM功能
9)共3个16位定时器/计数器。即定时器TO、T1、T2
10) 外部中断4路,下降沿中断或低电平触发电路,PowerDown模式可由外部 中
第7页共35页
断低电平触发中断方式唤醒
11) 通用异步串行口(UART,还可用定时器软件实现多个UART12) 工作温度范围:-40?+85C(工业级)/0?75C(商业级)
STCC52各个引脚的描述如下:
a)电源和晶振:VC VSS接地;
运行和程序校验时加的电压;
XTAL1输入到振荡器的反向放大器;
XTAL2反向放大器输出,输入到内部时钟发生器。
b)RST单片机的上电复位或掉电保护端;
c)ALE:地址锁存有效信号输出端;
d)PSEN片外程序存储器读选通信号输出端。
2.5红外测温的原理及方法
2.5.1红外测温的原理
都一直在不停向外辐射能量,物体的向外辐射能量的大小及其按波长的 分布与它的表面温红外测温的原理是黑体辐射定律,大家都知道。在自然界中一切高于绝对零 度的物体
度有着联系,物体的温度越高,它所发出的红外辐射能力就越 强。黑体的光谱辐射出射度
由普朗克公式确定,如下:
“ _G 1 | (2-1) |
第8页共35页
T=5500K
BOO
500 iaoo | 1500 | 2000 |
X[nmj
图2-5不同温度下的黑体光谱辐射度
根据图2-5可以看出:
1)随着温度的升高,物体发射出的红外辐射也越高
2)随着温度的升高,与光谱辐射度极大值对应的波长减小。这表明随着温度的升高,黑
体辐射中的短波长辐射所占比例增加;
3)随着温度升高,辐射峰值向左移动,峰值处的波长与绝对温度 T成反比。
2.5.2红外测温的方法
红外测温有好几种,因为测温原理不同,还有设计方法不同,在此我选择了
全辐射测温法来进行测量,选用这种方法, 不仅利用了中低温物体波长大、辐射
信号弱,而且结构也比较简单,成本低。以下是全辐射测温的方法:
由普朗克公式可推导出辐射体温度与检测电压之间的关系式:
V=Ra&(TT4=KT4 (2-2)
式中K=Ras(T,由实验确定,定标时&取1
T――被测物体的绝对温度
R――探测器的灵敏度
a-----与大气衰减距离有关的常数
&――辐射率
c――斯蒂芬一玻耳兹曼常数
因此,可以通过检测电压而确定被测物体的温度,上式表明探测器输出信号
第9页共35页
与目标温度呈非线性关系,V与T的四次方成正比,所以要进行线性化处理。线性化处理后得到物体的表观温度,需进行辐射率修正为真实温度,
其校正式为:
Tr | (T) | (2-3) |
式中Tr――辐射温度(表观温度)
?(T)――辐射率,取0.1?0.9
由于调制片辐射信号的影响,辐射率修正后的真实温度为高于环境的温度,
还必须作环温补偿,即真实温度加上环温才能最终得到被测物体的实际温度。
2.6红外测温模块
此模块采用了非接触式的红外模块,围广等众多特点。(实物图见图2-6)
具有反应速度快、测量精度高、测量范
P2 \CC
图2-6 TN901模块实物图 图2-7 TN901电路图
如图2-7,此红外模块通过物体的辐射,采集信息,由 3号引脚和4号引脚 将采集到的信息传送到单片机。其中 VCC为电源引脚,引脚4为数据接受引脚, 没有数据接收时4为高电平,引脚3为输出引脚,2号接地引脚,1号表示测温启 动引脚,低电平时有效。以下为 TN901的简介和部分数据:
TN901简介:
TNm红外温度计模块采用高灵敏度、高精度、的功耗的设计,保证了采用的 优良特
性。
MEMS热电堆可以准确的测量出环境温度,采用温度补偿技术在 TNm红夕卜
温度计模块上。
ZyTemp开发出独有的集成了所有硬件的集成电路的组成了红外片上系统。 应用该创
第10页共35页
造性的红外片上系统(SoC)技术,TNm红外温度模块具有很高的集成度和性价比。 ZyTemp's的产品可以承受10C的热冲击。我们的产品擅长在宽范围温度变化环境中
保持精度。
TNm产品只需要3伏电源供电,而多数其他红外温度计需要9伏电压供电ZyTemp保 证温度标准溯源倒NIST或者国际测量实验室.所有的TNm产品经过溯源
的红外温度标准源校准,校准的数据和产品的序列号保存在模块上EEPROM内。
规格和测试规范:
表2-6
测试条件 | -33~220°C/-27~428 °F |
工作范围 | -10~50 °C/14~122° F |
精度 Tobj=15~35 ° C,Tamb=25 ° C | +/-0.6 C |
全范围精度#AC | +/-2%,2 °C |
分辨力(-9.9~199.9 ° C) | 1/16 °C=0.0625(fallrange) |
响应时间(90%) | 1秒 |
D : S | 1:1 |
发射率 | 0.01~1step.01 |
刷新频率 | 1.4HZ |
尺寸 | 12*13.7*35mm |
| |
| |
电源 | 3V或5V (可选) |
3硬件电路设计
3.1硬件电路图
以下为本次设计的总体电路图(图3-1)
第11页共35页
|
| LI |
|
G^D | |||
? T W | |||||||
| |||||||
| M..M | ||||||
PHJ/T | |||||||
PkJ | |||||||
plij | |||||||
PKJ PIE | |||||||
R5TVFD | |||||||
P3.QRXD | EAVPP | ||||||
P3.il/TXD ___________ |
| ||||||
| |||||||
Plllvn .ATE PROG | |||||||
P3.3fm P3.4Tfli F3.5;TI | |||||||
PltWR Pl.^RD | |||||||
■ | |||||||
曲 | |||||||
XT AL I 19 | XTAL2 | 贮 | |||||
XTALI | 心 | ||||||
亠 | |||||||
--------------P | |||||||
~1 | |||||||
GND | |||||||
图3-1总体电路图 | |||||||
图3-2 按键部分电路图
3.3电源模块的制作
电源部分由3节1.5V的5号电池和一个电源开关组成
第12页共35页
3.4单片机模块的设计
图3-4为此次设计的单片机模块部分电路图的最小系统
VCC
TN〕Dsita |
3.5LCD显示模块设计
LCD部分采用LCD1602显示(如图3-5)1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个 5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用, 正因为如此所以它不能很好地显示图形。
LCU1
第13页共35页
C3XD | 图3-5 LCD液晶显示模块电路图 |
1602采用标准的16脚接口,其中:
第1脚:GN助电源地
第2脚:VCC接5V电源正极
第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电
源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个 10K的电位器调
第4脚:RS为寄存器选择, 整对比度)。
高电平1时选择数据寄存器、低电平0时选择指令寄存器。第5脚:RW为读写信号线,高电平(1)时进行读操作,
电平(0)时进行写操作。
第6脚:E(或EN)端为使能(enable)端,高电平(1)时读取信息,负跳变时执
行指令。
第7?14脚:D0-D7为8位双向数据端。
第15?16脚:空脚或背灯电源。15脚背光正极,16脚背光负极。
4软件的设计
4.1软件总体流程图
当红外测温仪接通电源时,STCC5单片机就会自动复位,开始运行该程序。首先对STCC5初始化。然后给出开机显示,接着判断是否有按键输入,若没有按键输入,则
继续返回继续判断;若有键输入,则判断是否是红外测温。如果否就保持开机显示,是则
进行红外测温, 接收数据,并将所测的温度计算显示出来,并等待结束测温命令。再判定
第14页共35页
是否结束温度测量,若没则继续测温,若收到结束命令则返回开机显示,重新开始以上操
作。
4.2红外测温模块
该红外测温模块的数据输出信号和脉冲信号分别接单片机 P1.5,P1.6口,
测温控制端接P1.7口。它的程序流程图如图4-2所示,此模块首先定义一个字符型数组用
于存放读取到的一帧数据,然后启动测温,读取数据, 数据是在脉冲
的下降沿一位一位传送的。把五个字节数据都读完后判断第一个字节是否为 0x4c
或0x66且第五个字节为0x0d,若是则计算温度值返回,否则继续读取数据。
第15页共35页
图4-2红外测温模块流程图
第16页共35页
温度计算流程:
第17页共35页
4.3显示模块部分
图4-4显示模块部分流程图
第18页共35页
5系统测试
经过多次测试,本设计实现了非接触测温,:
1)测量范围实现了0~55摄氏度(图5-1)
图5-1量程测量图
2)测量距离大于0.3米,并且测量精度土0.5摄氏度(如图5-2,图5-3为图5-2中 液晶显示器数据)反应时间小于2秒
经过多次测量,反应时间在1.7秒左右。
3)并且本设计设置的报警装置测试成功,当温度超过设定温度,则启动自动报警 功能。
第19页共35页
以下是本次设计我的实物图:
本次设计,基本实现了设计要求中的要求,这次的毕业设计主要包括两个部分的设计:硬件设计和软件设计。 通过此次设计,让我对单片机的认识又到了一个新的层次,并且在动手和思考方面更加的熟练,并且, 让我的知识运用能力也有所提高,为以后的工作学习打下了基础。同时,也让我发现了自己很多不足的地方。
这更加激励我要在以后的生活中多学习,多动手,多思考,争取在以后的学习和工作中做到更好。
参考文献:
[1] | 孙鹏,红外测温物理模型的简历及论证 | [D].吉林大学.2006 | [J].湖南 |
[2] | 晏敏,彭楚武,颜永红,曾云,曾健平 | .红外测温原理及误差分析 | |
[3] | 曹润强.红外测温仪的设计[J].攀枝花学院学报,2006,23(6):87- | ||
第20页共35页
[4] | 张友德,赵志英,涂时亮?单片机微型原理、应用与实践 | ?第五版?上海:复旦大学出版 |
社.2006
⑸柳刚,黄竹邻,周昊,王双保,易新建?非接触式红外研制[M].光电子科技与信息,2005.⑹何希才.传感器及其应用电路[M].北京:电子工业出版社,2001.
[7] | 马殿阁.多路红外温度监测仪[J].电子测量技术,1993(3). | |
陈杰,黄鸿.传感器与检测技术[M].北京:高等教育出版社, | 2004 | |
宋文、杨帆.传感器与检测技术 .北京:高等教育出版社, | 2004 | |
| ||
第21页共35页
附录A元器件清单
LCD1602屏幕 1
TN901温度模块 轻触开关 自锁开关 10K 12MHZ晶振 DIP40 排针、排座 蜂鸣器 8550三极管 DC005插座 | 1 |
第22页共35页
电池盒 | 1 |
第23页共35页
第 23 页共 35 页
附录B电路原理图
亠
其
|
|
|
| 」 | 二 | |
| 」 | |||||
彳 | ||||||
| ||||||
| □ | |||||
第24页共35页
附录C源程序
//宏定义
#define uchar un sig ned char
#define uint un sig ned int
//头函数
#inelude <reg52.h>
//全局变量定义
floatTemp;
floatHJTemp,MBTemp;
//TN9温度传感器头函数
#include <TN9.h>
//LCD头函数
#include <LCD.h>
//按键
sbitK =P1A2;
sbitLR=P1A0;
sbitLG=P1A1;//主函数
void main() { | |
LG=0;
//开始按键
while(K==1);
//温度显示初始化
Init_T();
//循环读码
while(1)
{
LR=~LR;
//读取目标温度
TN_IRACK_UN();
TN_IRACK_EN();TN_GetData(0x4c); MBTemp=Temp; LR=~LR;
//读取环境温度
第25页共35页
TN_IRACK_UN();
TN_IRACK_EN();
TN_GetData(0x66);
HJTemp=Temp;
//显示
Display(MBTemp,HJTemp);
}
}__________________________________________________________________〃管脚定义
sbitTN_ACK=P1A3; //TN9触发
sbitTN_Clk=P1A4; //TN9 时钟线
sbitTN_Data=P1A5; //TN9数据线
ucharReadData[5];
//
// C 格式: voidTN_IRACK_EN(void);
//实现功能:红外模块启动函数
//入口参数:无
//出口参数:无
//===================================================================void TN」RACK_EN(void) {
} TN_ACK=0;
//
//C 格式: voidTN」RACK_UN(void);
//实现功能:红外模块关闭函数
//入口参数:无
//出口参数:无
//===================================================================void TN」RACK_UN(void){
TN_ACK=1;
}
//
//C格式: intTN_ReadData(void);
//实现功能:读测得数据
//===================================================================
void TN_ReadData(uchar Flag)
{ _
第26页共35页
uchari,j,k;
bitBitState=O;
for(k=0;k<7;k++)
{
for(j=0;j<5;j++)
{
for(i=0;i<8;i++)
{
while(TN_Clk);
BitState=TN_Data;
ReadData[j]=ReadData[j]<<1;
ReadData[j]=ReadData[j]|BitState; while(!TN_Clk);
}
}
if(ReadData[0]==Flag)
k=8;
}
TN_IRACK_UN();
}
//===================================================================
===//
〃Program:TN红外传感器目标数据测量子程序
//In Put:NULL
//======================================================================// void TN_GetData(uchar X)
〃OutPut:unsig ned in t returnData
{_
TN_ReadData(X);
Temp=(ReadData[1]?8)|ReadData[2];
Temp=(float)Temp/16.00-273.15;
}
//管脚定义
sbitrs=P2A7;sbit lcde n=P2A6;
//屏幕初始化
//待机时间显示
ucharcode table0[]="Welcome to the " uchar code table1[]="TN9 System"; uchar code
table2[]="TargetT: 00.0 C"; uchar code table3[]="Milieu T: 00.0 C";
//等待函数
voiddelay_LCD(uint z)
{
uintx,y;
for(x=z;x>0;x--)for(y=110;y>0;y--);
}
第27页共35页
//LCD写命令
voidwrite_com(uchar com)
{
rs=0;
lcden=0;
P0=com;delay_LCD(1);
lcden=1;delay_LCD(1);
lcden=0;
}
//LCD写数据
voidwrite_date(uchar date)
{
rs=1;
lcden=0;
P0=date;delay_LCD(1);
lcden=1;
delay_LCD(1);lcden=0;
}
//初始化
voidInit_LCD()
uchar num; lcden=0; {
write_com(0x38); // 屏幕初始化
write_com(0x0c);
write_com(0x06);
write_com(0x01);
write_com(0x80);
//时间
write_com(0x01);
write_com(0x80);
for(num=0;num<16;num++)
{
write_date(table0[num]);
}write_com(0x80+0x40);for(num=0;num<16;num++) {
write_date(table1[num]);
}
}
//初始化
voidInit_T()
{
ucharnum;
lcden=0;
// 屏幕初始化 | 第 28 页 共 35 页 |
|
|
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_com(0x01);
write_com(0x80);
//时间
write_com(0x01);
write_com(0x80);
for(num=0;num<16;num++)
{
write_date(table2[num]);
}write_com(0x80+0x40);for(num=0;num<16;num++) {
write_date(table3[num]);
}
}
第 29 页共 35 页
//显示函数目标温度 环境温度 voidDisplay(float MT,float HT) {
uinttemp=0;
//温度错误Errorif(MT>220.0||MT<-33.0)
{
write_com(0x80+9);write_date(' '); write_date('E'); write_date('r'); write_date('r'); write_date('o');write_date('r'); write_date(' ');
}
//正温度
elseif(MT>=0)
{
if(MT<10)
{temp=MT*10;write_com(0x80+9); write_date(' '); write_date(' '); write_date('0'+temp/10);write_date('.'); write_date('0'+temp%10); write_date(0xdf);write_date('C');
}
elseif(MT<100)
{temp=MT*10;write_com(0x80+9); write_date(' '); write_date('0'+temp/100); write_date('0'+temp/10%10);write_date('.'); write_date('0'+temp%10); write_date(0xdf);write_date('C');
elseif(MT<=200)
{temp=MT*10;write_com(0x80+9); write_date('0'+temp/1000);
write_date('0'+temp/100%10);write_date('0'+temp/10%10); write_date('.');
} write_date('0'+temp%10); write_date(0xdf); write_date('C');
//负温度elseif(MT<0)
{ }
if(MT>-10)
{temp=-10*MT;write_com(0x80+9); write_date(' '); write_date('-'); write_date('0'+temp/10);write_date('.'); write_date('0'+temp%10); write_date(0xdf);write_date('C');
}
elseif(MT>-100)
{temp=-10*MT;write_com(0x80+9); write_date('-'); write_date('0'+temp/100); write_date('0'+temp/10%10);write_date('.'); write_date('0'+temp%10); write_date(0xdf);write_date('C');
}
}
//温度错误Errorif(HT>50.0||HT<-10.0)
{
write_com(0x80+0x40+9);write_date(' ');
write_date('E');write_date('r'); write_date('r'); write_date('o'); write_date('r'); write_date('');
}
//正温度
elseif(HT>=0)
{
if(HT<10) 第 30 页 共 35 页 |
|
{temp=10*HT;write_com(0x80+0x40+9); write_date(' '); write_date(' '); write_date('0'+temp/10);write_date('.'); write_date('0'+temp%10); write_date(0xdf);write_date('C');
}
elseif(HT<100)
{temp=10*HT;write_com(0x80+0x40+9); write_date(' ');
write_date('0'+temp/100);write_date('0'+temp/10%10); write_date('.'); write_date('0'+temp%10);write_date(0xdf); write_date('C');
}
}
//负温度elseif(HT<0)
{
if(HT>-10)
{temp=-10*HT;write_com(0x80+0x40+9);
write_date(''); write_date('-'); write_date('0'+temp/10); write_date('.'); write_date('0'+temp%10);write_date(0xdf); write_date('C');
}
elseif(HT>-100)
{temp=-10*HT;write_com(0x80+0x40+9); write_date('-');
write_date('0'+temp/100);write_date('0'+temp/10%10); write_date('.'); write_date('0'+temp%10);write_date(0xdf); write_date('C');
}
}
} | |
第 31 页共 35 页