📄 3x4矩阵键盘的扫描程序.lst
字号:
C51 COMPILER V8.02 3X4__阵键盘的扫描程序 02/29/2008 22:21:46 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE 3X4__阵键盘的扫描程序
OBJECT MODULE PLACED IN 3x4矩阵键盘的扫描程序.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 3x4矩阵键盘的扫描程序.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /* 3x4矩阵键盘的扫描程序
2 按相应的按键,数码管显示相应的数字,星号键和井号键分别显示为E和F
3 *********************************
4 Create by:左秀龙
5 support:
6 Tel:0755-82879296
7 email: cutedesign@tom.com
8 Date: 2005/06/23
9 *********************************
10 测试通过*/
11
12 #include<AT89X51.h>
13 #define unchar unsigned char
14 #define unint unsigned int
15 unchar code table[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7c,0x39,0x5e,0x79,0x71};
16 void KeyScan();
17 void delay10ms(unsigned char time);
18 void Dispaly(unsigned char k);
19
20 unsigned char key,temp;
21
22 void main() //主程序
23 {
24 1 while(1)
25 1 {
26 2 KeyScan();
27 2 }
28 1 }
29
30 void KeyScan() //按键扫描子程序
31 {
32 1 P3=0xFF;
33 1 P3_3=0;
34 1 temp=P3;
35 1 temp&=0xF0;
36 1 if(temp!=0xF0)
37 1 {
38 2 delay10ms(1);
39 2 temp=P3;
40 2 temp&=0xF0;
41 2 if(temp !=0xF0)
42 2 {
43 3 temp=P3;
44 3 temp&=0xF0;
45 3
46 3 switch(temp)
47 3 {
48 4 case 0x70:
49 4 key=1;break;
50 4 case 0xB0:
51 4 key=2;break;
52 4 case 0xD0:
53 4 key=3;break;
54 4 }
55 3 Dispaly(key);
C51 COMPILER V8.02 3X4__阵键盘的扫描程序 02/29/2008 22:21:46 PAGE 2
56 3 }
57 2 }
58 1
59 1 P3=0xFF;
60 1 P3_2=0;
61 1 temp=P3;
62 1 temp&=0xF0;
63 1 if(temp !=0xF0)
64 1 {
65 2 delay10ms(1);
66 2 temp=P3;
67 2 temp&=0xF0;
68 2 if(temp !=0xF0)
69 2 {
70 3 temp=P3;
71 3 temp&=0xF0;
72 3
73 3 switch(temp)
74 3 {
75 4 case 0x70:
76 4 key=4;break;
77 4 case 0xB0:
78 4 key=5;break;
79 4 case 0xD0:
80 4 key=6;break;
81 4 }
82 3 Dispaly(key);
83 3 }
84 2 }
85 1
86 1 P3=0xFF;
87 1 P3_1=0;
88 1 temp=P3;
89 1 temp&=0xF0;
90 1 if(temp !=0xF0)
91 1 {
92 2 delay10ms(1);
93 2 temp=P3;
94 2 temp&=0xF0;
95 2 if(temp !=0xF0)
96 2 {
97 3 temp=P3;
98 3 temp&=0xF0;
99 3
100 3 switch(temp)
101 3 {
102 4 case 0x70:
103 4 key=7;break;
104 4 case 0xB0:
105 4 key=8;break;
106 4 case 0xD0:
107 4 key=9;break;
108 4 }
109 3 Dispaly(key);
110 3 }
111 2 }
112 1
113 1 P3=0xFF;
114 1 P3_0=0;
115 1 temp=P3;
116 1 temp&=0xF0;
117 1 if(temp !=0xF0)
C51 COMPILER V8.02 3X4__阵键盘的扫描程序 02/29/2008 22:21:46 PAGE 3
118 1 {
119 2 delay10ms(1);
120 2 temp=P3;
121 2 temp&=0xF0;
122 2 if(temp !=0xF0)
123 2 {
124 3 temp=P3;
125 3 temp&=0xF0;
126 3
127 3 switch(temp)
128 3 {
129 4 case 0x70:
130 4 key=14;break;
131 4 case 0xB0:
132 4 key=0;break;
133 4 case 0xD0:
134 4 key=15;break;
135 4 }
136 3 Dispaly(key);
137 3 }
138 2 }
139 1 }
140
141 //延时程序
142 void delay10ms(unsigned char time)
143 {
144 1 unsigned char a,b,c;
145 1 for(a=0;a<time;a++)
146 1 for(b=0;b<10;b++)
147 1 for(c=0;c<120;c++)
148 1 ;
149 1 }
150
151 void Dispaly(unsigned char k) //显示程序
152 {
153 1 P0=table[k];
154 1 P2_1=0;
155 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 327 ----
CONSTANT SIZE = 16 ----
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 + -