📄 rec.lst
字号:
A51 MACRO ASSEMBLER REC 08/06/2005 09:37:33 PAGE 1
MACRO ASSEMBLER A51 V7.09
OBJECT MODULE PLACED IN REC.OBJ
ASSEMBLER INVOKED BY: C:\Keil70\C51\BIN\A51.EXE REC.ASM NOMOD51 SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1 ;========================电风扇红外接收(控制板)程序===========
2 ;用89C51单片机来作主芯片控制,采用红外1838接收头,可控硅采用MC97A6
3 ;风扇具有红外遥控功能
4 ;K1:低档,相应的指示灯亮 ,中档,相应的指示灯亮 , 高档,相应的指示灯亮
5 ;K2:彩灯,相应的指示灯亮
6 ;K3:自然风控制 睡眠风的控制 正常风的控制
7 ;K4:定时30分钟,1小时,2小时,4小时
8 ;K5:开关机功能
9 ;自然风的处理流程:停--->开低档--->延时6秒--->开中档-->
10 ;延时6秒--->开高档--->循环
11 ;睡眠风的处理流程:停6S--->开低档10S--->停延时10S-->开中档10S-->
12 ;停延时10S-->开高档10S--->循环
13 ;正常风的处理流程:开低档10S--> 开中档10S--> 开高档10S---> 循环
14
15 ;==========================================================
16 ;$include (REG51.INC)
+1 17 ;-------------------------------------------------------------------------------
+1 18 ; Copyright 1995-1996 KEIL Software, Inc.
+1 19 ; 8051 Processor Declarations
+1 20 ;-------------------------------------------------------------------------------
+1 21 +1 $save
+1 97 +1 $restore
+1 98
99
100 ;$include (89C51RAM.INC)
+1 101 ;-------------------------------------------------------------------------------
+1 102 ;89C51的RAM分配
+1 103
+1 104 ;-------------------------------------------------------------------------------
+1 105 +1 $save
+1 152 +1 $restore
153
0000 154 ORG 0000H
0000 2100 155 JMP START
0003 156 ORG 0003H
0003 615C 157 JMP JISH_INT0 ;红外遥控中断设置
000B 158 ORG 000BH
000B 41EB 159 JMP LP0 ;定时中断
0013 160 ORG 0013H
0013 61AB 161 JMP KEY_INT1 ;按键中断
0100 162 ORG 0100H
0100 163 START:
0100 787F 164 MOV R0,#7FH ;预使用单元清0
0102 E4 165 CLR A
0103 166 MAIN0:
0103 F6 167 MOV @R0,A
0104 D8FD 168 DJNZ R0,MAIN0
169
0106 758160 170 MOV SP,#60H
0109 758901 171 MOV TMOD,#01H
010C 758C3C 172 MOV TH0,#3CH ;定时50MS
010F 758AB0 173 MOV TL0,#0B0H
174
0112 D2A0 175 SETB LLOW ;关低风
0114 D2A1 176 SETB MDI ;关中风
0116 D2A2 177 SETB HIGHT ;关高风
0118 D2A3 178 SETB LLAP ;关彩灯
011A 7580FF 179 MOV P0,#0FFH ;关所有的指示灯
A51 MACRO ASSEMBLER REC 08/06/2005 09:37:33 PAGE 2
180
011D D2A8 181 SETB EX0
011F D2AA 182 SETB EX1
0121 D2AF 183 SETB EA ;CPU开中
184
0123 201005 185 MAIN: JB LKEYON,KEYHANDLE ;检按键标志位
0126 200602 186 JB REC,KEYHANDLE ;检接收中断标志位
187
0129 80F8 188 JMP MAIN ;转主程序
189
190 ;==============================================================================
191 ;键值的处理的程序
192 ;键盘处理程序
193 ;K1键:完成弱、中、强控制,相应的指示灯点亮
194 ;K2键:完成彩灯控制,相应的指示灯点亮
195 ;K3键:完成自然风、睡眠风、正常风的控制,相应的指示灯点亮
196 ;K4键:完成定时的控制,同时0.5H,1H,2H,4H,相应的指示灯点亮
197 ;K5键:开/关机
198 ;==============================================================================
012B 199 KEYHANDLE:
012B C210 200 CLR LKEYON
012D C211 201 CLR LREC
012F E530 202 MOV A,MRD
203
0131 B40144 204 CJNE A,#01H,KEY2 ;当键值=01H时,
205 ;------------------------------------------------------------------------------
206 ;低、中、高、的控制
207 ;------------------------------------------------------------------------------
0134 200408 208 KEY1: JB DANG01,DIFENG
0137 200518 209 JB DANG02,ZHONGFENG ;DANG02 中档标志位
013A 200628 210 JB DANG03,QIANGFENG ;DANG03 强档标志位
013D 80E4 211 JMP MAIN
212 ;------------------------------------------------------------------------------
213 ;低档控制
013F 214 DIFENG:
013F 30040E 215 JNB DANG01,FAN0
0142 D2A0 216 SETB LLOW ;完成了低档的程序,关低
0144 D2A1 217 SETB MDI ;关中
0146 D2A2 218 SETB HIGHT ;关高
0148 917F 219 CALL DY20MS ;保证三个SCR全部为关断状态
014A C2A0 220 CLR LLOW ;开低风
014C C280 221 CLR LED_L ;开低档指示灯
014E C204 222 CLR DANG01
0150 80D1 223 FAN0: JMP MAIN
224
225 ;------------------------------------------------------------------------------
226 ;中档控制
0152 227 ZHONGFENG:
228
0152 3005FB 229 JNB DANG02,FAN0
0155 D2A0 230 SETB LLOW ;关低
0157 D2A1 231 SETB MDI ;关中
0159 D2A2 232 SETB HIGHT ;关高
015B 917F 233 CALL DY20MS ;保证三个SCR全部为关断状态
015D C2A1 234 CLR MDI
015F C281 235 CLR LED_M
0161 C205 236 CLR DANG02
237
0163 2123 238 AJMP MAIN ;跳转到
239 ;------------------------------------------------------------------------------
240 ;高档控制
0165 241 QIANGFENG:
242
0165 3006E8 243 JNB DANG03,FAN0
0168 D2A0 244 SETB LLOW ;关低
016A D2A1 245 SETB MDI ;关中
A51 MACRO ASSEMBLER REC 08/06/2005 09:37:33 PAGE 3
016C D2A2 246 SETB HIGHT ;关高
016E 917F 247 CALL DY20MS ;保证三个SCR全部为关断状态
0170 C2A2 248 CLR HIGHT
0172 C282 249 CLR LED_H
0174 C206 250 CLR DANG03
0176 2123 251 AJMP MAIN ;跳转到
252 ;------------------------------------------------------------------------------
253 ;彩灯控制
254 ;------------------------------------------------------------------------------
0178 255 KEY2:
0178 B40213 256 CJNE A,#02H,KEY3 ;K4的处理程序 彩灯的处理程序
017B 201308 257 JB PLAP,LED1
017E C2A3 258 CLR LLAP ;第一次按时将彩灯打开,
0180 C283 259 CLR LED_LAP
0182 D213 260 SETB PLAP
0184 809D 261 JMP MAIN ;返回
0186 D2A3 262 LED1: SETB LLAP ;第二次按时将彩灯关断
0188 D283 263 SETB LED_LAP
018A C213 264 CLR PLAP
018C 8095 265 JMP MAIN ;跳转到
266 ;------------------------------------------------------------------------------
267 ;风类处理过程
268 ;------------------------------------------------------------------------------
018E 269 KEY3:
018E B4030B 270 CJNE A,#03H,KEY4_A ;K3的处理程序处理风类
0191 200959 271 JB SMF,SKEEP
0194 200A07 272 JB ZCF,SPRING_A
0197 200806 273 JB ZRF,WATERM
019A 8087 274 JMP MAIN
019C 41A1 275 KEY4_A:JMP KEY4
019E 276 SPRING_A:
019E 415E 277 JMP SPRING
278 ;------------------------------------------------------------------------------
279 ;自然风控制
01A0 280 WATERM:
01A0 300848 281 JNB ZRF,FAN1
01A3 C208 282 CLR ZRF
01A5 D2A0 283 SETB LLOW ;处理自然风,关低'中'高
01A7 D2A1 284 SETB MDI
01A9 D2A2 285 SETB HIGHT
01AB 20113B 286 JB LREC,ZHUAN0 ;查询
01AE 201038 287 JB LKEYON,ZHUAN0 ;查询
01B1 918D 288 CALL DY6S
01B3 C2A0 289 CLR LLOW
01B5 201131 290 JB LREC,ZHUAN0 ;查询
01B8 20102E 291 JB LKEYON,ZHUAN0 ;查询
01BB 918D 292 CALL DY6S
293
01BD D2A0 294 SETB LLOW ;关低'中'高
01BF D2A1 295 SETB MDI
01C1 D2A2 296 SETB HIGHT
01C3 201123 297 JB LREC,ZHUAN0 ;查询
01C6 201020 298 JB LKEYON,ZHUAN0 ;查询
01C9 917F 299 CALL DY20MS
01CB C2A1 300 CLR MDI
01CD 201119 301 JB LREC,ZHUAN0 ;查询
01D0 201016 302 JB LKEYON,ZHUAN0 ;查询
01D3 918D 303 CALL DY6S
304
01D5 D2A0 305 SETB LLOW ;关低'中'高
01D7 D2A1 306 SETB MDI
01D9 D2A2 307 SETB HIGHT
01DB 20110B 308 JB LREC,ZHUAN0 ;查询
01DE 201008 309 JB LKEYON,ZHUAN0 ;查询
01E1 917F 310 CALL DY20MS
01E3 C2A2 311 CLR HIGHT
A51 MACRO ASSEMBLER REC 08/06/2005 09:37:33 PAGE 4
01E5 918D 312 CALL DY6S
01E7 21A0 313 AJMP WATERM
01E9 D209 314 ZHUAN0: SETB SMF
01EB 2123 315 FAN1: JMP MAIN
316
317 ;------------------------------------------------------------------------------
318 ;睡眠风控制
01ED 319 SKEEP:
320
01ED 30096C 321 JNB SMF,FAN2
01F0 C209 322 CLR SMF
01F2 D2A0 323 SLEEP1: SETB LLOW ;处理睡眠风,关低'中'高
01F4 D2A1 324 SETB MDI
01F6 D2A2 325 SETB HIGHT
01F8 20115D 326 JB LREC,ZHUAN1 ;查询
01FB 20105A 327 JB LKEYON,ZHUAN1 ;查询
01FE 918D 328 CALL DY6S
0200 C2A0 329 CLR LLOW ;开低档
0202 201153 330 JB LREC,ZHUAN1 ;查询
0205 201050 331 JB LKEYON,ZHUAN1 ;查询
0208 91B1 332 CALL DY10S
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -