📄 main.lst
字号:
C51 COMPILER V8.02 MAIN 04/29/2008 14:58:24 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c ROM(SMALL) BROWSE DEBUG OBJECTEXTEND
line level source
1 // KeyControl application
2 // 2007.8.17 by Ericosn
3
4 #include <REG51.h>
5 #define uchar unsigned char
6 #define uint unsigned int
7
8 sbit P20 = P2^0;
9 sbit P21 = P2^1;
10 sbit P22 = P2^2;
11 sbit P23 = P2^3;
12 sbit P24 = P2^4;
13 sbit P25 = P2^5;
14 sbit P26 = P2^6;
15 sbit P27 = P2^7;
16 sbit P00 = P0^0;
17 sbit P06 = P0^6;
18 sbit P07 = P0^7;
19
20 uchar Flag1 = 0,Flag2 = 0,Flag3 = 0,Flag4 = 0,Flag5 = 0;
21 uchar FlagTimer1 = 0,FlagTimer2 = 0,FlagTimer3 = 0,FlagTimer4 = 0,FlagTimer5 = 0;
22
23 uchar idata Buffer1[10] = {0x80,0x00,0xFA,0xF1,0xF1,0xF1,0xF1,0xF1,0xF1,0xF1};
24 uchar idata Buffer2[10] = {0x80,0x00,0xFA,0xF2,0xF2,0xF2,0xF2,0xF2,0xF2,0xF2};
25 uchar idata Buffer3[10] = {0x80,0x00,0xFA,0xF3,0xF3,0xF3,0xF3,0xF3,0xF3,0xF3};
26
27 void init(void);
28 void SCI_Tx(char Buf[],uchar n);
29
30 void main(void)
31 {
32 1 init();
33 1 while(1){
34 2 //按键处理
35 2 if (Flag1==1)
36 2 {
37 3 Flag1=2;
38 3 SCI_Tx(Buffer1,10);
39 3 }
40 2
41 2 if (Flag2==1)
42 2 {
43 3 Flag2=2;
44 3 SCI_Tx(Buffer2,10);
45 3 }
46 2
47 2 if (Flag3==1)
48 2 {
49 3 Flag3=2;
50 3 SCI_Tx(Buffer2,10);
51 3 }
52 2
53 2 if (Flag4==1)
54 2 {
55 3 Flag4=2;
C51 COMPILER V8.02 MAIN 04/29/2008 14:58:24 PAGE 2
56 3 SCI_Tx(Buffer3,10);
57 3 }
58 2
59 2 if (Flag5==1)
60 2 {
61 3 Flag5=2;
62 3 SCI_Tx(Buffer1,10);
63 3 }
64 2
65 2 }
66 1 }
67
68 ///////////////////////////////////////////////////////////////
69 void init(void)
70 {
71 1 TMOD = 0x21;
72 1 TH1 = 0xFD;
73 1 TL1 = 0xFD;
74 1 TH0 = 0x4C;
75 1 TL0 = 0x00;
76 1 SCON = 0x50;
77 1 IE |= 0x82;
78 1 // IP |= 0x02;
79 1 TR0 = 1;
80 1 TR1 = 1;
81 1 }
82
83 ///////////////////////////////////////////////////////////////
84 //
85 void SCI_Tx(char Buf[],uchar n)
86 {
87 1 while(n){
88 2 SBUF = Buf[10-n];
89 2 while(TI==0);
90 2 TI = 0;
91 2 n--;
92 2 }
93 1 }
94
95 ///////////////////////////////////////////////////////////////
96 //
97
98 ///////////////////////////////////////////////////////////////
99 //Timer0 50ms interrupt
100 void timer0(void) interrupt 1 using 1
101 {
102 1 bit Sample;
103 1
104 1 TH0 = 0x4C;
105 1 TL0 = 0x00;
106 1 if(Flag1==0)
107 1 {
108 2 Sample = P20;
109 2 if(Sample==0)
110 2 {
111 3 FlagTimer1++;
112 3 if(FlagTimer1>2)
113 3 {
114 4 Flag1=1;
115 4 FlagTimer1=0;
116 4 P00 = 0;
117 4 }
C51 COMPILER V8.02 MAIN 04/29/2008 14:58:24 PAGE 3
118 3 }
119 2 else FlagTimer1=0;
120 2 }
121 1
122 1 if(Flag1==2)
123 1 {
124 2 Sample = P20;
125 2 if(Sample==1)
126 2 {
127 3 FlagTimer1++;
128 3 if(FlagTimer1>2)
129 3 {
130 4 Flag1=0;
131 4 FlagTimer1=0;
132 4 P00 = 1;
133 4 }
134 3 }
135 2 else FlagTimer1=0;
136 2 }
137 1
138 1 if(Flag2==0)
139 1 {
140 2 Sample = P21;
141 2 if(Sample==0)
142 2 {
143 3 FlagTimer2++;
144 3 if(FlagTimer2>2)
145 3 {
146 4 Flag2=1;
147 4 FlagTimer2=0;
148 4 P00 = 0;
149 4 }
150 3 }
151 2 else FlagTimer2=0;
152 2 }
153 1
154 1 if(Flag2==2)
155 1 {
156 2 Sample=P21;
157 2 if(Sample==1)
158 2 {
159 3 FlagTimer2++;
160 3 if(FlagTimer2>2)
161 3 {
162 4 Flag2=0;
163 4 FlagTimer2=0;
164 4 P00 = 1;
165 4 }
166 3 }
167 2 else FlagTimer2=0;
168 2 }
169 1
170 1 if(Flag3==0)
171 1 {
172 2 Sample = P22;
173 2 if(Sample==0)
174 2 {
175 3 FlagTimer3++;
176 3 if(FlagTimer3>2)
177 3 {
178 4 Flag3=1;
179 4 FlagTimer3=0;
C51 COMPILER V8.02 MAIN 04/29/2008 14:58:24 PAGE 4
180 4 P00 = 0;
181 4 }
182 3 }
183 2 else FlagTimer3=0;
184 2 }
185 1
186 1 if(Flag3==2)
187 1 {
188 2 Sample= P22;
189 2 if(Sample==1)
190 2 {
191 3 FlagTimer3++;
192 3 if(FlagTimer3>2)
193 3 {
194 4 Flag3=0;
195 4 FlagTimer3=0;
196 4 P00 = 1;
197 4 }
198 3 }
199 2 else FlagTimer3=0;
200 2 }
201 1
202 1 if(Flag4==0)
203 1 {
204 2 Sample = P23;
205 2 if(Sample==0)
206 2 {
207 3 FlagTimer4++;
208 3 if(FlagTimer4>2)
209 3 {
210 4 Flag4=1;
211 4 FlagTimer4=0;
212 4 P00 = 0;
213 4 }
214 3 }
215 2 else FlagTimer4=0;
216 2 }
217 1
218 1 if(Flag4==2)
219 1 {
220 2 Sample = P23;
221 2 if(Sample==1)
222 2 {
223 3 FlagTimer4++;
224 3 if(FlagTimer4>2)
225 3 {
226 4 Flag4=0;
227 4 FlagTimer4=0;
228 4 P00 = 1;
229 4 }
230 3 }
231 2 else FlagTimer4=0;
232 2 }
233 1
234 1 if(Flag5==0)
235 1 {
236 2 Sample = P24;
237 2 if(Sample==0)
238 2 {
239 3 FlagTimer5++;
240 3 if(FlagTimer5>2)
241 3 {
C51 COMPILER V8.02 MAIN 04/29/2008 14:58:24 PAGE 5
242 4 Flag5=1;
243 4 FlagTimer5=0;
244 4 P00 = 0;
245 4 }
246 3 }
247 2 else FlagTimer5=0;
248 2 }
249 1
250 1 if(Flag5==2)
251 1 {
252 2 Sample = P24;
253 2 if(Sample==1)
254 2 {
255 3 FlagTimer5++;
256 3 if(FlagTimer5>2)
257 3 {
258 4 Flag5=0;
259 4 FlagTimer5=0;
260 4 P00 = 1;
261 4 }
262 3 }
263 2 else FlagTimer5=0;
264 2 }
265 1
266 1 }
267
268 /*
269 ///////////////////////////////////////////////////////////////
270 //Serial port transceive interrupt
271 void serial(void) interrupt 4 using 2
272 {
273 uchar temp;
274 if(RI&(!RcvFlag)){
275 RI = 0;
276 }
277 if(TI){
278 TI=0;
279 //the Tx interrupt processing code
280 }
281 }
282 */
283
284 //END
285
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 489 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 10 ----
IDATA SIZE = 30 ----
BIT SIZE = ---- 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -