📄 5.lst
字号:
C51 COMPILER V7.06 5 05/08/2006 18:13:07 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE 5
OBJECT MODULE PLACED IN 5.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 5.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;//C road Red light
23 sbit C_G=P1^5;//C road Green light
24 sbit C_Y=P1^6;//C road Yellow light
25 sbit C_A=P1^7;//C road Arrow light
26 sbit B_R=P1^0;//C road Red light
27 sbit B_G=P1^1;//B road Green light
28 sbit B_Y=P1^2;//B road Yellow light
29 sbit B_A=P1^3;//B road Arrow light
30 sbit D_R=P1^4;//D road Red light
31 sbit D_G=P1^5;//D road Green light
32 sbit D_Y=P1^6;//D road Yellow light
33 sbit D_A=P1^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 sbit PSW_G=P2^3;//primary road sidewalk Green lighi
39 sbit PSW_R=P2^2;//primary road sidewalk Red lighi
40 sbit SSW_G=P2^1;//secondary road sidewalk Green lighi
41 sbit SSW_R=P2^0;//secondary road sidewalk Red lighi
42 sbit PR_G=P3^0;//primary road turn right Red light
43 sbit PR_R=P3^1;//primary road turn right Green light
44 sbit SR_G=P3^2;//secondary road turn right Red light
45 sbit SR_R=P3^3;//secondary road turn right Green light
46 sbit menu=P3^7;
47 sbit inc=P3^5;
48 sbit dec=P3^6;
49 unsigned int k;
50 unsigned char n;
51 unsigned char a, b,c,d;
52 unsigned char CASE;// road situation
53 unsigned char PT;//primary road time
54 unsigned char ST;//secondary road time
55 void display(unsigned char PT,unsigned char ST);//road time display
C51 COMPILER V7.06 5 05/08/2006 18:13:07 PAGE 2
56 void init(void);//initialise system
57 void delay(void);// led scan delay
58 time0()interrupt 1 using 1//T0 interrupt serve (delay 50ms)
59 {
60 1 unsigned char i;
61 1 i++;
62 1 TH0=-50000/256;
63 1 TL0=-50000%256;
64 1 if(i>20)
65 1 {
66 2 i=0;
67 2 PT--;
68 2 ST--;
69 2 }
70 1 }
71
72 void init(void)//initialise system
73 {
74 1 a=14;
75 1 b=74;
76 1 c=9;
77 1 d=54;
78 1 P0=0x00;//initialise I\O ports
79 1 P1=0xFF;
80 1 P2=0xFF;
81 1 P3=0xFF;
82 1 CASE=1;//the initial road situation
83 1 TMOD=0x61;//initialise timer
84 1 TH0=-50000/256;
85 1 TL0=-50000%256;
86 1 EA=1;
87 1 ET0=1;
88 1 TR0=1;
89 1 }
90
91 void display(unsigned char PT,unsigned char ST)//road time display function
92 {
93 1
94 1 n=PT%10;
95 1 PB1=0;
96 1 P0=table[n];
97 1 delay();
98 1 delay();
99 1 PB1=1;
100 1 delay();
101 1 n=PT/10;
102 1 PB2=0;
103 1 P0=table[n];
104 1 delay();
105 1 delay();
106 1 PB2=1;
107 1 delay();
108 1 n=ST%10;
109 1 SB1=0;
110 1 P0=table[n];
111 1 delay();
112 1 delay();
113 1 SB1=1;
114 1 delay();
115 1 n=ST/10;
116 1 SB2=0;
117 1 P0=table[n];
C51 COMPILER V7.06 5 05/08/2006 18:13:07 PAGE 3
118 1 delay();
119 1 delay();
120 1 SB2=1;
121 1 delay();
122 1 }
123
124 void delay(void)// led scan delay
125 {
126 1 for(k=0;k<300;k++)
127 1 ;
128 1 }
129
130 void settime()
131 {
132 1 for(k=0;k<5000;k++)
133 1 ;
134 1 a=15;
135 1 while(menu==1)
136 1 {
137 2 if(inc==0)
138 2 {
139 3
140 3 for(k=0;k<2000;k++)
141 3 ;
142 3 if(inc==0)
143 3 a++;
144 3 }
145 2 if(dec==0)
146 2 {
147 3
148 3 for(k=0;k<2000;k++)
149 3 ;
150 3 if(dec==0)
151 3 a--;
152 3 }
153 2 PT=a;
154 2 //unsigned char n;
155 2 n=PT%10;
156 2 PB1=0;
157 2 P0=table[n];
158 2 delay();
159 2 delay();
160 2 PB1=1;
161 2 delay();
162 2 n=PT/10;
163 2 PB2=0;
164 2 P0=table[n];
165 2 delay();
166 2 delay();
167 2 PB2=1;
168 2 delay();
169 2 }
170 1 b=60;//////////////////
171 1 while(menu==1)
172 1 {
173 2 if(inc==0)
174 2 {
175 3
176 3 for(k=0;k<2000;k++)
177 3 ;
178 3 if(inc==0)
179 3 b++;
C51 COMPILER V7.06 5 05/08/2006 18:13:07 PAGE 4
180 3 }
181 2 if(dec==0)
182 2 {
183 3
184 3 for(k=0;k<2000;k++)
185 3 ;
186 3 if(dec==0)
187 3 b--;
188 3 }
189 2 PT=b;
190 2 // unsigned char n;
191 2 n=PT%10;
192 2 PB1=0;
193 2 P0=table[n];
194 2 delay();
195 2 delay();
196 2 PB1=1;
197 2 delay();
198 2 n=PT/10;
199 2 PB2=0;
200 2 P0=table[n];
201 2 delay();
202 2 delay();
203 2 PB2=1;
204 2 delay();
205 2 }
206 1 c=10;/////////////////////
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -