?? key.lst
字號:
C51 COMPILER V8.02 KEY 09/13/2007 16:35:02 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE KEY
OBJECT MODULE PLACED IN Key.OBJ
COMPILER INVOKED BY: d:\Keil3\C51\BIN\C51.EXE Key.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #define Key
2 #include <Key.h>
3
4 // 主程序,通過調用"讀鍵值" 和 "譯碼" 程序, 將鍵值返回給主調函數
5 uchar Key_Word(void)
6 {
7 1 unsigned char key,m;
8 1 unsigned char key_decode = 0xff ;
9 1
10 1 P1=0xf0;
11 1 m=P1;
12 1 if(m!=0xf0) //有輸入
13 1 {
14 2 key_delay(100,100); //去抖
15 2 P1=0xf0;
16 2 m=P1;
17 2 if(m!=0xf0) //確認有鍵
18 2 {
19 3 key=Read();
20 3 key_decode=Decode(key);
21 3
22 3 P1=0xf0;
23 3 while(P1!=0xf0);//等待鍵釋放
24 3 }
25 2 }
26 1 return(key_decode);
27 1 }
28
29 //讀鍵值 ------------------
30
31 uchar Read(void)
32 {
33 1 uchar key,H,L;
34 1 P1=0xf0;
35 1 key_delay(1,10);
36 1 H=P1&0XF0;
37 1 //---------------
38 1 key_delay(1,10);
39 1 P1=0x0f;
40 1 key_delay(1,10);
41 1 L=P1&0X0F;
42 1 //---------------
43 1 key=H|L;
44 1 key=~key;
45 1 return(key);
46 1 }
47 //譯碼
48
49 uchar Decode(uchar x)
50 {
51 1 uchar i,j,k;
52 1 for(i=0;i<4;i++)
53 1 for(j=0;j<4;j++)
54 1 {
55 2 if(x==key_s[i][j])
C51 COMPILER V8.02 KEY 09/13/2007 16:35:02 PAGE 2
56 2 k=key_t[i][j];
57 2 }
58 1 return(k);
59 1 }
60 //////////////////////////////////////////
61
62 void key_delay(uchar t1,t2)
63 {
64 1 uchar i,j;
65 1 for(i=0;i<t1;i++)
66 1 for(j=0;j<t2;j++);
67 1 }
68
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 190 ----
CONSTANT SIZE = 32 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 2
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 + -