📄 0.lst
字号:
C51 COMPILER V7.06 0 05/08/2006 22:55:34 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE 0
OBJECT MODULE PLACED IN 0.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 0.C BROWSE DEBUG OBJECTEXTEND
stmt level source
1 //附:源程序代码
2 /**********************************/
3 /* 交通灯控制系统 */
4 /* 设计:陈金玉 吴振铨 */
5 /* 广东工业大学信息工程学院 */
6 /* 04应用电子2班 */
7 /* 2006年4月25日 */
8 /**********************************/
9 #include"reg51.h"
10 unsigned char code table[]={ // seven segments LED code
11 0xC0,/*0*/
12 0xF9,/*1*/
13 0xA4,/*2*/
14 0xB0,/*3*/
15 0x99,/*4*/
16 0x92,/*5*/
17 0x82,/*6*/
18 0xF8,/*7*/
19 0x80,/*8*/
20 0x90,/*9*/};
21 sbit A_R=P1^0;//A road Red light
22 sbit A_G=P1^1;//A road Green light
23 sbit A_Y=P1^2;//A road Yellow light
24 sbit A_A=P1^3;//A road Arrow light
25 sbit C_R=P1^4;//C road Red light
26 sbit C_G=P1^5;//C road Green light
27 sbit C_Y=P1^6;//C road Yellow light
28 sbit C_A=P1^7;//C road Arrow light
29 sbit B_R=P1^0;//C road Red light
30 sbit B_G=P1^1;//B road Green light
31 sbit B_Y=P1^2;//B road Yellow light
32 sbit B_A=P1^3;//B road Arrow light
33 sbit D_R=P1^4;//D road Red light
34 sbit D_G=P1^5;//D road Green light
35 sbit D_Y=P1^6;//D road Yellow light
36 sbit D_A=P1^7;//D road Arrow light
37 sbit PB1=P2^7;//primary road led bit 1
38 sbit PB2=P2^6;//primary road led bit 2
39 sbit SB1=P2^5;//secondary road led bit 1
40 sbit SB2=P2^4;//secondary road led bit 2
41 sbit PSW_G=P2^3;//primary road sidewalk Green lighi
42 sbit PSW_R=P2^2;//primary road sidewalk Red lighi
43 sbit SSW_G=P2^1;//secondary road sidewalk Green lighi
44 sbit SSW_R=P2^0;//secondary road sidewalk Red lighi
45 sbit PR_G=P3^0;//primary road turn right Red light
46 sbit PR_R=P3^1;//primary road turn right Green light
47 sbit SR_G=P3^2;//secondary road turn right Red light
48 sbit SR_R=P3^3;//secondary road turn right Green light
49 unsigned char CASE;// road situation
50 unsigned char PT;//primary road time
51 unsigned char ST;//secondary road time
52 void display(unsigned char PT,unsigned char ST);//road time display
53 void init(void);//initialise system
54 void delay(void);// led scan delay
55 time0()interrupt 1 using 1//T0 interrupt serve (delay 50ms)
C51 COMPILER V7.06 0 05/08/2006 22:55:34 PAGE 2
56 {
57 1 unsigned char i;
58 1 i++;
59 1 TH0=-50000/256;
60 1 TL0=-50000%256;
61 1 if(i>20)
62 1 {
63 2 i=0;
64 2 PT--;
65 2 ST--;
66 2 }
67 1 }
68 void init(void)//initialise system
69 {
70 1 P0=0x00;//initialise I\O ports
71 1 P1=0xFF;
72 1 P2=0xFF;
73 1 P3=0xFF;
74 1 CASE=1;//the initial road situation
75 1 TMOD=0x61;//initialise timer
76 1 TH0=-50000/256;
77 1 TL0=-50000%256;
78 1 EA=1;
79 1 ET0=1;
80 1 TR0=1;
81 1 }
82 void display(unsigned char PT,unsigned char ST)//road time display function
83 {
84 1 unsigned char n;
85 1 n=PT%10;
86 1 PB1=0;
87 1 P0=table[n];
88 1 delay();
89 1 delay();
90 1 PB1=1;
91 1 delay();
92 1 n=PT/10;
93 1 PB2=0;
94 1 P0=table[n];
95 1 delay();
96 1 delay();
97 1 PB2=1;
98 1 delay();
99 1 n=ST%10;
100 1 SB1=0;
101 1 P0=table[n];
102 1 delay();
103 1 delay();
104 1 SB1=1;
105 1 delay();
106 1 n=ST/10;
107 1 SB2=0;
108 1 P0=table[n];
109 1 delay();
110 1 delay();
111 1 SB2=1;
112 1 delay();
113 1 }
114 void delay(void)// led scan delay
115 { int k;
116 1 for(k=0;k<300;k++)
117 1 ;
C51 COMPILER V7.06 0 05/08/2006 22:55:34 PAGE 3
118 1 }
119 void main(void)
120 {
121 1 init();
122 1 while(1)
123 1 {
124 2 switch(CASE)
125 2 {
126 3 case 1:
127 3 PT=15;
128 3 ST=75;
129 3 C_R=0;//C go ahead forbit
130 3 D_R=0;//D go ahead forbit
131 3 A_A=0;//A road turn left allow
132 3 A_R=0;
133 3 B_A=0;//B road turn left allow
134 3 B_R=0;
135 3 PR_G=0;//primary road turn right allow
136 3 PR_R=1;
137 3 SR_R=0;//secondary road turn right forbit
138 3 SR_G=1;
139 3 PSW_G=1;//primary road sidewalk forbit
140 3 PSW_R=0;
141 3 SSW_G=1;//secondary road sidewalk forbit
142 3 SSW_R=0;
143 3 while(!(PT==0&&ST==0))
144 3 {
145 4 if(PT<6&&ST<66&&ST>PT)
146 4 {
147 5 if(PT%2==1)
148 5 {
149 6 A_A=1;//A road turn left flash
150 6 B_A=1;//B road turn left flash
151 6 }
152 5 else
153 5 {
154 6 A_A=0;
155 6 B_A=0;
156 6 }
157 5 }
158 4 if(PT==0&&ST==60)
159 4 {
160 5 PT=60;
161 5 A_A=1;//A road turn left forbid
162 5 B_A=1;//B road turn left forbid
163 5 PR_G=1;//primary road turn right forbid
164 5 PR_R=0;
165 5 A_G=0;//A road go ahead allow
166 5 A_R=1;
167 5 B_G=0;//B road go ahead allow
168 5 B_R=1;
169 5 SSW_G=0;//secondary road sidewalk allow
170 5 SSW_R=1;
*** ERROR C100 IN LINE 170 OF 0.C: unprintable character 0xA3 skipped
*** ERROR C100 IN LINE 170 OF 0.C: unprintable character 0xBB skipped
171 5 }
*** ERROR C141 IN LINE 171 OF 0.C: syntax error near '}'
172 4 if(PT<6&&ST<6)
173 4 {
174 5 A_G=1;
175 5 B_G=1;
176 5 if(PT%2==1)
C51 COMPILER V7.06 0 05/08/2006 22:55:34 PAGE 4
177 5 {
178 6 A_Y=1;//A road yellow light flash
179 6 B_Y=1;//B road yellow light flash
180 6 SSW_G=1;//secondary road sidewalk Green light flash
181 6 }
182 5 else
183 5 {
184 6 A_Y=0;
185 6 B_Y=0;
186 6 SSW_G=0;
187 6 }
188 5 }
189 4 display(PT,ST);
190 4 }
191 3 A_G=1;//A road go ahead forbit
192 3 B_G=1;//B road go ahead forbit
193 3 SSW_G=1;//secondary road sidewalk forbit
194 3 SSW_R=0;
195 3 CASE=2;
196 3 Break;
*** ERROR C100 IN LINE 196 OF 0.C: unprintable character 0xA3 skipped
*** ERROR C100 IN LINE 196 OF 0.C: unprintable character 0xBB skipped
197 3 case 2:
*** ERROR C202 IN LINE 197 OF 0.C: 'Break': undefined identifier
*** ERROR C141 IN LINE 197 OF 0.C: syntax error near 'case'
198 3 PT=55;
199 3 ST=10;
200 3 A_R=0;//A road go ahead forbit
201 3 B_R=0;//B road go ahead forbit
202 3 C_A=0;//C road turn left allow
203 3 C_R=0;
204 3 D_A=0;//D road turn left allow
205 3 C_R=0;
206 3 SR_R=1;//secondary road turn right allow
207 3 SR_G=0;
208 3 PSW_G=1;//primary road sidewalk forbit
209 3 PSW_R=0;
210 3 SSW_G=1;//secondary road sidewalk forbit
211 3 SSW_R=0;
212 3 while(!(PT==0&&ST==0))
213 3 {
214 4 if(PT<51&&ST<6&&PT>ST)
215 4 {
216 5 if(PT%2==1)
217 5 {
218 6 C_A=1;//C road turn left flash
219 6 C_A=1;//C road turn left flash
220 6 }
221 5 else
222 5 {
223 6 C_A=0;
224 6 C_A=0;
225 6 }
226 5 }
227 4 if(PT==45&&ST==0)
228 4 {
229 5 ST=45;
230 5 C_A=1;//C road turn left forbid
231 5 D_A=1;//D road turn left forbid
232 5 SR_R=0;//secondary road turn right forbit
233 5 SR_G=1;
234 5 C_G=0;//C road go ahead allow
C51 COMPILER V7.06 0 05/08/2006 22:55:34 PAGE 5
235 5 C_R=1;
236 5 D_G=0;//D road go ahead allow
237 5 D_R=1;
238 5 PSW_G=0;//primary road sidewalk allow
239 5 PSW_R=1;
240 5 }
241 4 if(PT<6&&ST<6)
242 4 {
243 5 C_G=1;
244 5 D_G=1;
245 5 if(PT%2==1)
246 5 {
247 6 C_Y=1;//C road yellow light flash
248 6 D_Y=1;//D road yellow light flash
249 6 PSW_G=1;//primary road sidewalk Green light flash
250 6 }
251 5 else
252 5 {
253 6 C_Y=0;
254 6 D_Y=0;
255 6 PSW_G=0;
256 6 }
257 5 }
258 4 display(PT,ST);
259 4 }
260 3 C_G=1;//C road go ahead forbit
261 3 D_G=1;//C road go ahead forbit
262 3 CASE=1;
263 3 break;
264 3
265 3 }
266 2 }
267 1 }
C51 COMPILATION COMPLETE. 0 WARNING(S), 7 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -