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

📄 key.lis

📁 键盘扫描及其LCD显示输出,有源程序与仿真文件,都测试通过.
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 0136           ;   DDRD=0xff;
 0136 8FEF              ldi R24,255
 0138 81BB              out 0x11,R24
 013A                   .dbline 76
 013A           ;   DDRB=0xff;
 013A 87BB              out 0x17,R24
 013C                   .dbline 78
 013C           ;  // PORTA=0xff;
 013C           ;   PORTB=0xff;
 013C 88BB              out 0x18,R24
 013E                   .dbline 79
 013E           ;   PORTD=0xff;
 013E 82BB              out 0x12,R24
 0140                   .dbline -2
 0140           L34:
 0140                   .dbline 0 ; func end
 0140 0895              ret
 0142                   .dbend
 0142                   .dbfunc e main _main fV
 0142           ;              i -> <dead>
 0142           ;          space -> R20,R21
 0142           ;     x_position -> R20
 0142           ;            key -> R10
                        .even
 0142           _main::
 0142 2297              sbiw R28,2
 0144                   .dbline -1
 0144                   .dbline 83
 0144           ;   
 0144           ;   }
 0144           ; void main()
 0144           ;  { uchar key;
 0144                   .dbline 86
 0144           ;    uchar i;
 0144           ;    uchar x_position;
 0144           ;     uchar *space = "                   ";
 0144 40E0              ldi R20,<L36
 0146 50E0              ldi R21,>L36
 0148                   .dbline 87
 0148           ;     Init_LCD();   
 0148 00D0              rcall _Init_LCD
 014A                   .dbline 90
 014A           ;     //PORTD = 0xff; 
 014A           ;     //DDRD =  0xf0;     
 014A           ;     PORTA = 0xff;
 014A 8FEF              ldi R24,255
 014C 8BBB              out 0x1b,R24
 014E                   .dbline 91
 014E           ;     DDRA  = 0xf8;
 014E 88EF              ldi R24,248
 0150 8ABB              out 0x1a,R24
 0152                   .dbline 92
 0152           ;     LCD_DisplayString(1,1,"key scan test");
 0152 80E0              ldi R24,<L37
 0154 90E0              ldi R25,>L37
 0156 9983              std y+1,R25
 0158 8883              std y+0,R24
 015A 21E0              ldi R18,1
 015C 01E0              ldi R16,1
 015E 00D0              rcall _LCD_DisplayString
 0160                   .dbline 93
 0160           ;     x_position = 2;
 0160 42E0              ldi R20,2
 0162                   .dbline 94
 0162           ;    init();
 0162 E9DF              rcall _init
 0164                   .dbline 95
 0164           ;    for( ; ; )
 0164           L38:
 0164                   .dbline 96
 0164           ;    { 
 0164                   .dbline 97
 0164           ;        key=key_read();
 0164 4DDF              rcall _key_read
 0166 A02E              mov R10,R16
 0168                   .dbline 99
 0168           ;         //针对4X4的键盘         
 0168           ;          switch(key)   
 0168 6A2D              mov R22,R10
 016A 7727              clr R23
 016C 6130              cpi R22,1
 016E E0E0              ldi R30,0
 0170 7E07              cpc R23,R30
 0172 09F4              brne X12
 0174 38C0              rjmp L45
 0176           X12:
 0176 6230              cpi R22,2
 0178 E0E0              ldi R30,0
 017A 7E07              cpc R23,R30
 017C 09F4              brne X13
 017E 39C0              rjmp L46
 0180           X13:
 0180 6330              cpi R22,3
 0182 E0E0              ldi R30,0
 0184 7E07              cpc R23,R30
 0186 09F4              brne X14
 0188 3AC0              rjmp L47
 018A           X14:
 018A 6430              cpi R22,4
 018C E0E0              ldi R30,0
 018E 7E07              cpc R23,R30
 0190 09F4              brne X15
 0192 3BC0              rjmp L48
 0194           X15:
 0194 6530              cpi R22,5
 0196 E0E0              ldi R30,0
 0198 7E07              cpc R23,R30
 019A 09F4              brne X16
 019C 3CC0              rjmp L49
 019E           X16:
 019E 6630              cpi R22,6
 01A0 E0E0              ldi R30,0
 01A2 7E07              cpc R23,R30
 01A4 09F4              brne X17
 01A6 3DC0              rjmp L50
 01A8           X17:
 01A8 6730              cpi R22,7
 01AA E0E0              ldi R30,0
 01AC 7E07              cpc R23,R30
 01AE 09F4              brne X18
 01B0 3EC0              rjmp L51
 01B2           X18:
 01B2 6830              cpi R22,8
 01B4 E0E0              ldi R30,0
 01B6 7E07              cpc R23,R30
 01B8 09F4              brne X19
 01BA 3FC0              rjmp L52
 01BC           X19:
 01BC 6930              cpi R22,9
 01BE E0E0              ldi R30,0
 01C0 7E07              cpc R23,R30
 01C2 09F4              brne X20
 01C4 40C0              rjmp L53
 01C6           X20:
 01C6 6A30              cpi R22,10
 01C8 E0E0              ldi R30,0
 01CA 7E07              cpc R23,R30
 01CC 09F4              brne X21
 01CE 41C0              rjmp L54
 01D0           X21:
 01D0 6B30              cpi R22,11
 01D2 E0E0              ldi R30,0
 01D4 7E07              cpc R23,R30
 01D6 09F4              brne X22
 01D8 42C0              rjmp L55
 01DA           X22:
 01DA 6C30              cpi R22,12
 01DC E0E0              ldi R30,0
 01DE 7E07              cpc R23,R30
 01E0 09F4              brne X23
 01E2 43C0              rjmp L56
 01E4           X23:
 01E4 BFCF              rjmp L38
 01E6           X10:
 01E6                   .dbline 100
 01E6           ;          {  
 01E6           L45:
 01E6                   .dbline 102
 01E6           ;             case 1:            
 01E6           ;                 LCD_Cursor(2,x_position);
 01E6 242F              mov R18,R20
 01E8 02E0              ldi R16,2
 01EA 00D0              rcall _LCD_Cursor
 01EC                   .dbline 103
 01EC           ;                 LCD_DisplayCharacter('1');          
 01EC 01E3              ldi R16,49
 01EE 00D0              rcall _LCD_DisplayCharacter
 01F0                   .dbline 104
 01F0           ;                 break;
 01F0 B9CF              rjmp L38
 01F2           L46:
 01F2                   .dbline 106
 01F2           ;             case 2:            
 01F2           ;                 LCD_Cursor(2,x_position);
 01F2 242F              mov R18,R20
 01F4 02E0              ldi R16,2
 01F6 00D0              rcall _LCD_Cursor
 01F8                   .dbline 107
 01F8           ;                 LCD_DisplayCharacter('2');          
 01F8 02E3              ldi R16,50
 01FA 00D0              rcall _LCD_DisplayCharacter
 01FC                   .dbline 108
 01FC           ;                 break;
 01FC B3CF              rjmp L38
 01FE           L47:
 01FE                   .dbline 110
 01FE           ;             case 3:            
 01FE           ;                 LCD_Cursor(2,x_position);
 01FE 242F              mov R18,R20
 0200 02E0              ldi R16,2
 0202 00D0              rcall _LCD_Cursor
 0204                   .dbline 111
 0204           ;                 LCD_DisplayCharacter('3');          
 0204 03E3              ldi R16,51
 0206 00D0              rcall _LCD_DisplayCharacter
 0208                   .dbline 112
 0208           ;                 break; 
 0208 ADCF              rjmp L38
 020A           L48:
 020A                   .dbline 114
 020A           ;             case 4:            
 020A           ;                 LCD_Cursor(2,x_position);
 020A 242F              mov R18,R20
 020C 02E0              ldi R16,2
 020E 00D0              rcall _LCD_Cursor
 0210                   .dbline 115
 0210           ;                 LCD_DisplayCharacter('4');          
 0210 04E3              ldi R16,52
 0212 00D0              rcall _LCD_DisplayCharacter
 0214                   .dbline 116
 0214           ;                 break;
 0214 A7CF              rjmp L38
 0216           L49:
 0216                   .dbline 118
 0216           ;             case 5:            
 0216           ;                 LCD_Cursor(2,x_position);
 0216 242F              mov R18,R20
 0218 02E0              ldi R16,2
 021A 00D0              rcall _LCD_Cursor
 021C                   .dbline 119
 021C           ;                 LCD_DisplayCharacter('5');          
 021C 05E3              ldi R16,53
 021E 00D0              rcall _LCD_DisplayCharacter
 0220                   .dbline 120
 0220           ;                 break;
 0220 A1CF              rjmp L38
 0222           L50:
 0222                   .dbline 122
 0222           ;             case 6:            
 0222           ;                 LCD_Cursor(2,x_position);
 0222 242F              mov R18,R20
 0224 02E0              ldi R16,2
 0226 00D0              rcall _LCD_Cursor
 0228                   .dbline 123
 0228           ;                 LCD_DisplayCharacter('6');          
 0228 06E3              ldi R16,54
 022A 00D0              rcall _LCD_DisplayCharacter
 022C                   .dbline 124
 022C           ;                 break;
 022C 9BCF              rjmp L38
 022E           L51:
 022E                   .dbline 126
 022E           ;             case 7:            
 022E           ;                 LCD_Cursor(2,x_position);
 022E 242F              mov R18,R20
 0230 02E0              ldi R16,2
 0232 00D0              rcall _LCD_Cursor
 0234                   .dbline 127
 0234           ;                 LCD_DisplayCharacter('7');          
 0234 07E3              ldi R16,55
 0236 00D0              rcall _LCD_DisplayCharacter
 0238                   .dbline 128
 0238           ;                 break;  
 0238 95CF              rjmp L38
 023A           L52:
 023A                   .dbline 130
 023A           ;             case 8:            
 023A           ;                 LCD_Cursor(2,x_position);
 023A 242F              mov R18,R20
 023C 02E0              ldi R16,2
 023E 00D0              rcall _LCD_Cursor
 0240                   .dbline 131
 0240           ;                 LCD_DisplayCharacter('8');          
 0240 08E3              ldi R16,56
 0242 00D0              rcall _LCD_DisplayCharacter
 0244                   .dbline 132
 0244           ;                 break;
 0244 8FCF              rjmp L38
 0246           L53:
 0246                   .dbline 134
 0246           ;             case 9:            
 0246           ;                 LCD_Cursor(2,x_position);
 0246 242F              mov R18,R20
 0248 02E0              ldi R16,2
 024A 00D0              rcall _LCD_Cursor
 024C                   .dbline 135
 024C           ;                 LCD_DisplayCharacter('9');          
 024C 09E3              ldi R16,57
 024E 00D0              rcall _LCD_DisplayCharacter
 0250                   .dbline 136
 0250           ;                 break;            
 0250 89CF              rjmp L38
 0252           L54:
 0252                   .dbline 138
 0252           ;             case 10:            
 0252           ;                 LCD_Cursor(2,x_position);
 0252 242F              mov R18,R20
 0254 02E0              ldi R16,2
 0256 00D0              rcall _LCD_Cursor
 0258                   .dbline 139
 0258           ;                 LCD_DisplayCharacter('*');          
 0258 0AE2              ldi R16,42
 025A 00D0              rcall _LCD_DisplayCharacter
 025C                   .dbline 140
 025C           ;                 break;
 025C 83CF              rjmp L38
 025E           L55:
 025E                   .dbline 142
 025E           ;             case 11:            
 025E           ;                 LCD_Cursor(2,x_position);
 025E 242F              mov R18,R20
 0260 02E0              ldi R16,2
 0262 00D0              rcall _LCD_Cursor
 0264                   .dbline 143
 0264           ;                 LCD_DisplayCharacter('0');          
 0264 00E3              ldi R16,48
 0266 00D0              rcall _LCD_DisplayCharacter
 0268                   .dbline 144
 0268           ;                 break;
 0268 7DCF              rjmp L38
 026A           L56:
 026A                   .dbline 146
 026A 242F              mov R18,R20
 026C 02E0              ldi R16,2
 026E 00D0              rcall _LCD_Cursor
 0270                   .dbline 147
 0270 03E2              ldi R16,35
 0272 00D0              rcall _LCD_DisplayCharacter
 0274                   .dbline 148
 0274                   .dbline 149
 0274                   .dbline 152
 0274                   .dbline 95
 0274                   .dbline 95
 0274 77CF              rjmp L38
 0276           X11:
 0276                   .dbline -2
 0276           L35:
 0276 2296              adiw R28,2
 0278                   .dbline 0 ; func end
 0278 0895              ret
 027A                   .dbsym l i 3 c
 027A                   .dbsym r space 20 pc
 027A                   .dbsym r x_position 20 c
 027A                   .dbsym r key 10 c
 027A                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile F:\AVR练习\key_lcd\key.c
 0000           _newcount::
 0000                   .blkb 2
 0002                   .dbsym e newcount _newcount i
 0002           _oldcount::
 0002                   .blkb 2
 0004                   .dbsym e oldcount _oldcount i
 0004           _led::
 0004                   .blkb 6
 000A                   .dbsym e led _led A[6:6]c
 000A           _ledbuff::
 000A                   .blkb 6
 0010                   .dbsym e ledbuff _ledbuff A[6:6]c
                        .area data(ram, con, rel)
 0000                   .dbfile F:\AVR练习\key_lcd\key.c
 0000           L37:
 0000                   .blkb 14
                        .area idata
 0000 6B6579207363616E207465737400      .byte 'k,'e,'y,32,'s,'c,'a,'n,32,'t,'e,'s,'t,0
                        .area data(ram, con, rel)
 000E                   .dbfile F:\AVR练习\key_lcd\key.c
 000E           L36:
 000E                   .blkb 20
                        .area idata
 000E 20202020202020202020202020202020  .byte 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32
 001E 20202000          .byte 32,32,32,0
                        .area data(ram, con, rel)
 0022                   .dbfile F:\AVR练习\key_lcd\key.c

⌨️ 快捷键说明

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