《单片机原理及应用课程设计报告基于DS18B20的多功能数字温度计.doc》由会员分享,可在线阅读,更多相关《单片机原理及应用课程设计报告基于DS18B20的多功能数字温度计.doc(17页珍藏版)》请在三一办公上搜索。
1、电子与电气工程系 单片机原理及应用课程设计报告 课题名称 : 基于DS18B20的多功能数字温度计 专 业 : 电气工程及其自动化_ 班 级 : _08追梦之班_ 学 号 :_ _5201314_姓 名 :_ _WYM_成 绩 :_优秀_指导老师 : _你和我_ 2011年 7月 8日前 言 单片机技术作为计算机技术的一个分支,广泛地应用于工业控制,智能仪器仪表,机电一体化产品,家用电器等各个领域。“单片机原理与应用”在工科院校各专业中已作为一门重要的技术基础课而普遍开设。学生在课程设计,毕业设计,科研项目中会广泛应用到单片机知识,而且,进入社会后也会广泛接触到单片机的工程项目。鉴于此,提高“
2、单片机原理及应用”课的教学效果,让学生参与课程设计实习甚为重要。单片机应用技术涉及的内容十分广泛,如何使学生在有限的时间内掌握单片机应用的基本原理及方法,是一个很有价值的教学项目。 单片机课程设计是针对模拟电子技术,数字逻辑电路,电路,单片机的原理及应用课程的要求,对我们进行综合性实践训练的实践学习环节,它包括选择课设任务、软件设计,硬件设计,调试和编写课设报告等实践内容。通过此次课程设计实现以下目标: 第一,让学生初步掌握单片机课程的试验、设计方法,即学生根据设计要求和性能约束,查阅文献资料,收集、分析类似的相关题目,并通过元器件的组装调试等实践环节,使最终硬件电路达到题目要求的性能指标;第
3、二,课程设计为后续的毕业设计打好基础,毕业设计是系统的工程设计实践,而课程设计的着眼点是让学生开始从理论学习的轨道上逐渐引向实际运用,从已学过的定性分析、定量计算的方法,逐步掌握工程设计的步骤和方法,了解科学实验的程序和实施方法。第三,培养学生勤于思考乐于动手的习惯,同时通过设计并制作单片机类产品,使学生能够自己不断地学习接受新知识。目 录前言11、设计项目简介32、电路原理图43、系统功能描述44、程序框图55、程序清单76、收获与体会167、参考文献161、设计项目简介:本课程设计是基于AT89C51单片机的测温系统,描述了利用数字温度传感器DS18B20开发测温系统的过程,重点对传感器和
4、单片机的硬件连接,软件编程以及各模块系统流程进行分析,该系统可以方便的是实现温度采集和显示,并可以根据需要任意设定上下限报警温度,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合我们日常生活和工农业生产中的温度测量,也可以当做温度处理模块嵌入其他系统中,作为其他主系统的辅助扩展。DS18B20和AT89C51结合实现最简温度检测系统,该系统结构简单,抗干扰能力强,适合与恶劣环境下进行现场温度测量,有广泛的应用前景。学生可以根据平时的观察,了解单片机实验的应用系统,弄清其结构和功能,结合单片机课程及其相关的知识,充分发挥自身的想象力和创造力,自行选定设计项目,但总体应达到以下要求:1、用
5、89C51CPU,12M时钟,常规的上电和手动复位电路 2、包括34矩阵键盘3、LCD显示显示器及接口4、一路蜂鸣器输出5至少有2路输入信号,可以是模拟量或数字量本设计首先是确定目标,然后确定各个功能模块的设计,再在Proteus软件上进行仿真,修改,仿真。关键词:单片机,数字控制,温度计, DS18B20,AT89C51。2、电路原理图:3、系统功能描述:通过34矩阵键盘设定温度值的上下限,并在LCD上显示出来,如High:81 Low:11,将温度传感器DS18B20设定的实时温度值,通过其数据线传送位单片机89C51,在单片机内部对采集的信号进行分析处理,即将采集到的温度值转换成ASCL
6、L码,最终在LCD上以十进制的形式显示出来,在单片机内部,通过数值大小比较程序将温度实时值与上下限进行比较,若实时值在设定范围内,则不报警,若不在设定范围内,则通过蜂鸣器和发光二极管报警,上限报警用绿色LED警示,下限报警用黄色LED警示。各模块如下: LCD显示器模块 温度传感器模块 上限LED警示模块 下限LED警示模块 34矩阵键盘模块 晶振及复位电路模块4、程序框图:5、程序清单: DQ BIT P3.3 BEEP BIT P3.7 RS EQU P2.0 RWEQU P2.1 EEQU P2.2 LXB1 EQU 30HLXB2 EQU 31HLXB3 EQU 32H LXB4 EQ
7、U 33HLCD_2 EQU 48HLCD_1 EQU 49HLCD_0 EQU 4BHT_L EQU 40HT_H EQU 41HORG 0000H LJMP MAIN ORG 0100HMAIN: MOV P0,#01H ;清屏并复位光标 LCALL ENABLEMOV P0,#38H ;设置8位、2行,5*7点阵LCALL ENABLEMOV P0,#0CH ;显示器开允许闪烁LCALL ENABLEMOV P0,#06H ;文字不动,光标自动右移LCALL ENABLELCALL FRISTMOV 43H,#T ;从LCD第二行43H开始显示字母T MOV 44H,# ;空格 MOV
8、45H,# ;空格 MOV 46H,#:MOV 4AH,#2EH MOV 4CH,#0DFH MOV 4DH,# START: LCALL READ_T ;调用读子程序 LCALL CONVERT_T ;调用转换成十进制的子程序 LCALL DISPLAY ;调用显示 LJMP STARTFRIST: MOV 50H,#H ;定义第一行 MOV 51H,#i ;显示High: MOV 52H,#g MOV 53H,#h MOV 54H,#: MOV 56H,# MOV 58H,#L ;显示Low: MOV 59H,#o MOV 5AH,#w MOV 5bH,#:CALL WRITE1;调用“写
9、”子程序CALL KEY;调用键盘输入子程序 MOV DPTR,#TABLE1 MOVC A,A+DPTR MOV 55H,A;读入下限值 CALL WRITE1 CALL KEY MOV DPTR,#TABLE1 MOVC A,A+DPTR MOV 56H,A;读入上限值 CALL WRITE1 CALL KEY MOV DPTR,#TABLE1 MOVC A,A+DPTR MOV 5DH,A ;读入下限值 CALL WRITE1 CALL KEY MOV DPTR,#TABLE1 MOVC A,A+DPTR MOV 5EH,A ;读入下限值;读入下限值 CALL WRITE1 CALL K
10、EY RETDS18B20_INIT: ;温度传感器初始化 SETB DQ NOP NOP CLR DQ MOV R7,#9INIT_DELAY: CALL DELAY60US DJNZ R7,INIT_DELAY SETB DQ CALL DELAY60US CALL DELAY60US MOV C,DQ JC ERROR CALL DELAY60US CALL DELAY60US CALL DELAY60US CALL DELAY60US RETERROR: CLR DQ SJMP DS18B20_INIT RETREAD_BYTE: ;读 MOV R7,#08H SETB DQ NOP
11、NOPLOOP: CLR DQ NOP NOP NOP SETB DQ MOV R6,#07H DJNZ R6,$ MOV C,DQ CALL DELAY60US RRC A SETB DQ DJNZ R7,LOOP CALL DELAY60US CALL DELAY60US RETWRITE_BYTE: ;写 MOV R7,#08H SETB DQ NOP NOPLOOP1:CLR DQ;复位 MOV R6,#07H DJNZ R6,$ RRC A MOV DQ,C CALL DELAY60US SETB DQ DJNZ R7,LOOP1 RETDELAY60US: ;延时60us子程序 M
12、OV R6,#1EH DJNZ R6,$ RETREAD_T: CALL DS18B20_INIT MOV A,#0CCH CALL WRITE_BYTE CALL DELAY60US CALL DELAY60US MOV A,#44H CALL WRITE_BYTE CALL DELAY60USREAD_T1: CALL DS18B20_INIT MOV A,#0CCH CALL WRITE_BYTE CALL DELAY60US MOV A,#0BEH CALL WRITE_BYTE CALL DELAY60US CALL READ_BYTE MOV T_L,A CALL READ_BYT
13、E MOV T_H,A RETCONVERT_T: ;转换成十进制 MOV A,T_H ANL A,#80H JZ TEMPC1 CLR C MOV A,T_L CPL A ADD A,#01H MOV T_L,A MOV A,T_H CPL A ADDC A,#00H MOV T_H,A MOV A,T_L ANL A,#0FH MOV DPTR,#TABLE3 MOVC A,A+DPTR MOV LCD_0,A MOV A,T_L ANL A,#0F0H SWAP A MOV T_L,A MOV A,T_H ANL A,#0FH SWAP A ORL A,T_L MOV B,#100 DI
14、V AB MOV LCD_3,#2DH SJMP TEMPC2TEMPC1: ;读入下限值 MOV A,T_L ANL A,#0FH MOV DPTR,#TABLE3 MOVC A,A+DPTR MOV LCD_0,A MOV A,T_L ANL A,#0F0H SWAP A MOV T_L,A MOV A,T_H ANL A,#0FH SWAP A ORL A,T_L MOV B,#100 DIV AB MOV DPTR,#TABLE2 MOVC A,A+DPTR MOV LCD_3,ATEMPC2: MOV A,#10 XCH A,B DIV AB MOV DPTR,#TABLE2 MOV
15、C A,A+DPTR MOV LCD_2,A MOV A,B MOV DPTR,#TABLE2 MOVC A,A+DPTR MOV LCD_1,A RETDISPLAY: ; 显示 MOV P0,#0C0H LCALL ENABLE LCALL CMPTEMP LCALL CMPTEMP1 LCALL WRITE3 RETENABLE: CLR RS; RS=0,选择指令寄存器 CLR RW ; RW=0,选择写模式 CLR E ; 禁止读/写LCD CALL DELAY ;调用延时子程序 SETB E ; E=1,允许读/写LCD RET ;子程序返回CMPTEMP: ;实时值与上下限比较
16、MOV A,LCD_2 CJNE A,55H,M1 JMP M2 M1: JNC M4 JMP M5 M2: MOV A,LCD_1 CJNE A,56H,M3 JMP M4 M3: JNC M4 JMP M5 M4: SETB P2.6 LCALL SHANGXIAN RET M5: CLR P2.6 RETCMPTEMP1: MOV A,LCD_2 CJNE A,5DH,XS1 JMP XS2 XS1: JC XS4 JMP XS5 XS2: MOV A,LCD_1 CJNE A,5EH,XS3 JMP XS4 XS3: JC XS4 JMP XS5 XS4: SETB P2.7 LCAL
17、L XIAXIAN JMP XS6 XS5: CLR P2.7 XS6: RETSHANGXIAN: ;上限报警音MOV R1,#5 BL1:CPL BEEP MOV R2,#300 DJNZ R2,$ DJNZ R3,BL1 RETXIAXIAN: ;下限报警音 MOV R4,#10BL2: CPL BEEP MOV R5,#10 DJNZ R5,$ DJNZ R4,BL2 RETWRITE1: MOV R1,#50H MOV P0,#80H CALL ENABLE A1: MOV A,R1 CALL WRITE2 INC R1 CJNE R1,#5FH,A1 RETWRITE3: MOV
18、R2,#12 MOV R1,#42H A2: MOV A,R1 CALL WRITE2 INC R1 DJNZ R2,A2 MOV R2,#7 RETWRITE2: MOV P0,A SETB RS CLR RW CLR E CALL DELAY SETB E RETDELAY: MOV R4,#05 D1:MOV R5,#0FFH DJNZ R5,$ DJNZ R4,D1 RETKEY: MOV P1,#00FH ;键盘行列扫描程序L1:JB P1.1,L2 LCALL DELAY0 JB P1.1,L2 MOV LXB1,#00H LJMP L4 L2:JB P1.2,L3 LCALL D
19、ELAY0 JB P1.2,L3 MOV LXB1,#01H LJMP L4 L3:JB P1.3,KEY LCALL DELAY0 JB P1.3,KEY MOV LXB1,#02H LJMP L4L4:MOV P1,#0F0H L5:JB P1.4,L6 LCALL DELAY0 JB P1.4,L6 MOV LXB2,#00H LJMP L9 L6: JB P1.5,L7 LCALL DELAY0 JB P1.5,L7 MOV LXB2,#01H LJMP L9 L7: JB P1.6,L8 LCALL DELAY0 JB P1.6,L8 MOV LXB2,#02H LJMP L9 L8
20、:JB P1.7,KEY LCALL DELAY0 JB P1.7,KEY MOV LXB2,#03H LJMP L9 L9:MOV A,LXB1 RL A RL A ADD A,LXB2 RETDELAY0:MOV LXB3,#080H L00: MOV LXB4,#200 DJNZ LXB4,$ DJNZ LXB3,L00 RETITABLE1:DB 31H,32H,33H,34H;键盘顺序 DB 35H,36H,37H,38H DB 39H,30H,-,30HTABLE2:DB 30H,31H,32H,33H,34H35H,36H,37H,38H,39H,3AHTABLE3:DB30H,31H,31H,32H,33H,33H34H,34H,35H,36H,36H,37H,38H38H,39H,39H6、收获与体会:7、参考文献1张毅刚 彭喜元.单片机原理与应用技术.北京:电子工业出版社,20101 王守中 聂元铭.51单片机开发入门与应用实例.北京:人民邮电出版社,20092李广弟.单片机基础.北京:北京航空航天大学出版社,19943阎石.数字电子技术基础(第三版). 北京:高等教育出版社,20064廖常初.现场总线概述J.电工技术,1999