📄 martix_keyboard_samea.lst
字号:
C51 COMPILER V6.12 MARTIX_KEYBOARD_SAMEA 05/06/2008 20:49:42 PAGE 1
C51 COMPILER V6.12, COMPILATION OF MODULE MARTIX_KEYBOARD_SAMEA
OBJECT MODULE PLACED IN .\martix_keyboard_sameA.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE .\martix_keyboard_sameA.c DEBUG OBJECTEXTEND
stmt level source
1 #include<reg52.h>
2 #define uchar unsigned char
3 #define uint unsigned int
4 #define ulong unsigned long
5 sbit choose_du=P2^6;
6 sbit choose_we=P2^7;
7 /*uchar code table[]={ //0-9的共阴极代码
8 0x3f,0x06,0x5b,0x4f,
9 0x66,0x6d,0x7d,0x07,
10 0x7f,0x6f,0x77,0x7c,
11 0x39,0x5e,0x79,0x71
12 };*/
13 uchar code table[]={ //0-9的共阴极代码
14 0xc0,0xf9,0xa4,0xb0,
15 0x99,0x92,0x82,0xf8,
16 0x80,0x90,0x88,0x83,
17 0xc6,0xa1,0x86,0x8e
18 };
19 uchar temp,num;
20 void delay(uchar);
21 void display(uchar);
22 void main()
23 {
24 1 while(1)
25 1 {
26 2 P3=0xfe;
27 2 temp=P3;
28 2 temp=temp&0xf0;
29 2 if(temp!=0xf0)
30 2 {
31 3 delay(22);
32 3 if(temp!=0xf0)
33 3 {
34 4 switch(temp)
35 4 {
36 5 case 0xe0:num=0;
37 5 break;
38 5 case 0xd0:num=1;
39 5 break;
40 5 case 0xb0:num=2;
41 5 break;
42 5 case 0x70:num=3;
43 5 break;
44 5 }
45 4 }
46 3 while(temp!=0xf0)//键盘松开去抖动
47 3 {
48 4 temp=P3;
49 4 temp=temp&0xf0;
50 4 }
51 3 }
52 2 P3=0xfd;
53 2 temp=P3;
54 2 temp=temp&0xf0;
55 2 if(temp!=0xf0)
C51 COMPILER V6.12 MARTIX_KEYBOARD_SAMEA 05/06/2008 20:49:42 PAGE 2
56 2 {
57 3 delay(22);
58 3 if(temp!=0xf0)
59 3 {
60 4 switch(temp)
61 4 {
62 5 case 0xe0:num=4;
63 5 break;
64 5 case 0xd0:num=5;
65 5 break;
66 5 case 0xb0:num=6;
67 5 break;
68 5 case 0x70:num=7;
69 5 break;
70 5 }
71 4 }
72 3 while(temp!=0xf0)//键盘松开去抖动
73 3 {
74 4 temp=P3;
75 4 temp=temp&0xf0;
76 4 }
77 3 }
78 2 P3=0xfb;
79 2 temp=P3;
80 2 temp=temp&0xf0;
81 2 if(temp!=0xf0)
82 2 {
83 3 delay(22);
84 3 if(temp!=0xf0)
85 3 {
86 4 switch(temp)
87 4 {
88 5 case 0xe0:num=8;
89 5 break;
90 5 case 0xd0:num=9;
91 5 break;
92 5 case 0xb0:num=10;
93 5 break;
94 5 case 0x70:num=11;
95 5 break;
96 5 }
97 4 }
98 3 while(temp!=0xf0)//键盘松开去抖动
99 3 {
100 4 temp=P3;
101 4 temp=temp&0xf0;
102 4 }
103 3 }
104 2 P3=0xf7;
105 2 temp=P3;
106 2 temp=temp&0xf0;
107 2 if(temp!=0xf0)
108 2 {
109 3 delay(22);
110 3 if(temp!=0xf0)
111 3 {
112 4 switch(temp)
113 4 {
114 5 case 0xe0:num=12;
115 5 break;
116 5 case 0xd0:num=13;
117 5 break;
C51 COMPILER V6.12 MARTIX_KEYBOARD_SAMEA 05/06/2008 20:49:42 PAGE 3
118 5 case 0xb0:num=14;
119 5 break;
120 5 case 0x70:num=15;
121 5 break;
122 5 }
123 4 }
124 3 while(temp!=0xf0)//键盘松开去抖动
125 3 {
126 4 temp=P3;
127 4 temp=temp&0xf0;
128 4 }
129 3 }
130 2 display(num);
131 2 }
132 1 }
133 void delay(uchar x)
134 {
135 1 uchar i,j;
136 1 for(i=x;i>0;i--)
137 1 for(j=205;j>0;j--);
138 1 }
139 void display(uchar y)
140 {
141 1 P0=0xff;
142 1 choose_we=1;
143 1 choose_we=0;
144 1 P0=table[y];
145 1 choose_du=1;
146 1 choose_du=0;
147 1 P0=0xc0;
148 1 choose_we=1;
149 1 choose_we=0;
150 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 352 ----
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 + -