📄 矩阵键盘.lst
字号:
C51 COMPILER V7.50 __阵键盘 07/20/2008 15:16:40 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE __阵键盘
OBJECT MODULE PLACED IN 矩阵键盘.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 矩阵键盘.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<reg52.h>
2 #define uchar unsigned char
3 sbit duan=P2^6;
4 sbit wei=P2^7;
5 uchar i=0,x=0,y=0,num[8]={16,16,16,16,16,16,16,16},temp;
6 uchar duantable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
7 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00}; //0-F共阴极数码管代码
8
9 uchar weitable[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //0-8位选代码
10 delay(uchar t)
11 {
12 1 uchar a,b;
13 1 for(a=t;a>0;a--)
14 1 for(b=200;b>0;b--);
15 1 }
16 void display()
17 {
18 1 if(x==8)
19 1 x=0;
20 1 if(y==8)
21 1 y=0;
22 1 P0=0xff;
23 1 wei=1;
24 1 wei=0;
25 1 P0=duantable[num[x]];
26 1 duan=1;
27 1 duan=0;
28 1 P0=weitable[y];
29 1 wei=1;
30 1 wei=0;
31 1 x++;
32 1 y++;
33 1 }
34 main()
35 {
36 1 while(1)
37 1 {
38 2 display();
39 2 P3=0x7f;
40 2 temp=P3;
41 2 temp=temp&0x0f;
42 2 if(temp!=0x0f)
43 2 {
44 3
45 3 delay(50);
46 3 switch(temp)
47 3 {
48 4 case 0x0e:
49 4 num[i++]=3;
50 4 break;
51 4 case 0x0d:
52 4 num[i++]=7;
53 4 break;
54 4 case 0x0b:
55 4 num[i++]=11;
C51 COMPILER V7.50 __阵键盘 07/20/2008 15:16:40 PAGE 2
56 4 break;
57 4 case 0x07:
58 4 num[i++]=15;
59 4 break;
60 4 }
61 3 while(P3!=0x7f)display();
62 3 }
63 2
64 2 display();
65 2 P3=0xbf;
66 2 temp=P3;
67 2 temp=temp&0x0f;
68 2 if(temp!=0x0f)
69 2 {
70 3
71 3 delay(50);
72 3 switch(temp)
73 3 {
74 4 case 0x0e:
75 4 num[i++]=2;
76 4 break;
77 4 case 0x0d:
78 4 num[i++]=6;
79 4 break;
80 4 case 0x0b:
81 4 num[i++]=10;
82 4 break;
83 4 case 0x07:
84 4 num[i++]=14;
85 4 break;
86 4 }
87 3 while(P3!=0xbf)display();
88 3 }
89 2 display();
90 2 P3=0xdf;
91 2 temp=P3;
92 2 temp=temp&0x0f;
93 2 if(temp!=0x0f)
94 2 {
95 3
96 3 delay(50);
97 3 switch(temp)
98 3 {
99 4 case 0x0e:
100 4 num[i++]=1;
101 4 break;
102 4 case 0x0d:
103 4 num[i++]=5;
104 4 break;
105 4 case 0x0b:
106 4 num[i++]=9;
107 4 break;
108 4 case 0x07:
109 4 num[i++]=13;
110 4 break;
111 4 }
112 3 while(P3!=0xdf)display();
113 3 }
114 2 display();
115 2 P3=0xef;
116 2 temp=P3;
117 2 temp=temp&0x0f;
C51 COMPILER V7.50 __阵键盘 07/20/2008 15:16:40 PAGE 3
118 2 if(temp!=0x0f)
119 2 {
120 3
121 3 delay(50);
122 3 switch(temp)
123 3 {
124 4 case 0x0e:
125 4 num[i++]=0;
126 4 break;
127 4 case 0x0d:
128 4 num[i++]=4;
129 4 break;
130 4 case 0x0b:
131 4 num[i++]=8;
132 4 break;
133 4 case 0x07:
134 4 num[i++]=12;
135 4 break;
136 4 }
137 3 while(P3!=0xef)
138 3 display();
139 3 }
140 2
141 2 }
142 1
143 1 }
144
145
146
147
148
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 464 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 37 ----
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 + -