📄 4.lst
字号:
C51 COMPILER V7.06 4 04/16/2006 17:29:00 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE 4
OBJECT MODULE PLACED IN 4.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 4.c
stmt level source
1 // cross road traffic light control system
2 // designed by chen jin yu wu zhen quan
3 // 2006.4.10 at guang dong university of technology
4 // information engineering college
5
6 #include"reg51.h"
7 unsigned char code table[]={ // seven segments LED code
8 0xC0,/*0*/
9 0xF9,/*1*/
10 0xA4,/*2*/
11 0xB0,/*3*/
12 0x99,/*4*/
13 0x92,/*5*/
14 0x82,/*6*/
15 0xF8,/*7*/
16 0x80,/*8*/
17 0x90,/*9*/};
18 sbit A_R=P1^0;//A road Red light
19 sbit A_G=P1^1;//A road Green light
20 sbit A_Y=P1^2;//A road Yellow light
21 sbit A_A=P1^3;//A road Arrow light
22 sbit C_R=P1^4;//B road Red light
23 sbit C_G=P1^5;//B road Green light
24 sbit C_Y=P1^6;//B road Yellow light
25 sbit C_A=P1^7;//B road Arrow light
26 sbit B_R=P3^0;//C road Red light
27 sbit B_G=P3^1;//C road Green light
28 sbit B_Y=P3^2;//C road Yellow light
29 sbit B_A=P3^3;//C road Arrow light
30 sbit D_R=P3^4;//D road Red light
31 sbit D_G=P3^5;//D road Green light
32 sbit D_Y=P3^6;//D road Yellow light
33 sbit D_A=P3^7;//D road Arrow light
34 sbit PB1=P2^7;//primary road led bit 1
35 sbit PB2=P2^6;//primary road led bit 2
36 sbit SB1=P2^5;//secondary road led bit 1
37 sbit SB2=P2^4;//secondary road led bit 2
38 unsigned char CASE;// road situation
39 unsigned char PT;//primary road time
40 unsigned char ST;//secondary road time
41 void display(unsigned char PT,unsigned char ST);//road time display
42 void init(void);//initialise system
43 void delay(void);// led scan delay
44 time0()interrupt 1 using 1//T0 interrupt serve (delay 50ms)
45 {
46 1 unsigned char i;
47 1 i++;
48 1 TH0=-50000/256;
49 1 TL0=-50000%256;
50 1 if(i>20)
51 1 {
52 2 i=0;
53 2 PT--;
54 2 ST--;
55 2 }
C51 COMPILER V7.06 4 04/16/2006 17:29:00 PAGE 2
56 1 }
57
58 void init(void)//initialise system
59 {
60 1 P0=0x00;//initialise I\O ports
61 1 P1=0xFF;
62 1 P2=0xFF;
63 1 P3=0xFF;
64 1 CASE=1;//the initial road situation
65 1 TMOD=0x61;//initialise timer
66 1 TH0=-50000/256;
67 1 TL0=-50000%256;
68 1 EA=1;
69 1 ET0=1;
70 1 TR0=1;
71 1 }
72
73 void display(unsigned char PT,unsigned char ST)//road time display function
74 {
75 1 unsigned char n;
76 1 n=PT%10;
77 1 PB1=0;
78 1 P0=table[n];
79 1 delay();
80 1 delay();
81 1 PB1=1;
82 1 delay();
83 1 n=PT/10;
84 1 PB2=0;
85 1 P0=table[n];
86 1 delay();
87 1 delay();
88 1 PB2=1;
89 1 delay();
90 1 n=ST%10;
91 1 SB1=0;
92 1 P0=table[n];
93 1 delay();
94 1 delay();
95 1 SB1=1;
96 1 delay();
97 1 n=ST/10;
98 1 SB2=0;
99 1 P0=table[n];
100 1 delay();
101 1 delay();
102 1 SB2=1;
103 1 delay();
104 1 }
105
106 void delay(void)// led scan delay
107 { int k;
108 1 for(k=0;k<300;k++)
109 1 ;
110 1 }
111
112
113 void main(void)
114 {
115 1 init();
116 1 while(1)
117 1 {
C51 COMPILER V7.06 4 04/16/2006 17:29:00 PAGE 3
118 2 switch(CASE)
119 2 {
120 3 case 1:
121 3 PT=15;
122 3 ST=75;
123 3
124 3 C_R=0;//C go ahead forbit
125 3 D_R=0;//D go ahead forbit
126 3 A_A=0;//A road turn left allow
127 3 A_R=0;
128 3 B_A=0;//B road turn left allow
129 3 B_R=0;
130 3 while(!(PT==0&&ST==0))
131 3 {
132 4 if(PT<6&&ST<66&&ST>PT)
133 4 {
134 5 if(PT%2==1)
135 5 {
136 6 A_A=1;//A road turn left flash
137 6 B_A=1;//B road turn left flash
138 6 }
139 5 else
140 5 {
141 6 A_A=0;
142 6 B_A=0;
143 6 }
144 5 }
145 4 if(PT==0&&ST==60)
146 4 {
147 5 PT=60;
148 5 A_A=1;//A road turn left forbid
149 5 B_A=1;//B road turn left forbid
150 5 A_G=0;//A road go ahead allow
151 5 A_R=1;
152 5 B_G=0;//B road go ahead allow
153 5 B_R=1;
154 5
155 5 }
156 4 if(PT<6&&ST<6)
157 4 {
158 5 A_G=1;
159 5 B_G=1;
160 5 if(PT%2==1)
161 5 {
162 6 A_Y=1;//A road yellow light flash
163 6 B_Y=1;//B road yellow light flash
164 6 }
165 5 else
166 5 {
167 6 A_Y=0;
168 6 B_Y=0;
169 6 }
170 5 }
171 4 display(PT,ST);
172 4 }
173 3 A_G=1;//A road go ahead forbit
174 3 B_G=1;//B road go ahead forbit
175 3 CASE=2;
176 3 break;
177 3
178 3
179 3 case 2:
C51 COMPILER V7.06 4 04/16/2006 17:29:00 PAGE 4
180 3 PT=55;
181 3 ST=10;
182 3 A_R=0;//A road go ahead forbit
183 3 B_R=0;//B road go ahead forbit
184 3 C_A=0;//C road turn left allow
185 3 C_R=0;
186 3 D_A=0;//D road turn left allow
187 3 C_R=0;
188 3 while(!(PT==0&&ST==0))
189 3 {
190 4 if(PT<51&&ST<6&&PT>ST)
191 4 {
192 5 if(PT%2==1)
193 5 {
194 6 C_A=1;//C road turn left flash
195 6 C_A=1;//C road turn left flash
196 6 }
197 5 else
198 5 {
199 6 C_A=0;
200 6 C_A=0;
201 6 }
202 5 }
203 4 if(PT==45&&ST==0)
204 4 {
205 5 ST=45;
206 5 C_A=1;//C road turn left forbid
207 5 D_A=1;//D road turn left forbid
208 5 C_G=0;//C road go ahead allow
209 5 C_R=1;
210 5 D_G=0;//D road go ahead allow
211 5 D_R=1;
212 5
213 5 }
214 4 if(PT<6&&ST<6)
215 4 {
216 5 C_G=1;
217 5 D_G=1;
218 5 if(PT%2==1)
219 5 {
220 6 C_Y=1;//C road yellow light flash
221 6 D_Y=1;//D road yellow light flash
222 6 }
223 5 else
224 5 {
225 6 C_Y=0;
226 6 D_Y=0;
227 6 }
228 5 }
229 4 display(PT,ST);
230 4 }
231 3 C_G=1;//C road go ahead forbit
232 3 D_G=1;//C road go ahead forbit
233 3 CASE=1;
234 3 break;
235 3
236 3 }
237 2 }
238 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
C51 COMPILER V7.06 4 04/16/2006 17:29:00 PAGE 5
CODE SIZE = 459 ----
CONSTANT SIZE = 10 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 3 3
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 + -