温度报警器ds18b20制作ppt课件_第1页
温度报警器ds18b20制作ppt课件_第2页
温度报警器ds18b20制作ppt课件_第3页
温度报警器ds18b20制作ppt课件_第4页
温度报警器ds18b20制作ppt课件_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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_0EQU 30HLED_1 EQU 31HWENDUEQU35HTEMPER_L EQU 29H ;存取低位TEMPER_H EQU 28HFLAG EQU38HFLAG1 BIT 00HDISP_SET EQU 37HH_TEM EQU 50HL_TEM EQU 51H ;差5度时的提示温度ALARM_LBITP3.0ALARM_H BIT P3.1GEWE BIT P3.4SHIWE BITP3.5SOUNDBITP3.7DQ BIT P1.0LIGHT BIT P1.1 ;传感器工作检测灯SHEWEN BIT P2.7 ;温度设置开关CLOSE BIT P1.7 ;

5、关闭响声CLOSE2 BIT01HSET1_A BIT 02H ORG 0000H SJMP START ORG 0050HSTART: 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,#55MAIN: LCALL GET_TEMPER MOV A,TEMPER_L MOV C,40H ;将28H中的最低位移入C RRC A MOV C,41H RRC A MOV C,42H RRC A MOV C,43H RRC A MOV TEMPER_L,

6、A WAIT: SETB ALARM_L SETB ALARM_H CLR SOUND JB P2.7,SET1 CLR SET1_A MOV WENDU,29H;读取转换结果 MOVA,#99 MOV R7,WENDU SUBB A,R7 JC OUT CLR C MOVA,H_TEM DECA MOVR0,WENDU SUBBA,R0;判断是否高于上限 JC HALM SETB CLOSE2 MOV A,L_TEM DEC A SUBB A,WENDU ;判断是否低于下限 JCLALM NOP LJMP MAINLALM:;低温报警 CLR ALARM_L LJMPMAINHALM:;高温

7、报警 JNB CLOSE2,CL;关闭报警声 JNB CLOSE,CL2 MOVR2,#235;置计数值 SETBSOUNDDV: LCALLDELY500 LCALLDELY500;延时1毫秒 DJNZR2,DV CPL ALARM_H;标志位取反 SJMP CLCL2: CLR CLOSE2CL: LJMPMAINOUT: ;超过99度上限显示 LCALL GET_TEMPER_2 MOV A,TEMPER_L MOV C,40H;将28H中的最低位移入C RRC A MOV C,41H RRC A MOV C,42H RRC A MOV C,43H RRC A MOV TEMPER_L,

8、A SETB CLOSE2 LJMP WAITSET1: JB SET1_A,SET1_1 MOV LED_0,#00H MOV LED_1,#00HSET1_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,SER1 JNB P3.5,SER2LCALL DISP_3 LJMP WAITSER1: JNB P3.4,SER1;判断SP1是否按下 LCALL DEL

9、AY10MS;若按下,则延时10ms左右 JNB P3.4,SER1 SETB SET1_A INC LED_0 MOV A,#9 SUBB A,LED_0 JNC CLR1 MOV LED_0,#00HCLR1: JNB P3.4,$ AJMP SET1SER2: JNB P3.5,SER2;判断SP1是否按下 LCALL DELAY10MS;若按下,则延时10ms左右 JNB P3.5,SER2 SETB SET1_A INC LED_1 MOV A,#9 SUBB A,LED_1 JNC CLR2 MOV LED_1,#00HCLR2: JNB P3.5,$ AJMP SET1 GET_

10、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 WRITE_1820 NOP LCALL DISP LCALL INIT_1820 ;准备读温度前先复位 MOV A,#0CCH ;跳过ROM匹配 LCALL WRITE_1820

11、MOV A,#0BEH ;发出读温度命令 LCALL WRITE_1820 LCALL READ_18200 ;将读出的温度数据保存到28H/29H RETGET_TEMPER_2: SETB DQ ;读出转换后的温度值BCD_2: LCALL INIT_1820 ;先复位DS18B20 JB FLAG,S22_2 LJMP BCD_2 ;判断DS1820是否存在 若DS18B20不存在则返回S22_2: LCALL DELAY1 CLR LIGHT ;点亮检测灯 MOV A,#0CCH ;跳过ROM匹配 LCALL WRITE_1820 MOV A,#44H ;发出温度转换命令 LCALL

12、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 RETWRITE_1820: MOV R2,#8 ;写DS18B20的子程序(有具体的时序要求),一共8位数据 CLR CWR1: CLR DQ MOV R3,#6 DJNZ R3,$ RRC A MOV DQ,C MOV R3,#23 DJNZ R3,$ SETB

13、 DQ NOP DJNZ R2,WR1 SETB DQ RETREAD_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 NOP SETB DQ MOV R3,#8RE10: DJNZ R3,RE10 MOV C,DQ MOV R3,#23 DJNZ R3,$ RRC A DJNZ R2,RE01 MOV R1,A D

14、EC R1 DJNZ R4,RE00 RETdisp: 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,#4dpl1: mov r1,#250 ;显示1000次dplop: mov a,LED_0 ; 取个位数 MOVC A,A+DPTR ;查个位数的7段代码 mov p0,a ;送出个位的7段代码 clr p2.3 ;开个位显示 acall DELAY1mS ;显示1m

15、s 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次没完循环 retTAB: DB 3FH,06H,5BH,4FH,66H DB 6DH,7DH,07H,7FH,6FH,40HDISP_2: MOV LED_0,#10 ;超过上限显示 MOV LED_1,#10 mov dptr,#TAB ;指定查表启始地址 mov

16、 r0,#4dpl1_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 DELAY1mS setb p2.2 djnz r1,dplop_2 ;100次没完循环 djnz r0,dpl1_2 ;4个100次没完循环 retDISP_3: mov a,DISP_SET ;显示子程序将29H中的

17、,低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,#20dpl1_3: 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 DELAY1mS setb p2.2 djnz r0,

18、dpl1_3 ;4个100次没完循环 retDELAY1mS: MOV R7,#0f0H DJNZ R7,$ RETINIT_1820: SETB DQ ;这是DS18B20复位初始化子程序 NOP CLR DQ MOV R1,#3 ;主机发出延时537微秒的复位低脉冲TSR1: MOV R0,#107 DJNZ R0,$ DJNZ R1,TSR1 SETB DQ ;然后拉高数据线 NOP NOP NOP MOV R0,#25HTSR2: JNB DQ,TSR3 DJNZ R0,TSR2 ;等待DS18B20回应 LJMP TSR4TSR3: SETB FLAG ;置标志位,表示DS1820存在 LJMP TSR5TSR4: CLR FLAG ;清标志位,表示DS1820不存在 LJMP TSR7TSR5: MOV

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论