实时温度测量实训报告.docx
《实时温度测量实训报告.docx》由会员分享,可在线阅读,更多相关《实时温度测量实训报告.docx(13页珍藏版)》请在冰豆网上搜索。
实时温度测量实训报告
实时温度测量实训报告
姓名:
***
学号:
*****
班级:
******
浙江●绍兴
2010年12月
第一章方案认证及确定
温度传感器将温度信息变换为模拟电压信号后,将电压信号放大到单片机可以处理的范围内,经过低通滤波,滤掉干扰信号送入单片机。
单片机将检测到的温度信息与设定值进行比较,如果检测值高于设定值,则启动制冷系统,降低环境温度;同理,如果检测值低于设定值,则启动加热系统,提高环境温度,达到控制温度的目的。
该单片机温度控制系统是以AT89C51单片机为控制核心,用温度传感器DS18B20进行温度采集。
整个系统硬件部分包括温度检测系统、A/D转换、单片机、I/O设备、控制执行系统等。
单片机温度控制系统控制框图如下所示:
第二章硬件设计
2.1原理图
Proteus仿真结果显示:
2.2原理图说明
设计中,使用AT89C51的P1.0管脚接收由温度传感器送出的数字温度信号;管脚P0.0~P0.7用于输出温度各位上的数字,连接LED数码管,作为显示内容;P2.0~P2.2管脚作为LED数码管轮流显示的控制信号的输出端;P3.0作为温度越界判据的信号输出的端。
单片机的外围设备包括:
时钟振荡器、DS18B20数字温度传感器、温度显示设备和高温制冷电机等。
用DS18820测量温度,在其内部就能进行A/D转换,输出数字量与单片机直接通讯,无需外加A/D转换器,转换速度快,降低了成本,而且简化了电路,提高了系统的集成度,使其满足了最简的要求。
这个温度传感器稍加改良,配合半导体制冷器还能实现高精度的温度控制功能。
2.3主要元器件介绍
2.3.1数字温度传感器DS18B20主要特性:
全数字温度转换及输出。
先进的单总线数据通信。
最高12位分辨率,精度可达土0.5摄氏度。
12位分辨率时的最大工作周期为750毫秒。
可选择寄生工作方式。
检测温度范围为–55°C~+125°C(–67°F~+257°F)
内置EEPROM,限温报警功能。
64位光刻ROM,内置产品序列号,方便多机挂接。
多样封装形式,适应不同硬件系统。
2.3.2DS18B20的封装结构
2.3.3DS18B20工作原理及应用
DS18B20的温度检测与数字数据输出全集成于一个芯片之上,从而抗干扰力更强。
其一个工作周期可分为两个部分,即温度检测和数据处理。
在讲解其工作流程之前我们有必要了解18B20的内部存储器资源。
18B20共有三种形态的存储器资源,它们分别是:
ROM只读存储器,用于存放DS18B20ID编码,其前8位是单线系列编码(DS18B20的编码是19H),后面48位是芯片唯一的序列号,最后8位是以上56的位的CRC码(冗余校验)。
数据在出产时设置不由用户更改。
DS18B20共64位ROM。
RAM数据暂存器,用于内部计算和数据存取,数据在掉电后丢失,DS18B20共9个字节RAM,每个字节为8位。
第1、2个字节是温度转换后的数据值信息,第3、4个字节是用户EEPROM(常用于温度报警值储存)的镜像。
在上电复位时其值将被刷新。
第5个字节则是用户第3个EEPROM的镜像。
第6、7、8个字节为计数寄存器,是为了让用户得到更高的温度分辨率而设计的,同样也是内部温度转换、计算的暂存单元。
第9个字节为前8个字节的CRC码。
EEPROM非易失性记忆体,用于存放长期需要保存的数据,上下限温度报警值和校验数据,DS18B20共3位EEPROM,并在RAM都存在镜像,以方便用户操作。
第三章软件设计
3.1程序框图
3.2程序清单
ORG0000H
TEMPER_LEQU29H
TEMPER_HEQU28H
FLAG1EQU38H
A_BITEQU20H
B_BITEQU21H
TJEQU70H
DQEQUP2.7
MAIN1:
LCALLGET_TEMPER
MOVA,29H
MOVC,40H
RRCA
MOVC,41H
RRCA
MOVC,42H
RRCA
MOVC,43H
RRCA
MOV29H,A
MOVA,TJ
CJNEA,#0,MAIN2
CLRP1.7
MOVTJ,#1
AJMPMAIN3
MAIN2:
CJNEA,#1,MAIN3
SETBP1.7
MOVTJ,#0
MAIN3:
LCALLDISPLAY
AJMPMAIN1
INIT_1820:
SETBDQ
NOP
CLRDQ
MOVR1,#3
TSR1:
MOVR0,#107
DJNZR0,$
DJNZR1,TSR1
SETBDQ
NOP
NOP
NOP
MOVR0,#25H
TSR2:
JNBDQ,TSR3
DJNZR0,TSR2
LJMPTSR4
TSR3:
SETBFLAG1
LJMPTSR5
TSR4:
CLRFLAG1
LJMPTSR7
TSR5:
MOVR0,#117
TSR6:
DJNZR0,TSR6
TSR7:
SETBDQ
RET
GET_TEMPER:
SETBDQ
LCALLINIT_1820
JBFLAG1,TSS2
RET
TSS2:
MOVA,#0CCH
LCALLWRITE_1820
MOVA,#44H
LCALLWRITE_1820
LCALLDISPLAY
LCALLINIT_1820
MOVA,#0CCH
LCALLWRITE_1820
MOVA,#0BEH
LCALLWRITE_1820
LCALLREAD_18200
RET
WRITE_1820:
MOVR2,#8
CLRC
WR1:
CLRDQ
MOVR3,#6
DJNZR3,$
RRCA
MOVDQ,C
MOVR3,#23
DJNZR3,$
SETBDQ
NOP
DJNZR2,WR1
SETBDQ
RET
READ_18200:
MOVR4,#2
MOVR1,#29H
RE00:
MOVR2,#8
RE01:
CLRC
SETBDQ
NOP
NOP
CLRDQ
NOP
NOP
NOP
SETBDQ
MOVR3,#9
RE10:
DJNZR3,RE10
MOVC,DQ
MOVR3,#23
RE20:
DJNZR3,RE20
RRCA
DJNZR2,RE01
MOV@R1,A
DECR1
DJNZR4,RE00
RET
DISPLAY:
MOVA,29H
MOVB,#10
DIVAB
MOVB_BIT,A
MOVA_BIT,B
MOVDPTR,#NUMTAB
MOVR0,#4
DPL1:
MOVR1,#250
DPLOP:
MOVA,A_BIT
MOVCA,@A+DPTR
MOVP0,A
CLRP2.1
ACALLD1MS
SETBP2.1
MOVA,B_BIT
MOVCA,@A+DPTR
MOVP0,A
CLRP2.0
ACALLD1MS
SETBP2.0
MOVA,#0CH
MOVCA,@A+DPTR
MOVP0,A
CLRP2.3
ACALLD1MS
SETBP2.3
MOVP0,#80H
CLRP2.2
ACALLD1MS
SETBP2.2
DJNZR1,DPLOP
DJNZR0,DPL1
RET
D1MS:
MOVR7,#50
DJNZR7,$
RET
DELAY10:
MOVR6,#20
D3:
MOVR5,#255
DJNZR5,$
DJNZR6,D3
RET
DELAY125:
MOVR6,#255
D1:
MOVR5,#255
DJNZR5,$
DJNZR6,D1
RET
DELAY1S:
MOVR7,#8
D2:
LCALLDELAY125
DJNZR7,D2
RET
NUMTAB:
DB3FH,06H,5BH,4FH
DB66H,6DH,7DH,07H
DB7FH,6FH,77H,7CH
DB39H,5EH,79H,71H
END
第四章调试过程
4.1现象描述
制作成功硬件产品后,我们进行硬件仿真调试。
接通电源和地线数码管显示00.C,然后数码管在误差内读出当前DS18B20所感应到的温度,我的检测结果是19.C。
用手按住DS18B20,数码管显示温度值升高。
4.2和预期目标的差距
我调试了两次,第一次数码管没有显示,调试失败了。
我回去认真检查了各种会出现的原因的地方,发现原来我的AT89C51单片机接地线没有接地,导致单片机无法工作。
修正回来后终于调试成功了。
4.3可以改进的地方,存在的不足等
在硬件排版方面,我做的还不够完美,导线接了过多,容易造成一定程度上的短路现象发生。
在焊接工艺方面,焊接点不够光泽鲜亮。
第五章实训总结
经过将近一周的努力,基于单片机AT89C51的实时温度测量系统实训顺利结束。
我们进行了对DS18B20资料的查阅整理、软件设计,硬件焊接,产品调试等几个流程。
基于AT89C51单片机的温度测量系统硬件电路设计方法、工作原理以及程序设计。
利用PT100阻值随温度变化的特点,将其和其他三个电阻构成非平衡电桥,因而温度的变化可转化成电桥输出微弱电压信号的变化,电压信号经集成运放电路放大后送到A/D转换器,将模拟信号变换成效字信号,单片机根据输入量和设定量进行运算,将结果送到数码管显示,完成对温度的测量。
该系统可实现对温度实时较精确的测量,测量范围为0-200℃。
温度采集显示系统的开发在很大意义上提高了生产生活的需要,便于生产中对温度的控制,有效的提高了生产质量。
外围电路比较简单杂,测量精度较高,分辨力高,使用方便。
温度检测是现代检测技术的重要组成部分,在保证产品质量、节约能源和安全生产等方面起着关键的作用。
本次毕业设计正是为了完成温度采集显示而设计的,而且采用了温度传感器,可以说与人们的日常生活是息息相关的,具有很大的现实意义。
AT89C55/51芯片是由ATMEL公司推出的51系列8位单片机,AT89C55片内主要有20KBFlash存储器、256字节片内RAM,4个8位的双向可寻址I/O口,1个全双工UART(通用异步接收发送器)的串行接口、3个16位的定时器/计数器、多个优先级的嵌套中断结构,及一个片内振荡器和时钟电路。
系统中主机利用了AT89C55丰富的20KB闪存资源永久保存实时的测量信息、历史的测量数据等关键结果,从机完成数据采集、传送。
主机位于监视室,从机位于各粮仓内,主从机之间有一定的距离,信号的传输采用串行异步通信方式,AT89C55/51单片机内部集成的UART模块,适合于同其他计算机系统及单片机外扩的外设芯片进行通信,可实现全双工异步、半双工同步主控和半双工同步从控三种工作方式。
本系统中利用其UART模块工作于全双工异步通信方式,其中TX为发送线、RC为接收线,利用RS-422驱动器和接收器,如MC3487和MC3486芯片,实现信号的稳定传输。
整个设计通过了软件和硬件上的调试、仿真。
我想这对于我以后的学习和工作都会有很大的帮助的,。
在这次实训中遇到了很多的问题,比如在软件编程和硬件仿真调试时都出现过问题。
在实际设计中才发现,书本上的理论知识在实际运用时还是有很大的出入的,所以有些问题必须深入地理解,而且要不断的和实际加以验证。
遇到问题一定要靠自己一点一滴去解决,而在解决问题的过程中也是我个人能力的提升的过程。
对于单片机设计,硬件设计是比较简单的主要是程序编写方面比较繁琐。
而程序设计是一个灵魂所在,需要对单片机的结构和功能很熟悉。
可以说单片机的设计是软件和硬件的结合,二者是密不可分的。
设计一个成功的完整电路,必须要有耐心,要有坚持不懈的恒心。
很多同学在看到这样一大堆程序清单时就只会抱怨,害怕自己在规定时间内完成不了,索性放弃了编写,等着别的同学编好后能够拷贝给他。
总是抱着一种畏难的心理,那只会一事无成,老实说,我一直很鄙视这种人。
程序设计和编写是一项很繁琐的工程,在整个电路的设计过程中,花费时间最多的是各个单元电路的连接以及电路的细节设计上,如在多种方案的选择中,我们仔细比较分析其原因和可行方案,在焊接时要防止虚焊,焊接点要光泽鲜亮。
电解电容和二极管要注意正负极区分,以免元器件烧毁损坏。
以及开关焊接时要注意引脚问题,输入程序时要细心等,最后在老师的指导下调试整个电路,使整个电路可以稳定的工作。
在实训过程中,我深刻地体会到在设计过程中,要反复实践和验证。
第一次调试失败,心中的确有点失望,我不怀疑自己的能力,只怪自己不够细心,细节决定成败,我过度地估算了自己的成功期望导致预期结果的差距过大。
此时需要自己静下心,仔细查找原因。
总体来说,这次实训让我受益匪浅,在实际设计中体验到了成功实现所需功能的喜悦,也加强了我们的动手操作能力,在枯燥的理论知识中终于感受到实践的兴奋。