📄 6.lst
字号:
C51 COMPILER V7.06 6 05/08/2006 21:50:17 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE 6
OBJECT MODULE PLACED IN 6.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 6.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 6 05/08/2006 21:50:17 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;
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 CASE=1;//the initial road situation
87 1 TMOD=0x61;//initialise timer
88 1 TH0=-50000/256;
89 1 TL0=-50000%256;
90 1 EA=1;
91 1 ET0=1;
92 1 TR0=1;
93 1 }
94
95 void display(unsigned char PT,unsigned char ST)//road time display function
96 {
97 1 unsigned char n;
98 1 n=PT%10;
99 1 PB1=0;
100 1 P0=table[n];
101 1 delay();
102 1 delay();
103 1 PB1=1;
104 1 delay();
105 1 n=PT/10;
106 1 PB2=0;
107 1 P0=table[n];
108 1 delay();
109 1 delay();
110 1 PB2=1;
111 1 delay();
112 1 n=ST%10;
113 1 SB1=0;
114 1 P0=table[n];
115 1 delay();
116 1 delay();
117 1 SB1=1;
C51 COMPILER V7.06 6 05/08/2006 21:50:17 PAGE 3
118 1 delay();
119 1 n=ST/10;
120 1 SB2=0;
121 1 P0=table[n];
122 1 delay();
123 1 delay();
124 1 SB2=1;
125 1 delay();
126 1 }
127
128 void delay(void)// led scan delay
129 {
130 1 for(k=0;k<300;k++)
131 1 ;
132 1 }
133
134 void settime()
135 {
136 1 EA=0;
137 1 ET0=0;
138 1 TR0=0;
139 1 exit=1;
140 1 while(exit)
141 1 {
142 2
143 2
144 2 for(k=0;k<40000;k++)
145 2 ;
146 2 while(menu!=0)
147 2 {
148 3 A_A=0;
149 3 PT=A1;
150 3 n=PT%10;
151 3 PB1=0;
152 3 P0=table[n];
153 3 delay();
154 3 delay();
155 3 PB1=1;
156 3 delay();
157 3 n=PT/10;
158 3 PB2=0;
159 3 P0=table[n];
160 3 delay();
161 3 delay();
162 3 PB2=1;
163 3 delay();
164 3 if(add==0)
165 3 {
166 4 for(k=0;k<20000;k++)
167 4 ;
168 4 if(add==0)
169 4 A1++;
170 4 //if(A1>99);
171 4 //A1=0;
172 4 }
173 3 if(dec==0)
174 3 {
175 4 for(k=0;k<20000;k++)
176 4 ;
177 4 if(dec==0)
178 4 A1--;
179 4 //if(A1==0);
C51 COMPILER V7.06 6 05/08/2006 21:50:17 PAGE 4
180 4 //A1=99;
181 4 }
182 3 }
183 2 A_A=1;
184 2 for(k=0;k<40000;k++)
185 2 ;
186 2 while(menu!=0)
187 2 {
188 3 PT=B1;
189 3 A_G=0;
190 3 n=PT%10;
191 3 PB1=0;
192 3 P0=table[n];
193 3 delay();
194 3 delay();
195 3 PB1=1;
196 3 delay();
197 3 n=PT/10;
198 3 PB2=0;
199 3 P0=table[n];
200 3 delay();
201 3 delay();
202 3 PB2=1;
203 3 delay();
204 3 if(add==0)
205 3 {
206 4 for(k=0;k<20000;k++)
207 4 ;
208 4 if(add==0)
209 4 B1++;
210 4 // if(B1==99);
211 4 // B1=0;
212 4 }
213 3 if(dec==0)
214 3 {
215 4 for(k=0;k<20000;k++)
216 4 ;
217 4 if(dec==0)
218 4 B1--;
219 4 // if(B1==0);
220 4 // B1=99;
221 4 }
222 3 }
223 2 A_G=1;
224 2 for(k=0;k<40000;k++)
225 2 ;
226 2 while(menu!=0)
227 2 {
228 3 ST=C1;
229 3 C_A=0;
230 3 n=ST%10;
231 3 SB1=0;
232 3 P0=table[n];
233 3 delay();
234 3 delay();
235 3 SB1=1;
236 3 delay();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -