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

📄 ocr0.lis

📁 单片机红外控制发射与接收,红外发射是一种常用的控制方式
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 0282           ;                                         data_0();
 0282 FFDE              xcall _data_0
 0284                   .dbline 296
 0284           ;                                         data_0();
 0284 FEDE              xcall _data_0
 0286                   .dbline 297
 0286           ;                                         data_0();
 0286 FDDE              xcall _data_0
 0288                   .dbline 298
 0288           ;                                         data_0();
 0288 FCDE              xcall _data_0
 028A                   .dbline 299
 028A           ;                                         data_0();
 028A FBDE              xcall _data_0
 028C                   .dbline 300
 028C           ;                                         data_0();
 028C FADE              xcall _data_0
 028E                   .dbline 301
 028E           ;                                         end();
 028E 04DF              xcall _end
 0290                   .dbline 303
 0290           ;                              
 0290           ;                                break;
 0290                   .dbline 305
 0290           ;  
 0290           ;           default: break;
 0290           L33:
 0290                   .dbline 308
 0290           L25:
 0290                   .dbline 90
 0290 2CCF              xjmp L24
 0292           X1:
 0292                   .dbline -2
 0292           L23:
 0292                   .dbline 0 ; func end
 0292 0895              ret
 0294                   .dbsym l abc 1 c
 0294                   .dbsym r i 20 c
 0294                   .dbsym r keyval1 22 c
 0294                   .dbsym r keyval2 10 c
 0294                   .dbend
 0294                   .dbfunc e scan_key _scan_key fc
 0294           ;              i -> R22
 0294           ;           temp -> R10
                        .even
 0294           _scan_key::
 0294 0E940000          xcall push_gset3
 0298                   .dbline -1
 0298                   .dbline 315
 0298           ;         }   
 0298           ;       
 0298           ;       }
 0298           ;  
 0298           ;  
 0298           ; }
 0298           ; 
 0298           ; //--------------------4x4key-----------------------------------//
 0298           ; unsigned char scan_key(void)   //不作按键释放检查的键盘扫描函数
 0298           ; {
 0298                   .dbline 317
 0298           ;  unsigned char i,temp;
 0298           ;  DDRC=0x0f;
 0298 8FE0              ldi R24,15
 029A 84BB              out 0x14,R24
 029C                   .dbline 318
 029C           ;  PORTC=0xff;
 029C 8FEF              ldi R24,255
 029E 85BB              out 0x15,R24
 02A0                   .dbline 319
 02A0           ;  for(i=0;i<4;i++)
 02A0 6627              clr R22
 02A2 5FC0              xjmp L56
 02A4           L53:
 02A4                   .dbline 320
 02A4           ;    {
 02A4                   .dbline 321
 02A4           ;     PORTC=~(1<<i);
 02A4 01E0              ldi R16,1
 02A6 162F              mov R17,R22
 02A8 0E940000          xcall lsl8
 02AC 202E              mov R2,R16
 02AE 2094              com R2
 02B0 25BA              out 0x15,R2
 02B2                   .dbline 322
 02B2           ;     delay(10);
 02B2 0AE0              ldi R16,10
 02B4 10E0              ldi R17,0
 02B6 BFDE              xcall _delay
 02B8                   .dbline 323
 02B8           ;     temp=PINC&0xf0;
 02B8 83B3              in R24,0x13
 02BA 807F              andi R24,240
 02BC A82E              mov R10,R24
 02BE                   .dbline 324
 02BE           ;     if(temp!=0xf0)
 02BE 803F              cpi R24,240
 02C0 09F4              brne X5
 02C2 4CC0              xjmp L57
 02C4           X5:
 02C4                   .dbline 325
 02C4           ;        {
 02C4                   .dbline 326
 02C4           ;         delay(15);
 02C4 0FE0              ldi R16,15
 02C6 10E0              ldi R17,0
 02C8 B6DE              xcall _delay
 02CA                   .dbline 327
 02CA           ;         temp=PINC&0xf0;
 02CA 83B3              in R24,0x13
 02CC 807F              andi R24,240
 02CE A82E              mov R10,R24
 02D0                   .dbline 328
 02D0           ;         if(temp!=0xf0)
 02D0 803F              cpi R24,240
 02D2 09F4              brne X6
 02D4 43C0              xjmp L59
 02D6           X6:
 02D6                   .dbline 329
 02D6           ;            {
 02D6                   .dbline 330
 02D6           ;            temp&=0xf0;
 02D6 807F              andi R24,240
 02D8 A82E              mov R10,R24
 02DA                   .dbline 331
 02DA           ;            switch(temp)
 02DA 482F              mov R20,R24
 02DC 5527              clr R21
 02DE 403B              cpi R20,176
 02E0 E0E0              ldi R30,0
 02E2 5E07              cpc R21,R30
 02E4 F9F0              breq L65
 02E6 80EB              ldi R24,176
 02E8 90E0              ldi R25,0
 02EA 8417              cp R24,R20
 02EC 9507              cpc R25,R21
 02EE 2CF0              brlt L69
 02F0           L68:
 02F0 4037              cpi R20,112
 02F2 E0E0              ldi R30,0
 02F4 5E07              cpc R21,R30
 02F6 71F0              breq L64
 02F8 2DC0              xjmp L61
 02FA           L69:
 02FA 403D              cpi R20,208
 02FC E0E0              ldi R30,0
 02FE 5E07              cpc R21,R30
 0300 C9F0              breq L66
 0302 403D              cpi R20,208
 0304 E0E0              ldi R30,0
 0306 5E07              cpc R21,R30
 0308 2CF1              brlt L61
 030A           L70:
 030A 403E              cpi R20,224
 030C E0E0              ldi R30,0
 030E 5E07              cpc R21,R30
 0310 C9F0              breq L67
 0312 20C0              xjmp L61
 0314           X4:
 0314                   .dbline 332
 0314           ;                  {
 0314           L64:
 0314                   .dbline 333
 0314           ;                   case 0x70: temp=15-(3-i)*4;  break;
 0314 13E0              ldi R17,3
 0316 161B              sub R17,R22
 0318 04E0              ldi R16,4
 031A 0102              muls R16,R17
 031C 8FE0              ldi R24,15
 031E A82E              mov R10,R24
 0320 A018              sub R10,R0
 0322                   .dbline 333
 0322 1AC0              xjmp L62
 0324           L65:
 0324                   .dbline 334
 0324           ;                   case 0xb0: temp=14-(3-i)*4;  break;
 0324 13E0              ldi R17,3
 0326 161B              sub R17,R22
 0328 04E0              ldi R16,4
 032A 0102              muls R16,R17
 032C 8EE0              ldi R24,14
 032E A82E              mov R10,R24
 0330 A018              sub R10,R0
 0332                   .dbline 334
 0332 12C0              xjmp L62
 0334           L66:
 0334                   .dbline 335
 0334           ;                   case 0xd0: temp=13-(3-i)*4;  break;
 0334 13E0              ldi R17,3
 0336 161B              sub R17,R22
 0338 04E0              ldi R16,4
 033A 0102              muls R16,R17
 033C 8DE0              ldi R24,13
 033E A82E              mov R10,R24
 0340 A018              sub R10,R0
 0342                   .dbline 335
 0342 0AC0              xjmp L62
 0344           L67:
 0344                   .dbline 336
 0344           ;                   case 0xe0: temp=12-(3-i)*4;  break;
 0344 13E0              ldi R17,3
 0346 161B              sub R17,R22
 0348 04E0              ldi R16,4
 034A 0102              muls R16,R17
 034C 8CE0              ldi R24,12
 034E A82E              mov R10,R24
 0350 A018              sub R10,R0
 0352                   .dbline 336
 0352 02C0              xjmp L62
 0354           L61:
 0354                   .dbline 337
 0354           ;                   default:temp=0x7f;
 0354 8FE7              ldi R24,127
 0356 A82E              mov R10,R24
 0358                   .dbline 338
 0358           ;                  }
 0358           L62:
 0358                   .dbline 339
 0358           ;             return temp;
 0358 0A2D              mov R16,R10
 035A 07C0              xjmp L52
 035C           L59:
 035C                   .dbline 341
 035C           ;            }
 035C           ;        }
 035C           L57:
 035C                   .dbline 342
 035C 8FEF              ldi R24,255
 035E 85BB              out 0x15,R24
 0360                   .dbline 343
 0360           L54:
 0360                   .dbline 319
 0360 6395              inc R22
 0362           L56:
 0362                   .dbline 319
 0362 6430              cpi R22,4
 0364 08F4              brsh X7
 0366 9ECF              xjmp L53
 0368           X7:
 0368                   .dbline 344
 0368           ;     PORTC=0xff;
 0368           ;    }
 0368           ;   return 0x7f;
 0368 0FE7              ldi R16,127
 036A                   .dbline -2
 036A           L52:
 036A 0E940000          xcall pop_gset3
 036E                   .dbline 0 ; func end
 036E 0895              ret
 0370                   .dbsym r i 22 c
 0370                   .dbsym r temp 10 c
 0370                   .dbend
 0370                   .dbfunc e keypad _keypad fc
 0370           ;          temp1 -> R20
 0370           ;          temp2 -> R22
                        .even
 0370           _keypad::
 0370 0E940000          xcall push_gset2
 0374                   .dbline -1
 0374                   .dbline 349
 0374           ; }
 0374           ; 
 0374           ; 
 0374           ; unsigned char keypad(void)   //有按键释放检查的键盘扫描函数
 0374           ; {
 0374                   .dbline 351
 0374           ;   unsigned char temp1,temp2;
 0374           ;   temp1=scan_key();
 0374 8FDF              xcall _scan_key
 0376 402F              mov R20,R16
 0378                   .dbline 352
 0378           ;   if (temp1==0x7f)
 0378 0F37              cpi R16,127
 037A 11F4              brne L72
 037C                   .dbline 353
 037C           ;       return 0x7f;
 037C 0FE7              ldi R16,127
 037E 05C0              xjmp L71
 0380           L72:
 0380           L74:
 0380                   .dbline 355
 0380           ;   do 
 0380           ;       temp2=scan_key();
 0380 89DF              xcall _scan_key
 0382 602F              mov R22,R16
 0384           L75:
 0384                   .dbline 356
 0384           ;   while (temp1==temp2);
 0384 4617              cp R20,R22
 0386 E1F3              breq L74
 0388                   .dbline 357
 0388           ;   return temp1;
 0388 042F              mov R16,R20
 038A                   .dbline -2
 038A           L71:
 038A 0E940000          xcall pop_gset2
 038E                   .dbline 0 ; func end
 038E 0895              ret
 0390                   .dbsym r temp1 20 c
 0390                   .dbsym r temp2 22 c
 0390                   .dbend
 0390                   .dbfunc e EEPROM_read _EEPROM_read fc
 0390           ;      uiAddress -> R16,R17
                        .even
 0390           _EEPROM_read::
 0390                   .dbline -1
 0390                   .dbline 363
 0390           ; 
 0390           ; }
 0390           ; 
 0390           ; 
 0390           ; unsigned char EEPROM_read(unsigned int uiAddress)
 0390           ; {
 0390           L78:
 0390                   .dbline 364
 0390           L79:
 0390                   .dbline 364
 0390           ; while(EECR&(1<<EEWE));
 0390 E199              sbic 0x1c,1
 0392 FECF              rjmp L78
 0394                   .dbline 365
 0394           ; EEAR=uiAddress;
 0394 1FBB              out 0x1f,R17
 0396 0EBB              out 0x1e,R16
 0398                   .dbline 366
 0398           ; EECR|=(1<<EERE);
 0398 E09A              sbi 0x1c,0
 039A                   .dbline 367
 039A           ; return EEDR;
 039A 0DB3              in R16,0x1d
 039C                   .dbline -2
 039C           L77:
 039C                   .dbline 0 ; func end
 039C 0895              ret
 039E                   .dbsym r uiAddress 16 i
 039E                   .dbend

⌨️ 快捷键说明

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