📄 key.lst
字号:
C51 COMPILER V8.05a KEY 01/11/2009 22:55:15 PAGE 1
C51 COMPILER V8.05a, COMPILATION OF MODULE KEY
OBJECT MODULE PLACED IN key.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE key.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<main.h>
2
3 unsigned char k;
4
5 unsigned char Getkey()
6 {
7 1 P7=0xFE;
8 1 if(P7==0xEE)return 1;
9 1 if(P7==0xDE)return 2;
10 1 if(P7==0xBE)return 3;
11 1 //if(P7==0x7E)return 10;
12 1 P7=0xFD;
13 1 if(P7==0xED)return 4;
14 1 if(P7==0xDD)return 5;
15 1 if(P7==0xBD)return 6;
16 1 //if(P7==0x7D)return 11;
17 1 P7=0xFB;
18 1 if(P7==0xEB)return 7;
19 1 if(P7==0xDB)return 8;
20 1 if(P7==0xBB)return 9;
21 1 //if(P7==0x7B)return 12;
22 1 P7=0xF7;
23 1 //if(P7==0xE7)return 13;
24 1 if(P7==0xD7)return 0;
25 1 //if(P7==0xB7)return 15;
26 1 //if(P7==0x77)return 16;
27 1 return 0;
28 1 }
29
30 void key_delay(void) //延时
31 {
32 1 int t;
33 1 for(t=0;t<2500;t++);
34 1 }
35 /*******************************键盘扫描************************************/
36
37 void keyscan(void) //键盘扫描函数
38 {
39 1 unsigned char a;
40 1 P7 = 0xf0; //键盘初始化
41 1 if(P7!=0xf0) //有键按下?
42 1 {
43 2 key_delay(); //延时
44 2 if(P7!=0xf0) //确认真的有键按下?
45 2 {
46 3 P7 = 0xfe; //使行线P2.4为低电平,其余行为高电平
47 3 key_delay();
48 3 a = P7; //a作为缓存
49 3 switch (a) //开始执行行列扫描
50 3 {
51 4 //case 0xee:k=15;break;
52 4 //case 0xde:k=11;break;
53 4 case 0xbe:k=7;break;
54 4 case 0x7e:k=3;break;
55 4 default:P7 = 0xfd; //使行线P2.5为低电平,其余行为高电平
C51 COMPILER V8.05a KEY 01/11/2009 22:55:15 PAGE 2
56 4
57 4 a = P7;
58 4 switch (a)
59 4 {
60 5 //case 0xed:k=14;break;
61 5 //case 0xdd:k=10;break;
62 5 case 0xbd:k=6;break;
63 5 case 0x7d:k=2;break;
64 5 default:P7 = 0xfb; //使行线P2.6为低电平,其余行为高电平
65 5
66 5 a = P7;
67 5 switch (a)
68 5 {
69 6 //case 0xeb:k=13;break;
70 6 case 0xdb:k=9;break;
71 6 case 0xbb:k=5;break;
72 6 case 0x7b:k=1;break;
73 6 default:P7 = 0xf7; //使行线P2.7为低电平,其余行为高电平
74 6
75 6 a = P7;
76 6 switch (a)
77 6 {
78 7 //case 0xe7:k=12;break;
79 7 case 0xd7:k=8;break;
80 7 case 0xb7:k=4;break;
81 7 case 0x77:k=0;break;
82 7 default:break;
83 7 }
84 6 }
85 5 }
86 4 break;
87 4 }
88 3 }
89 2 }
90 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 229 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 ----
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 + -