📄 key.lst
字号:
C51 COMPILER V8.02 KEY 01/07/2009 11:33:16 PAGE 1
C51 COMPILER V8.02, 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 #define uchar unsigned char
2 #define uint unsigned int
3 #include<89c51.h>
4
5 void delays(uint k)
6 {
7 1 uint data i,j;
8 1 for(i=0;i<k;i++)
9 1 {
10 2 for(j=0;j<121;j++)
11 2 {;}
12 2 }
13 1 }
14
15
16 uchar kbscan(void)
17 {
18 1 uchar temp,key;
19 1 P2=0x0F;
20 1 temp=P2&0x0F;
21 1 if(temp==0x0F)
22 1 return 0; //没有按键按下,低四位中任意一位都不会被拉低
23 1 else
24 1 {
25 2 delays(10); //去干扰
26 2 temp=P2&0x0F;
27 2 if(temp==0x0F)
28 2 return 0;
29 2 else
30 2 key=temp;
31 2 }
32 1 P2=0xF0;
33 1 delays(10);
34 1
35 1 temp=P2&0xF0;
36 1 if(temp==0xF0)
37 1 return 0;
38 1 else
39 1 key|=temp;
40 1 do{;}
41 1 while((P2&0xF0)!=0xF0); //等待按键按下
42 1 return key;
43 1 }
44
45 uchar get_key(void)
46 {
47 1 uchar i=0;
48 1 i=kbscan();
49 1 switch (i) //将按键码转换成键值
50 1 {
51 2 case 0x77: return 1;
52 2 case 0x7B: return 2;
53 2 case 0x7D: return 3;
54 2 case 0x7E: return 4;
55 2 case 0xB7: return 5;
C51 COMPILER V8.02 KEY 01/07/2009 11:33:16 PAGE 2
56 2 case 0xBB: return 6;
57 2 case 0xBD: return 7;
58 2 case 0xBE: return 8;
59 2 case 0xD7: return 9;
60 2 case 0xDB: return 10;
61 2 case 0xDD: return 11;
62 2 case 0xDE: return 12;
63 2 case 0xE7: return 13;
64 2 case 0xEB: return 14;
65 2 case 0xED: return 15;
66 2 case 0xEE: return 16;
67 2 case 0x00: return 0X00;
68 2 default : return 0x00;
69 2 }
70 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 216 ----
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 + -