📄 02.lst
字号:
C51 COMPILER V8.04 02 02/12/2009 12:20:36 PAGE 1
C51 COMPILER V8.04, COMPILATION OF MODULE 02
OBJECT MODULE PLACED IN .\02.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ..\2\02.c BROWSE DEBUG OBJECTEXTEND PRINT(.\02.lst) OBJECT(.\02.obj)
line 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 V8.04 02 02/12/2009 12:20:36 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 V8.04 02 02/12/2009 12:20:36 PAGE 3
118 2 key = scankey();
119 2
120 2
121 2
122 2 if( key != 0xFF)
123 2 {
124 3
125 3 i++;
126 3
127 3 if(i<=4)
128 3 Buffer1[i]=key;
129 3
130 3 if (i>4)
131 3 {
132 4 i=4;
133 4 Shift ();
134 4 Buffer1[4]=key;
135 4 }
136 3
137 3 }
138 2 show (i);
139 2
140 2
141 2
142 2
143 2
144 2
145 2 }
146 1 }
147
148
149 /*********************************************************************************************************
-**************/
150 void Shift (void)
151 {
152 1
153 1
154 1 Buffer2[1]= Buffer1[1];
155 1 Buffer2[2]= Buffer1[2];
156 1 Buffer2[3]= Buffer1[3];
157 1 Buffer2[4]= Buffer1[4];
158 1 //--------------------
159 1
160 1 Buffer1[3]= Buffer2[4];
161 1 /* Buffer1[2]= Buffer2[3]; */
162 1 Buffer1[1]= Buffer2[2];
163 1
164 1 }
165
166
167 void show(i)
168 {
169 1
170 1 switch (i)
171 1 {
172 2 case 1:
173 2 P0 = Patturn[Buffer1 [1]]|0x0e;
174 2 delay_db(25);
175 2 break;
176 2
177 2
178 2
C51 COMPILER V8.04 02 02/12/2009 12:20:36 PAGE 4
179 2 case 2:
180 2 P0 = Patturn[Buffer1 [2]]|0x0e;
181 2 delay_db(25);
182 2 P0 = Patturn[Buffer1 [1]]|0x0d;
183 2 delay_db(25);
184 2 break;
185 2
186 2
187 2 case 3:
188 2 P0 = Patturn[Buffer1 [3]]|0x0E;
189 2 delay_db(25);
190 2 P0 = Patturn[Buffer1 [2]]|0x0d;
191 2 delay_db(25);
192 2 P0 = Patturn[Buffer1 [1]]|0x0b;
193 2 delay_db(25);
194 2 break;
195 2
196 2
197 2
198 2 case 4:
199 2 P0 = Patturn[Buffer1 [4]]|0x0E;
200 2 delay_db(25);
201 2 P0 = Patturn[Buffer1 [3]]|0x0d;
202 2 delay_db(25);
203 2 P0 = Patturn[Buffer1 [2]]|0x0b;
204 2 delay_db(25);
205 2 P0 = Patturn[Buffer1 [1]]|0x07;
206 2 delay_db(25);
207 2 break;
208 2
209 2
210 2 }
211 1
212 1 }
213
214
215
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 405 ----
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 + -