单片机 温度计 论文.docx
- 文档编号:11590839
- 上传时间:2023-03-19
- 格式:DOCX
- 页数:21
- 大小:129.96KB
单片机 温度计 论文.docx
《单片机 温度计 论文.docx》由会员分享,可在线阅读,更多相关《单片机 温度计 论文.docx(21页珍藏版)》请在冰豆网上搜索。
单片机温度计论文
南华大学
单片机课程设计
题目温度计
学生姓名陈翔
学号20069450102
专业班级船山07电气01班
指导教师苏泽光
2010年01月14日
目录
摘要……………………………………………………………………3
关键字…………………………………………………………………………3
引言……………………………………………………………………3
第1章前言…………………………………………………………3
第2章设计方案论证…………………………………………………………………4
2.1温度采集方案…………………………………………………………………4
2.2显示方案……………………………………………………………………5
2.3报警方案……………………………………………………………………5
2.4电源方案……………………………………………………………………5
第3章理论分析与计算…………………………………………………………6
3.1温度采集部分………………………………………………………………6
3.2显示及报警部分……………………………………………………………8
3.3电源部分…………………………………………………………………9
第4章系统资源分配……………………………………………………………10
4.1单片机内部资源分配………………………………………………………10
4.2DS18B20片内资源处理……………………………………………………11
第5章系统调试…………………………………………………………………12
5.1系统软件调试………………………………………………………………12
5.2显示部分调试………………………………………………………………12
5.3温度采集部分调试…………………………………………………………13
5.4系统整体调试………………………………………………………………13
5.5误差分析……………………………………………………………………13
结束语…………………………………………………………………13
参考文献………………………………………………………………13
致谢……………………………………………………………………14
附录………………………………………………………………………………………15
数字温度计的设计
摘要DS18B20是DALLAS公司生产的单线数字温度传感器,他具有独特的单线总线接口方式。
文章详细的介绍了单线数字温度传感器DS18B20的测量原理、特性以及在温度测量中的硬件和软件设计,具有接口简单、精度高、抗干扰能力强、工作稳定可靠等特点。
关键词单片机;DS18B20;数据采集;测温
引言本文所讨论的数据采集系统是一个基于单片机的温度数据采集系统,随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。
本文采用DALLAS半导体公司生产的“一线总线”数字温度传感器DS18B20可以只用一跟总线上实现温度的测量,并可实现多路测量,精确度可达到0.1℃而且工作电压范围大(3v~5v)。
第一章前言
本设计通过对电子技术方向的所学知识进行整合,完成一个特定功能、特殊要求的检测、控制仪器的制作,能够充分、完整地体现电力专业类学生的理论研究水平,实践动手能力以及专业精神和态度,具有较强的针对性和明确的实施目标,能够实现理论到实践的有机结合。
本设计能够广泛应用于家庭、工厂、化工、等需要对温度进行实时检测的场所,满足用户对温度实时测试的要求,并能够对温度进行实时显示和对温度上下限进行报警。
本设计利用温度传感器DS18B20对温度进行检测,得到温度数据然后通过单片机进行处理再通过LCD显示,实现实时温度的显示以及体温异常时的报警。
本设计需要解决温度传感器DS18B20由温度值到数据的可靠转换,单线数据传输的可靠性,以及LCD的数据显示。
第二章.设计方案论证
本设计系统包括温度采集、显示以及报警电源电路,具体实现阐述如下:
2.1温度采集方案
当用户要完成一项温度测量或控制任务时,首要任务是选择合适的温度采集方案,实现温度物理量到电压物理量的顺利转换,考虑如下方案。
方案一:
利用接触式水银温度计作为温度测量元件,然后通过光电检测电路,检测水银柱位置确定相应的温度值,此方案运用物理中热胀冷缩原理,原理简单,容易实现温度超过上限值的测试,但是在实时温度方面的要求难于满足,且自制光电检测电路存在调试方面的问题。
方案二:
利用热电阻电桥实现温度值到电压值的转换,再通过集成运放电路对电信号进行处理,主要是利用温度变化时传感器电阻发生变化引起电信号变化,这种温度传感器在常温和较低温度区范围内有较高的灵敏度,但是对热电阻电桥其他电阻精度要求较高,电桥平衡比较难实现。
方案三:
在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。
而且其为单线数据传输,接口电路简单,容易实现等。
综合各方面因素,拟采用方案三。
2.2显示方案
在各种仪器仪表使用时,需要通过一些可视化的数据表明当前所测物理量的测试值,因此需要显示部件对整个检测过程进行数据显示,本次设计实际上就是仪器仪表的制作,所以显示方案是重要组成部分,设计中考虑如下方案。
方案一:
利用液晶显示器LCD实现显示功能,由于液晶的四壁效应,在定向膜的作用下,液晶分子在正背玻璃电极上呈水平排列方向互为正交,而玻璃间的分子呈连续扭转过渡,这样能够使液晶对光产生旋光作用,使光的偏振方向旋转90°,从而实现显示功能。
液晶显示具有外观漂亮、低功耗、体积小等特点。
方案二:
利用CRT显示终端作为显示器件,此方案需要实现单片机与微机之间的通信和数据的可靠传输,微机界面需要设计人员运用编程软件,编程实现。
其具有显示画面美观,操作界面的可变化等特点,但是显示仪器体积大,功耗大,不便于携带和户外使用。
方案三:
利用LED数码管作为显示器件,使用LED数码管、单片机I/O口及部分驱动、译码显示电路即可完成显示功能,其具有体积小,功耗低,可靠性好,寿命长,使用方便等特点,是目前运用最广泛的显示器件。
但显示信息量较少。
综合各方面因素,拟采用方案一。
2.3报警方案
在实际生产和生活中,经常需要用到一些具有报警功能的仪器仪表,来指示人们生产生活中对仪器仪表的操作是否合理或者仪器仪表所检测的对象是否出现不正常现象,本次设计考虑以下设计方案。
方案一:
利用专用录音芯片录制报警声音,当仪器仪表检测到检测对象出现异常,则通过单片机发出触发信号,触发录音芯片发出报警声音,其具有报警声音的可变性强(即可以通过录制不同的报警声音来实现),电路实现简单等特点,但是录音芯片价格较贵。
方案二:
利用音频放大器件制作音乐报警电路,使用LM386音频集成放大器加上一些电阻、电容即可,电路简单,可靠性强,但是单片机编程要求高,而且会较长时间占用CPU。
方案三:
利用蜂鸣器制作报警电路,需要器件少,电路简单,单片机编程简单。
综合各方面因素,拟采用方案三。
2.4电源方案
方案一:
采用开关电源电路,电路体积小,对负载要求不是很严,但电路复杂,使用寿命不长等。
方案二:
采用线性稳压电路7805,具有电路简单,可靠性高,适合单片机电路等特点。
综合考虑选择方案二。
第3章理论分析与计算
3.1温度采集部分
一、单线数字温度计DSl820介绍
DSl820数字温度计提供9位(二进制)温度读数指示器件的温度信息经过单线接口送入DSl820或从DSl820送出因此从主机CPU到DSl820仅需一条线(和地线),DSl820的电源可以由数据线本身提供而不需要外部电源,因为每一个DSl820在出厂时已经给定了唯一的序号,因此任意多个DSl820可以存放在同一条单线总线上,这允许在许多不同的地方放置温度敏感器件,DSl820的测量范围从-55到+125增量值为0.5,可在ls(典型值)内把温度变换成数字信号。
每一个DSl820包括一个唯一的64位长的序号,该序号值存放在DSl820内部的ROM(只读存贮器)中,开始8位是产品类型编码(DSl820编码均为10H),接着的48位是每个器件唯一的序号,最后8位是前面56位的CRC(循环冗余校验)码,DSl820中还有用于贮存测得的温度值的两个8位存贮器RAM,编号为0号和1号,1号存贮器存放温度值的符号,如果温度为负则1号存贮器8位全为1,否则全为0。
0号存贮器用于存放温度值的补码,LSB(最低位)的1表示0.5将存贮器中的二进制数求补再转换成十进制数并除以2,就得到被测温度值。
每只D51820都可以设置成两种供电方式,即数据总线供电方式和外部供电方式。
采取数据总线供电方式可以节省一根导线,但完成温度测量的时间较长,采取外部供电方式则多用一根导线但测量速度较快。
二、温度计算
1Ds1820用9位存贮温值度最高位为符号位下图为18b20的温度存储方式负温度S=1正温
度S=0。
如00AAH为+85℃,0032H为25℃,FF92H为55℃
2、Ds18b20用12位存贮温值度最高位为符号位下图为18b20的温度存储方式负温度S=1正温度S=0
如0550H为+85℃,0191H为+25.0625℃,FC90H为-55℃
三、DSl820的时序
时序
主机使用时间隙(timeslots)来读写DSl820的数据位和写命令字的位
(1)初始化
时序如图所示,主机总线to时刻发送一复位脉冲(最短为480us的低电平信号)接着在tl时刻释放总线并进入接收状态DSl820在检测到总线的上升沿之后等待15-60us接着DS1820在t2时刻发出存在脉冲(低电平持续60-240us)如图中虚线所示
(2)写时间隙
当主机总线to时刻从高拉至低电平时就产生写时间隙见图2253图2254从to时刻开始15us之内应将所需写的位送到总线上DSl820在t后15-60us间对总线采样若低电平写入的位是0见图2253若高电平写入的位是1见图2254连续写2位间的间隙应大于1us
(3)读时间隙
见图2255主机总线to时刻从高拉至低电平时总线只须保持低电平l7ts之后在t1时刻将总线拉高产生读时间隙读时间隙在t1时刻后t2时刻前有效tz距to为15捍s也就是说tz时刻前主机必须完成读位并在to后的60尸s一120fzs内释放总线,读位子程序(读得的位到C中)。
3.2显示及报警部分
采用LCD显示,硬件电路如图所示:
所要注意的是LCD的查忙,因为LCD的显示速度没有单片机的速度快,所以就要对LCD进行查忙。
可以采用在显示的时候调用一个延时程序来避过查忙的时间。
报警电路如图所示:
电路简单,当I/O口输出为0是导通蜂鸣器叫,为1时截止蜂鸣器不叫。
3.3电源部分
电路特简单,不需要其他外围元件,只要求输入电压为直流且大于5V就可以了。
第四章系统资源分配
4.1单片机内部资源分配
本系统采用汇编语言编程,利用单片机实现各种控制功能。
通过获取温度传感器DS18B20的温度数字值,再通过单片机算法处理送LCD显示温度值,当温度值超过设定的上下限时,引发报警电路报警。
程序分为六大模块,分别为:
主程序、DS18B20初始化子程序、DS18B20写入子程序、DS18B20读取子程序、显示子程序、温度报警子程序。
系统主要流程图如下:
主程序DS18B20初始化程序流程图
DS18B20写入子程序DS18B20读取子程序
P1.0口:
接LCD的RS端
P1.1口:
接LCD的RW端
P1.2口:
接LCD的EN端
P2口:
接LCD的数据端
P3.7:
接DS18B20的数据端
30H、31H、32H、33H、34H:
DS18B20温度处理区
4.2DS18B20片内资源处理
DSl820工作过程中的内部资源协议如下:
初始化RoM操作命令存储器操作命令处理数据。
1初始化:
单总线上的所有处理均从初始化开始。
2ROM操作品令:
总线主机检测到DSl820的存在便可以发出ROM操作命令之一这些命令如:
ReadROM(读ROM)[33H]
MatchROM(匹配ROM)[55H]
SkipROM(跳过ROM][CCH]
SearchROM(搜索ROM)[F0H]
Alarmsearch(告警搜索)[ECH]
3存储器操作命令:
WriteScratchpad(写暂存存储器)[4EH]
ReadScratchpad(读暂存存储器)[BEH]
CopyScratchpad(复制暂存存储器)[48H]
ConvertTemperature(温度变换)[44H]
RecallEPROM(重新调出)[B8H]
ReadPowersupply(读电源)[B4H]
4.3主要程序(见附录一)
第五章系统调试
5.1系统的软件部分调试
软件调试在PROTEUS上面进行仿真,可以很容易知道系统的程序错误,比连接硬件处理起来就不可同日而语了,改动和连接都很方便。
5.2显示部分调试
主要是LCD的显示,查忙的时间确定,根据所选择的LCD的型号不同查忙的时间有所不同,我选择的1602模块用的查忙时间为1.64MS。
如果时间短了的话LCD就不会显示出字符出来。
还有就是自建字符的处理,因为1602里面没有℃这个符号,所以需要自建字符,自建字符的数据存储在LCD的以00H开始的CGRAM里面。
开始的时候不知道这个地址,一直显示不出来。
5.3温度采集部分调试
温度采集部分主要是DS18B20的数据写入,和数据读出部分,其实也就是时序上的问题,注意好了时序的话没什么大问题。
5.4系统整体调试
主要是按键的处理,需要很好的处理按键的长按得问题,这个问题用节拍法就能够很好的解决,还有就是在主程序里面,节拍的时间长度的制定,考虑到LCD的显示查忙需要时间,两行十六个字总共需要30多MS,所以,节拍的时间必须选定为50MS左右。
5.5误差分析
1、DS18B20本身转换存在一定的误差。
2、温度在单片机中的读取人为的把低位省略了,也就是说把精度降低了。
第6章总结
本设计的优点在于测温电路的硬件部分比较简单、精确度比较高、适合于各种工业、科研、家庭等场合。
此论文从选题、定题、方案论证、理论分析设计以及安装调试成功,共历时10周,完成了设计初所要完成的一切功能。
是对自己的能力的又一次证明,不但是对过去所学知识的一个巩固,更是对所学知识从理论联系实际的相结合。
对以后向这方面发展迈出了重要的一步。
第7章参考资料
[1]宋家友.电子爱好者集成电子线路设计手册.福建:
福建科学技术出版社,2002.10,243-245.
[2]吴金戌,沈庄阳,郭庭浩.8051单片机实践与应用.北京:
清华大学出版社,2002.09,250-253.
[3]张俊谟.单片机中级教程原理与应用.北京:
北京航空航天大学出版社,2002.6,65-71,187-208.
[4]李朝青.单片机原理及接口技术.北京:
北京航空航天大学出版社,1999.3,28-34,140-170.
[5]赵负图.传感器集成电路手册.北京:
化学工业出版社,2002.4,602-685.
[6]阎石.数字电子技术基础.北京:
高等教育出版社,1983.4,224-232.
[7]康华光,陈大钦.模拟电子技术基础.北京:
高等教育出版社,2005.6,231-262,394-411.
致谢
在论文完成之际,我首先要向我的指导老师苏泽光副教授表示衷心的感谢!
论文从选题、设计到撰写、定稿过程中,自始至终得到了老师的悉心指导和帮助.在这里我对他们的帮助深表谢意!
2010年1月
附录
;///////////////////////////////////////
;本程序完成DS18B20测温
;LCD显示,P2口输出LCD数据
;黄立华QQ529404547
;2009.2.10
;////////////自定义及初始化///////////////////////////
RSEQUP1.0
RWEQUP1.1
ENEQUP1.2
TEMPEQUP3.7
SCEQUP2
XIAOSHUEQU30H
ZHENGSHUEQU31H
WDD8EQU32H
WDG8EQU33H
FUHAOEQU34H
BTBIT20H.0
ORG0000H
AJMPSTART
ORG0030H
START:
ACALLCHUSHIHUA;LCD初始化
CLRBT
MAIN:
ACALLGET_TEMP
ACALLDEAL_TEMP
ACALLDISPLAY
AJMPMAIN
;///////////////初始化子程序///////////////////
;输入:
无
;输出:
无
;实现的功能:
初始化LCD
;///////////////////////////////////////////////
CHUSHIHUA:
MOVSC,#38H
ACALLENABLE;写指令38H,设定LCD为16*2显示,5*7点阵,8位数据接口
MOVSC,#08H
ACALLENABLE;写指令08H,关闭显示屏,关闭光标,字符位置不闪烁
MOVSC,#01H
ACALLENABLE;写指令01H,显示清屏。
MOVSC,#06H
ACALLENABLE;写指令06H,显示光标自动右移,整屏不移动。
MOVSC,#0CH
ACALLENABLE;写指令0CH,开显示,不显示光标
RET
;-----------------------------------------
;写使能子程序
;输入:
无
;输出:
无
;------------------------------------------
WENABLE:
SETBRS
CLRRW
SETBEN
ACALLDELAY
CLREN
RET
;-----------------------------------------
;写命令使能子程序1
;输入:
无
;输出:
无
;------------------------------------------
ENABLE:
CLRRS
CLRRW
SETBEN
ACALLDELAY
CLREN
RET
;////////////显示/////////////////////////////////
DISPLAY:
ACALLCGRAM
MOVSC,#80H;显示温度屏
ACALLENABLE
MOVDPTR,#LINE1
MOVR0,#5
MOVR1,#0
ACALLXIER1
ACALLXSFL;小数分离
ACALLWDXS;温度显示
RET
;/////////温度显示////////////////////////////////////
WDXS:
MOVSC,#80H+5
ACALLENABLE
MOVA,FUHAO;送符号
JBACC.0,TT2;为1负温度,为0正温度
MOV60H,#20H;填入空白
MOVA,ZHENGSHU
ACALLZSFL;整数分离
MOVR0,#4
MOVR1,#60H
TT1:
MOVA,@R1
MOVSC,A
ACALLWENABLE;显示整数部分
MOVSC,A
INCR1
DJNZR0,TT1
AJMPBACK
TT2:
MOVA,ZHENGSHU;负数处理取反加1
ANLA,#7FH
CPLA
ADDA,#80H
ADDA,#1
ACALLZSFL;补码整数分离
MOV60H,#2DH;填入负号
MOVR0,#4
MOVR1,#60H
TT3:
MOVA,@R1;显示补码整数
MOVSC,A
ACALLWENABLE
INCR1
DJNZR0,TT3
BACK:
MOVSC,#80H+9
ACALLENABLE
MOV64H,#2EH;填入小数点
MOV67H,#00H;填入字型
MOVR0,#4
MOVR1,#64H
TT4:
MOVA,@R1
MOVSC,A
ACALLWENABLE;显示小数部分和字型
INCR1
DJNZR0,TT4
RET
;///////////整数分离////////////////////
ZSFL:
MOVB,#100
DIVAB
ADDA,#30H
MOV61H,A
MOVA,B
MOVB,#10
DIVAB
ADDA,#30H
MOV62H,A
MOVA,B
ADDA,#30H
MOV63H,A
RET
;//////////小数分离////////////////////
XSFL:
MOVA,XIAOSHU;温度小数点处理
MOVB,#16
DIVAB
ADDA,#30H
MOV65H,A
MOVA,B
ADDA,#30H
MOV66H,A
RET
;/////////存字型/////////////////
CGRAM:
MOVSC,#40H;存字型地址
ACALLENABLE
MOVR1,#0
LP1:
MOVDPTR,#TAB1
MOVA,R1
MOVCA,@A+DPTR
MOVSC,A
ACALLWENABLE
INCR1
CJNER1,#8,LP1
RET
;////////////写入子程序////////////////////////////////
;实现的功能:
写入数据
XIER1:
MOVA,R1
MOVCA,@A+DPTR
MOVSC,A
ACALLWENABLE
INCR1
DJNZR0,XIER1
RET
;/////////延时子程序/////////////////////////
;实现的功能:
延时1MS
DELAY:
MOVR6,#5
D5:
MOVR7,#100
DJNZR7,$
DJNZR6,D5
RET
;//////////读取温度//////////////////
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 温度计 论文
![提示](https://static.bdocx.com/images/bang_tan.gif)