📄 traffic6.lst
字号:
C51 COMPILER V7.20 TRAFFIC6 05/28/2008 20:05:30 PAGE 1
C51 COMPILER V7.20, COMPILATION OF MODULE TRAFFIC6
OBJECT MODULE PLACED IN traffic6.OBJ
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE traffic6.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg51.h>
2 #define uchar unsigned char
3 #define uint unsigned int
4 uint a;
5 uchar temp,time,flag;
6 sbit lcd_rw =P2^5;
7 sbit lcd_rs =P2^6;
8 sbit lcd_en =P2^4;
9 #define lcd_data P1//P1作为数据口
10 sbit NSRed=P3^0;
11 sbit NSGreen=P3^1;
12 sbit EWRed=P3^2;
13 sbit EWGreen=P3^3;
14
15 /*一下八行定义液晶和键盘*/
16 uchar code table[]="1=>E & W BUSY:";
17 uchar code table1[]="2=>S & N BUSY:";
18 sbit commonkey=P0^4;
19 sbit key1=P0^0; //东西繁忙控制
20 sbit key2=P0^1; //南北繁忙控制
21
22 void run1();
23 void run2();
24 void delay(uint z)
25 {
26 1 uint i,j;
27 1 for(i=z;i>0;i--)
28 1 for(j=114;j>0;j--);
29 1 }
30 void write_data(uchar dat)
31 {
32 1 lcd_rs=1;
33 1 lcd_rw=0;
34 1 lcd_data=dat;
35 1 delay(5);
36 1 lcd_en=0;
37 1 lcd_en=1;
38 1 delay(5);
39 1 lcd_en=0;
40 1 }
41 void write_com(uchar dat)
42 {
43 1 lcd_rs=0;
44 1 lcd_rw=0;
45 1 lcd_data=dat;
46 1 delay(5);
47 1 lcd_en=0;
48 1 lcd_en=1;
49 1 delay(5);
50 1 lcd_en=0;
51 1 }
52 /*液晶初始化*/
53 void lcd_init()
54 {
55 1
C51 COMPILER V7.20 TRAFFIC6 05/28/2008 20:05:30 PAGE 2
56 1 lcd_rw=0;
57 1 write_com(0x38);//设置显示模式
58 1 write_com(0x38);
59 1 write_com(0x08);//显示关闭
60 1 write_com(0x01);//显示清屏
61 1 write_com(0x06);//指针向右加1
62 1 write_com(0x0c);//不显示光标
63 1 }
64 void Time0_init()
65 {
66 1 EA=1;
67 1 ET0=1;
68 1 TMOD=0x01;
69 1 TH0=(65536-50000)/256;
70 1 TL0=(65536-50000)%256;
71 1
72 1 }
73 void Time0_intt() interrupt 1 using 3
74 {
75 1 TH0=(65536-50000)/256;
76 1 TL0=(65536-50000)%256;
77 1 temp++;
78 1 if(temp==20)
79 1 {
80 2 temp=0;
81 2 time--;
82 2 if(flag==1)
83 2 write_com(0x80+14);
84 2 if(flag==2)
85 2 write_com(0x80+14+0x40);
86 2 write_data(time/10+0x30);
87 2 write_data(time%10+0x30);
88 2 /* if(time==0)
89 2 {
90 2 flag++;
91 2 if(flag==1) time=9;
92 2 if(flag==2) time=11;
93 2 if(flag==3)
94 2 {
95 2 time=7;
96 2 flag=0;
97 2 }
98 2 if(flag==0) time=16;
99 2 } */
100 2 }
101 1 }
102
103 void main()
104 {
105 1 uchar i;
106 1
107 1 lcd_init();
108 1
109 1 Time0_init();
110 1 write_com(0x80);
111 1 for(i=0;i<14;i++)
112 1 write_data(table[i]);
113 1 write_com(0x80+0x40);
114 1 for(i=0;i<14;i++)
115 1 write_data(table1[i]);
116 1
117 1 commonkey=0;
C51 COMPILER V7.20 TRAFFIC6 05/28/2008 20:05:30 PAGE 3
118 1 while(1)
119 1 {
120 2 if(key1==0)
121 2 {
122 3 delay(20);
123 3 if(key1==0)
124 3 {
125 4 while(!key1);
126 4 flag=1;
127 4 while(1)
128 4 {
129 5 run1();
130 5 }
131 4 }
132 3 }
133 2
134 2 if(key2==0)
135 2 {
136 3 delay(5);
137 3 if(key2==0)
138 3 {
139 4 while(!key2);
140 4 flag=2;
141 4 while(1)
142 4 {
143 5 run2();
144 5 }
145 4 }
146 3
147 3 }
148 2 }
149 1 }
150
151
152 void run1()
153 {
154 1 EWGreen=0;
155 1 NSRed=0;
156 1 TR0=1;
157 1 time=15;
158 1 write_com(0x80+14);
159 1 write_data(time/10+0x30);
160 1 write_data(time%10+0x30);
161 1 while(time);
162 1 TR0=0; //东西通,南北可右转,15s
163 1 a=40;
164 1 while(a--) //开始闪烁7s
165 1 {
166 2 EWGreen=1;
167 2 NSRed=1;
168 2 delay(100);
169 2 EWGreen=0;
170 2 NSRed=0;
171 2 delay(100);
172 2 }
173 1 P3=0XFF;
174 1
175 1 EWRed=0;
176 1 NSRed=0; //以下让东西红灯,南北黄灯6秒
177 1 NSGreen=0;
178 1 TR0=1;
179 1 time=6;
C51 COMPILER V7.20 TRAFFIC6 05/28/2008 20:05:30 PAGE 4
180 1 write_com(0x80+14);
181 1 write_data(time/10+0x30);
182 1 write_data(time%10+0x30);
183 1 while(time); //东西止,南北可左转,约8s
184 1 TR0=0;
185 1
186 1 a=25;
187 1 while(a--) //开始闪烁4s
188 1 {
189 2 EWRed=1;
190 2 NSRed=1;
191 2 NSGreen=1;
192 2 delay(100);
193 2 EWRed=0;
194 2 NSRed=0;
195 2 NSGreen=0;
196 2 delay(100);
197 2 }
198 1 P3=0XFF;
199 1 /*以下东西和南北转换****/
200 1 NSGreen=0;
201 1 EWRed=0;
202 1 TR0=1;
203 1 time=10;
204 1 write_com(0x80+14);
205 1 write_data(time/10+0x30);
206 1 write_data(time%10+0x30);
207 1 while(time);
208 1 TR0=0;
209 1 a=25;
210 1 while(a--)
211 1 {
212 2 NSGreen=1;
213 2 EWRed=1;
214 2 delay(100);
215 2 NSGreen=0;
216 2 EWRed=0;
217 2 delay(100);
218 2 }
219 1
220 1 P3=0XFF;
221 1
222 1 NSRed=0;
223 1 EWRed=0;
224 1 EWGreen=0;
225 1 TR0=1;
226 1 time=6;
227 1 write_com(0x80+14);
228 1 write_data(time/10+0x30);
229 1 write_data(time%10+0x30);
230 1 while(time);
231 1 TR0=0;
232 1 a=15;
233 1 while(a--)
234 1 {
235 2 NSRed=1;
236 2 EWRed=1;
237 2 EWGreen=1;
238 2 delay(100);
239 2 NSRed=0;
240 2 EWRed=0;
241 2 EWGreen=0;
C51 COMPILER V7.20 TRAFFIC6 05/28/2008 20:05:30 PAGE 5
242 2 delay(100);
243 2 }
244 1 P3=0XFF;
245 1
246 1 }
247 void run2()
248 {
249 1
250 1 EWGreen=0;
251 1 NSRed=0;
252 1 TR0=1;
253 1 time=10;
254 1 write_com(0x80+14);
255 1 write_data(time/10+0x30);
256 1 write_data(time%10+0x30);
257 1 while(time);
258 1 TR0=0; //东西通,南北可右转,15s
259 1 a=40;
260 1 while(a--) //开始闪烁7s
261 1 {
262 2 EWGreen=1;
263 2 NSRed=1;
264 2 delay(100);
265 2 EWGreen=0;
266 2 NSRed=0;
267 2 delay(100);
268 2 }
269 1 P3=0XFF;
270 1
271 1 EWRed=0;
272 1 NSRed=0; //以下让东西红灯,南北黄灯6秒
273 1 NSGreen=0;
274 1 TR0=1;
275 1 time=6;
276 1 write_com(0x80+14);
277 1 write_data(time/10+0x30);
278 1 write_data(time%10+0x30);
279 1 while(time); //东西止,南北可左转,约8s
280 1 TR0=0;
281 1
282 1 a=25;
283 1 while(a--) //开始闪烁4s
284 1 {
285 2 EWRed=1;
286 2 NSRed=1;
287 2 NSGreen=1;
288 2 delay(100);
289 2 EWRed=0;
290 2 NSRed=0;
291 2 NSGreen=0;
292 2 delay(100);
293 2 }
294 1 P3=0XFF;
295 1 /*以下东西和南北转换****/
296 1 NSGreen=0;
297 1 EWRed=0;
298 1 TR0=1;
299 1 time=15;
300 1 write_com(0x80+14);
301 1 write_data(time/10+0x30);
302 1 write_data(time%10+0x30);
303 1 while(time);
C51 COMPILER V7.20 TRAFFIC6 05/28/2008 20:05:30 PAGE 6
304 1 TR0=0;
305 1 a=25;
306 1 while(a--)
307 1 {
308 2 NSGreen=1;
309 2 EWRed=1;
310 2 delay(100);
311 2 NSGreen=0;
312 2 EWRed=0;
313 2 delay(100);
314 2 }
315 1
316 1 P3=0XFF;
317 1
318 1 NSRed=0;
319 1 EWRed=0;
320 1 EWGreen=0;
321 1 TR0=1;
322 1 time=6;
323 1 write_com(0x80+14);
324 1 write_data(time/10+0x30);
325 1 write_data(time%10+0x30);
326 1 while(time);
327 1 TR0=0;
328 1 a=15;
329 1 while(a--)
330 1 {
331 2 NSRed=1;
332 2 EWRed=1;
333 2 EWGreen=1;
334 2 delay(100);
335 2 NSRed=0;
336 2 EWRed=0;
337 2 EWGreen=0;
338 2 delay(100);
339 2 }
340 1 P3=0XFF;
341 1
342 1 }
343
344
345
346
347
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 754 ----
CONSTANT SIZE = 30 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 5 ----
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 + -