📄 main.lis
字号:
00D8 ; }
00D8 ;
00D8 ;
00D8 ;
00D8 ;
00D8 ; //房间1处理
00D8 ; unsigned char Room1_Handle(void)
00D8 ; {
00D8 .dbline 77
00D8 ; if(data&0x01) {flag_twinkle1=0; PORTB=(0xfe&PINB);}
00D8 20900F00 lds R2,_data
00DC 20FE sbrs R2,0
00DE 07C0 rjmp L36
00E0 .dbline 77
00E0 .dbline 77
00E0 2224 clr R2
00E2 20921300 sts _flag_twinkle1,R2
00E6 .dbline 77
00E6 86B3 in R24,0x16
00E8 8E7F andi R24,254
00EA 88BB out 0x18,R24
00EC .dbline 77
00EC 0AC0 xjmp L37
00EE L36:
00EE .dbline 78
00EE ; else if(data==0x00) {flag_twinkle1=0; PORTB=(0xfd|PINB);}
00EE 20900F00 lds R2,_data
00F2 2220 tst R2
00F4 31F4 brne L38
00F6 .dbline 78
00F6 .dbline 78
00F6 2224 clr R2
00F8 20921300 sts _flag_twinkle1,R2
00FC .dbline 78
00FC 86B3 in R24,0x16
00FE 8D6F ori R24,253
0100 88BB out 0x18,R24
0102 .dbline 78
0102 L38:
0102 L37:
0102 .dbline 80
0102 ; //if(FLAG_TWINKLE1) Room_Twinkle(SECOND1,SECOND2);
0102 ; if((data&0x1c)==0x1c) {flag_twinkle1=1; second1=500;}//Room_Twinkle(500,SECOND2);} //房间1_0.5s闪烁
0102 80910F00 lds R24,_data
0106 8C71 andi R24,28
0108 8C31 cpi R24,28
010A 51F4 brne L40
010C .dbline 80
010C .dbline 80
010C 81E0 ldi R24,1
010E 80931300 sts _flag_twinkle1,R24
0112 .dbline 80
0112 84EF ldi R24,500
0114 91E0 ldi R25,1
0116 90930300 sts _second1+1,R25
011A 80930200 sts _second1,R24
011E .dbline 80
011E 2CC0 xjmp L41
0120 L40:
0120 .dbline 81
0120 ; else if((data&0x1c)==0x10) {flag_twinkle1=1; second1=1000;}//Room_Twinkle(1000,SECOND2);} //房间1_1s闪烁
0120 80910F00 lds R24,_data
0124 8C71 andi R24,28
0126 8031 cpi R24,16
0128 51F4 brne L42
012A .dbline 81
012A .dbline 81
012A 81E0 ldi R24,1
012C 80931300 sts _flag_twinkle1,R24
0130 .dbline 81
0130 88EE ldi R24,1000
0132 93E0 ldi R25,3
0134 90930300 sts _second1+1,R25
0138 80930200 sts _second1,R24
013C .dbline 81
013C 1DC0 xjmp L43
013E L42:
013E .dbline 82
013E ; else if((data&0x1c)==0x14) {flag_twinkle1=1; second1=2000;}//Room_Twinkle(2000,SECOND2);} //房间1_2s闪烁
013E 80910F00 lds R24,_data
0142 8C71 andi R24,28
0144 8431 cpi R24,20
0146 51F4 brne L44
0148 .dbline 82
0148 .dbline 82
0148 81E0 ldi R24,1
014A 80931300 sts _flag_twinkle1,R24
014E .dbline 82
014E 80ED ldi R24,2000
0150 97E0 ldi R25,7
0152 90930300 sts _second1+1,R25
0156 80930200 sts _second1,R24
015A .dbline 82
015A 0EC0 xjmp L45
015C L44:
015C .dbline 83
015C ; else if((data&0x1c)==0x18) {flag_twinkle1=1; second1=3000;}//Room_Twinkle(3000,SECOND2);} //房间1_3s闪烁
015C 80910F00 lds R24,_data
0160 8C71 andi R24,28
0162 8831 cpi R24,24
0164 49F4 brne L46
0166 .dbline 83
0166 .dbline 83
0166 81E0 ldi R24,1
0168 80931300 sts _flag_twinkle1,R24
016C .dbline 83
016C 88EB ldi R24,3000
016E 9BE0 ldi R25,11
0170 90930300 sts _second1+1,R25
0174 80930200 sts _second1,R24
0178 .dbline 83
0178 L46:
0178 L45:
0178 L43:
0178 L41:
0178 .dbline -2
0178 L35:
0178 .dbline 0 ; func end
0178 0895 ret
017A .dbend
017A .dbfunc e Room_Twinkle _Room_Twinkle fV
017A ; second2 -> R20,R21
017A ; second1 -> R22,R23
.even
017A _Room_Twinkle::
017A 0E940000 xcall push_gset2
017E A901 movw R20,R18
0180 B801 movw R22,R16
0182 .dbline -1
0182 .dbline 89
0182 ; //else ;
0182 ; }
0182 ;
0182 ; //房间1闪烁处理
0182 ; void Room_Twinkle(unsigned int second1,unsigned int second2)
0182 ; {
0182 .dbline 90
0182 ; if(flag_twinkle1)
0182 20901300 lds R2,_flag_twinkle1
0186 2220 tst R2
0188 71F0 breq L49
018A .dbline 91
018A ; {
018A .dbline 92
018A ; PORTB=(0xfe&PINB); //1开
018A 86B3 in R24,0x16
018C 8E7F andi R24,254
018E 88BB out 0x18,R24
0190 .dbline 93
0190 ; Delay(second1);
0190 8B01 movw R16,R22
0192 4ADF xcall _Delay
0194 .dbline 94
0194 ; PORTB^=0x01; //1关
0194 81E0 ldi R24,1
0196 28B2 in R2,0x18
0198 2826 eor R2,R24
019A 28BA out 0x18,R2
019C .dbline 96
019C ; //PORTA=0xff; //2关
019C ; Delay(second1);
019C 8B01 movw R16,R22
019E 44DF xcall _Delay
01A0 .dbline 97
01A0 ; PORTB=(0xfe&PINB); //1开
01A0 86B3 in R24,0x16
01A2 8E7F andi R24,254
01A4 88BB out 0x18,R24
01A6 .dbline 98
01A6 ; }
01A6 L49:
01A6 .dbline 99
01A6 20901200 lds R2,_flag_twinkle2
01AA 2220 tst R2
01AC 71F0 breq L51
01AE .dbline 100
01AE .dbline 101
01AE 86B3 in R24,0x16
01B0 8D7F andi R24,253
01B2 88BB out 0x18,R24
01B4 .dbline 102
01B4 8A01 movw R16,R20
01B6 38DF xcall _Delay
01B8 .dbline 103
01B8 82E0 ldi R24,2
01BA 28B2 in R2,0x18
01BC 2826 eor R2,R24
01BE 28BA out 0x18,R2
01C0 .dbline 105
01C0 8A01 movw R16,R20
01C2 32DF xcall _Delay
01C4 .dbline 106
01C4 86B3 in R24,0x16
01C6 8D7F andi R24,253
01C8 88BB out 0x18,R24
01CA .dbline 107
01CA L51:
01CA .dbline -2
01CA L48:
01CA 0E940000 xcall pop_gset2
01CE .dbline 0 ; func end
01CE 0895 ret
01D0 .dbsym r second2 20 i
01D0 .dbsym r second1 22 i
01D0 .dbend
01D0 .dbfunc e Room2_Handle _Room2_Handle fc
.even
01D0 _Room2_Handle::
01D0 .dbline -1
01D0 .dbline 115
01D0 ; if(flag_twinkle2)
01D0 ; {
01D0 ; PORTB=(0xfd&PINB); //2开
01D0 ; Delay(second2);
01D0 ; PORTB^=0x02; //2关
01D0 ; //PORTA=0xff; //1关
01D0 ; Delay(second2);
01D0 ; PORTB=(0xfd&PINB); //2开
01D0 ; }
01D0 ; }
01D0 ;
01D0 ;
01D0 ;
01D0 ;
01D0 ; //房间2处理
01D0 ; unsigned char Room2_Handle(void)
01D0 ; {
01D0 .dbline 116
01D0 ; if((data&0x03)==0x02) {flag_twinkle2=0; PORTB=(0xfd&PINB);}
01D0 80910F00 lds R24,_data
01D4 8370 andi R24,3
01D6 8230 cpi R24,2
01D8 39F4 brne L54
01DA .dbline 116
01DA .dbline 116
01DA 2224 clr R2
01DC 20921200 sts _flag_twinkle2,R2
01E0 .dbline 116
01E0 86B3 in R24,0x16
01E2 8D7F andi R24,253
01E4 88BB out 0x18,R24
01E6 .dbline 116
01E6 06C0 xjmp L55
01E8 L54:
01E8 .dbline 117
01E8 ; else {flag_twinkle2=0; PORTB=(0xfe|PINB);}
01E8 .dbline 117
01E8 2224 clr R2
01EA 20921200 sts _flag_twinkle2,R2
01EE .dbline 117
01EE 86B3 in R24,0x16
01F0 8E6F ori R24,254
01F2 88BB out 0x18,R24
01F4 .dbline 117
01F4 L55:
01F4 .dbline 119
01F4 ; //if(FLAG_TWINKLE2) Room_Twinkle(SECOND1,SECOND2);
01F4 ; if((data&0x1c)==0x1c) {flag_twinkle2=1; second2=500;}//Room_Twinkle(SECOND1,500);} //房间2_0.5s闪烁
01F4 80910F00 lds R24,_data
01F8 8C71 andi R24,28
01FA 8C31 cpi R24,28
01FC 51F4 brne L56
01FE .dbline 119
01FE .dbline 119
01FE 81E0 ldi R24,1
0200 80931200 sts _flag_twinkle2,R24
0204 .dbline 119
0204 84EF ldi R24,500
0206 91E0 ldi R25,1
0208 90930100 sts _second2+1,R25
020C 80930000 sts _second2,R24
0210 .dbline 119
0210 2CC0 xjmp L57
0212 L56:
0212 .dbline 120
0212 ; else if((data&0x1c)==0x10) {flag_twinkle2=1; second2=1000;}//Room_Twinkle(SECOND1,1000);} //房间2_1s闪烁
0212 80910F00 lds R24,_data
0216 8C71 andi R24,28
0218 8031 cpi R24,16
021A 51F4 brne L58
021C .dbline 120
021C .dbline 120
021C 81E0 ldi R24,1
021E 80931200 sts _flag_twinkle2,R24
0222 .dbline 120
0222 88EE ldi R24,1000
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -