?? ex_support.lis
字號:
01F0 9D99 sbic 0x13,5
01F2 02C0 rjmp L71
01F4 X30:
01F4 .dbline 405
01F4 ; //則返回按鍵的值
01F4 ; {
01F4 .dbline 406
01F4 ; chTempKeyCode = 12;
01F4 .dbline 407
01F4 ; return chTempKeyCode;
01F4 0CE0 ldi R16,12
01F6 5FC0 rjmp L44
01F8 L71:
01F8 .dbline 411
01F8 ; }
01F8 ; ////////////////////////////////////////////////////////////////
01F8 ; //對16按鈕進行掃描
01F8 ; DDRC &= ~(BIT(2) | BIT(1) |
01F8 84B3 in R24,0x14
01FA 817D andi R24,209
01FC 84BB out 0x14,R24
01FE .dbline 414
01FE ; BIT(3) | BIT(5));//把端口pc1-pc3、pc5設置為輸入
01FE ;
01FE ; DDRC |= BIT(4); //把pc4端口設為輸出
01FE A49A sbi 0x14,4
0200 .dbline 416
0200 ;
0200 ; PORTC |= BIT(1) | BIT(2) | BIT(3) |
0200 85B3 in R24,0x15
0202 8E63 ori R24,62
0204 85BB out 0x15,R24
0206 .dbline 419
0206 ; BIT(4) | BIT(5);
0206 ;
0206 ; PORTC &=~ BIT(4); //把pc4端口拉低
0206 AC98 cbi 0x15,4
0208 .dbline 420
0208 ; NOP();
0208 0000 nop
020A .dbline 421
020A ; NOP();
020A 0000 nop
020C .dbline 424
020C ;
020C ;
020C ; if (!(PINC & (BIT(5))))
020C 9D99 sbic 0x13,5
020E 02C0 rjmp L73
0210 X31:
0210 .dbline 425
0210 ; {
0210 .dbline 426
0210 ; chTempKeyCode = 16;
0210 .dbline 427
0210 ; return chTempKeyCode; //讀取pc5端口,如果返回值是0則表明按鍵被按下,
0210 00E1 ldi R16,16
0212 51C0 rjmp L44
0214 L73:
0214 .dbline 434
0214 ; //則返回按鍵的值
0214 ; }
0214 ;
0214 ;
0214 ; //////////////////////////////////////////////////////////////
0214 ; //對20-17按鈕進行掃描
0214 ; DDRC &= ~(BIT(2) | BIT(3) |
0214 84B3 in R24,0x14
0216 817E andi R24,225
0218 84BB out 0x14,R24
021A .dbline 437
021A ; BIT(4) | BIT(1)); //把端口pc1-pc4設置為輸入
021A ;
021A ; DDRC |= BIT(5); //把pc5端口設為輸出
021A A59A sbi 0x14,5
021C .dbline 439
021C ;
021C ; PORTC |= BIT(1) | BIT(2) | BIT(3) |
021C 85B3 in R24,0x15
021E 8E63 ori R24,62
0220 85BB out 0x15,R24
0222 .dbline 442
0222 ; BIT(4) | BIT(5);
0222 ;
0222 ; PORTC &= ~BIT(5); //把pc5端口拉低
0222 AD98 cbi 0x15,5
0224 .dbline 443
0224 ; NOP();
0224 0000 nop
0226 .dbline 444
0226 ; NOP();
0226 0000 nop
0228 .dbline 448
0228 ;
0228 ;
0228 ;
0228 ; if (!(PINC & (BIT(4)))) //讀取pc4端口,如果返回值是0則表明按鍵被按下,
0228 9C99 sbic 0x13,4
022A 02C0 rjmp L75
022C X32:
022C .dbline 452
022C ; //則返回按鍵的值
022C ; //以下依次對pc3-pc1逐個讀取值,如果返回值為0
022C ; //則返回相應按鍵值
022C ; {
022C .dbline 453
022C ; chTempKeyCode = 20;
022C .dbline 454
022C ; return chTempKeyCode;
022C 04E1 ldi R16,20
022E 43C0 rjmp L44
0230 L75:
0230 .dbline 456
0230 ; }
0230 ; else if (!(PINC & (BIT(3))))
0230 9B99 sbic 0x13,3
0232 02C0 rjmp L77
0234 X33:
0234 .dbline 457
0234 ; {
0234 .dbline 458
0234 ; chTempKeyCode = 19;
0234 .dbline 459
0234 ; return chTempKeyCode;
0234 03E1 ldi R16,19
0236 3FC0 rjmp L44
0238 L77:
0238 .dbline 461
0238 ; }
0238 ; else if (!(PINC & (BIT(2))))
0238 9A99 sbic 0x13,2
023A 02C0 rjmp L79
023C X34:
023C .dbline 462
023C ; {
023C .dbline 463
023C ; chTempKeyCode = 18;
023C .dbline 464
023C ; return chTempKeyCode;
023C 02E1 ldi R16,18
023E 3BC0 rjmp L44
0240 L79:
0240 .dbline 466
0240 ; }
0240 ; else if (!(PINC & (BIT(1))))
0240 9999 sbic 0x13,1
0242 02C0 rjmp L81
0244 X35:
0244 .dbline 467
0244 ; {
0244 .dbline 468
0244 ; chTempKeyCode = 17;
0244 .dbline 469
0244 ; return chTempKeyCode;
0244 01E1 ldi R16,17
0246 37C0 rjmp L44
0248 L81:
0248 .dbline 477
0248 ; }
0248 ;
0248 ;
0248 ;
0248 ; //////////////////////////////////////////////////////////////
0248 ; //對15-13按鈕進行掃描
0248 ;
0248 ; DDRC &= ~(BIT(1) | BIT(3) |
0248 84B3 in R24,0x14
024A 817D andi R24,209
024C 84BB out 0x14,R24
024E .dbline 480
024E ; BIT(2) | BIT(5)); //把端口pc1-pc3、pc5設置為輸入
024E ;
024E ; DDRC |= BIT(4); //把pc4端口設為輸出
024E A49A sbi 0x14,4
0250 .dbline 482
0250 ;
0250 ; PORTC |= BIT(1) | BIT(2) | BIT(3) |
0250 85B3 in R24,0x15
0252 8E63 ori R24,62
0254 85BB out 0x15,R24
0256 .dbline 485
0256 ; BIT(4) | BIT(5);
0256 ;
0256 ; PORTC &= ~BIT(4); //把pc4端口拉低
0256 AC98 cbi 0x15,4
0258 .dbline 486
0258 ; NOP();
0258 0000 nop
025A .dbline 487
025A ; NOP();
025A 0000 nop
025C .dbline 490
025C ;
025C ;
025C ; if (!(PINC & (BIT(3)))) //讀取pc3端口,如果返回值是0則表明按鍵被按下,
025C 9B99 sbic 0x13,3
025E 02C0 rjmp L83
0260 X36:
0260 .dbline 494
0260 ; //則返回按鍵的值
0260 ; //以下依次對pc2-pc1逐個讀取值,如果返回值為0
0260 ; //則返回相應按鍵值
0260 ; {
0260 .dbline 495
0260 ; chTempKeyCode = 15;
0260 .dbline 496
0260 ; return chTempKeyCode;
0260 0FE0 ldi R16,15
0262 29C0 rjmp L44
0264 L83:
0264 .dbline 498
0264 ; }
0264 ; else if (!(PINC & (BIT(2))))
0264 9A99 sbic 0x13,2
0266 02C0 rjmp L85
0268 X37:
0268 .dbline 499
0268 ; {
0268 .dbline 500
0268 ; chTempKeyCode = 14;
0268 .dbline 501
0268 ; return chTempKeyCode;
0268 0EE0 ldi R16,14
026A 25C0 rjmp L44
026C L85:
026C .dbline 503
026C ; }
026C ; else if (!(PINC & (BIT(1))))
026C 9999 sbic 0x13,1
026E 02C0 rjmp L87
0270 X38:
0270 .dbline 504
0270 ; {
0270 .dbline 505
0270 ; chTempKeyCode = 13;
0270 .dbline 506
0270 ; return chTempKeyCode;
0270 0DE0 ldi R16,13
0272 21C0 rjmp L44
0274 L87:
0274 .dbline 514
0274 ; }
0274 ;
0274 ;
0274 ;
0274 ; //////////////////////////////////////////////////////////////
0274 ; //對10-9按鈕進行掃描
0274 ;
0274 ; DDRC &= ~(BIT(2) | BIT(1) |
0274 84B3 in R24,0x14
0276 897C andi R24,201
0278 84BB out 0x14,R24
027A .dbline 517
027A ; BIT(4) | BIT(5)); //把端口pc1-pc2、pc4-pc5設置為輸入
027A ;
027A ; DDRC |= BIT(3); //把pc3端口設為輸出
027A A39A sbi 0x14,3
027C .dbline 519
027C ;
027C ; PORTC |= BIT(1) | BIT(2) |
027C 85B3 in R24,0x15
027E 8E63 ori R24,62
0280 85BB out 0x15,R24
0282 .dbline 522
0282 ; BIT(3) | BIT(4) | BIT(5);
0282 ;
0282 ; PORTC &= ~BIT(3); //把pc3端口拉低
0282 AB98 cbi 0x15,3
0284 .dbline 523
0284 ; NOP();
0284 0000 nop
0286 .dbline 524
0286 ; NOP();
0286 0000 nop
0288 .dbline 527
0288 ;
0288 ;
0288 ; if (!(PINC & (BIT(2)))) //讀取pc2端口,如果返回值是0則表明按鍵被按下,
0288 9A99 sbic 0x13,2
028A 02C0 rjmp L89
028C X39:
028C .dbline 529
028C ; //則返回按鍵的值
028C ; {
028C .dbline 530
028C ; chTempKeyCode = 10;
028C .dbline 531
028C ; return chTempKeyCode;
028C 0AE0 ldi R16,10
028E 13C0 rjmp L44
0290 L89:
0290 .dbline 533
0290 ; }
0290 ; else if (!(PINC & (BIT(1)))) //讀取pc1端口,如果返回值是0則表明按鍵被按下,
0290 9999 sbic 0x13,1
0292 02C0 rjmp L91
0294 X40:
0294 .dbline 535
0294 ; //則返回按鍵的值
0294 ; {
0294 .dbline 536
0294 ; chTempKeyCode = 9;
0294 .dbline 537
0294 ; return chTempKeyCode;
0294 09E0 ldi R16,9
0296 0FC0 rjmp L44
0298 L91:
0298 .dbline 543
0298 ; }
0298 ;
0298 ;
0298 ; //////////////////////////////////////////////////////
0298 ; //對5按鈕進行掃描
0298 ; DDRC &= ~(BIT(4) | BIT(1) |
0298 84B3 in R24,0x14
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -