⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.lis

📁 这一个用ATTINY26做的433M无线遥控解码程序
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 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;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -