-
毕业论文
(
设计
)
题
目
基于单片机的体温测量系统设计
毕业论文(设计)原创性声明
本人所呈交的毕业论文(设计)是我在导师的指导下进行的研究工
作及取得的研究成果。据我所知,除 文中已经注明引用的内容外,本论
文
(设计)
不包含其他个人已经发表或撰写过的研究 成果。
对本论文
(设
计)的研究做出重要贡献的个人和集体,均已在文中作了明确说明 并表
示谢意。
作者签名:
日期:
毕业论文(设计)授权使用说明
本论文
(设计)
作者完全了解
**
学院有关保留、
使用毕业论文
( 设计)
的规定,学校有权保留论文(设计)并向相关部门送交论文(设计)的
电子版和纸质版。 有权将论文(设计)用于非赢利目的的少量复制并允
许论文(设计)进入学校图书馆被查阅。学校可以公 布论文(设计)的
全部或部分内容。保密的论文(设计)在解密后适用本规定。
作者签名:
指导教师签名:
日期:
日期:
2
注
意
事
项
1.
设计(论文)的内容包括:
1
)封面(按教务处制定的标准封面格式制作)
2
)原创性声明
3
)中文摘要(
300
字左右)
、关键词
4
)外文摘要、关键词
5
)目次页(附件不统一编入)
6
)论文主体部分:引言(或绪论)
、正文、结论
7
)参考文献
8
)致谢
9
)附录(对论文支持必要时)
2.
论文字数要求:理工类设计( 论文)正文字数不少于
1
万字(不包括图纸、程序清单等)
,文科
类论文正文 字数不少于
1.2
万字。
3.
附件包括:任务书、开题报告、外文译文、译文原文(复印件)
。
4.
文字、图表要求:
1
)文字通顺,语言流畅,书写字迹工整, 打印字体及大小符合要求,无错别字,不准请他
人代写
2
)工程设计类题目 的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国
家技术标准规范。图表整洁,布局 合理,文字注释必须使用工程字书写,不准用徒手画
3
)毕业论文须用
A4
单面打印,论文
50
页以上的双面打印
4
)图表应绘制于无格子的页面上
5
)软件工程类课题应有程序清单,并提供电子文档
5.
装订顺序
1
)设计(论文)
2
)附件:按照任务书、开题报告、外文译文、译文原文(复印件)次序装订
3
)其它
3
1
、引言
................................. .......................................
5
1.1
课题研究的目的与意义
........................ ............................. 5
1.2
国内外发展现状
.............................. ............................. 6
1.3
本文的设计工作
.............................. ............................. 6
2
、系统总体设计
......................... ......................................... 7
2.1
设计任务
......................... ........................................ 7
2.2
系统设计
................................. ................................ 7
3
、系统硬件设计
......................... ......................................... 8
3.1
接口电路设计
....................... ...................................... 8
3.2
传感器接口电路设计
............................ ........................... 9
3.2.1
红外温度传感器的原理
............................................. 9
3.2.2
ZTP135S-R
的工作原理和性能
...................................... 9
3.3
电压信号放大电路设计
........................... ......................... 11
3.4
显示模块电路设计
............................. ........................... 12
3.5 A/D
转换模块电路设计
.............................. ...................... 13
3.6
实时时钟模块电路设计
........................... ........................ 14
3.7
正负电压转换电路设计
........................... ......................... 15
4
、系统软件设计
.................................................. .............
16
4.1
整体流程框图
.. .................................................. ........ 16
4.2
各模块程序设计
.......... ................................................ 16
4.2.1 A/D
转换模块程序设计
.............................................. 16
4.2.2
数据处理模块程序设计
.............................................. 17
4.2.3
实时时钟模块程序设计
.............................................. 19
4.2.4
显示部分模块程序设计
.............................................. 20
4.2.5
中断模块程序设计
.................................................. 21
5
、总结
.......................... ............................................... 22
致谢
................................... ......................................... 23
参考文献
................................. ....................................... 24
Abstract
.
........................ ............................................... 25
附录一、原理图
.............................. .................................... 26
附录二、程序设计
............................. ................................... 27
4
基于单片机的体温测量系统设计
洪亮
南京信息工程大学电子信息工程系,南京
210044
摘要:
本文是以
AT89S52
单片机为核心,
根据红外 线测温仪的原理,
设计了一种非接触式人体体温测试仪。
该系统包括硬件设计和软件设计两部分 。硬件方面首先进行了系统的总体电路设计,然后分别从红外线传感器、
电压信号放大、
A/D
转换、实时时钟、正负电压转换、显示部分等功能模块进行了电路设计。软件方面首先进行
了系 统的总体程序设计,然后分别从
A/D
转换、数据处理、实时时钟、中断部分、显示部分等模块 进行了程序设
计。本系统采用模块化设计,系统由各个应用模块组成,所以整个程序的编制和维护都比较 方便,结构清晰,提
高了可靠性和修改性,并给出了针对各个应用模块的设计思路和设计框架,从而实现 非接触式人体体温的数字显
示。
关键词
:
单片机;
红外热释传感器;
体温;
液晶显示
1
、引言
1.1
课题研究的目的与意义
高等动物都有一 定的体温,一定的体温是机体不断的新陈代谢的结果,同时体温又是机体
功能活动正常进行的重要条件。 人能够在环境温度不同的条件下,通过对体内产热和散热过程的
调节来保持体内温度的相对稳定,并提高 对环境温度变化的适应能力。在正常情况下,人的温度
保持在
37
℃上下(大致介于< br>36.2
℃—
37.3
℃)
。不受外界环境温度的变化而变化。但是当 人体内
的某些机能发生变化或某些部位发生病变时,恒定的体温将会发生变化;在临床医学中,体温是< br>一个重要的生理参数,病人的温度为医生提供了生理状况的重要信息。还可以对某些重大疾病或
隐 藏于身体内部的健康问题起着积极的预防和警示作用。
在
“非 典”
期间,
人体体温便是检测并隔离患者状况的一个重要参数,
从而达到了控制
“非
典”大规模扩散的作用。在公共场所进行体温监测时主要考虑以下三个要求:非接触性、测量的< br>快速性和准确性。采用红外非接触测温方法可以满足这些要求。因此对非接触式人体温度测量是
5
非常有意义的,也是应付突发要求的必要工作。
1.2
国内外发展现状
由于近些年
“非典”
和猪流感的袭击,
在 我国迅速诞生了一支专门抗击非典的医疗仪器队伍,
特别是在红外体温检测仪的研发方面取得了突出的成 就。
国家相关部门也在重点强调非接触式体
温计的研发。
随着现代科技的发 展
,
新材料、新工艺的运用
,
各式各样的体温计陆续出现
,
探测方式不断改
进。国内外体温计的发展大致分为三个阶段。第一阶段是常见的玻璃水银体温计;第二阶 段是电
子体温计;如今应用最为广泛的是非接触式红外体温计。
水银体温计虽然价格 便宜但是有诸多弊端:首先,水银体温计遇热或安置不当,体温计容易
破裂。其次,人体接触水银后会中 毒,中毒症状是恶心、头痛、腹泻、脱发等,严重者会造成血
液凝固。因为水银有剧毒,一旦它污染了水 源或食物,可以对人的肾脏、肺等造成极大的伤害,
水银也能加速人神经系统退变。最后,采用水银体温 计测温需要相当长的时间
(5min
~
10min)
,
使用不便。< br>
电子体温计是采用热敏电阻测量温度的,电子体温计能快速准确地测量人体温度,与传统的水银玻璃体温计相比,具有读数方便、测量精度高、能记忆并有蜂鸣提示的优点,尤其是电子体
温计 不含水银,对人体及周围环境无害,特别适合于家庭、医院等场合使用。但采用电子体温计
测温也需要较 长的时间,同样使用不便。
非接触式红外体温计是根据黑体辐射原理通过测量人体辐射的红外 线而测量温度的。
它用的
红外传感器只是吸收人体辐射的红外线而不向人体发射任何射线,它采用的是被动式且非接触式
的测量方式,因此红外体温计不会对人体产生辐射伤害且价格低,体积 小,实现了体温的快速准
确测量,具有稳定性好,精度高,测量安全,使用方便等特点。目前市场上虽然 已经有这样的产
品出现,但由于它们的价格较高,功能较少,精度不高等缺点
[3]
。 。
1.3
本文的设计工作
非接触式人体体温测试仪的设计技术 目前已经达到成熟,
目前市场上已经有很多这样的产品
出现,但由于它们的价格较高,功能较少 ,精度不高等缺点,使得它们即不能占据低端市场,也
不能占据高端市场。并且从非接触式人体体温测试 仪的成本出发,还有很大的利润空间,有继续
研究的价值。
本文是以单片机为核心, 先通过传感器将光信号转换为电压信号,再通过电压信号放大电路
将电压信号放大成
A/D转换模块能够识别的模拟信号,再通过
A/D
转换,将模拟信号转换成单片
机能够 识别的数字信号,再将数字信号转换成系统所要显示的温度值,与读入的温度值一起通过
液晶显示器进行 显示。
6
2
、系统总体设计
2.1
设计任务
我们根据红外线测温仪的原理,通过关键器件 的选择以及温度补偿的自动调节来提高红外
线测温仪的精确度,设计了一种红外线测温电路,用于对人体 温度的快速测量。我们要设计的红
外体温计其测量范围是
35℃~42℃ ,且精度为±0.1℃ 。在该设计中,以
AT89S52
单片机为主
体,配有高精度 放大器、
8
位
ADC
和实时时钟,测量值和时间值用液晶屏进行显示。
2.2
系统设计
在硬件方面,一个系统的硬件设计中应选择合适型 号的单片机后,进行系统所需的扩展和配
置。按照系统功能要求进行扩展和配置外围设备。要设计合适的 接口电路,系统的扩展和配置应
遵循以下原则:
⑴
尽可能选择常 用单片机。为硬件系统的标准化、模块化打下良好的基础。本次设计选取的是
AT89S52
单 片机。
⑵
系统扩展与外围设备的配置水平应充分满足应用系统的功能要求 ,并留有适当余地,以便二
次开发。
⑶
系统中的相关器件要尽可能做到性能匹配。
⑷
可靠性及干扰设计是硬件设计必不可少的一部分。
本次设计首先选择设计所需
AT89S52
芯片,根据实际要求利用
Protel
软件绘制课题的原理
图和
PCB
图,外围设备电路简单,干扰较小。
在软件方面,单片机应用系 统中软件的设计在很大程度上决定了系统的功能。软件的资源细
分为系统理解部分、软件机构设计部分和 程序设计部分。
⑴
系统理解是指在开始设计软件前,熟悉硬件留给软件的 接口地址,
I/O
口方式,确定存储空
间的分配,应用系统面板控制开关、按键、显示 的设置等。
⑵
软件结构设计要结合单片机所完成的功能确定相应的模块程 序,比如一般子程序、中断功能
子程序的确定。确定模块程序运行的先后顺序,绘制程序整体流程图。< br>
⑶
程序设计和其他软件程序设计一样,首先要建立数学模型,选定数学算法 ,绘制具体程序流
程图,做好程序接口说明。然后选取
C
语言(汇编语言或
C
语言)
。
本次课题的软件设计采用的是模块化设计,使用
C
语言编写程序,结构清晰简捷。
此系统是通过红外热释传感器
ZTP135S-R
采集人体体温并以电压信号的形式输出并进行放大,
然后将模拟电压信号通过模数转换器转换成 与之对应的数字量,
经单片机对数据的非线性处理及
分析,并显示在
LCD
上 ,即完成一次体温的测量,若需储存测量值,可储存一段数据到内部数据
存储器中,整体框图如图
2.1
所示:
7
DS12C887
产< br>生时间信号
ZTP135
S
-
R
测
温
电压放 大
由
ADC0809
进
行
A/D
转换
AT89S5 2
进行
数据转换
用
LCD
显示时
间和温度值
图
2.1
整体框图
3
、系统硬件设计
本系统硬件由七个应用模块组成,下面便是我对各个模块的电路设计:
3.1
接口电路设计
AT89S52
是一种低功耗、高 性能
CMOS8
位微控制器,具有
8K
的系统可编程
Flash
存储
器。使用
Atmel
公司高密度非易失性存储器技术制造,与工业
80C51
产品指令和引脚完全
兼容。片上
Flash
允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有 灵
巧的
8
位
CPU
和在系统可编程
Flash
,使得
AT89S52
为众多嵌入式控制应用系统提供高灵
活、超有效的解决方案。< br>AT89S52
具有以下标准功能:
8k
字节
Flash
,< br>256
字节
RAM
,
32
位
I/O
口线,看门狗定时器,
2
个数据指针,三个
16
位定时器
/
计数器,一个
6
向量
2
级
中断结构,全双工串行口,片内晶振及时钟电路。另外,
AT89 S52
可降至
0Hz
静态逻辑操
作,
支持
2
种 软件可选择节电模式。
空闲模式下,
CPU
停止工作,
允许
RAM< br>、
定时器
/
计数器、
串口、中断继续工作。掉电保护方式下,
RAM
内容被保存,振荡器被冻结,单片机一切工作
停止,直到下一个中断或硬件复位为止。
本次
DS12C887
通过三总线与
MC S-51
相连。它们通过外部总线与单片机通信。
DS12C887
通过外部总线从单 片机中读取时间初值,
启动后,
再实时的向单片机传输时间数据,
它的片
选脚
CS
于单片机的
P2^7
相连,所以他的首地址为:
0X7F00< br>。
由于需要通过单片机给
DS12C887
设置初 始值,
所以用了
INT0
中断来产生中断,
在中断
中改变时间值,< br>对时间值进行修改用到的引脚有
P2^2
、
P2^3
和
P2^ 4
,
它们的功能分别是
P2^2
和
P2^3
对时间进行加减 ,
P2^4
为位选,
选中需要修改的时间位,
具体设计在软件部分介绍。下面说明单片机其他引脚的使用状况。
P0
作为地址和数据复用口,它分别与
DS 12C887
的
AD0-AD7
、
TC1602A
的
DB0 -DB7
和
DAC0809
的
D0-D7
相连,
它从
ADC0809
中读入数据,
向
TC1602A
传输数据,
对DS12C887
是即读入也输出数据。
P1
端口的
P1^4
与
ADC0809
的
EOC
相连、
P1^0
、
[4]
8
P1^2
和
P1^3
分别与
TC 1602A
的
RS
、
RW
和
E
相连。
P3
口的
P3^6
(
WR)
与
DS18C887
的R/
W
和
74LS00
的一个输入脚相连,具体的功能说明在下文的各芯 片接口设计中会一一介绍。
3.2
传感器接口电路设计
3.2.1
红外温度传感器的原理
自然界一切温度高于绝对零度
(-273
.
15℃)的物体,
由于分子的热运动都在不停地向周
围空间辐射包括红外波段在内的电 磁波,
其辐射能量密度与物体本身的温度关系符合普朗克
(Plank)
定律。
红外测温的原理是一样的
,
都是根据普朗克原理。
一般理解红外测量的是物体
的温度,
其实测的是目标物与传感器或者说是物体与环境温度之间的差值。
物体辐射能量的< br>大小直接与该物体的温度有关,具体地说
,
是与该物体热力学温度的
4
次方成正比.用公式
可表达为:
E=δε(T
4
-T
0
4
)
(
1
)
式中
,
E
是辐射出射度,单位是
W
/
m3
;
δ
是斯蒂芬一波尔兹曼常数
,5
.
67x10-8W
/(m2·K4 );
ε
是物体的辐射率;
T
是物体的温度
(K)
;
To
是物体周围的环境温度
(K)
;
人体主要辐射波长为
9 μm~10 μm
的红外线,通过对人体自身辐射红外能量的 测量便
能准确地测定人体表面温度。由于该波长范围内的光线不被空气所吸收
,
因而也 可利用人体
辐射的红外能量精确地测量人体表面温度。
红外温度传感器利用热电偶原 理
,
测量目标物与传感器或者物体与环境温度之间的差
值。热电偶的原理是二种不同的 金属
A
和
B
构成一个闭合回路
,
当二个接触端温度不同时< br>(T>To),
回路中产生热电势
Eab,
其中
T
称为热端、 工作端或测量端
,To
称为冷端、自由端或
参比端。
A
和
B
称为热电极。热电势的大小由接触电势
(
也叫伯尔贴电势
)
和温差电 势
(
也叫
汤姆逊电势
)
决定
。
3.2.2
ZTP135S-R
的工作原理和性能
G E
公司生产的
ZTP135S
—
R
型红外温度传感器
是一种 专门用于非接触式测量体温的器件,其主
要参数见表
3.1
所示:
其外形和引脚排列如图
3.1
和
3.2
所示:
[5]
图
3.1 ZTP135S-R
的外形
图
3.2 ZTP135S-R
的引脚排列
其引脚功能如下:
·1脚接
+5V
;
·2脚为电压输出端;
·3脚接地;
被测物体的辐射能经过窗口和光阑聚焦在接收元件
(
热电堆
)
的受热片上,
受热片上有
60
只串联的热电偶,
每只热电 偶的热端在受热片的中央部位围成一圈,
焊接在一起,
从引线
就可以得到所有电偶的热 电势之和。
这种结构设计具有较小的热惯性和较高的灵敏度,
传感
器采用负温度系数电 热调节器进行环境温度补偿
。
图
3.3
、
图
3.4
和图
3.5
分别给出了该传感器的灵敏度变化曲线、
内阻变化率曲线和传输
波形
[6]
图
3.3 ZTP135S-R
的灵敏度变化曲线
图
3.4 ZTP135S-R
的内阻变化率曲线
图
3.5 ZTP135S-R
的传输波形
3.3
电压信号放大电路设计
本设计所采用的放大器是低功耗精密运算放 大器
OP07
,它的特点是超低失调、低漂移、
高精度,电路正比特性好,零点失调电 压小。
OP07
可以通过在
1
、
8
管脚之间加上一个电位< br>器进行输入漂移调零,
这对于低输出的信号的放大效果非常好。
其低输入偏置电流为1.8nA
,
供电范围为
3V
到
22V
,
超低 失调的最大值为
150mV
。
它的性能正好解决了红外温度传感器对
运放的特 殊要求。由于热电堆的内阻较高
(
约
60K
)
,而输出电压又非常 小
(1mV
左右
)
,须使
用具有高输入阻抗
(
>< br>1012 )
的
CMOS
输入运算放大器。
因为测量的人体 温度在
35
~42℃范围内,传感器的输出电压范围为
0.7
~
1. 5mV
,采用
两极放大的形式,将电压放大
3000
倍,即放大后电压为2.1
~
4.5V
,以供单片机
A/D
转换,
单片机的
A/D
转换参考电压选择
5V
。其放大电路图如下图
3.6
所示。
图
3.6 OP07
两级放大电路图
电压跟随器的输出电压
U
0
与输入电 压
U
1
的关系为:
(
2
)
在上述运放电路图中,用到了三个
OP07
,其中第一级是电压跟随器,它的作用是稳定
电压,由于这次使用的温度传感器输入 的是弱电压信号,极易受到外部因素的干扰,且
ADC0809
进行模数转换需要一段时间,在 这段时间内需要提供稳定的电压信号,因此这第一
级是非常重要的。
反相比例运算电路的输出电压
U
0
?
(
1
?
与输入电压
U
1
的
关系为:
R
f
)
U
1
(3)
R
后面的两个
OP07
便是起到了放大作用,< br>它使用的是反相比例运算电路,
第一级放大了
30
倍,第二级放大了
1 00
倍。
3.4
显示模块电路设计
TC16 02AD
主要由
DDRAM
、
CGROM
、
CGRAM、
IR
、
DR
、
BF
、
AC
等大规模 集成电路组成,
DDRAM
为数据显示用的
RAM
,用以存放用
LC D
显示的数据,只要将保准的
ASCII
码放入
DDRAM
,内部控制线路就会自动将数据传送到显示器上,并显示出该
ASCII
码对应的字符。
CGROM
为字
符产生器
ROM
,它存储了
192
个5*7
的点阵字型,但只能读出不能写入。
CGRAM
为字型、字
符产生 器的
RAM
,可供使用者存储特殊造型的造型码,
CGRAM
最多可存
8
个造型,
IR
为指令
寄存器,负责存储单片机要写给
LCD的指令码,当
RS
及
R/
W
引脚信号为
0
,且
Enable
引脚
信号由
1
变为
0
时,
D 0-D7
引脚上的数据便会存入到
IR
寄存器中。
DR
为数字寄存器 ,它们
负责存储微机要写到
CGRAM
或
DDRAM
的数据;
或者存储单片机要从
CGRAM
或
DDRAM
读出的数
据。因此, 可将
DR
视为一个数据缓冲区,当
RS
及
R/
W
引 脚信号为
1
且
Enable
引脚信号由
1
变为
0< br>时,读取数据;当
RS
引脚信号为
1
,
R/
W
引脚信号为
0
,且
Enable
引脚信号由
1
变为
0
时,存入数据。
BF
为忙碌信号,当
BF
为
1
时,不接受微机送来的数据或指令;当
BF
为
0
时,接受外部数据或指令。所 以,在写数据或指令到
LCD
之前,必须查看
BF
是否为
0
。
AC
为地址计数器,负责计数写入
/
读出
CGRAM
或< br>DDRAM
的数据地址,
AC
依照单片机对
LCD
的设置值而 自动修改它本身的内容。
TC1602A
可分
2
行共显示
32
个字符,每行显示
16
个字
符
[2]
。
单片机与液晶的接口如图
3.7
所示。在设计液晶电路时,需注意以下几点:
(
1
)注意“判忙”信号(
BF)
。单片机向液晶模 块发送数据后,需等待并判断
BF
信号为
高,
所以,
BF
脚 为双向口,
设计时需注意。
在编写液晶控制程序时,
也可以不判断
BF
信号,
只需要延时一段时间就可以,这样可以避免双向口操作的麻烦。
(
2
)有些单片机的
I/0
口是
3.3V
,但很多液晶器件的是
5V,
因此单片机与液晶不能直
接相接而需转换电平。
——
——
——
图
3.7
单片机与液晶的接口
3.5 A/D
转换模块电路设计
< br>ADC0809
与
AT89S52
单片机的一种连接方法如图
3.8< br>所示。
AT89S52
与
ADC0809
接口时
必须注意处理 好以下问题:
·在
START
端送一个
100ns
宽的启动正脉冲;
·获取
EOC
端上的状态信息,因为它是
A/D
转 换的结束标志;
·ADDA、
ADDB
、
ADD C
分别接系统的低三位地址,只要把这三位地址写入
ADC0809
的
址锁存器,就实现了模拟通道的选择;
·START
和< br>ALE
互连可以使
ADC0809
在接收模拟量路数地址时启动工作;
·A/D
转换后得到的数据为数字量,这些数据传送到单片机中进行处理。
·给“三态输出锁存器”分配一个端口地址,
也就是给
OE
端送一个地址译码器的输出
信号。
本次设计因为只使用了一个模拟通道
IN0
,
所以 我为了使电路看起来简单易懂,
将
ADDA
、
ADDB
、
ADDC
都接地,这样
ADC0809
永远选通
0
通道了。
ADC0809
的时钟信号由单片机的
ALE
信号经过
74LS74
二分频得到,它的时钟信号为
1MZ,
又由于
ADC0809
与DS18C887
同时使用
单片机的
WR
脚。
为了防止在使用时 相互的干扰,
我将
WR
和
RD
都与单片机的
P1^1
通过或非
门后再与
ADC0809
相连。这样,当
P1^1
为高电 平时,无论
WR
和
RD
产生什么信号,
ADC0809
都不 启动。当
P1^1
为低电平时,当
WR
信号为低电平时,送到
A/D
转换器的
ALE
和
START
引脚为高电平,启动
A/D< br>转换,由于这次我使用的是查询方式为转换结束方式,所以当
EOC
为低电平时,转换结 束。输出数据使能
OE,
读取转换数据。
图
3.8 ADC0809
与
AT89S52
的链接
3.6
实时时钟模块电路设计
DS12C887
是
Dallas
公司开发的实时时钟芯片,
DS12C887
可以提供实时时钟
/
日历、
时
间报警、三个可屏蔽中断、一个可编辑方波输出、
113 B
电池供电的静态
RAM
。
DS12C887
内
部集成了一 个晶体和一个锂电池,采用
DIP
封装方式。
DS12C887
能够自动调整
31
天和
30
天的月份,
期间可以在
24
小时和< br>12
小时方式
(
AM/PM)
间切换。
在芯片内部有一个精确 的温
度补偿电路,
用于检测电源电压的状态。
当电源电压的变化超出允许范围时,内部电源切换
到备用电池供电
[2]
。
DS12C887
主要应用在嵌入式系统、仪表、安全系统、网络交换机、路由器等方面。
DS12C887
与
AT89S52
单片机的一种常用连接方法如图3.9
所示。
AT89S52
与
DS12C887
接
口 时必须注意处理好以下问题:
(
1
)时间值只需一开始设置,以后只需要读取就行了。
(
2
)数据传输都是用的
P0
端口,得控制好状态控制信号,防止出现错误。
图
3.9 DC12C887
与
AT89S52
的链接
3.7
正负电压转换电路设计
在运放环节,我们用到了
-5V
的电压,由 于这里只有
+5V
的电压,因此,我们需要电压转
换,将
+5V
转换 为
-5V
,这里用到了
ICL7660
。
产生
-5V
的电路图如下图
3.10
所示:
3.10
-5V
电源的发生电路
4
、系统软件设计
本系统软件设计包括整体流程框图和各模块程序设计两部分。各模块的设计如下:
4.1
整体流程框图
本设计采用单片机
AT89S52
编程实现。
程序由
C
语言编写。
本程序主要分为以下几部分:
A/D
采集程序,数据处理程序,
LCD
显示程序。其中主程序流程图如图
4.1< br>所示:
启动
对单片机及
其它芯片进
行初始化
温度信 号采
集
A/D
转换
AT89S52
进行
数据处理
产 生时间信
号
LCD
显示
图
4.1
主程序流程图
4.2
各模块程序设计
本节就各部分程序模块设计进行了阐述,
主要包括
A/D
转换模块、
数据处理模块、
显示
模块,
详细介绍了各部分模块 的流程并对其设计思想进行了叙述,
从而实现了人体体温的软
件设计。
4.2.1 A/D
转换模块程序设计
本次设计
A/D
采 集程序实现一路数据采集,
采用定时传送方式。
对于一种
A/D
转换器来说,转换时间是一项固定不变的技术指标。
ADC0809
的转换时间为
128u s
。本次设计是通过
EOC
与单片机的
INTO
相连,
当数 据转换完成时,
EOC
向单片机发送中断请求,
单片机响应中
断,
读 取转换数据。
ADC0809
的
D0
—
D7
与单片机的P0
口相连。
单片机的
ALE
信号经过
74LS74
二 分频后,作为
ADC0809
的时钟信号。用
P1^1
和
P1^2< br>来产生片选和使能信号。
首先,片选
ADC0809
,启动
ADC0809
开始转换,让程序处于循环中,当转换结束时,程
序从循环中跳出,将转换结果输入单片机,
其程序流程图如图
4.2
所示:
开始
选
A/D< br>通道
启动
A/D
转换
等待转换结
束
读
A/D
结果
显示读到的
结果
图
4.2 A/D
转换流程图
4.2.2
数据处理模块程序设计
传感器输出模拟电压信号经
OP07
放大后,转换成
0
~
5 V
的电压,而单片机只能处理数
字信息,
就需要进行模数转换,
转换完成后的 数字量如何处理成与之对应的温度值就变得尤
为重要,
它直接影响输出温度值的准确性,
是整个软件设计中最重要的部分。
其数据处理部
分的总流程图如图
4.3
所 示。
开始
将读入值转换
为长整型
数字量×
57+28900
计算出温度值
储存温度值
图
4.3
数据处理流程图
根据图
3.4< br>可知,当人体体温在
35℃~42℃范围内变化时,传感器的输出电压范围为
0.7~
1.5mV
,采用两极放大的形式,将电压放大
3000
倍,即放大后 电压为
2.1
~
4.5V
,从
而可知对应的数字量范围为
1 07
~
230
,
找出数字量与温度的关系即可准确的显示出温度值。
转换后与温度的对应关系如图
4.4
所示。
图
4.4
数字量与温度对应关系
根据图
4.2
所示,可以计算出数字量与温度的对应关系,即
温
(
4
)
经数据处理后,其温度值为放大
100 0
倍的温度值,而本设计只保留一位有效数字,故
前三位为有效温度值,而且要将双字节温度转 换为
BCD
码,才是实际要显示的温度值。
在计算机中,用
BCD
码来表示十进制数。通常,
BCD
码在计算机中又分为两种形式:一
种是1B
放一位
BCD
码,称为非压缩
BCD
码,适用于显示和输 出。一种是
1B
放
2
位
BCD
码,
称为压缩的BCD
码,
适用于运算及存储。
十进制数
B
与一个
8< br>位的二进制数的关系可以表示
为
度
×1000=
数
字
量
×57+28900
(
5
)
图
4-5
小数点四舍五入流程图
只要依十进制运 算法则,将
bi(i=7,6
,……,
1,0)
按权相加,就可以得到对应的 十
进制数
B
。
当人体体温在
35℃~42℃范围内变化时 ,传感器的输出电压范围为
0.7
~
1.5mV
,,
ADC0809
的输入电压为
2.1
~
4.5V
,从而可知单片机接受对应的数字量 范围为
107
~
230
。在
运用公式计算温度时,由于温度值是浮点 型,数字量是无符号整型,数字量
*57
则有可能大
于
65536
, 必须使用长整型,因此在计算前得先进行数据类型转换,先将数字量转换为长整
开 始
型,这样运算结果
W
为长整型,温度值则为
度值为浮点型。
初始化
忙检测
写指令
,又因为温度值是小数值,所以定义温
写数据
显示
将温度值得到后,
还要注意小数点后第二位数字的四舍五入的问题,
这样使温度 值更接
近于真实温度,更准确。
B
中的第四位为小数点后第二位,即要取舍的位,当其 值大于
5
时
进
1
,小于
5
时舍去。将转化后的3
位温度值分别送入
LCD
显示单元缓冲区,以备显示。其
流程图如图< br>4-5
所示:
获取温度值
取前四位
第四位大于
5< br>是
第三位加
1
否
将前三位以数
组储存
图
4.5
小数点四舍五入流程图
4.2.3
实时时钟模块程序设计
本次使用的是
DS12C887
产生 时间信号,
将它通过
P0
口传输到单片机上,
再将它显示到
LCD< br>上。通过片选选中
DS18C887
,由于是通过
P2^7
片选,而且 是与单片机通过外部总线通
信,
所以
DS18C887
的首地址是
0 x7f00
,
它的控制寄存器
A
和控制寄存器
B
的地址是< br>0x7f0a
和
0x7f0b
。
首先将初始数据写出
DS12C887
,读写时
DS12C887
相当于一个外部存储器,通过外部总< br>线选中相应的位。写入后,启动芯片,芯片正常运行,然后,每运行一次程序,单片机读入
一次时 间值,将读入的每位值存入数组,通过
LCD
显示。
其流程图如
4.6
所示:
开始
对< br>DS12C887
设置初
值,让芯片正常运
行
读取时间值
LC D
显示
图
4.6 DS12C887
的流程图
4.2.4
显示部分模块程序设计
本设计采用
LCD
进行 显示,
由于此系统显示温度和时间,
液晶共有两行,
第一行显示年月
日,第二 行显示日时间和温度。对液晶进行写数据的过程是,通过指令表对其进行初始化,
其指令通过
P 0
口存入液晶屏的
IR
寄存器,
初始化后,
首先写指令,
选 定液晶的显示位置
(
液
晶第一行的首地址是
80H
,第二行的首地址 是
C0H),
第一行选在从第二格开始显示,第二行
从第三格开始显示,在第二行的第
8AH-8CH
显示温度,选定显示地址后,写入显示数据,显
示数据。
其流程图如图
4.7
所示
开始
初始化
忙检测
写指令
写数据
显示
图
4.7 LCD
显示流程图
4.2.5
中断模块程序设计
为了能便于修改时间值,我采用了中断的方式 来修改时间,通过四个键来修改时间,上
面已经说过,在程序中它们的名字是
OK
、< br>INC
、
DEC
、
RESET
。
RESET
启动中断,
OK
选择修改
的位,
INC
是加键,
DEC是减键。
首先按下
RESET
启动中断,进入中断后,读入目前的时间 值,通过液晶显示,显示时,
被选中修改的位会自动闪烁,通过
INC
、
DE C
来修改时间。当按下
OK
键时,修改位向左移一
位,当闪烁位移到最左边时 ,
OK
再按一下,程序跳出中断,正常运行。
其流程图如图
4-8
所示:
中断流程图
初始化
读取时间值
LCD
显示
键盘扫描
是
m+=2
,
m!=10
否
OK
键按下
否
取键值
是
进行位选,按
一下,
m+2
,左
移一位
是
INC
键按下
时间值加
1
否
是
DEC
键按 下
时间值减
1
退出中断
图
4.8
中断流程图
5
、总结
本次实验, 测温精度是
0.1
℃,虽然精度并不算高,但也基本达到了设计的要求,本设
计采用额 头为测量部位,
由于探头对准内额头,
测量的影响因素较少,
整个系统的设计简洁,< br>准确,
快速,
方便。
设计的核心部分选用
AT89S52
芯片 和
ZTP135S-R
红外温度传感器。
另外,
软件程序的设计包括数据采集 程序,
A/D
转换程序,
显示程序等。
其突出优点是:
控制简单,< br>显示直观,
运用
LCD
显示,
合理的利用了传感器的特性进行了一次实 践,
但由于试验条件和
个人能力的限制,本系统还有待进一步的完善,如:测量值的存储,根据 时间、年龄、性别
等不同来设定发热温度进行语音提醒;
当在一定时间内无测量则自动关闭等功 能,
使该系统
功能更加强大。
当然误差的存在有时是不可避免的,而有时却 是可以通过一些方法来减少误差的存在,
要使测量准确可靠,
必须减少误差。
此设计采 取了小数点后第二位四舍五入的方法来减小一
定的误差,但并没有完全消除,此系统误差主要来源于以下 几个方面:
⑴由于实验理论在计算上存在着近似性,方法上难以完善,因此理论温度值并不是真
实
值,而只是非常接近于真实温度的值,故存在一定的误差。
⑵实验仪器灵敏度和分辨能力有局限性,而且芯片本身存在非线性化误差。
⑶驱动电源为
5V
,基准电源不稳,会造成输入输出的误差。
⑷周围环境不稳定,每次测量时限不统一都会造成测量误差。
致谢
作为一个本 科生的毕业设计,
由于经验的匮乏,
难免有许多考虑不周全的地方,
如果没
有 导师的督促指导,
以及一起学习的同学们的支持,
想要完成这个设计是难以想象的。
这 次
毕业论文能够得以顺利完成,
是所有指导过我的老师,
帮助过我的同学和一直关心支 持着我
的家人对我的教诲、帮助和鼓励的结果。我要在这里对他们表示深深的谢意!
感谢我的指导老师——行鸿彦教授,
感谢老师对本论文从选题、
构思、
资料收集到最 后
定稿的各个环节给予细心的指引和教导
,
使我对本次设计有了深刻的认识
,
并最终得以完成
毕业论文
,
同时,在此次毕业设计过程中我也学到了许多关于 单片机和传感器方面的知识,
实验技能有了很大的提高。
感谢我身边所有的朋友与同 学们,
谢谢你们四年来的关照与宽容,与你们一起走过的缤
纷时代,将会是我一生最珍贵的回忆 。这里,对关心、帮助过我的老师和同学们表示衷心地
感谢!
最后,
我要向 在百忙之中抽时间对本文进行审阅、
评议和参加本人论文答辩的各位老师
表示感谢!
参考文献
[1]
崔志尚
.
温度计量与测试< br>[M].
北京:中国计量出版社,
1998
:
22-23.
[2]
邹应全
.51
系列单片机原理与实验教程:西安电子科技大学出版社 ,
2007:12
[3]
唐文彦
.
传感器
[M].北京:机械工业出版社,
2006
:
01-06.
[4]
李朝春
. PC
机及单片机数据通讯技术
[M].
北京:北京航空航天大学出版社
, 2000
:
89-90.
[5]
杜维,
张宏建,
乐嘉华
.
过程检测技术及仪表
[M].
北京:
化学工业出版社,
2 008
:
31-33.
[6]
丁镇生
.
传感及其遥控遥 测技术应用
.
北京:电子工业出版社,
2002
:
56-61.
[7]
张
毅
刚
.
新
编
MCS -51
单
片
机
应
用
设
计
[M].
哈
尔
滨
:
哈
尔
滨
工
业
大
学
出
版
社
,2003:123-128.
[8]
张培 仁
.
基于
C
语言编程
MCS-51
单片机原理与应用
[M].
北京:
清华大学出版社,
2002
:
106-201.
[9]
马忠梅
.
单片机的
C
语言应用程序设计
[M].
北京:北京航空航天大学出版社,
1999
:
101-105.
[10]
沈国彦,宋平
.
红外温度计测量体温方法探讨
[J].
仪表技术,
2003,10(3):21-23.
[11]lInstrumentation,Aplic-ationandDesign[M].
Boston
,
HoughtonMifflin Company
,
1998
[12]icalInstruments,Theory
andDesing[M]
.NewYork
:
AcademicPressInc
.
1996
.
[13]GeneralElectricCompnay
.
ZTP1 35S-RDataSheet R[]
[14]McClellan J H
,
Parks T W
.
A Unified Approach to the Design of Optimum FIR
Linear-Phase Digital Filters
.
IEEE Trans[S]
.
Circuit Theory
,
1993
.
[15]Steigilitz
K
.
Computer-Aided
Design
of
Recursive
Digital
Filters
.
IEEE
Trans[J]
.
Audio Electroacoust
,
June 1990
.
temperature
measurement
system
based
on
Microprocessor
hongliang
Department
of
Electronic
&
Technology
,Nanjing
University
of
Information
Science
&
Technology,
Nanjing
21004
Abstract
The object of this paper is to design a non-contact thermometer which utilizes the SCM A
T89S52 as the core
and follows the theory of infrared temperature measurement. Basically, hardware and software compose the whole
system.
For
its
hardware
part,
the
paper
initially
proposes
the
overall
circuit
design,
then
infrared
sensors,
the
amplification
of
voltage
signal,
AD
conversion,
real-time
clock,
the
voltage
conversion
between
positive
and
negative and its displaying module are all designed respectively. For its software part, the general programming is
designed. After that, the program of the module of AD conversion, data processing, real- time clock, interrupt and
displaying are all designed correspondingly. owing to its modular designing, the system turns out to be convenient
in programming and maintenance. It also has the advantages of clear structure, reliability and modifiability. The
ideas
and
the
framework
of
this
design
are
all
illustrated.
Finally
we
realize
the
function
of
non- contact
thermometer.
Keywords
:
SCM, Pyroelectric infrared sensor, temperature, LCD
附录一、原理图
附录二、程序设计
# include
# include
#define uchar unsigned char
sbit BUSY=P1^4; //
转换结束引脚—
EOC
sbit START=P1^1; //start
为控制信号
sbit RESET=P3^2; //
键盘
sbit OK=P2^2; //
键盘
sbit INC=P2^3; //
键盘
sbit DEC=P2^4; //
键盘
uchar xdata *addr=0x7f00; //P2^7
片选,低电平有效
sbit FLAG=P0^7; //
忙信号
sbit E=P1^2; //
片选
sbit RW=P1^3; //
读写控制
sbit RS=P1^0; //
指令和数据寄存器
#define time_a XBYTE[0x7f0a] //
控制寄存器
A
#define time_b XBYTE[0x7f0b] //
控制寄存器
B
uchar year,month,day,hour,minute,second;
uchar time[12]={0};
//
声明函数
void get_time(void);
void intial(void);
intial_lcd();
void busy();
void w_com(uchar com);
void w_dat(uchar dat);
void display();
void delay(unsigned long n);
void displayD(uchar j);
void convert1(unsigned long n);
void convert2(void);
void INT0_ISR();
//
延时函数
void delay(unsigned long n)
{
for(;n>0;n--);
}
unsigned char LCD_bit[3]={0,0,0};
//
分解温度值函数
void convert1( unsigned long n)
{
unsigned int i=0,m=0,s=0,j,k;
i=n/100;
s=57*i+289;
m=(n%100)*57;
j=m/100;
s=s+j;
k=(m%100)/10;
if(k>=5)
{
s=s+1;
}
LCD_bit[0]=s%10+0x30;
LCD_bit[2]=s/100+0x30;
-
-
-
-
-
-
-
-
本文更新与2021-03-02 22:47,由作者提供,不代表本网站立场,转载请注明出处:http://www.xapfxb.com/yuer/466043.html