基于51单片机的温度计系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于单片机的数字温度计系统设计
摘要:如今单片机由于其体积小,性能完善,所以广泛应用于各个行业中。
在空调上,温度计便采用了单片机的应用技术,采用一系列的外部设备将外界环境的温度状态输入单片机,通过程序加以运算控制,再输出显示等。
我们试着用所学的知识,设计并模拟电子温度计的工作方式,通过实践来掌握应用设备的工作原理。
关键词:单片机温度计驱动芯片设计流程
1 设计背景
在经济与科技共同发展的今天,为了满足人们的需要,空调已经是人们居家旅游必不可少的元素之一。
而空调中,电子温度计便是一个十分重要的部分。
与此同时,单片机由于其体积小、功能强大的因素也大量的融入了人们的生活。
本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用。
它具有结构简单,不需外接元件,采用一根I/ O 数据线既可供电又可传输数据、并可由用户设置温度报警界限等特点,可广泛用于食品库、冷库、粮库等需要控制温度的地方。
该设计控制器使用单片机AT 89S51,测温传感器使用AD590,,实现温度显示,
2 设计任务及思路
数字温度计主要硬件非常简单,仅需要温度传感设备、模数转换设备、数码显示设备、单片机处理设备。
2.1 温度传感设备
本系统的温度传感设备是AD590。
AD590是美国模拟器件公司生产的单片集成两端感温电流源,它会将温度转换为电流,是一种已经集成化的温度传感器。
它的特性足以保证本系统顺利执行。
首先,流过器件的电流等于器件所处环境的热力学温度(开尔文)度数。
其次,AD590的测温范围非常广泛,为-55摄氏度到+150摄氏度。
再次,AD590的
电源电压范围为4V到30V,可以承受44V正向电压和20V反向电压,因而器件反接也不会被损坏。
最后,AD590的精度非常高,它共有I、J、K、L、M五档,期中M档精度最高。
[1]
2.2 模数转换设备
在本次系统设计中,模数转换设备使用的是ADC0809。
它是一种价格适中的AMOS型单片逐次比较式A/D转换器,是单片机应用系统中使用最广泛的一种A/D 转换器
它有如下主要特性:8路模拟量分时输入;8位数字量输出,即分辨率为8位;输入输出与TTL兼容;转换时间128微妙;单个+5V电源供电;单极性模拟输入,电压范围为0到+5V;工作温度范围为-40到+85摄氏度;具有转换起停控制端。
[2]
2.2 数码显示设备
本次设计使用的数码显示设备为LED数码管。
它将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。
这样一来,就没有必要每一位数码管配一个锁存器,从而大大地简化了硬件电路。
[3]
3 电路各部分原理图
3.1 温度传感电路
3.2 模数转换电路
3.3 数码显示电路
4 系统各部分流程图
4.1 温度计主程序流程图
4.2 外部服务中断子程序流程图
4.3 数码显示流程图
5 系统评价及改进
5.1 系统优点
本系统简单可行,所用原件均为市场主流原件,造价低廉并能直观显示温度。
5.1 系统缺点
本系统为电子温度计,对环境温度的测量并不是十分准确,有一定的误差与延时。
5.3 系统改进
本系统未涉及温度控制系统,不能及时控制升温、降温设备调整环境温度。
有待于进一步改进。
6 学习心得
本次系统设计介绍了温度计的测量和控制之间的关系:检测是控制的基础和前提,而检测的精度必须高于控制的精确度,否则无从实现控制的精度要求。
通过这次实验,我更加深刻的了解了AT89S51单片机的内部结构,和AD590温度传感器的工作原理,熟悉了一些常用
的指令使用,增强了处理混乱逻辑关系的能力。
参考文献
[1]楼然苗、李光飞编著. 《51系列单片机设计实例》北京航空航天大学出版社 2004年
10月
[2]何立民、张俊谟编著. 《单片机中级教程原理与应用》北京航空航天大学出版社 1999
年12月
[3]冯文旭、刘传玺编著.《单片机应用技术》中国矿业大学出版社 2003年5月
附录:源程序
ADDRESS EQU OFFFH ;ADC0809选通地址,P2.7为选通位,P2.6、P2.5、
P2.4为选择位
T_DF EQU 33H ;温度的小数部分
T_INTEGER EQU 32H ;温度的整数部分
ORG 0000H
JUMP MAIN
ORG 0003H
LJMP INT0 ;外部中断0入口
ORG 0030H
MAIN: MOV SP,#60H ;设置堆栈指针
MOV IE,#81H
MOV TCON,#01H ;脉冲触发
LOOP: MOV DPTR,#ADDRESS ;设置启动ADC0809地址
MOVX @DPTR,A ;启动ADC0809,A可以为任意值
LCAALL DISPLAY
AJMP LOOP ;循环启动
;----------------------------------------中断服务子程序-----------------------------------------
INTO: MOV DPTR,#ADDRESS ;设置启动ADC0809地址
MOVX A,@DPTR ;读取转换值
MOV B,#5
DIV AB
MOV T_INTEGER,A ;整数部分在T_INTEGER
MOV T_DF,B
RETI
;----------------------------------------显示温度子程序-----------------------------------------
DISPLAY:MOV R1,#100
DISP1: MOV A,T_INTEGER ;显示整数部分
MOV R3,#0FEH
DISP2: MOV B,#10
DIV AB
MOV R2,A ;高位送R2暂存
MOV P2,R3 ;送字位
MOV A,R2 ;字型R2送A
MOV DPTR,#TAB ;表首地址送DPTR
MOVC A,@A+DPTR ;查表
MOV P0,A ;送字型
LCALL D1MS ;延时
MOV P0,#0FFH ;关闭字型显示
MOV R2,B ;低位送R2暂存
MOV A,R3 ;字位送A
RL A ;字位左移一位(不带进位),根据原理图可知
下一位的字位口
MOV R3,A ;暂存字位于R3
MOV P2,R3 ;送字位
MOV A,R2 ;字型R2送A
MOV DPTR,#OFFH ;表首地址送DPTR
MOVC A,@A+DPTR ;查表
MOV P0,A ;送字型
LCALL D1MS ;延时
MOV P0,#OFFH ;关闭字型显示
MOV A,T_DF ;显示小数部分
MOV R4,A ;暂存R4
MOV A,R3 ;见上面
RL A
MOV R3,A
MOV P2,R3 ;送字位
MOV A,R4 ;字型R4送A
MOV DPTR,#TAB ;表首地址送DPTR
MOVC A,@A+DPTR ;查表
MOV P0,A ;送字型
LCALL D1MS ;延时
DJNZ R1,DISP1
RET
;---------------------------------------1ms延时(按12MHZ算)--------------------------------------- DIMS: MOV R7,#250
LOOP0: NOP
NOP
DJNZ R7,LOOP0
RET
;-------------------------------------共阳极数码管对应字型表---------------------------------------- TAB: DB 0C0H,0F9H,0A4H,OBOH,99H,92H,82H,00F8H ;段码表
; 0 1 2 3 4 5 6 7 对应内容
DB 80H,90H,88H,83H,0C6H,0A1H,86H,8EH
; 8 9 A B C D E F
END
.。