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