项目温控报警制作与调试.docx
- 文档编号:27635269
- 上传时间:2023-07-03
- 格式:DOCX
- 页数:27
- 大小:262.80KB
项目温控报警制作与调试.docx
《项目温控报警制作与调试.docx》由会员分享,可在线阅读,更多相关《项目温控报警制作与调试.docx(27页珍藏版)》请在冰豆网上搜索。
项目温控报警制作与调试
项目5《18B20温控报警器制作与调试》
项目描述和要求
项目描述
本项目基于AT89S51单片机的数字温度报警器系统。
以数字温度传感器18B20作为核心元件,采纳LED数码管作为显示,以蜂鸣器作为报警器,该系统能够方便的实现温度的搜集和报警,并能够依照需要任意上下限报警温度,它利用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优势,适合于咱们日常生活和工、农业生产中的温度测量,也能够当做温度处置模块潜入其他系统中,作为其他主系统的辅助扩展。
DS18B20与AT89S51结合实现最简温度报警系统,该系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度测量,有普遍的应用前景。
项目要求
完成作品详细要求如下:
1.质量要求:
温度搜集、报警准确,数码管显示成效稳固清楚、无乱码。
2.平安要求:
作品无短路故障,正确利用仪器仪表,凡通电测试必需通过教师同意才能执行,碰到特殊情形当即断电并报告教师。
3.文明要求:
不要携带任何饮料进入实训室,统一穿好校服、佩带好校卡,进入实训室不喧哗吵闹,书包统一放置讲台隔壁。
自觉遵守实训室规定进行项目作业。
4.环保要求:
制作进程能重复利用的元器件要尽可能重复利用,电路布局尽可能紧凑不浪费板材,下课离开实训台请关闭实训台电源。
知识预备:
了解温控报警器
图5-1图5-2
温度是科学技术中最大体的物理量之一,物理、化学、生物等学科都离不开温度。
在工业生产和实验研究中,像电力、化工、石油、冶金、航空航天、机械制造、粮食存储、酒类生产等领域内,温度常常是表征对象和进程状态的最重要的参数之一。
比如,发电厂锅炉的温度必需操纵在必然的范围之内;许多化学反映的工艺进程必需在适当的温度下才能正常进行;炼油进程中,原油必需在不同的温度和压力条件下进行分馏才能取得汽油、柴油、煤油等产品。
没有适合的温度环境,许多电子设备就不能正常工作,粮仓的储粮就会变质霉烂,酒类的品质就没有保障。
因此,各行各业对温度操纵的要求都愈来愈高。
可见,温度的测量和操纵是超级重要的。
温控报警器电路分析
本项目设计的目的是实现一种可持续高精度调温的温度操纵系统,它应用普遍,功能壮大,小巧美观,便于携带,是一款既有效又廉价的操纵系统。
考虑利用温度传感器,结合单片机电路设计,本项目采纳一只DS18B20温度传感器,直接读取被测温度值,以后进行转换,依次完成设计要求。
(1)电路结构
在本系统的电路设计方框图如图5-3所示,它由三部份组成:
①操纵部份主芯片采纳单片机AT89S51;②显示部份采纳4位LED数码管以动态扫描方式实现温度显示;③温度搜集部份采纳DS18B20温度传感器;④报警部份采纳蜂鸣器。
图5-3温控报警设计方框图
(2)元件介绍
18B20
图5-4DS18B20封装形式和引脚功能
DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改良型智能温度传感器,与传统的热敏电阻等测温元件相较,它能直接读出被测温。
这一部份要紧完成对温度信号的搜集和转换工作,由DS18B20数字温度传感器及其与单片机的接口部份组成。
数字温度传感器DS18B20把搜集到的温度通过数据引脚传到单片机的口,单片机同意温度并存储。
此部份只用到DS18B20和单片机,硬件很简单
DS18B20的性能特点如下:
1)独特的单线接口仅需要一个端口引脚进行通信;
2)多个DS18B20能够并联在惟一的三线上,实现多点组网功能;
3)不必外部器件;
4)可通过数据线供电,电压范围为~;
5)零待机功耗;
6)温度以3位数字显示;
7)用户可概念报警设置;
8)报警搜索命令识别并标志超进程序限定温度(温度报警条件)的器件;
9)负电压特性,电源极性接反时,温度计可不能因发烧而烧毁,但不能正常工作。
DS18B20内部结构要紧由四部份组成:
1)64位光刻ROM。
开始8位是产品类型的编号,接着是每一个器件的惟一的序号,共有48位,最后8位是前56位的CRC校验码,这也是多个DS18B20能够采纳一线进行通信的缘故。
64位闪速ROM的结构如下:
表5-1ROM结构
8b检验CRC
48b序列号
8b工厂代码(10H)
MSBLSBMSBLSBMSBLSB
图5-5DS18B20内部结构
2)非挥发的温度报警触发器TH和TL,可通过软件写入用户报警上下限值。
3)高速暂存存储,能够设置DS18B20温度转换的精度。
DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的E2PRAM。
高速暂存RAM的结构为8字节的存储器,结构如下图。
头2个字节包括测得的温度信息,第3和第4字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。
第5个字节,为配置寄放器,它的内容用于确信温度值的数字转换分辨率。
DS18B20工作时寄放器中的分辨率转换为相应精度的温度数值。
它的内部存储器结构和字节概念如下图。
低5位一直为1,TM是工作模式位,用于设置DS18B20在工作模式仍是在测试模式。
表5-2DS18B20内部存储器结构
Byte0
温度测量值LSB(50H)
Byte1
温度测量值MSB(50H)
E2PROM
Byte2
TH高温寄存器
←----→
TH高温寄存器
Byte3
TL低温寄存器
←----→
TL低温寄存器
Byte4
配位寄存器
←----→
配位寄存器
Byte5
预留(FFH)
Byte6
预留(0CH)
Byte7
预留(IOH)
Byte8
循环冗余码校验(CRC)
2)非挥发的温度报警触发器TH和TL,可通过软件写入用户报警上下限值。
3)高速暂存存储,能够设置DS18B20温度转换的精度。
DS18B20出厂时该位被设置为0,用户要去改动,R1和R0决定温度转换的精度位数,来设置分辨率,如图。
图5-3DS18B20字节概念
TM
R1
R0
1
1
1
1
1
由表5-4可见,分辨率越高,所需要的温度数据转换时刻越长。
因此,在实际应用中要将分辨率和转换时刻衡量考虑。
高速暂存RAM的第六、7、8字节保留未用,表现为全逻辑1。
第9字节读出前面所有8字节的CRC码,可用来查验数据,从而保证通信数据的正确性。
当DS18B20接收到温度转换命令后,开始启动转换。
转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第一、2字节。
单片性能够通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以℃/LSB形式表示。
当符号位S=0时,表示测得的温度值为正值,能够直接将二进制位转换为十进制;当符号位S=1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。
表5-4DS18B20温度转换时刻表
R1
R0
分辨率/位
温度最大转向时间/ms
0
0
9
0
1
10
1
0
11
375
1
1
12
750
表5-5 一部份温度对应值表
温度/℃
二进制表示
十六进制表示
+125
0000011111010000
07D0H
+85
0000010101010000
0550H
+
0000000110010000
0191H
+
0000000010100001
00A2H
+
0000000000000010
0008H
0
0000000000001000
0000H
1111111111110000
FFF8H
1111111101011110
FF5EH
1111111001101111
FE6FH
-55
1111110010010000
FC90H
4)CRC的产生
在64bROM的最高有效字节中存储有循环冗余校验码(CRC)。
主机依照ROM的前56位来计算CRC值,并和存入DS18B20中的CRC值做比较,以判定主机收到的ROM数据是不是正确。
另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。
系统对DS18B20的各类操作按协议进行。
操作协议为:
初使化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处置数据。
蜂鸣器
图5-6蜂鸣器图5-7蜂鸣器驱动电路
(3)电路原理图及工作原理分析
本项目电路采纳18B20进行温度搜集,将信号送单片机进行分析,然后单片机将信号进行处置,将实际温度送到LED数码管显示,同时对搜集温度进行监控,超出限定范围那么操纵蜂鸣器发出报警声音。
(提示:
因P0口作为数据输出,故在P0口增加了上拉电阻10K排阻,保障其稳固输出。
)
图5-8数码管显示电路原理图
项目实施:
组织方式
全班同窗分组,每组3-4人,由教师确信好小组长,小组长依照教师的要求负责工具清点,纪律治理,元器件发放,实训台整理等工作,协助教师治理好自己的小组。
小组成员集体讨论,按下表工作流程,制定工作打算,并填写下表。
表3-2工作打算表
序号
工作流程
时间分配(分钟)
人员分工
1
理论学习
2
画元件布局图
3
编写控制程序
4
选择、检测元件
5
电路装配与调试
6
芯片烧录出成品
计划时间:
小时,实际时间:
小时,审核:
打算实施
每一个小组长依照教师的各项指令和要求完成项目打算实施。
(1)小组长对小组进行考勤,将考勤情形报给班级考勤员;
(2)小组长课前催促小组成员清点每一个工位上的工具是不是齐全,将清点情形报给学科代表;
(3)教师讲解实训进程中需要注意的问题,分析电路原理图,将学生在实操进程中可能碰到的问题进行分析讲解,减少实训困难,提高实训成功率;
(4)科代表依照教师的要求发放元器件到每一个小组。
元件检测
本项目电路中所包括的元件见下表
序号
品名
规格
数量
备注
1
电阻
10K,1/4W
,1/4W
100,1/4W
2
1
8
2
排阻
9个引脚10K
1
3
数码管
两位
2
4
DS18B20
TO92封装
1
5
纤维万用电路板
21*18cm
1
6
镀锡线
Φ
若干
7
晶体振荡器
12M
1
8
电解电容
10uF
1
9
陶瓷电容
30PF
2
10
单片机芯片
AT89S51
1
在焊接装配电路之前,请同窗们利用以前学过的元器件检测知识检测排阻、色环电阻,电解电容。
认真观看所领到的元器件,如有疑问或与电路图不相符的请告知小组长。
由小组长上报给教师。
焊接装配
利用全能电路板进行焊接装配。
焊接元件时要按从低到高的顺序进行焊接,元件摆放要端正,布局合理,电阻卧放。
连接导线时要注意,图中AT89S51接电源正极的第40脚和接地的第20脚没有画出,因此在组装时要将这两个引脚用导线连接出来,电源正极用红色导线,接地用黑色导线。
电路板能够两面布线,如此就可不能显现导线交叉短路的现象。
元件布局示用意如所示。
图5-13温控报警器电路元件布局示用意
、电路调试
(1)DS18B20的工作原理
DS18B20工作时序
依照DS18B20的通信协议,主机操纵DS18B20完成温度转换必需通过三个步骤:
1.每一次读写之前都必需要对DS18B20进行复位;
2.复位成功后发送一条ROM指令;
3.最后发送RAM指令,如此才能对DS18B20进行预定的操作。
复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待15~60微秒左右后发出60~240微秒的存在低脉冲,主CPU收到此信号表示复位成功。
其工作时序包括初始化时序、写时序和读时序,具体工作方式如图,,所示。
1)初始化时序
图5-初始化时序
总线上的所有传输进程都是以初始化开始的,主机响应应答脉冲。
应答脉冲使主机明白,总线上有从机设备,且预备就绪。
主机输出低电平,维持低电平常刻至少480us,以产生复位脉冲。
接着主机释放总线,Ω上拉电阻将总线拉高,延时15~60us,并进入同意模式,以产生低电平应答脉冲,假设为低电平,再延时480us。
2)写时序
图3-2写时序
写时序包括写0时序和写1时序。
所有写时序至少需要60us,且在2次独立的写时序之间至少需要1us的恢复时刻,都是以总线拉低开始。
写1时序,主机输出低电平,延时2us,然后释放总线,延时60us。
写0时序,主机输出低电平,延时60us,然后释放总线,延时2us。
3)读时序
图3-3读时序
总线器件仅在主机发出读时序是,才向主机传输数据,因此,在主机发出读数据命令后,必需马上产生读时序,以便从性能够传输数据。
所有读时序至少需要60us,且在2次独立的读时序之间至少需要1us的恢复时刻。
每一个读时序都由主机发起,至少拉低总线1us。
主机在读时序期间必需释放总线,而且在时序起始后的15us之内采样总线状态。
主机输出低电平延时2us,然后主机转入输入模式延时12us,然后读取总线当前电平,然后延时50us[4]
(2)ROM操作命令
当主机收到DSl8B20的响应信号后,即能够发出ROM操作命令之一,这些命令如表:
ROM操作命令。
1)DS18B20的测温原理:
每一片DSl8B20在其ROM中都存有其唯一的48位序列号,在出厂前已写入片内ROM中。
主机在进入操作程序前必需用读ROM(33H)命令将该DSl8B20的序列号读出。
程序能够先跳过ROM,启动所有DSl8B20进行温度变换,以后通过匹配ROM,再一一地读回每一个DSl8B20的温度数据。
DS18B20的测温原理如下图,图中低温度系数晶振的振荡频率受温度的阻碍很小,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度转变其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量。
计数门的开启时刻由高温度系数振荡器来决定,每次测量前,第一将-55℃所对应的基数别离置入减法计数器1和温度寄放器中,减法计数器1和温度寄放器被预置在-55℃所对应的一个基数值。
减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄放器的值将加1,减法计数器1的预置将从头被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄放器值的累加,现在温度寄放器中的数值即为所测温度。
图中的斜率累加器用于补偿和修正测温进程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述进程,直至温度寄放器值达到被测温度值.
表3-1ROM操作命令
指令
约定代码
功能
读ROM
33H
读DS18B20ROM中的编码
符合ROM
55H
发出此命令之后,接着发出64位ROM编码,访问单线总线上与该编码相对应的DS18B20使之作出响应,为下一步对该DS18B20的读写作准备
搜索ROM
0F0H
用于确定挂接在同一总线上DS18B20的个数和识别64位ROM地址,为操作各器件作好准备
跳过ROM
0CCH
忽略64位ROM地址,直接向DS18B20发温度变换命令,适用于单片工作。
告警搜索
命令
0ECH
执行后,只有温度超过设定值上限或者下限的片子才做出响应
温度变换
44H
启动DS18B20进行温度转换,转换时间最长为500MS,结果存入内部9字节RAM中
读暂存器
0BEH
读内部RAM中9字节的内容
写暂存器
4EH
发出向内部RAM的第3,4字节写上、下限温度数据命令,紧跟读命令之后,是传送两字节的数据
复制暂存器
48H
将E2PRAM中第3,4字节内容复制到E2PRAM中
重调E2PRAM
0BBH
将E2PRAM中内容恢复到RAM中的第3,4字节
读供电
方式
0B4H
读DS18B20的供电模式,寄生供电时DS18B20发送“0”,外接电源供电DS18B20发送“1”
另外,由于DS18B20单线通信功能是分时完成的,他有严格的时隙概念,因此读写时序很重要。
系统对DS18B20的各类操作必需按协议进行。
操作协议为:
初始化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处置数据。
图3-4测温原理内部装置
DS18B20的测温流程
图5-5DS18B20测温流程
编试程序:
ORG0000H
TEMPER_LEQU29H
TEMPER_HEQU28H
FLAG1EQU38H;是不是检测到DS18B20标志位
A_BITEQU20H;数码管个位数寄存内存位置
B_BITEQU21H;数码管十位数寄存内存位置
XSEQU30H
MOVA,#00H
MOVP2,A
MAIN:
LCALLGET_TEMPER;挪用读温度子程序
MOVA,29H
MOVB,A
CLRC
RLCA
CLRC
RLCA
CLRC
RLCA
CLRC
RLCA
SWAPA
MOV31H,A
MOVA,B
MOVC,40H;将28H中的最低位移入C
RRCA
MOVC,41H
RRCA
MOVC,42H
RRCA
MOVC,43H
RRCA
MOV29H,A
LCALLDISPLAY;挪用数码管显示子程序
AJMPMAIN;这是DS18B20复位初始化子程序
INIT_1820:
SETB
NOP
CLR;主机发出延时537微秒的复位低脉冲
MOVR1,#3
TSR1:
MOVR0,#107
DJNZR0,$
DJNZR1,TSR1
SETB;然后拉高数据线
NOP
NOP
NOP
MOVR0,#25H
TSR2:
JNB,TSR3;等待DS18B20回应
DJNZR0,TSR2
LJMPTSR4;延时
TSR3:
SETBFLAG1;置标志位,表示DS1820存在
LJMPTSR5
TSR4:
CLRFLAG1;清标志位,表示DS1820不存在
LJMPTSR7
TSR5:
MOVR0,#117
TSR6:
DJNZR0,TSR6;时序要求延时一段时刻
TSR7:
SETB
RET;读出转换后的温度值
GET_TEMPER:
SETB
LCALLINIT_1820;先复位DS18B20
JBFLAG1,TSS2
RET;判定DS1820是不是存在?
假设DS18B20不存在那么返回
TSS2:
MOVA,#0CCH;跳过ROM匹配
LCALLWRITE_1820
MOVA,#44H;发出温度转换命令
LCALLWRITE_1820;那个地址通过挪用显示子程序实现延时一段时刻,等待AD转换终止,12位的话750微秒
LCALLDISPLAY
LCALLINIT_1820;预备读温度前先复位
MOVA,#0CCH;跳过ROM匹配
LCALLWRITE_1820
MOVA,#0BEH;发出读温度命令
LCALLWRITE_1820
LCALLREAD_18200;将读出的温度数据保留到35H/36H
RET;写DS18B20的子程序(有具体的时序要求)
WRITE_1820:
MOVR2,#8;一共8位数据
CLRC
WR1:
CLR
MOVR3,#6
DJNZR3,$
RRCA
MOV,C
MOVR3,#23
DJNZR3,$
SETB
NOP
DJNZR2,WR1
RET;读DS18B20的程序,从DS18B20中读出两个字节的温度数据
READ_18200:
MOVR4,#2;将温度高位和低位从DS18B20中读出
MOVR1,#29H;低位存入29H(TEMPER_L),高位存入28H(TEMPER_H)
RE00:
MOVR2,#8;数据一共有8位
RE01:
CLRC
SETB
NOP
NOP
CLR
NOP
NOP
NOP
SETB
MOVR3,#9
RE10:
DJNZR3,RE10
MOVC,
MOVR3,#23
RE20:
DJNZR3,RE20
RRCA
DJNZR2,RE01
MOV@R1,A
DECR1
DJNZR4,RE00
RET
DISPLAY:
CLRC
SUBBA,#30
JNBCY,T1
MOVA,B
CLRC
SUBBA,#25
JNBCY,XIANSHI
CLR
LJMPXIANSHI
T1:
CLR
XIANSHI:
MOVA,B
MOVB,#10;10进制/10=10进制
DIVAB
MOVB_BIT,A;十位在A
MOVA_BIT,B;个位在B
MOVR0,#4
CLRC;多加的
DPL1:
MOVR1,#250;显示1000次
DPLOP:
MOVDPTR,#NUMTAB1
MOVA,A_BIT;取个位数
MOVCA,@A+DPTR;查个位数的7段代码
MOVP0,A;送出个位的7段代码
CLR;开个位显示
ACALLD1MS;显示1MS
SETB
MOVDPTR,#NUMTAB
MOVA,B_BIT;取十位数
MOVCA,@A+DPTR;查十位数的7段代码
MOVP0,A;送出十位的7段代码
CLR;开十位显示
ACALLD1MS;显示1MS
SETB
JCXSW;多加的
MOVA,31H
MOVB,#160
DIVAB
MOVXS,B
XSW:
MOVA,XS
MOVCA,@A+DPTR
MOVP0,A
CLR
ACALLD1MS
SETB
SETBC;多加的
DJNZR1,DPLOP;250次没完循环
DJNZR0,DPL1;4个250次没完循环
RET;1MS延时(按12MHZ算)
D1MS:
MOVR7,#80
DJNZR7,$
RET
NUMTAB:
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,7FH,7FH,7FH,7FH,7FH,7FH
NUMTAB1:
DB0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87H,0FFH,0EFH
END
电路检修
程序调试成功后就可将程序烧录到单片机内对整个电路进行检测。
一、检查电源是不是靠得住接入,AT89S5一、三极管发射极电源是不是正确连接+5V和GND,有无虚焊、短路的现象
二、检查单片机与插座是不是接触良好
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 项目 温控 报警 制作 调试
![提示](https://static.bdocx.com/images/bang_tan.gif)