温度计实习报告.docx
《温度计实习报告.docx》由会员分享,可在线阅读,更多相关《温度计实习报告.docx(24页珍藏版)》请在冰点文库上搜索。
温度计实习报告
单片机原理与应用技术
课程设计报告(论文)
数字式温度计
专业班级:
电气121
姓 名:
肖鹏辉
时间:
14.12.22-15.01.09
指导教师:
孔晓红
2015年01月12日
数字式温度计
1.设计目的与要求
(一)基本功能
(1)测温范围-50℃—110℃
(2)精度误差不大于0.1℃
(3)LED数码直读显示
(二)扩展功能
(1)实现语音报数
(2)可以任意设定温度的上下限报警功能
2.设计内容
(1)画出电路原理图,正确使用逻辑关系;
(2)确定元器件及元件参数;
(3)进行电路模拟仿真;
(4)SCH文件生成与打印输出;
3.编写设计报告
写出设计的全过程,附上有关资料和图纸,有心得体会。
4.答辩
在规定时间内,完成叙述并回答问题。
目录
1、引言……………………………………………………………………4
2总体设计方案……………………………………………………………4
2.1设计思路……………………………………………………………4
2.2方案确立……………………………………………………………4
2.3设计方框……………………………………………………………4
3设计原理分析……………………………………………………………5
3.1最小系统的构成……………………………………………………5
3.2温度检测电路的设计………………………………………………5
3.3数码显示与led报警………………………………………………8
3.4软件部分的设计……………………………………………………8
3.4.1汇编程序………………………………………………………8
3.4.2仿真…………………………………………………………14
4结束语…………………………………………………………………15
参考文献…………………………………………………………………16
附录一……………………………………………………………………17
附录二……………………………………………………………………18
数字式温度计
电气121肖鹏辉
摘要:
本设计是一个基于at89S51单片机的测温系统,详细描述了利用数字温度传感器DS18B20开发测温系统的过程,重点对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了详尽分析,对各部分的电路也一一进行了介绍,该系统可以方便的实现实现温度采集和显示,并可根据需要任意设定上下限报警温度,它使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合于我们日常生活和工、农业生产中的温度测量,也可以当作温度处理模块嵌入其它系统中,作为其他主系统的辅助扩展。
DS18B20与AT89S51结合实现最简温度检测系统,该系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度测量,有广泛的应用前景。
关键词:
at89s51;ds18b20;单片机;数字控制;上下限;报警
1引言
近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。
在实时检测和自动控制的单片机应用系统中,以单片机为核心的各种控制电路层出不穷,数字温度计就是单片机一方面的应用,在日常生活中,与温度有关的也常见,例如:
烧开水的锅炉需要测温度、家庭用的电磁炉需要测温度等等;所以数字温度计也普遍存在于人们的生活当中,而本电路就是结合这种思路和参考一些资料所设计的电路,这种电路可以很方便的应用到我们的现实生活中,为人们带来便利。
本文主要从单片机的应用上来实现温度的测量及显示。
2总体设计方案
2.1设计思路
方案一
由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较复杂。
方案二
采用一只温度传感器DS18B20,此传感器易直接读取被测温度值,进行转换,就可以满足设计要求。
采用数字温度芯片DS18B20测量温度,输出信号全数字化。
便于单片机处理及控制,省去传统的测温方法的很多外围电路。
且该芯片的物理化学性很稳定,它能用做工业测温元件,此元件线形较好。
在0—100摄氏度时,最大线形偏差小于1摄氏度。
DS18B20的最大特点之一采用了单总线的数据传输,由数字温度计DS18B20和微控制器AT89S52构成的温度测量装置,它直接输出温度的数字信号,可直接与计算机连接。
这样,测温系统的结构就简单,体积不大。
2.2方案确立
根据需要,方案二更为合理,采用温度控制器DS18B20来实现,首先要考虑的是DS18B20如何工作,通过查略相关资料,了解到DS18B20的主要优点是采用数字化技术,能以数字形式直接输出被测温度值,具有测量误差小、抗干扰能力强、分辨力高、能够远程传输数据、带串行总线接口等优点,适配各种单片机和系统机,另外其内部有上下限报警电路,这样温度只要在所设定的上下温度界限内,就会在数码管中精确的显示出来,如果温度超过了所设定的温度界限,就发出报警声。
能够及时向温度监控人员发出温度超限信息。
便于温控人员及时的调整与控制。
而且此温度控制器操作简单,体积小,灵敏度高,精度高。
此外,以89s51为中心的外围部分加入报警电路和数码显示电路。
采用89C51单片机对温度进行控制,不仅具有控制方便简单灵活等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大提高产品的质量和数量。
2.3设计方框图
限
温度上下自动设置
单片机
数字显示
温度检测
最小系统
图1总体设计方框图
3设计原理分析
3.1最小系统的构成
最小系统由时钟电路和复位电路构成,如图2,时钟电路主要由12M晶振、30PF的瓷片电容、电阻、开关组成,12M晶振和30PF的瓷片电容构成稳定的自激振荡器,产生时钟信号。
复位电路由RC电路构成,与时钟电路构成微型处理器。
图2最小系统
3.2温度检测电路的设计
DALLAS最新单线数字温度传感器DS18B20是一种新型的“一线器件”,其体积更小、更适用于多种场合、且适用电压更宽、更经济。
DALLAS半导体公司的数字化温度传感器DS18B20是世界上第一片支持“一线总线”接口的温度传感器。
温度测量范围为-55~+125摄氏度,可编程为9位~12位转换精度,测温分辨率可达0.0625摄氏度,分辨率设定参数以及用户设定的报警温度存储在EEPROM中,掉电后依然保存。
被测温度用符号扩展的16位数字量方式串行输出;其工作电源既可以在远端引入,也可以采用寄生电源方式产生;多个DS18B20可以并联到3根或2根线上,CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。
因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。
DS18B20的性能特点如下:
●独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯
●DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温
●DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内
●适应电压范围更宽,电压范围:
3.0~5.5V,在寄生电源方式下可由数据线供电
●温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃
●零待机功耗
●可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温
●在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快
●用户可定义报警设置
●报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件
●测量结果直接输出数字温度信号,以"一线总线"串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力
●负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作
以上特点使DS18B20非常适用与多点、远距离温度检测系统。
DS18B20内部结构主要由四部分组成:
64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。
DS18B20的管脚排列、各种封装形式如图3所示,DQ为数据输入/输出引脚。
开漏单总线接口引脚。
当被用着在寄生电源下,也可以向器件提供电源;GND为地信号;VDD为可选择的VDD引脚。
当工作于寄生电源时,此引脚必须接地。
封装如图3所示.。
图3外部封装形式
主机操作ROM的命令有五种,如表1所列
表118B20ROM命令格式
当DS18B20接收到温度转换命令后,开始启动转换。
转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1,2字节。
单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式以0.0625℃/LSB形式表示。
温度值格式如图4
图4温度格式
这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。
图中,S表示位。
对应的温度计算:
当符号位S=0时,表示测得的温度植为正值,直接将二进制位转换为十进制;当S=1时,表示测得的温度植为负值,先将补码变换为原码,再计算十进制值。
例如+125℃的数字输出为07D0H,+25.0625℃的数字输出为0191H,-25.0625℃的数字输出为FF6FH,-55℃的数字输出为FC90H。
DS18B20温度传感器主要用于对温度进行测量,数据可用16位符号扩展的二进制补码读数形式提供,并以0.0625℃/LSB形式表示。
表2是部分温度值对应的二进制温度表示数据,
表2部分温度值
温度
二进制表示
十六进制表示
+125
00000111
11010000
07D0H
+25.0625
00000001
10010001
0191H
+0.5
00000000
00001000
0008H
0
00000000
00000000
0000H
-0.5
11111111
11111000
FFF8H
-25.0625
11111110
01101111
FE6FH
-55
11111100
10010000
FC90H
DS18B20完成温度转换后,就把测得的温度值与RAM中的TH、TL字节内容作比较,若T>TH或T因此,可用多只DS18B20同时测量温度并进行告警搜索。
3.3数码显示与led报警
如图5,用18B20测出温度,通过程序计算成标准的数码语言,让数码管显示。
这里用四位一体的共阳数码管动态显示,下面是管脚的排列,由于单片机输出电流能力较低,所以这里用NPN来做数码管的位选驱动,增加数码管的亮度。
NPN的b端接单片机,c端接电源,e端接数码管,P1口接片选abcdefgh。
两个led灯是用来显示正常温度和报警温度的,绿灯表示温度正常,红灯表示温度超出设定范围。
按键是来设置温度上下限的,如图5按键从上往下依次是上限加,上限减,下限加,下限减。
按键接P0口,由于P0口不能输出高电平,所以接上拉电阻和电源;led灯接P2口,通过限流电阻接电源
图5数字显示及报警
3.4软件部分的设计
3.4.1汇编程序
TLEQU29H;低8位存储
THEQU28H;高8位存储
A_BITEQU42H;百位(负号)
B_BITEQU43H;十位
C_BITEQU44H;个位
D_BITEQU45H;小数位
DQEQUP2.0
BJ_HEQU47H;温度上限存储
BJ_LEQU49H;温度下限存储
;主程序
ORG0000H
MOVP0,#0FFH
MOVBJ_H,#40;上限40度
MOVBJ_L,#2;下限-2度
MAIN:
LCALLGET_TEMPER;获得温度
LCALLSTART;温度计算
LCALLDISPLY;温度显示
AJMPMAIN
;获取温度子程序
GET_TEMPER:
LCALLRST18B20;初始化
MOVA,#0CCH;跳过ROM匹配
LCALLWR18B20;调用写时序
MOVA,#44H
LCALLWR18B20;调用写时序
LCALLRST18B20;初始化
MOVA,#0CCH
LCALLWR18B20
MOVA,#0BEh;发出温度转换命令
LCALLWR18B20;调用读时序
LCALLRE18B20
RET
18B20初始化子程序
RST18B20:
SETBDQ
NOP
CLRDQ
MOVR0,#06BH
MOVR1,#03H
DSR1:
DJNZR0,DSR1
MOVR0,#6BH
DJNZR1,DSR1
SETBDQ
NOP
NOP
NOP
MOVR0,#25H
DSR2:
JNBDQ,DSR3
DJNZR0,DSR2
LJMPRST18B20
DSR3:
MOVR0,#06BH
DJNZR0,$
SETBDQ
RET
;18B20写时序
WR18B20:
MOVR0,#8H
CLRC
WR1:
CLRDQ
MOVR1,#6H
DJNZR1,$
RRCA
MOVDQ,C
MOVR1,#23
DJNZR1,$
SETBDQ
NOP
DJNZR0,WR1
SETBDQ
RET
;18B20读时序
RE18B20:
MOVR0,#29H;低8位存在29H
MOVR1,#2
RE00:
MOVR2,#8
RE01:
CLRC
CLRDQ
NOP
NOP
NOP
SETBDQ
MOVR3,#09
RET10:
DJNZR3,RET10
MOVC,DQ
MOVR3,#23
RE20:
DJNZR3,RE20
RRCA
DJNZR2,RE01
MOV@R0,A
decR0;R0变成28H,存储高8位
DJNZR1,RE00
RET
;计算子程序
start:
MOVA,28H;高8位
ANLA,#0F0H;判断温度正负,高4位全是1为负,是0为正
CJNEA,#0,DD1
LJMPDD3
DD1:
MOVA_BIT,#10;温度为负,最高位显示“—”
MOVA,29H;低8位
SUBBA,#1;补码换算
MOVB,PSW
ANLB,#80H
CPLA
MOV29H,A
MOVA,B
RLA
MOVB,A
MOVA,28H
SUBBA,B
CPLA
MOV28H,A
MOVD_BIT,29H
MOVA,29H;计算温度
ANLA,#0F0H
SWAPA
MOV29H,A;保留低8位的高4位
MOVA,28H
ANLA,#0FH
SWAPA
MOV28H,A;保留高8位的低4位
MOVA,29H
ADDA,28H;计算出8位温度值
MOV29H,A
ACALLWARN_L;调用低温报警判断
MOVA,29H
AJMPDD4
DD3:
MOVD_BIT,29H;温度为正,计算
MOVA,29H
ANLA,#0F0H
SWAPA
MOV29H,A;保留低8位的高4位
MOVA,28H
ANLA,#0FH
SWAPA
MOV28H,A;保留高8位的低4位
MOVA,29H
ADDA,28H;计算出8位温度值
MOV29H,A
LCALLWARN_H;调用高温报警判断
MOVA,29H
DD6:
MOVB,#100
DIVAB
MOVA_BIT,A;百位
MOVA,B
DD4:
MOVB,#10
DIVAB
MOVB_BIT,A;十位
MOVC_BIT,B;个位
MOVA,D_BIT;小数位计算
ANLA,#0FH
MOVB,#6
MULAB
MOVB,#10
DIVAB
movD_BIT,A;小数位
RET
高温判断子程序
WARN_H:
JNBP0.0,WA;按键加上限
JNBP0.1,WS;按键减上限
MOVA,29H
CJNEA,BJ_H,S1;温度比较
CLRP2.1;相等红灯亮
SETBP2.2;绿灯灭
RET
S1:
MOVA,PSW
ANLA,#80H
CJNEA,#0,S2
CLRP2.1;大于红灯亮
SETBP2.2;绿灯灭
RET
S2:
CLRP2.2;小于绿灯亮
SETBP2.1;红灯灭
RET
WA:
INCBJ_H上限加1
MOVA,BJ_H
LCALLDD6
BB1:
LCALLDISPLY
JNBP0.0,BB1
MOVA,29H
CJNEA,BJ_H,S1
CLRP2.1
SETBP2.2
RET
WS:
DECBJ_H;上限减1
MOVA,BJ_H
LCALLDD6
BB2:
LCALLDISPLY
JNBP0.1,BB2
MOVA,29H
CJNEA,BJ_H,S1
SETBP2.1
CLRP2.2
RET
;低温报警判断子程序
WARN_L:
MOVA,29H
CJNEA,BJ_L,S3
CLRP2.1
SETBP2.2
RET
S3:
MOVA,PSW
ANLA,#80H
CJNEA,#0,S4
CLRP2.1
SETBP2.2
RET
S4:
CLRP2.2
SETBP2.1
RET
;延时子程序
DELAY:
NOP
DL:
NOP
DJNZR7,DL
RET
;数字显示子程序
DISPLY:
MOVDPTR,#TAB
MOVA,D_BIT
MOVCA,@A+DPTR
MOVP1,A
SETBP3.3;小数位亮,其它位灭
LCALLDELAY1mS
CLRP3.3
MOVA,C_BIt
MOVCA,@A+DPTR
MOVP1,A
clrP1.7;小数点亮
setbP3.2;个位亮,其它位灭
LCALLDELAY1mS
clrP3.2
MOVA,B_BIT
MOVCA,@A+DPTR
MOVP1,A
setbP3.1;十位亮,其它位灭
LCALLDELAY1mS
clrP3.1
MOVA,A_BIT
MOVCA,@A+DPTR
MOVP1,A
setbP3.0;百位亮,其它位灭
LCALLDELAY1mS
clrP3.0
RET
;延时
DELAY1MS:
MOVR6,#0FH
DEL0:
MOVR5,#0FH
DEL1:
DJNZR5,DEL1
DJNZR6,DEL0
RET
;共阳显示
TAB:
DB0C0H,0F9H,0A4H,0B0H
DB99H,92H,82H,0F8H
DB80H,90H,0BFH
end
3.4.2仿真
4结束语
经过将近三周的单片机实习,在指导老师和同学的帮助下,我确实学到了不少平时在课堂上所学不到的知识。
这次的设计课题是数字温度计,刚拿到这个题目,刚开始觉得有点不知所措,不知道该从何下手,但经过不断的上网,到图书馆查资料,渐渐有了头绪,在加上老师的辛勤辅导和同学们的互助,我信心倍增。
这样的实习使我深刻认识到我对理论知识掌握的程度,并且他在一定程度上对我们的理论知识和实践能力都有很大的帮助,经过这些实习可以使我们能更快更准确的掌握专业方面的理论知识。
为以后踏上社会适应社会奠定了坚实的基础。
总而言之,这次实习使我获益非浅,我感觉这次实习我们得到更多的是,对办任何事情我们都要先经过认真细致的观察和分析,然后才能确定我们到底该如何去做,不然,只会是事倍功半。
同时我也认识到我的单片机编程学的不是太好,以后我要加强这方面的锻炼,将所学知识应用到实践当中去,为毕业后走向社会作好准备。
最后,衷心感谢辅导老师的指导和同学的帮助!
参考文献
[1]周航慈著.单片机应用程序设计基础.北京:
电子工业出版社,1997年7月
[2]朱承高.电工及电子技术手册[M].北京:
高等教育出版社,1990
[3]阎石.数字电子技术基础(第三版).北京:
高等教育出版社,1989
[4]廖常初.现场总线概述[J].电工技术,1999.6
[5]李广弟编著.单片机应用程序设计基础.北京:
北京航空航天大学出版社,1994年6月
[6]李建忠著.单片机原理及应用(第三版).西安电子科技大学出版社,2002年2月
[7]徐君鹏编写.单片机实验指导书.河南科技学院自动控制实验室,2014年9月
附录一
附录二