?? ex_support.lis
字號:
004A .dbline 0 ; func end
004A 0895 ret
004C .dbend
004C .dbfunc e Key_Scan _Key_Scan fc
004C ; chTempKeyCode0 -> R16
.even
004C _Key_Scan::
004C .dbline -1
004C .dbline 128
004C ; }
004C ;
004C ;
004C ;
004C ; /***********************************************************
004C ; * 函數說明:按鍵掃描函數 *
004C ; * 輸入: 無 *
004C ; * 輸出: 按鍵的掃描碼(如果無按鍵返回KEY_NULL) *
004C ; # 調用函數:無 *
004C ; ***********************************************************/
004C ; UINT8 Key_Scan(void)
004C ; {
004C .dbline 129
004C ; UINT8 chTempKeyCode = KEY_NULL;
004C 0FEF ldi R16,255
004E .dbline 133
004E ; //填寫掃描代碼
004E ;
004E ; //首先掃描A列
004E ; CLR_A;
004E 85B3 in R24,0x15
0050 8863 ori R24,56
0052 85BB out 0x15,R24
0054 .dbline 133
0054 .dbline 133
0054 AB98 cbi 0x15,3
0056 .dbline 133
0056 .dbline 135
0056 ;
0056 ; if (!READ_PINX) //判斷X是否為低電平
0056 999B sbis 0x13,1
0058 02C0 rjmp L12
005A X2:
005A 21E0 ldi R18,1
005C 01C0 rjmp L13
005E L12:
005E 2227 clr R18
0060 L13:
0060 2223 tst R18
0062 11F4 brne L10
0064 X3:
0064 .dbline 136
0064 ; {
0064 .dbline 137
0064 ; chTempKeyCode = 0x00;
0064 0027 clr R16
0066 .dbline 138
0066 ; }
0066 08C0 rjmp L11
0068 L10:
0068 .dbline 139
0068 ; else if (!READ_PINY)
0068 9A9B sbis 0x13,2
006A 02C0 rjmp L16
006C X4:
006C 21E0 ldi R18,1
006E 01C0 rjmp L17
0070 L16:
0070 2227 clr R18
0072 L17:
0072 2223 tst R18
0074 09F4 brne L14
0076 X5:
0076 .dbline 140
0076 ; {
0076 .dbline 141
0076 ; chTempKeyCode = 0x03;
0076 03E0 ldi R16,3
0078 .dbline 142
0078 ; }
0078 L14:
0078 L11:
0078 .dbline 144
0078 ;
0078 ; CLR_B;
0078 85B3 in R24,0x15
007A 8863 ori R24,56
007C 85BB out 0x15,R24
007E .dbline 144
007E .dbline 144
007E AC98 cbi 0x15,4
0080 .dbline 144
0080 .dbline 145
0080 ; if (!READ_PINX) //判斷X是否為低電平
0080 999B sbis 0x13,1
0082 02C0 rjmp L20
0084 X6:
0084 21E0 ldi R18,1
0086 01C0 rjmp L21
0088 L20:
0088 2227 clr R18
008A L21:
008A 2223 tst R18
008C 11F4 brne L18
008E X7:
008E .dbline 146
008E ; {
008E .dbline 147
008E ; chTempKeyCode = 0x01;
008E 01E0 ldi R16,1
0090 .dbline 148
0090 ; }
0090 08C0 rjmp L19
0092 L18:
0092 .dbline 149
0092 ; else if (!READ_PINY)
0092 9A9B sbis 0x13,2
0094 02C0 rjmp L24
0096 X8:
0096 21E0 ldi R18,1
0098 01C0 rjmp L25
009A L24:
009A 2227 clr R18
009C L25:
009C 2223 tst R18
009E 09F4 brne L22
00A0 X9:
00A0 .dbline 150
00A0 ; {
00A0 .dbline 151
00A0 ; chTempKeyCode = 0x04;
00A0 04E0 ldi R16,4
00A2 .dbline 152
00A2 ; }
00A2 L22:
00A2 L19:
00A2 .dbline 154
00A2 ;
00A2 ; CLR_C;
00A2 85B3 in R24,0x15
00A4 8863 ori R24,56
00A6 85BB out 0x15,R24
00A8 .dbline 154
00A8 .dbline 154
00A8 AD98 cbi 0x15,5
00AA .dbline 154
00AA .dbline 155
00AA ; if (!READ_PINX) //判斷X是否為低電平
00AA 999B sbis 0x13,1
00AC 02C0 rjmp L28
00AE X10:
00AE 21E0 ldi R18,1
00B0 01C0 rjmp L29
00B2 L28:
00B2 2227 clr R18
00B4 L29:
00B4 2223 tst R18
00B6 11F4 brne L26
00B8 X11:
00B8 .dbline 156
00B8 ; {
00B8 .dbline 157
00B8 ; chTempKeyCode = 0x02;
00B8 02E0 ldi R16,2
00BA .dbline 158
00BA ; }
00BA 08C0 rjmp L27
00BC L26:
00BC .dbline 159
00BC ; else if (!READ_PINY)
00BC 9A9B sbis 0x13,2
00BE 02C0 rjmp L32
00C0 X12:
00C0 21E0 ldi R18,1
00C2 01C0 rjmp L33
00C4 L32:
00C4 2227 clr R18
00C6 L33:
00C6 2223 tst R18
00C8 09F4 brne L30
00CA X13:
00CA .dbline 160
00CA ; {
00CA .dbline 161
00CA ; chTempKeyCode = 0x05;
00CA 05E0 ldi R16,5
00CC .dbline 162
00CC ; }
00CC L30:
00CC L27:
00CC .dbline 164
00CC ;
00CC ; return chTempKeyCode;
00CC .dbline -2
00CC L9:
00CC .dbline 0 ; func end
00CC 0895 ret
00CE .dbsym r chTempKeyCode0 16 c
00CE .dbend
00CE ; }
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -