51单片机温度报警系统.docx
- 文档编号:2895472
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:29
- 大小:44.28KB
51单片机温度报警系统.docx
《51单片机温度报警系统.docx》由会员分享,可在线阅读,更多相关《51单片机温度报警系统.docx(29页珍藏版)》请在冰豆网上搜索。
51单片机温度报警系统
51单片机温度报警系统
功能说明:
本装置的功能是对温度进行实时监测与控制。
由温度传感器DS18B20对温度进行采样和转换成数字信号送入单片机,并与设定的报警温度上、下限值进行比较,信息通过LCD显示出来。
如实时温度超过设定的上、下限值,一方面由LCD显示信息,并发出警报声;另一方面自动控制继电器(Relay)开接通或断开,从而控制加热源的开与断,达到对温度进行实时控制的目的。
程序:
LCD2402.ASM
01;―――――――――――――――――――――――――――――――
02;温度值存放单元
03TEMP_ZHEQU24H;实时温度值存放单元
04TEMPLEQU25H;低温度值存放单元
05TEMPHEQU26H;高温度值存放单元
06TEMP_THEQU27H;高温报警值存放单元
07TEMP_TLEQU28H;低温报警值存放单元
08TEMPHCEQU29H;存十位数BCD码
09TEMPLCEQU2AH;存个位数BCD码
10;―――――――――――――
11按键输入引脚定义
12K1EQUP2.1
13K2EQUP2.2
14K3EQUP2.3
15K4EQUP2.4
16;―――――――――――――
17SPKEQUP3.4;蜂鸣器引脚
18RELAYEQUP2.0;继电器引脚
19XEQU2FH;LCD地址变量
20;―――――――――――――
21;LCD控制引脚
22RSEQUP3.5
23RWEQUP3.6
24EEQUP3.7
25;―――――――――――――
26FLAGEQU20H.0;DS18B20是否存在标记
27KEY_UDEQU20H.1;设定KEY的UP与DOWN标记
28DQEQUP2.5
29
30;=============主程序==============
31
32MAIN:
33ACALLSET_LCD;LCD初始化设置子程序
34ACALLWR_THL;将报警上下线写入暂存寄存器子程序
35TOOP:
ACALLRESET_1820;调用18B20复位子程序
36JNBFLAG,TOOP1;DS1820不存在转移TOOP1处
37ACALLMEU_OK;调用显示"OK"信息子程序
38ACALLRE_THL;把EEROM里温度报警值拷贝回暂存器
39ACALLTEMP_BJ;显示温度标记"℃"
40JMPTOOP2
41TOOP1:
ACALLMEU_ERROR;显示"ERROR"信息
42ACALLTEMP_BJ;显示温度标记
43JMP$;等待
44;――――――――――――――
45TOOP2:
46ACALLRE_TEMP;调用读取温度数据子程序
47ACALLSET_DATA;调用处理显示温度数据子程序
48ACALLTEMP_COMP;实际温度值与标记温度值比较子程序
49ACALLP_KEY;调用按键扫描子程序
50SJMPTOOP2;循环
51
52;--------――读取温度数据子程序--------――
53RE_TEMP:
54ACALLRESET_1820;18B20复位子程序
55JNBFLAG,TOOP1;DS1820不存在
56MOVA,#0CCH;跳过ROM匹配
57ACALLWRITE_1820;写入子程序
58MOVA,#44H;发出温度转换命令
59ACALLWRITE_1820;调写入子程序
60ACALLRESET_1820;调复位子程序
61MOVA,#0CCH;跳过ROM匹配
62ACALLWRITE_1820;写入子程序
63MOVA,#0BEH;发出读温度命令
64ACALLWRITE_1820;写入子程序
65ACALLREAD_1820;调用读取子程序
66RET
67
68;--------温度数据处理显示子程序----------
69SET_DATA:
70ACALLCONV_TEMP;处理温度BCD码子程序
71ACALLDISP_BCD;显示区BCD码温度值刷新子程序
72ACALLCONV;LCD显示子程序
73RET
74
75;-----------按键键扫描子程序----------
76P_KEY:
;按键K1处理
77JBK1,PK1;K1键未按,转到PK1处
78ACALLSPK_BZ;K1键按下,一声鸣响
79JNBK1,$;等按键放开
80MOVDPTR,#M_ALAX1;存M_ALAX1表
81MOVA,#1
82ACALLLCD_PRINT;显示字符
83ACALLLOOK_ALARM;显示信息区子程序
84JBK3,$;等待K3按下
85ACALLSPK_BZ;一声鸣响
86JMPPK2;转到标号PK2处
87PK1:
;按键K2处理
88JBK2,PK3;K2键未按,转到PK3处
89ACALLSPK_BZ;K2键按下,一声鸣响
90JNBK2,$;等按键放开
91MOVDPTR,#TA1;存#TA1表
92MOVA,#1
93ACALLLCD_PRINT;显示字符
94ACALLSET_ALARM;设定报警值TH、TL
95ACALLWR_THL;将设定的TH,TL值写入DS18B20内
96ACALLWRITE_E2;调用报警值拷贝EEROM子程序
97PK2:
98ACALLMEU_OK;显示"OK"信息子程序
99ACALLTEMP_BJ;显示温度标记子程序
100PK3:
101RET
102;―――――――――――――
103TA1:
;菜单表
104DB"RESETALERTCODE"
105;―――――――――――――
106
107;---------设定报警值TH、TL子程序--------
108SET_ALARM:
109ACALLLOOK_ALARM;调用显示信息区子程序
110A0:
JBK1,A2;按下K1(查看键),程序向下运行
111ACALLSPK_BZ;蜂鸣器响一声
112JNBK1,$;等放开
113CPL20H.1;UP/DOWN标记反向
114A2:
JB20H.1,A3;20H.1=1,UP,转移到A3。
115JMPA8;20H.1=0,DOWN,转移到A8
116;―――――――――――――
117;TH值调整(增加)
118A3:
JBK2,A5;按下K2(设定键),程序向下运行
119ACALLSPK_BZ;蜂鸣器响一声
120INCTEMP_TH;TH值调整(增加)
121MOVA,TEMP_TH;TH值送入A
122CJNEA,#120,A4;TH值增到120,程序向下运行
123MOVTEMP_TH,#0;TH值清0
124A4:
ACALLLOOK_ALARM;调用显示信息区子程序
125MOVR5,#10
126ACALLDELAY;调用延时程序
127JMPA3;循环
128;―――――――――――――
129;TL值调整(增加)
130A5:
JBK3,A7;按下K3(TL值设定键)程序向下运行
131ACALLSPK_BZ;蜂鸣器响一声
132INCTEMP_TL;TL值增加1
133MOVA,TEMP_TL;TL值送入A
134CJNEA,#99,A6;比较,若A=99,程序向下运行
135MOVTEMP_TL,#00H;TL值清0
136A6:
ACALLLOOK_ALARM;调用显示信息区子程序
137MOVR5,#10
138ACALLDELAY;调用延时程序
139JMPA5;程序转移到A5,循环
140;―――――――――――――
141;确定调整OK
142A7:
JBK4,A0;按下K4(调整确定键),程序向下运行
143ACALLSPK_BZ;蜂鸣器响一声
144JNBK4,$;等放开
145RET;程序返回
146;―――――――――――――
147;TH值调整(减少)
148A8:
JBK2,A10;按下K2(设定键),程序向下运行
149ACALLSPK_BZ;蜂鸣器响一声
150DECTEMP_TH;TH值减1
151MOVA,TEMP_TH;TH值送入A
152CJNEA,#0FFH,A9;比较,若A=0FF,程序向下运行
153JMPA12;转移到A12
154A9:
ACALLLOOK_ALARM;调用显示信息区子程序
155MOVR5,#10
156ACALLDELAY;调用延时子程序
157JMPA0;转移到A12
158;――――――――――――――
159;TL值调整(减少)
160A10:
JBK3,A13;按K3(TL值设定键),程序向下运行
161ACALLSPK_BZ;蜂鸣器响一声
162DECTEMP_TL;TL值减1
163MOVA,TEMP_TL;TH值送入A
164CJNEA,#0FFH,A11;比较,若A=0FF,程序向下运行
165JMPA12;转移到A12
166A11:
ACALLLOOK_ALARM;调用显示信息区子程序
167MOVR5,#10
168ACALLDELAY;调用延时子程序
169JMPA0;转移到A0
170A12:
CPL20H.1;UP/DOWN标记反向
171JMPA3;转移到A3,TH值调整(增加)
172A13:
JMPA7;转移到A7,确定调整OK
173RET;子程序返回
174
175;----------显示信息区子程序-----------
176LOOK_ALARM:
177MOVDPTR,#M_ALAX2;存表
178MOVA,#2;显示在第二行
179ACALLLCD_PRINT;调用显示字符子程序
180MOVA,#0C6H;显示起始地址为第二行第7位
181ACALLTEMP_BJ1;调用显示温度标记子程序
182MOVA,TEMP_TH;加载TH数据
183MOVX,#3;设置位置
184ACALLSHOW_LINE2H;显示数据
185;―――――――――――――
186MOVA,#0CEH;设定显示起始地址为第二行第15位
187ACALLTEMP_BJ1;调用显示温度标记子程序
188MOVA,TEMP_TL;加载TL数据
189MOVX,#12;设置位置
190ACALLSHOW_L
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 51 单片机 温度 报警 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)