温度报警器ds18b20制作.ppt

上传人:本田雅阁 文档编号:2913181 上传时间:2019-06-05 格式:PPT 页数:21 大小:265.02KB
返回 下载 相关 举报
温度报警器ds18b20制作.ppt_第1页
第1页 / 共21页
温度报警器ds18b20制作.ppt_第2页
第2页 / 共21页
温度报警器ds18b20制作.ppt_第3页
第3页 / 共21页
温度报警器ds18b20制作.ppt_第4页
第4页 / 共21页
温度报警器ds18b20制作.ppt_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《温度报警器ds18b20制作.ppt》由会员分享,可在线阅读,更多相关《温度报警器ds18b20制作.ppt(21页珍藏版)》请在三一文库上搜索。

1、温度报警器设计制作,设计简介,温度是工业生产中常见的工艺参数之一,任何物理变化和化学反应过程都与温度密切相关,因此温度检测在日常活动与工业控制中已变得非常重要。 此设计是基于单片机与温度传感器的综合应用 此作品优势是设计相对精简,价钱相对便宜。,具体器件,89S52型单片机 DS18B20传感器 两位译码管 12M晶振 蜂鸣器 PCB板 电容、电阻、LED、开关数只,主要元件简介,DS18B20 DS18B20可将温度值转换为12位的数字量方式传送到单片机内 内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器.其特点为 体积更小、适用电压更宽、

2、更经济 ,并采用“一线制”传输,测量温度范围为 -55C+125C,在-10+85C范围内,精度为0.5C。DS18B20的精度较差为 2C,ATS52单片机 AT89S52 是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器 AT89S52具有以下标准功能: 8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口, 片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻 辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、

3、定时器/计数器、串口、中断继续工 作。掉电保护方式下,RAM内容被保存,振荡器被冻结, 单片机一切工作停止,直到下一个中断或硬件复位为止。,设计原理,由DS18B20传感器原理,可将温度值转换为12位的数字量方式传送到单片机内。单片机内将得到的数字量经过预先编写的程序处理得到一个数值,再将此值与预定值比较,当此值大于或等于预定值时,通过程序驱动灯闪亮和蜂鸣器发声;当其小于预设值时,外设处于常态;在两种状态下,二位译码管都将显示此时的瞬时温度值,主要功能,利用AT89S52单片机和DS18B20温度传感器实现达到预设温度值的蜂鸣器报警 可自由设置报警的数值(0到100度) 可复位重设 可扩充一些

4、其他功能,程序流程图,电路仿真图,报警程序,LED_0 EQU 30H LED_1 EQU 31H WENDU EQU 35H TEMPER_L EQU 29H ;存取低位 TEMPER_H EQU 28H FLAG EQU 38H FLAG1 BIT 00H DISP_SET EQU 37H H_TEM EQU 50H L_TEM EQU 51H ;差5度时的提示温度 ALARM_L BIT P3.0 ALARM_H BIT P3.1 GEWE BIT P3.4 SHIWE BIT P3.5 SOUND BIT P3.7 DQ BIT P1.0 LIGHT BIT P1.1 ;传感器工作检测

5、灯,SHEWEN BIT P2.7 ;温度设置开关 CLOSE BIT P1.7 ;关闭响声 CLOSE2 BIT 01H SET1_A BIT 02H ORG 0000H SJMP START ORG 0050H START: MOV SP,#70H SETB CLOSE2 CLR SET1_A MOV LED_0,#00H MOV LED_1,#00H CLR SOUND MOV H_TEM,#60 MOV L_TEM,#55 MAIN: LCALL GET_TEMPER MOV A,TEMPER_L MOV C,40H ;将28H中的最低位移入C RRC A MOV C,41H RRC

6、A MOV C,42H RRC A MOV C,43H RRC A MOV TEMPER_L,A,WAIT: SETB ALARM_L SETB ALARM_H CLR SOUND JB P2.7,SET1 CLR SET1_A MOV WENDU,29H ;读取转换结果 MOV A,#99 MOV R7,WENDU SUBB A,R7 JC OUT CLR C MOV A,H_TEM DEC A MOV R0,WENDU SUBB A,R0 ;判断是否高于上限 JC HALM SETB CLOSE2 MOV A,L_TEM DEC A SUBB A,WENDU ;判断是否低于下限 JC LA

7、LM NOP LJMP MAIN LALM: ;低温报警 CLR ALARM_L LJMP MAIN HALM: ;高温报警 JNB CLOSE2,CL ;关闭报警声 JNB CLOSE,CL2 MOV R2,#235 ;置计数值 SETB SOUND,DV: LCALL DELY500 LCALL DELY500 ;延时1毫秒 DJNZ R2,DV CPL ALARM_H ;标志位取反 SJMP CL CL2: CLR CLOSE2 CL: LJMP MAIN OUT: ;超过99度上限显示 LCALL GET_TEMPER_2 MOV A,TEMPER_L MOV C,40H ;将28H中

8、的最低位移入C RRC A MOV C,41H RRC A MOV C,42H RRC A MOV C,43H RRC A MOV TEMPER_L,A SETB CLOSE2 LJMP WAIT SET1: JB SET1_A,SET1_1 MOV LED_0,#00H MOV LED_1,#00H SET1_1: MOV A,LED_1 MOV B,#10 MUL AB ADD A,LED_0 MOV DISP_SET,A MOV H_TEM,DISP_SET MOV A,H_TEM SUBB A,#05H MOV L_TEM,A CLR C SETB CLOSE2 JNB P3.4,SE

9、R1 JNB P3.5,SER2,LCALL DISP_3 LJMP WAIT SER1: JNB P3.4,SER1 ;判断SP1是否按下 LCALL DELAY10MS ;若按下,则延时10ms左右 JNB P3.4,SER1 SETB SET1_A INC LED_0 MOV A,#9 SUBB A,LED_0 JNC CLR1 MOV LED_0,#00H CLR1: JNB P3.4,$ AJMP SET1 SER2: JNB P3.5,SER2 ;判断SP1是否按下 LCALL DELAY10MS ;若按下,则延时10ms左右 JNB P3.5,SER2 SETB SET1_A I

10、NC LED_1 MOV A,#9 SUBB A,LED_1 JNC CLR2 MOV LED_1,#00H CLR2: JNB P3.5,$ AJMP SET1 GET_TEMPER: SETB DQ ;读出转换后的温度值 BCD: LCALL INIT_1820 ;先复位DS18B20 JB FLAG,S22 LJMP BCD ; 判断DS1820是否存在 若DS18B20不存在则返回,S22: LCALL DELAY1 CLR LIGHT ;点亮检测灯 MOV A,#0CCH ;跳过ROM匹配 LCALL WRITE_1820 MOV A,#44H ;发出温度转换命令 LCALL WRI

11、TE_1820 NOP LCALL DISP LCALL INIT_1820 ;准备读温度前先复位 MOV A,#0CCH ;跳过ROM匹配 LCALL WRITE_1820 MOV A,#0BEH ;发出读温度命令 LCALL WRITE_1820 LCALL READ_18200 ;将读出的温度数据保存到28H/29H RET GET_TEMPER_2: SETB DQ ;读出转换后的温度值 BCD_2: LCALL INIT_1820 ;先复位DS18B20 JB FLAG,S22_2 LJMP BCD_2 ;判断DS1820是否存在 若DS18B20不存在则返回 S22_2: LCAL

12、L DELAY1 CLR LIGHT ;点亮检测灯 MOV A,#0CCH ;跳过ROM匹配 LCALL WRITE_1820 MOV A,#44H ;发出温度转换命令 LCALL WRITE_1820 NOP LCALL DISP_2,LCALL INIT_1820 ;准备读温度前先复位 MOV A,#0CCH ;跳过ROM匹配 LCALL WRITE_1820 MOV A,#0BEH ;发出读温度命令 LCALL WRITE_1820 LCALL READ_18200 ;将读出的温度数据保存到28H/29H RET WRITE_1820: MOV R2,#8 ;写DS18B20的子程序(有

13、具体的时序要求),一共8位数据 CLR C WR1: CLR DQ MOV R3,#6 DJNZ R3,$ RRC A MOV DQ,C MOV R3,#23 DJNZ R3,$ SETB DQ NOP DJNZ R2,WR1 SETB DQ RET READ_18200: MOV R4,#2 ;读DS18B20的程序,将温度高位和低位从DS18B20中读出 MOV R1,#29H ;低位存入29H(TEMPER_L),高位存入28H(TEMPER_H) RE00: MOV R2,#8 ;数据一共有8位 RE01: CLR C SETB DQ NOP NOP CLR DQ NOP NOP NO

14、P SETB DQ,MOV R3,#8 RE10: DJNZ R3,RE10 MOV C,DQ MOV R3,#23 DJNZ R3,$ RRC A DJNZ R2,RE01 MOV R1,A DEC R1 DJNZ R4,RE00 RET disp: mov a,29H ;显示子程序将29H中的,低8位十六进制数转换成10进制 mov b,#10 ;16进制/10=10进制 div ab mov LED_1,a ;十位在a mov LED_0,b ;个位在b mov dptr,#TAB ;指定查表启始地址 mov r0,#4 dpl1: mov r1,#250 ;显示1000次 dplop:

15、 mov a,LED_0 ; 取个位数 MOVC A,A+DPTR ;查个位数的7段代码 mov p0,a ;送出个位的7段代码 clr p2.3 ;开个位显示 acall DELAY1mS ;显示1ms setb p2.3 mov a,LED_1 ;取十位数 MOVC A,A+DPTR ;查十位数的7段代码 mov p0,a ;送出十位的7段代码 clr p2.2 ;开十位显示,acall DELAY1mS ;显示1ms setb p2.2 djnz r1,dplop ;100次没完循环 djnz r0,dpl1 ;4个100次没完循环 ret TAB: DB 3FH,06H,5BH,4FH

16、,66H DB 6DH,7DH,07H,7FH,6FH,40H DISP_2: MOV LED_0,#10 ;超过上限显示 MOV LED_1,#10 mov dptr,#TAB ;指定查表启始地址 mov r0,#4 dpl1_2: mov r1,#250 ;显示1000次 dplop_2: mov a,LED_0 MOVC A,A+DPTR ;查个位数的7段代码 mov p0,a ;送出个位的7段代码 clr p2.3 acall DELAY1mS setb p2.3 mov a,LED_1 ;取十位数 MOVC A,A+DPTR mov p0,a clr p2.2 acall DELAY

17、1mS setb p2.2 djnz r1,dplop_2 ;100次没完循环 djnz r0,dpl1_2 ;4个100次没完循环 ret DISP_3: mov a,DISP_SET ;显示子程序将29H中的,低8位十六进制数转换成10进制 mov b,#10 ;16进制/10=10进制 div ab mov LED_1,a ;十位在a,mov LED_0,b ;个位在b mov dptr,#TAB ;指定查表启始地址 mov r0,#20 dpl1_3: mov a,LED_0 MOVC A,A+DPTR ;查个位数的7段代码 mov p0,a ;送出个位的7段代码 clr p2.3 a

18、call DELAY1mS setb p2.3 mov a,LED_1 ;取十位数 MOVC A,A+DPTR mov p0,a clr p2.2 acall DELAY1mS setb p2.2 djnz r0,dpl1_3 ;4个100次没完循环 ret DELAY1mS: MOV R7,#0f0H DJNZ R7,$ RET INIT_1820: SETB DQ ;这是DS18B20复位初始化子程序 NOP CLR DQ MOV R1,#3 ;主机发出延时537微秒的复位低脉冲 TSR1: MOV R0,#107 DJNZ R0,$ DJNZ R1,TSR1 SETB DQ ;然后拉高数

19、据线 NOP NOP NOP MOV R0,#25H TSR2: JNB DQ,TSR3 DJNZ R0,TSR2 ;等待DS18B20回应,LJMP TSR4 TSR3: SETB FLAG ;置标志位,表示DS1820存在 LJMP TSR5 TSR4: CLR FLAG ;清标志位,表示DS1820不存在 LJMP TSR7 TSR5: MOV R0,#065H ;200uS TSR6: DJNZ R0,TSR6 ;时序要求延时一段时间 TSR7: SETB DQ RET DELAY10MS: MOV R6,#20 /延时10ms子程序 L1: MOV R7,#247 DJNZ R7,$ DJNZ R6,L1 RET DELAY1: MOV R7,#20H DJNZ R7,$ RET DELAY2: MOV R5,#20 D2: MOV R6,#20 D3: MOV R7,#250 DJNZ R7,$ DJNZ R6,D3 DJNZ R5,D2 RET DELY500: MOV R7,#0FDH DJNZ R7,$ RET END,实物图,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1