?? main.lis
字號(hào):
00C8 30F1 brlo L20
00CA .dbline 163
00CA ; {
00CA .dbline 164
00CA ; CLR_RLY1;
00CA D998 cbi 0x1b,1
00CC .dbline 165
00CC ; CLR_RLY2;
00CC D898 cbi 0x1b,0
00CE .dbline 166
00CE ; }
00CE .dbline 167
00CE ; }
00CE .dbline 168
00CE ; }
00CE 23C0 rjmp L20
00D0 L19:
00D0 .dbline 170
00D0 ;
00D0 ; else if(temp==DOWN) // k2
00D0 0036 cpi R16,96
00D2 99F4 brne L23
00D4 .dbline 171
00D4 ; {
00D4 .dbline 172
00D4 ; SET_LED2;
00D4 C49A sbi 0x18,4
00D6 .dbline 174
00D6 ; //if(key2<500)
00D6 ; {
00D6 .dbline 175
00D6 ; key2 ++;
00D6 80910C00 lds R24,_key2
00DA 90910D00 lds R25,_key2+1
00DE 0196 adiw R24,1
00E0 90930D00 sts _key2+1,R25
00E4 80930C00 sts _key2,R24
00E8 .dbline 176
00E8 ; if(key2>=5) // 短按
00E8 8530 cpi R24,5
00EA E0E0 ldi R30,0
00EC 9E07 cpc R25,R30
00EE 98F0 brlo L24
00F0 .dbline 177
00F0 ; {
00F0 .dbline 178
00F0 ; CLR_RLY1;
00F0 D998 cbi 0x1b,1
00F2 .dbline 179
00F2 ; asm("nop");
00F2 0000 nop
00F4 .dbline 180
00F4 ; asm("nop");
00F4 0000 nop
00F6 .dbline 181
00F6 ; SET_RLY2;
00F6 D89A sbi 0x1b,0
00F8 .dbline 183
00F8 ;
00F8 ; }
00F8 .dbline 184
00F8 ; }
00F8 .dbline 185
00F8 ; }
00F8 0EC0 rjmp L24
00FA L23:
00FA .dbline 187
00FA ; else
00FA ; {
00FA .dbline 188
00FA ; key = key1 = key2 = 0;
00FA 2224 clr R2
00FC 3324 clr R3
00FE 30920D00 sts _key2+1,R3
0102 20920C00 sts _key2,R2
0106 30920F00 sts _key1+1,R3
010A 20920E00 sts _key1,R2
010E 30921100 sts _key+1,R3
0112 20921000 sts _key,R2
0116 .dbline 190
0116 ; //CLR_LED2;
0116 ; }
0116 L24:
0116 L20:
0116 L16:
0116 .dbline -2
0116 L14:
0116 .dbline 0 ; func end
0116 0895 ret
0118 .dbsym r temp 16 c
0118 .dbend
0118 .dbfunc e Remote_set _Remote_set fV
.even
0118 _Remote_set::
0118 .dbline -1
0118 .dbline 196
0118 ; }
0118 ;
0118 ;
0118 ;
0118 ; void Remote_set(void)
0118 ; {
0118 .dbline 197
0118 ; if(led_time<50) led_time ++;
0118 80911200 lds R24,_led_time
011C 8233 cpi R24,50
011E 20F4 brsh L28
0120 .dbline 197
0120 8F5F subi R24,255 ; addi 1
0122 80931200 sts _led_time,R24
0126 01C0 rjmp L29
0128 L28:
0128 .dbline 198
0128 ; else CLR_LED2;
0128 C498 cbi 0x18,4
012A L29:
012A .dbline 200
012A ;
012A ; if(rxd_flag)
012A 20900A00 lds R2,_rxd_flag
012E 2220 tst R2
0130 41F1 breq L30
0132 .dbline 201
0132 ; {
0132 .dbline 202
0132 ; rxd_flag = 0;
0132 2224 clr R2
0134 20920A00 sts _rxd_flag,R2
0138 .dbline 203
0138 ; if(addr==0xaaaa) // 地址正確
0138 80910100 lds R24,_addr
013C 90910200 lds R25,_addr+1
0140 8A3A cpi R24,170
0142 EAEA ldi R30,170
0144 9E07 cpc R25,R30
0146 E9F4 brne L32
0148 .dbline 204
0148 ; {
0148 .dbline 205
0148 ; SET_LED2;
0148 C49A sbi 0x18,4
014A .dbline 206
014A ; led_time = 0;
014A 20921200 sts _led_time,R2
014E .dbline 207
014E ; if(rxd_data==0x03)
014E 80910000 lds R24,_rxd_data
0152 8330 cpi R24,3
0154 29F4 brne L34
0156 .dbline 208
0156 ; {
0156 .dbline 209
0156 ; CLR_RLY2;
0156 D898 cbi 0x1b,0
0158 .dbline 210
0158 ; asm("nop");
0158 0000 nop
015A .dbline 211
015A ; asm("nop");
015A 0000 nop
015C .dbline 212
015C ; SET_RLY1;
015C D99A sbi 0x1b,1
015E .dbline 213
015E ; }
015E 11C0 rjmp L35
0160 L34:
0160 .dbline 214
0160 ; else if(datas==0xc0)
0160 80910500 lds R24,_datas
0164 803C cpi R24,192
0166 29F4 brne L36
0168 .dbline 215
0168 ; {
0168 .dbline 216
0168 ; CLR_RLY1;
0168 D998 cbi 0x1b,1
016A .dbline 217
016A ; asm("nop");
016A 0000 nop
016C .dbline 218
016C ; asm("nop");
016C 0000 nop
016E .dbline 219
016E ; SET_RLY2;
016E D89A sbi 0x1b,0
0170 .dbline 220
0170 ; }
0170 08C0 rjmp L37
0172 L36:
0172 .dbline 221
0172 ; else if(datas==0x0c || datas==0x30)
0172 80910500 lds R24,_datas
0176 8C30 cpi R24,12
0178 11F0 breq L40
017A 8033 cpi R24,48
017C 11F4 brne L38
017E L40:
017E .dbline 222
017E ; {
017E .dbline 223
017E ; CLR_RLY1;
017E D998 cbi 0x1b,1
0180 .dbline 224
0180 ; CLR_RLY2;
0180 D898 cbi 0x1b,0
0182 .dbline 225
0182 ; }
0182 L38:
0182 L37:
0182 L35:
0182 .dbline 226
0182 ; }
0182 L32:
0182 .dbline 227
0182 L30:
0182 .dbline -2
0182 L27:
0182 .dbline 0 ; func end
0182 0895 ret
0184 .dbend
0184 .dbfunc e main _main fV
.even
0184 _main::
0184 .dbline -1
0184 .dbline 233
0184 ; }
0184 ; }
0184 ;
0184 ;
0184 ;
0184 ; void main(void)
0184 ; {
0184 .dbline 234
0184 ; init_devices();
0184 68DF rcall _init_devices
0186 .dbline 236
0186 ;
0186 ; SET_LED1;
0186 C59A sbi 0x18,5
0188 0AC0 rjmp L43
018A L42:
018A .dbline 239
018A ;
018A ; while(1)
018A ; {
018A .dbline 240
018A ; if(flag_4ms)
018A 20901300 lds R2,_flag_4ms
018E 2220 tst R2
0190 31F0 breq L45
0192 .dbline 241
0192 ; {
0192 .dbline 242
0192 ; flag_4ms = 0;
0192 2224 clr R2
0194 20921300 sts _flag_4ms,R2
0198 .dbline 243
0198 ; asm("WDR");
0198 A895 WDR
019A .dbline 244
019A ; Remote_set();
019A BEDF rcall _Remote_set
019C .dbline 245
019C ; key_scan();
019C 6EDF rcall _key_scan
019E .dbline 246
019E ; }
019E L45:
019E .dbline 247
019E L43:
019E .dbline 238
019E F5CF rjmp L42
01A0 X1:
01A0 .dbline -2
01A0 L41:
01A0 .dbline 0 ; func end
01A0 0895 ret
01A2 .dbend
.area vector(rom, abs)
.org 2
0002 D1C0 rjmp _int0_isr
.area text(rom, con, rel)
01A2 .dbfile I:\REDFOX~1\Remote\main.c
01A2 .dbfunc e int0_isr _int0_isr fV
01A2 ; temp -> R16
01A2 ; i -> R16,R17
.even
01A2 _int0_isr::
01A2 2A92 st -y,R2
01A4 3A92 st -y,R3
01A6 4A92 st -y,R4
01A8 0A93 st -y,R16
01AA 1A93 st -y,R17
01AC 8A93 st -y,R24
01AE 9A93 st -y,R25
01B0 2FB6 in R2,0x3f
01B2 2A92 st -y,R2
01B4 .dbline -1
01B4 .dbline 254
01B4 ; }
01B4 ; }
01B4 ;
01B4 ;
01B4 ;
01B4 ; #pragma interrupt_handler int0_isr:2
01B4 ; void int0_isr(void)
01B4 ; {
01B4 .dbline 258
01B4 ; uchar temp;
01B4 ; uint i;
01B4 ;
01B4 ; if(!start)
01B4 20900900 lds R2,_start
01B8 2220 tst R2
01BA 09F0 breq X2
01BC 3BC0 rjmp L48
01BE X2:
01BE .dbline 259
01BE ; {
01BE .dbline 260
01BE ; if(MCUCR==0x02)
01BE 85B7 in R24,0x35
01C0 8230 cpi R24,2
01C2 59F4 brne L50
01C4 .dbline 261
01C4 ; {
01C4 .dbline 262
01C4 ; MCUCR = 0x03;
01C4 83E0 ldi R24,3
01C6 85BF out 0x35,R24
01C8 .dbline 263
01C8 ; TCNT1 = 0x00;
01C8 2224 clr R2
01CA 2EBC out 0x2e,R2
01CC .dbline 264
01CC ; timeH = 0x00;
01CC 20920700 sts _timeH,R2
01D0 .dbline 265
01D0 ; timeL = 0x00;
01D0 20920600 sts _timeL,R2
01D4 .dbline 266
01D4 ; TCCR1B = 0x05;
01D4 85E0 ldi R24,5
01D6 8FBD out 0x2f,R24
01D8 .dbline 268
01D8 ;
01D8 ; }
01D8 ADC0 rjmp L49
01DA L50:
01DA .dbline 269
01DA ; else if(MCUCR==0x03)
01DA 85B7 in R24,0x35
01DC 8330 cpi R24,3
01DE 09F0 breq X3
01E0 A9C0 rjmp L49
01E2 X3:
01E2 .dbline 270
01E2 ; {
01E2 .dbline 271
01E2 ; TCCR1B = 0x00;
01E2 2224 clr R2
01E4 2FBC out 0x2f,R2
01E6 .dbline 272
01E6 ; MCUCR = 0x02;
01E6 82E0 ldi R24,2
01E8 85BF out 0x35,R24
01EA .dbline 274
01EA ;
01EA ; i = timeH*256 + TCNT1;
01EA 2EB4 in R2,0x2e
01EC 30900700 lds R3,_timeH
01F0 132D mov R17,R3
01F2 022D mov R16,R2
01F4 .dbline 275
01F4 ; if(i>1620 && timeH<1800) // 同步頭
01F4 84E5 ldi R24,1620
01F6 96E0 ldi R25,6
01F8 8017 cp R24,R16
01FA 9107 cpc R25,R17
01FC 08F0 brlo X4
01FE 9AC0 rjmp L49
0200 X4:
0200 832D mov R24,R3
0202 8830 cpi R24,8
0204 0CF0 brlt X5
0206 96C0 rjmp L49
0208 X5:
0208 .dbline 276
0208 ; {
0208 .dbline 277
0208 ; start = 1;
0208 81E0 ldi R24,1
020A 80930900 sts _start,R24
020E .dbline 278
020E ; TCNT1 = 0x00;
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -