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

📄 key.lis

📁 74hc165d 做的键盘扩展程序 avr实现 独立按键 9个 与avr串行通信
💻 LIS
字号:
                        .module key.c
                        .area text(rom, con, rel)
 0000                   .dbfile D:\avr\key\key.c
 0000                   .dbfunc e Delay _Delay fV
 0000           ;              a -> R20,R21
 0000           ;              b -> R22,R23
 0000           ;              x -> R16,R17
                        .even
 0000           _Delay::
 0000 00D0              rcall push_gset2
 0002                   .dbline -1
 0002                   .dbline 4
 0002           ; 
 0002           ; #include <iom8v.h>
 0002           ; void Delay(int x) 
 0002           ;       {
 0002                   .dbline 6
 0002           ;       unsigned int a, b;
 0002           ;       for (a = 100; a>0; a--)
 0002 44E6              ldi R20,100
 0004 50E0              ldi R21,0
 0006 0AC0              rjmp L5
 0008           L2:
 0008                   .dbline 7
 0008 68EE              ldi R22,1000
 000A 73E0              ldi R23,3
 000C 02C0              rjmp L9
 000E           L6:
 000E                   .dbline 7
 000E           L7:
 000E                   .dbline 7
 000E 6150              subi R22,1
 0010 7040              sbci R23,0
 0012           L9:
 0012                   .dbline 7
 0012 6030              cpi R22,0
 0014 6707              cpc R22,R23
 0016 D9F7              brne L6
 0018           X0:
 0018           L3:
 0018                   .dbline 6
 0018 4150              subi R20,1
 001A 5040              sbci R21,0
 001C           L5:
 001C                   .dbline 6
 001C 4030              cpi R20,0
 001E 4507              cpc R20,R21
 0020 99F7              brne L2
 0022           X1:
 0022                   .dbline -2
 0022           L1:
 0022 00D0              rcall pop_gset2
 0024                   .dbline 0 ; func end
 0024 0895              ret
 0026                   .dbsym r a 20 i
 0026                   .dbsym r b 22 i
 0026                   .dbsym r x 16 I
 0026                   .dbend
 0026                   .dbfunc e main _main fV
 0026           ;              j -> <dead>
 0026           ;              i -> R20,R21
 0026           ;            ACC -> R22,R23
                        .even
 0026           _main::
 0026                   .dbline -1
 0026                   .dbline 10
 0026           ;               for (b = 1000; b>0; b--);
 0026           ;       }
 0026           ; void main()
 0026           ;       {
 0026                   .dbline 13
 0026           ;       unsigned int i,j,ACC;
 0026           ;       //ACC=0X000;
 0026           ;     DDRC=0XFE;
 0026 8EEF              ldi R24,254
 0028 84BB              out 0x14,R24
 002A                   .dbline 14
 002A           ;       PORTC=0XFF;
 002A 8FEF              ldi R24,255
 002C 85BB              out 0x15,R24
 002E                   .dbline 15
 002E           ;       DDRB=0XFF;
 002E 87BB              out 0x17,R24
 0030                   .dbline 16
 0030           ;       PORTB=0XFF;
 0030 88BB              out 0x18,R24
 0032                   .dbline 17
 0032           ;       DDRD=0XFF;
 0032 81BB              out 0x11,R24
 0034                   .dbline 18
 0034           ;       PORTD=0X00;
 0034 2224              clr R2
 0036 22BA              out 0x12,R2
 0038 24C0              rjmp L12
 003A           L11:
 003A                   .dbline 20
 003A           ;       while (1)
 003A           ;               {       
 003A                   .dbline 22
 003A           ;               //PORTB=0x00;
 003A           ;                       PORTC&=0B11111101;
 003A 85B3              in R24,0x15
 003C 8D7F              andi R24,253
 003E 85BB              out 0x15,R24
 0040                   .dbline 25
 0040           ;                       
 0040           ;                       //Delay(1);
 0040           ;                       PORTC|=0B00000010;
 0040 A99A              sbi 0x15,1
 0042                   .dbline 26
 0042           ;                        for(i=9;i>0;i--)
 0042 49E0              ldi R20,9
 0044 50E0              ldi R21,0
 0046 0EC0              rjmp L17
 0048           L14:
 0048                   .dbline 27
 0048                   .dbline 28
 0048 660F              lsl R22
 004A 771F              rol R23
 004C                   .dbline 29
 004C 85B3              in R24,0x15
 004E 8B7F              andi R24,251
 0050 85BB              out 0x15,R24
 0052                   .dbline 30
 0052 83B3              in R24,0x13
 0054 9927              clr R25
 0056 8170              andi R24,1
 0058 9070              andi R25,0
 005A 682B              or R22,R24
 005C 792B              or R23,R25
 005E                   .dbline 31
 005E AA9A              sbi 0x15,2
 0060                   .dbline 32
 0060           L15:
 0060                   .dbline 26
 0060 4150              subi R20,1
 0062 5040              sbci R21,0
 0064           L17:
 0064                   .dbline 26
 0064 4030              cpi R20,0
 0066 4507              cpc R20,R21
 0068 79F7              brne L14
 006A           X2:
 006A                   .dbline 34
 006A           ;                        {
 006A           ;                               ACC=ACC<<1;
 006A           ;                               PORTC&=0B11111011;
 006A           ;                               ACC|=(PINC&01);
 006A           ;                               PORTC|=0B00000100;               
 006A           ;                        }
 006A           ;                       // PORTC=0xfB;
 006A           ;                       ACC= ACC&0x1ff;
 006A 7170              andi R23,1
 006C                   .dbline 35
 006C           ;                       if(ACC==0xff)
 006C 6F3F              cpi R22,255
 006E E0E0              ldi R30,0
 0070 7E07              cpc R23,R30
 0072 19F4              brne L18
 0074                   .dbline 36
 0074           ;                       {PORTB=0X00;
 0074                   .dbline 36
 0074 2224              clr R2
 0076 28BA              out 0x18,R2
 0078                   .dbline 37
 0078           ;                       }
 0078 01C0              rjmp L19
 007A           L18:
 007A                   .dbline 39
 007A           ;                       else
 007A           ;                        PORTB=ACC;
 007A 68BB              out 0x18,R22
 007C           L19:
 007C                   .dbline 41
 007C 0AEF              ldi R16,250
 007E 10E0              ldi R17,0
 0080 BFDF              rcall _Delay
 0082                   .dbline 42
 0082           L12:
 0082                   .dbline 19
 0082 DBCF              rjmp L11
 0084           X3:
 0084                   .dbline -2
 0084           L10:
 0084                   .dbline 0 ; func end
 0084 0895              ret
 0086                   .dbsym l j 1 i
 0086                   .dbsym r i 20 i
 0086                   .dbsym r ACC 22 i
 0086                   .dbend

⌨️ 快捷键说明

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