📄 02.lst
字号:
C51 COMPILER V7.04 02 07/25/2007 04:05:23 PAGE 1
C51 COMPILER V7.04, COMPILATION OF MODULE 02
OBJECT MODULE PLACED IN 02.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 02.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include<reg51.h>
2 sbit c1 = P2^3;
3 sbit c2 = P2^2;
4 sbit c3 = P2^1;
5 sbit r1 = P2^4;
6 sbit r2 = P2^5;
7 sbit r3 = P2^6;
8 sbit r4 = P2^7;
9 int i;
10 int a;
11 unsigned int w,x,y,z,o,p,q,r;
12 void show ( int a);
13 void show1 ( int a);
14 void Shift (void);
15 void Shift1 (void);
16 unsigned char Patturn [10] = {0x00,0x10,0x20,0x30,0x40,0x50,0x60,0x70,0x80,0x90};
17 unsigned char Buffer1[4],Buffer3[4];
18 unsigned char Buffer2[4],Buffer4[4];
19 void delay_db(int time)
20 {
21 1 do
22 1 {
23 2 time--;
24 2 }while(time>0);
25 1 }
26
27 unsigned char scankey(void)
28 {
29 1 unsigned char ret = 0xFF;
30 1 c1 = 0;
31 1 if(r1==0)
32 1 {
33 2 delay_db(30000);
34 2 ret = 0x01;
35 2 }
36 1 if(r2==0)
37 1 {
38 2 delay_db(30000);
39 2 ret = 0x04;
40 2 }
41 1 if(r3==0)
42 1 {
43 2 delay_db(30000);
44 2 ret = 0x07;
45 2 }
46 1 if(r4==0)
47 1 {
48 2 delay_db(30000);
49 2 ret = 0x11; //*+++++
50 2 }
51 1
52 1 c1 = 1;
53 1
54 1 //------------------------------------------------//
55 1
C51 COMPILER V7.04 02 07/25/2007 04:05:23 PAGE 2
56 1 c2 = 0;
57 1 if(r1==0)
58 1 {
59 2 delay_db(30000);
60 2 ret = 0x02;
61 2 }
62 1 if(r2==0)
63 1 {
64 2 delay_db(30000);
65 2 ret = 0x05;
66 2 }
67 1 if(r3==0)
68 1 {
69 2 delay_db(30000);
70 2 ret = 0x08;
71 2 }
72 1 if(r4==0)
73 1 {
74 2 delay_db(30000);
75 2 ret = 0x00;
76 2 }
77 1 c2 = 1;
78 1
79 1 //----------------------------------------//
80 1 c3 = 0;
81 1 if(r1==0)
82 1 {
83 2 delay_db(30000);
84 2 ret = 0x03;
85 2 }
86 1 if(r2==0)
87 1 {
88 2 delay_db(30000);
89 2 ret = 0x06;
90 2 }
91 1 if(r3==0)
92 1 {
93 2 delay_db(30000);
94 2 ret = 0x09;
95 2 }
96 1 if(r4==0)
97 1 {
98 2 delay_db(30000);
99 2 ret = 0x12; //#======
100 2 }
101 1
102 1 c3 = 1;
103 1 return(ret);
104 1 }
105
106 /*************************** Main loop **************************/
107
108 void main(void)
109 {
110 1
111 1 unsigned char key = 0;
112 1 P0 = 0xff;
113 1 P2 = 0xff;
114 1
115 1 while(1)
116 1 {
117 2
C51 COMPILER V7.04 02 07/25/2007 04:05:23 PAGE 3
118 2 key = scankey();
119 2 if( key != 0xFF)
120 2 {
121 3 i++;
122 3
123 3 if(i<=4)
124 3 Buffer1[i]=key;
125 3
126 3 if (i>4)
127 3 {
128 4 i=4;
129 4 Shift ();
130 4 Buffer1[4]=key;
131 4 }
132 3
133 3 }
134 2 show (i);
135 2
136 2
137 2
138 2
139 2
140 2
141 2 }
142 1 }
143
144
145 /*********************************************************************************************************
-**************/
146 void Shift (void)
147 {
148 1
149 1
150 1 Buffer2[1]= Buffer1[1];
151 1 Buffer2[2]= Buffer1[2];
152 1 Buffer2[3]= Buffer1[3];
153 1 Buffer2[4]= Buffer1[4];
154 1 //--------------------
155 1
156 1 Buffer1[3]= Buffer2[4];
157 1 Buffer1[2]= Buffer2[3];
158 1 Buffer1[1]= Buffer2[2];
159 1
160 1 }
161
162 void show( int a)
163 {
164 1
165 1 switch (a)
166 1 {
167 2 case 1:
168 2 P0 = Patturn[Buffer1 [1]]|0x0E;
169 2 delay_db(25);
170 2 break;
171 2
172 2
173 2
174 2 case 2:
175 2 P0 = Patturn[Buffer1 [2]]|0x0E;
176 2 delay_db(25);
177 2 P0 = Patturn[Buffer1 [1]]|0x0d;
178 2 delay_db(25);
C51 COMPILER V7.04 02 07/25/2007 04:05:23 PAGE 4
179 2 break;
180 2
181 2
182 2 case 3:
183 2 P0 = Patturn[Buffer1 [3]]|0x0E;
184 2 delay_db(25);
185 2 P0 = Patturn[Buffer1 [2]]|0x0d;
186 2 delay_db(25);
187 2 P0 = Patturn[Buffer1 [1]]|0x0b;
188 2 delay_db(25);
189 2 break;
190 2
191 2
192 2
193 2 case 4:
194 2 P0 = Patturn[Buffer1 [4]]|0x0E;
195 2 delay_db(25);
196 2 P0 = Patturn[Buffer1 [3]]|0x0d;
197 2 delay_db(25);
198 2 P0 = Patturn[Buffer1 [2]]|0x0b;
199 2 delay_db(25);
200 2 P0 = Patturn[Buffer1 [1]]|0x07;
201 2 delay_db(25);
202 2 break;
203 2
204 2
205 2 }
206 1
207 1 }
208
209
210
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 408 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 46 1
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 + -