数字温度计的设计周里程.docx
- 文档编号:15208664
- 上传时间:2023-07-02
- 格式:DOCX
- 页数:31
- 大小:196.87KB
数字温度计的设计周里程.docx
《数字温度计的设计周里程.docx》由会员分享,可在线阅读,更多相关《数字温度计的设计周里程.docx(31页珍藏版)》请在冰点文库上搜索。
数字温度计的设计周里程
等级:
湖南工程学院
课程设计
课程名称单片机原理与应用
课题名称数字温度计的设计
专业电气工程及其自动化
班级电气1101班
学号201101010115
姓名周里程
指导教师赵葵银
2014年5月12日
湖南工程学院
课程设计任务书
课程名称:
单片机原理与应用
题目:
数字温度计的设计
专业班级:
电气1101班
学生姓名:
周里程
学号:
201101010115
指导老师:
赵葵银
审批:
任务书下达日期2014年05月12日
设计完成日期2014年05月23日
设计内容与设计要求
设计内容:
以51系列单片机为核心,以开发板为平台;设计一个数字式温度计,要求使用温度传感器(可以采用DS18B20或采用AD590)测量温度,再经单片机处理后,由LED数码管显示测量的温度值。
测温范围为0~51℃,精度误差在0.5℃以内;并要求仿真、调试。
设计要求:
1)确定系统设计方案;
2)进行系统的硬件设计;
3)完成必要元器件选择;
4)系统软件设计、仿真及调试;
5)系统联调及操作说明
6)写说明书
主要设计条件
1、MCS-51单片机实验操作台1台;
2、PC机及单片机调试软件,仿真软件
proteus;
3、系统设计所需的元器件。
4、实验室提供调试条件
说明书格式
1.封面
2.课程设计任务书
3.目录
4.系统总体方案设计
5.系统硬件设计
6.软件设计(包括流程图)
7.系统的安装调试说明
8、总结
9、参考文献
10、附录
11、课程设计成绩评分表。
进度安排
第一周
星期一、上午:
布置课题任务,课题介绍及讲课。
下午:
借阅有关资料,总体方案讨论。
星期二、确定总体方案,学习与设计相关内容。
星期三、各部分方案设计,
星期四、各部分设计。
星期五、设计及上机调试。
星期六、设计并调试
第二周
星期一:
设计及上机调试。
星期二:
调试,中期检查。
星期三:
调试、写说明书。
星期四--星期五上午:
写说明书、完成电子版并打印成稿。
星期五下午:
答辩。
参考文献
参考文献
1、王迎旭编.《单片机原理与应用》[M].机械工业出版社.2004.
2、楼然苗编.《51系列单片机设计实例》[M].北京航空航天大学出版社.
3、黄勤编.《计算机硬件技术基础实验教程》[M].重庆大学出版社
4、刘乐善编.《微型计算机接口技术及应用》[M].华中科技大学出版社.
5、陈光东编.《单片微型计算机原理及接口技术》[M].华中科技大学出版社.
第1章概述
单片机是指一个集成在一块芯片上的完整计算机系统。
目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。
单片机具有优异的性能价格比、集成度高、体积小、可靠性高、控制功能强、低电压、低功耗等特点。
单片机的应用:
1、在智能仪器仪表中的应用:
在各类仪器仪表中引入单片机,使仪器仪表智能化,提高测试的自动化程度和精度,简化仪器仪表的硬件结构,提高其性能价格比;2、在机电一体化中的应用:
机电一体化产品是指集机械、微电子技术、计算机技术于一本,具有智能化特征的电子产品;3、在实时过程控制中的应用:
用单片机实时进行数据处理和控制,使系统保持最佳工作状态,提高系统的工作效率和产品的质量;4、在人类生活中的应用:
目前国外各种家用电器已普通采用单片机代替传统的控制电路;5、在其它方面的应用:
单片机除以上各方面的应用,它还广泛应用于办公自动化领域、商业营销领域、汽车及通信、计算机外部设备、模糊控制等各领域中。
这里,将利用单片机设计模拟交通信号灯。
本设计用DS18B20智能温度传感器作为检测元件;用LED数码管显示温度,用所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,主要用于对测温比较准确的场所,该设计控制器使用单片机AT89S51。
第2章系统总体方案设计
2.1系统设计原理
采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。
采集之后,通过使用51系列的单片机,可以对数据进行相应的处理,再由LED显示电路对其数据进行显示。
该系统利用AT89S51芯片控制温度传感器DS18B20进行实时温度检测并显示,能够实现快速测量环境温度,并可以根据需要设定上下限报警温度。
该系统扩展性非常强,它可以在设计中加入时钟芯片DS1302以获取时间数据,在数据处理同时显示时间,并可以利用AT24C16芯片作为存储器件,以此来对某些时间点的温度数据进行存储,利用键盘来进行调时和温度查询,获得的数据可以通过MAX232芯片与计算机的RS232接口进行串口通信,方便的采集和整理时间温度数据。
2.2数字温度计设计的方案
本课题以是80C51单片机为核心设计的一种数字温度控制系统,系统整体硬件电路包括,传感器数据采集电路,温度显示电路,上下限报警调整电路,单片机主板电路等组成。
系统框图主要由主控制器、单片机复位、报警按键设置、时钟振荡、LED显示、温度传感器组成。
系统框图如图2-2所示。
DS18B20
温度传感器
图2-2数字温度计框图
第3章硬件设计
3.1主控器8051芯片
温度计电路设计总体设计方框图(如图2.1)所示,按照系统设计功能的要求,确定系统由3个模块组成,主控制模块,测温模块,温度显示模块。
对其分别说明如下。
3.1.1主控制模块
本设计采用AT89C52单片机,它有高可靠,抗干扰,低功耗的特点。
AT89C52单片机的RST端外部有两种操作方式:
上电自动复位和按键手动复位。
此处晶振采用12MHZ。
复位电路采用上电结合按钮复位。
●片内振荡器和时钟电路
AT8951的管脚如下图所示:
图3.1.1a晶振电路
3.2时钟电路
80C51时钟有两种方式产生,即内部方式和外部方式。
80C51中有一个构成内部震荡器的高增益反向放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。
本次采用内部震荡电路,瓷片电容采用22PF,晶振为12MHZ。
图3.1.1震荡电路图
3.2复位电路
单片机系统的复位电路在这里采用的是上电+按钮复位电路形式,其中电阻R采用10KΩ的阻值,电容采用10μF的电容值。
图3.1.2复位电路
3.4温度传感器
DS18B20最大的特点是单总线数据传输方式,DS18B20的数据I/O均由同一条线来完成。
DS18B20的电源供电方式有2种:
外部供电方式和寄生电源方式。
工作于寄生电源方式时,VDD和GND均接地,他在需要远程温度探测和空间受限的场合特别有用,原理是当1Wire总线的信号线DQ为高电平时,窃取信号能量给DS18B20供电,同时一部分能量给内部电容充电,当DQ为低电平时释放能量为DS18B20供电。
但寄生电源方式需要强上拉电路,软件控制变得复杂(特别是在完成温度转换和拷贝数据到E2PROM时),同时芯片的性能也有所降低。
外部电源供电方式是DS18B20最佳的工作方式,工作稳定可靠,抗干扰能力强,而且电路也比较简单,可以开发出稳定可靠的多点温度监控系统。
因此本设计采用外部供电方式。
如下图所示:
图3.2DS18B20管脚图
温度传感器DS18B20的测量范围为-55℃~+125℃,在-10℃~+85℃时精度为±0.5℃。
因为本设计只用于测量环境温度,所以只显示0℃~+51℃。
3.5显示电路
对于数字温度的显示,我们采用4位LED数码管。
足够显示0~100中各位数,并且还能显示一位小数部分。
图3.34位LED数码显示管
3.6温度报警电路
对于数字温度计的设计,除了温度的数字显示功能外还加入了报警系统,如果我们所设计的系统用来监控某一设备,当设备的温度超过我们所设定的温度值时,系统会产生报警。
我们便能很好的对设备进行处理,就不会应温度的变化而造成不必要的损失。
当温度高于100度时,报警时由单片机产生一定频率的脉冲,由P3.7引脚输出,P3.7外接一只NPN的三极管来驱动杨声器发出声音,以便操作员来维护,从而达到报警的目的。
其电路图如下所示。
图3.4(a)扬声器报警系统电路图
当温度低于0度时,亮红灯报警,以便操作员来维护,从而达到报警的目的。
其电路图如下所示。
图3.4(b)红灯报警系统电路图
第4章程序设计
4.1主程序
主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1s进行一次。
这样可以在一秒之内测量一次被测温度。
图4.1主程序流程
4.2读出温度子程序
温度的读取:
DS18B20在出厂时以配置为12位,读取温度时共读取16位,所以把后11位的2进制转化为10进制后在乘以0.0625便为所测的温度,还需要判断正负。
前5个数字为符号位,当前5位为1时,读取的温度为负数;当前5位为0时,读取的温度为正数。
读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,检验有错时不进行温度数据的改写。
其程序流程图如图4.2所示。
图4.2读出温度子程序流程图
4.3温度转换命令子程序
温度转换命令子程序主要是发温度转换开始命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。
4.4计算温度子程序
计算温度子程序将RAM值进行BCD码的转换运算,并进行温度值正负的判定,其程序流程图如图4.3所示。
N
Y
图4.3计算温度子程序流程图
第5章总结
5.1设计体会
该设计是可待机的温度测量仪,专用于测量实时温度。
设计的成功主要得益于老师的悉心指导和小组同学倾心配合,体现了团队配合的重要性。
5.2改进意见
该设计中用到了AT89C51单片机作为主控芯片,通过对实物的制作以及调试,发现我们在调试过程中会发现实物某些硬件上的不足。
在课题设计中,温度传感器的驱动程序是其中的重点和难点,虽然温度传感器的硬件电路非常简单,但是温度传感器是单总线型器件,能否让其正常工作,在程序设计中一定要遵守其工作时序;但是本系统还有许多地方需要改进,如果将这些地方加以改进的话,系统将变得更加完美。
5.3教学建议
在单片机的学习过程中,实践是最重要的,而实践的平台是单片机的系统板。
如果在学习的过程中,边学习边调试效果会更好。
会极大的培养我们对单片机软硬结合的特点的认识与相关思维能力,对今后的工作和学习大有裨益。
虽然单片机的发展已很成熟,取代其功能的各类电子器件不断出现,但是单片机的思想对其发展影响重大,希望老师以后在教学中启发同学关注单片机系统的思想,介绍一些新的发展与取代器件的情况,更符合当今教学之趋势与实践之要求。
附录
附录A仿真接线图
附录B程序清单
S1OK EQU5FH
TEMPUTER EQU39H
TEMPHEQU5EH
TEMPL EQU5DH
MS50 EQU5CH
SIGN EQU5BH
S1BITP1.0
S2BITP1.1
S3BITP1.2
S4BITP1.3
ORG0000H
LJMPMAIN
ORG000BH
LJMP TOIT
ORG0030H
MAIN:
MOVSP,#60H
MOVTMOD,#01H
MOVTH0,#3CH
MOVTL0,#0B0H
SETBET0
SETBTR0
SETBEA
MOVTEMPH,#30
MOVTEMPL,#9
MOVTEMPUTER,#15;温度最始值
MOVS1OK,#00H
MOVSIGN,#00H
MOV38H,#0BH
MOV37H,#0CH
MOV36H,#0BH
ACALLDISP
ACALLT1S
;*****************************************
;主程序
START:
JBS1,NET1
ACALLT12MS
JBS1,NET1
JNBS1,$
INCSIGN
MOVA,SIGN
CJNEA,#1,TIAO
ACALLTIAOTL
TIAO:
CJNEA,#2,NET1
MOVSIGN,#0
ACALLTIAOTH
;*****************************************
NET1:
MOVA,S1OK
CJNEA,#1,START
MOVA,TEMPUTER
SUBBA,TEMPH
JNBACC.7,ALEM
MOVA,TEMPUTER
SUBBA,TEMPL
JBACC.7,ALEM
SETBP2.1
ACALLWENDU
ACALLDISP
MOVS1OK,#00H
AJMPSTART
ALEM:
MOV36H,#0CH
MOV37H,#0CH
MOV38H,#0CH
CLRP2.1
ACALLDISP
ACALLT1S
LCALLWENDU
LCALLDISP
MOVS1OK,#00H
SJMPSTART
;*****************************************
TIAOTL:
MOV50H,TEMPUTER
MOV37H,TEMPL
ACALLBIN_BCD
ACALLDISP
ACALLT12MS
ACALLT12MS
ACALLT12MS
ACALLT12MS
MOV36H,#0AH
MOV37H,#0AH
MOV38H,#0AH
ACALLDISP
ACALLT12MS
ACALLT12MS
ACALLT12MS
ACALLT12MS
JBS2,ADD1
ACALLT12MS
JBS2,ADD1
JNBS2,$
INCTEMPL
MOVA,TEMPL
CJNEA,#100,ADD1
MOVTEMPL,#0
ADD1:
JBS3,ADD2
ACALLT12MS
JBS3,ADD2
JNBS3,$
DECTEMPL
MOVA,TEMPL
CJNEA,#00,ADD2
MOVTEMPL,#100
ADD2:
JBS4,TIAOTL
ACALLT12MS
JBS4,TIAOTL
JNBS4,$
MOVTEMPUTER,50H
LJMPSTART
;高位调整
;*****************************************
TIAOTH:
MOV50H,TEMPUTER
MOV37H,TEMPH
ACALL BIN_BCD
ACALL DISP
ACALL T12MS
ACALL T12MS
ACALL T12MS
ACALL T12MS
MOV 36H,#0AH
MOV 37H,#0AH
MOV 38H,#0AH
ACALL DISP
ACALL T12MS
ACALL T12MS
ACALL T12MS
ACALL T12MS
JB S2,ADD11
ACALLT12MS
JBS2,ADD11
JNBS2,$
INCTEMPH
MOVA,TEMPH
CJNEA,#100,ADD11
MOVTEMPH,#0
ADD11:
JBS3,ADD22
ACALLT12MS
JBS3,ADD22
JNBS3,$
DECTEMPH
MOVA,TEMPH
CJNEA,#00,ADD22
MOVTEMPH,#100
ADD22:
JBS4,TIAOTH
ACALLT12MS
JBS4,TIAOTH
JNBS4,$
MOVTEMPUTER,50H
LJMPSTART
;一秒定时中段
;*****************************************
TOIT:
PUSHPSW
PUSHACC
MOVTH0,#3CH
MOVTL0,#0B0H
INCMS50
MOVA,MS50
CJNEA,#14H,RETURN
MOVS1OK,#1
MOVMS50,#00H
RETURN:
POPACC
POPPSW
RETI
;*****************************************
;温度总子程序
;*****************************************
wendu:
ACALLINIT_1820
ACALLRE_CONFIG
ACALLGET_TEMPER
ACALLTEMPER_COV
RET
;*****************************************
;DS18B20初始化程序
;*****************************************
INIT_1820:
SETBP2.0
NOP
CLRP2.0
MOVR0,#06BH
MOVR1,#03H
TSR1:
DJNZR0,TSR1;延时
MOVR0,#6BH
DJNZR1,TSR1
SETBP2.0
NOP
NOP
NOP
MOVR0,#25H
TSR2:
JNBP2.0,TSR3
DJNZR0,TSR2
LJMPTSR4;延时
TSR3:
SETB20H.1;置标志位,表示DS1820存在
LJMPTSR5
TSR4:
CLR20H.1;清标志位,表示DS1820不存在
LJMPTSR7
TSR5:
MOVR0,#06BH
MOVR1,#03H
TSR6:
DJNZR0,TSR6;延时
MOVR0,#6BH
DJNZR1,TSR6
TSR7:
SETBP2.0
RET
;*****************************************
;重新写DS18B20暂存存储器设定值
;*****************************************
RE_CONFIG:
JB20H.1,RE_CONFIG1;若DS18B20存在,转RE_CONFIG1
RET
RE_CONFIG1:
MOVA,#0CCH;发SKIPROM命令
LCALLWRITE_1820
MOVA,#4EH;发写暂存存储器命令
LCALLWRITE_1820
MOVA,#00H;TH(报警上限)中写入00H
LCALLWRITE_1820
MOVA,#00H;TL(报警下限)中写入00H
LCALLWRITE_1820
MOVA,#1FH;选择9位温度分辨率
LCALLWRITE_1820
RET
;*****************************************
;读出转换后的温度值
;*****************************************
GET_TEMPER:
SETBP2.0;定时入口
LCALLINIT_1820
JB20H.1,TSS2
RET;若DS18B20不存在则返回
TSS2:
MOVA,#0CCH;跳过ROM匹配
LCALLWRITE_1820
MOVA,#44H;发出温度转换命令
LCALLWRITE_1820
LCALLINIT_1820
MOVA,#0CCH;跳过ROM匹配
LCALLWRITE_1820
MOVA,#0BEH;发出读温度命令
LCALLWRITE_1820
LCALLREAD_18200
MOV37H,A;将读出的温度数据保存
RET
;*****************************************
;写DS18B20的程序
;*****************************************
WRITE_1820:
MOVR2,#8
CLRC
WR1:
CLRP2.0
NOP
NOP
NOP
NOP
RRCA
MOVP2.0,C
MOVR3,#35
DJNZR3,$
SETBP2.0
NOP
DJNZR2,WR1
SETBP2.0
RET
;*****************************************
;读DS18B20的程序,从DS18B20中读出两个字节的温度数据
;*****************************************
READ_18200:
MOVR4,#2;将温度高位和低位DS18B20中读
RE00:
MOVR2,#8
RE01:
CLRC
SETBP2.0
NOP
NOP
CLRP2.0
NOP
NOP
NOP
SETBP2.0
NOP
NOP
MOVC,P2.0
MOVR3,#35
RE20:
DJNZR3,RE20
RRCA
DJNZR2,RE01
MOV@R1,A
DECR1
DJNZR4,RE00
RET
;*****************************************
;将从DS18B20中读出的温度数据进行转换
;*****************************************
TEMPER_COV:
MOVA,#0F0H
ANLA,36H;舍去温度低位中小数点
SWAPA
MOV37H,A
MOVA,36H
JNBACC.3,TEMPER_COV1;四
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字 温度计 设计 里程