?? keymatrix.lst
字號:
C51 COMPILER V7.00 KEYMATRIX 05/16/2007 10:42:12 PAGE 1
C51 COMPILER V7.00, COMPILATION OF MODULE KEYMATRIX
OBJECT MODULE PLACED IN keymatrix.OBJ
COMPILER INVOKED BY: D:\Program Files\keil中文版\Keil\C51\BIN\C51.EXE keymatrix.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /* ***********************************************
2 鍵盤掃描程序
3 完成日期:
4 修改日期:
5 修改人員:
6 修改日期:
7 修改人員:
8 ***********************************************
9 */
10 #include <reg52.h>
11 #include "type.h"
12
13 // ===============================================
14 // 鍵盤延遲程序
15 // 輸入參數:d數據范圍[0,255],該參數決定延遲時間
16 // 輸出參數:無
17 void KeyDelay(UCHAR d)
18 {
19 1 UCHAR i;
20 1 while(d--)
21 1 {
22 2 for ( i = 0; i < 220 ;i ++);
23 2 }
24 1 }
25 // ===============================================
26 // 鍵盤掃描碼獲取程序
27 // 功能簡述:當按鍵按下后以第一次按下的鍵為有效鍵
28 // 輸入參數:無
29 // 輸出參數:掃描碼
30 UCHAR getKey(void)
31 {
32 1 UCHAR idx=0,rt;
33 1 while(TRUE)
34 1 {
35 2 idx ++;
36 2 idx &= 3;
37 2 P1 = ~(1<<idx);
38 2 if ( (P1 & 0XF0) != 0XF0)
39 2 {
40 3 //some key pressed
41 3 KeyDelay(20);
42 3 if ( (P1 & 0XF0) != 0XF0)
43 3 {
44 4 rt = (P1&0xf0)+idx;
45 4 while(TRUE)
46 4 {
47 5 if ((P1 & 0XF0) == 0XF0)
48 5 {
49 6 KeyDelay(20);
50 6 if((P1 & 0XF0) == 0XF0)
51 6 {
52 7 break;
53 7 }
54 6 }
55 5 }
C51 COMPILER V7.00 KEYMATRIX 05/16/2007 10:42:12 PAGE 2
56 4 return rt;
57 4 }
58 3 }
59 2 }
60 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 89 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -