📄 getkey.lst
字号:
C51 COMPILER V8.02 GETKEY 12/08/2008 23:20:59 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE GETKEY
OBJECT MODULE PLACED IN getkey.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE getkey.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <AT89X51.H>
2 unsigned char col[4]={0xef,0xdf,0xbf,0x7f};
3 unsigned char row[4]={0x07,0x0b,0x0d,0x0e};
4 #define uint unsigned int
5 #define uchar unsigned char
6
7 void delaynms(uint n)
8 {uchar i;
9 1 while(n--)
10 1 {for(i=0;i<125;i++);
11 2 }
12 1 }
13
14
15 unsigned char GetKeyVal()
16 {
17 1 uint i,j,getSta,keyVal;
18 1
19 1 for(i=0;i<4;i++)
20 1 {
21 2 P2= col[i];
22 2 //delay_us(2);
23 2 if(P2!=col[i])
24 2 {
25 3 getSta=P2&0x0F;
26 3 for(j=0;j<4;j++)
27 3 if(getSta==row[j])
28 3 {
29 4 keyVal=j+i*4;
30 4 switch (keyVal) //按键校正
31 4 {
32 5 case 7:
33 5 keyVal=5;break;
34 5 case 10:
35 5 keyVal=6;break;
36 5 case 13:
37 5 keyVal=7;break;
38 5 case 5:
39 5 keyVal=8;break;
40 5 case 8:
41 5 keyVal=9;break;
42 5 case 11:
43 5 keyVal=10;break;
44 5 case 14:
45 5 keyVal=11;break;
46 5 case 6:
47 5 keyVal=12;break;
48 5 case 9:
49 5 keyVal=13;break;
50 5 case 12:
51 5 keyVal=14;break;
52 5 }
53 4
54 4 return keyVal;
55 4 }
C51 COMPILER V8.02 GETKEY 12/08/2008 23:20:59 PAGE 2
56 3 }
57 2 }
58 1 return 0xFF;
59 1 }
60 //**********************************
61 void main(void)
62 {
63 1 unsigned char temp;
64 1 P2=0xFF;
65 1 while (1)
66 1 {
67 2 temp=GetKeyVal();
68 2 if (temp!=0xff)
69 2 {if(temp==9)P1_0=~P1_0;
70 3 else if(temp==10)P1_1=~P1_1;
71 3 else if(temp==11)P1_2=~P1_2;
72 3 else if(temp==12)P1_3=~P1_3;
73 3
74 3
75 3
76 3 //lcd_putchar(0x30+temp); //0~F
77 3 while(GetKeyVal()!=0xff); //等待按键弹起
78 3 }
79 2 delaynms(10); //消除抖动
80 2
81 2
82 2 };
83 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 315 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 8 6
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 + -