📄 jiaotongdeng.lst
字号:
C51 COMPILER V9.00 JIAOTONGDENG 01/04/2013 16:40:46 PAGE 1
C51 COMPILER V9.00, COMPILATION OF MODULE JIAOTONGDENG
OBJECT MODULE PLACED IN jiaotongdeng.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE jiaotongdeng.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<reg51.h>
2 #define uchar unsigned char
3 #define uint unsigned int
4 sbit sw1=P3^0;
5 sbit sw2=P3^1;
6 sbit sw3=P3^2;
7 sbit key_ew=P3^3;
8 sbit key_sn=P3^4;
9 sbit BZ=P3^5;
10 uchar TH,TL;
11 uchar SN=30,EW=25,NN=60;
12 uint tt,ii,jj,kk;
13 uchar code DisCode[]
14 ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
15 uchar Disbuff0[2];
16 uchar Disbuff1[2];
17 void Delay(uint x)//MS延时
18 {
19 1 uchar i;
20 1 while(x--)for(i=0;i<123;i++);
21 1 }
22 void init()
23 {
24 1 TMOD=0x01;
25 1 TH=(65536-4000)/256,
26 1 TL=(65536-4000)%256;
27 1 TH0=TH;
28 1 TL0=TL;
29 1 EA=1;
30 1 ET0=1;
31 1 TR0=1;
32 1 }
33 void fenli0()
34 {
35 1 Disbuff0[0]=SN/10;
36 1 Disbuff0[1]=SN%10;
37 1 }
38 void fenli1()
39 {
40 1 Disbuff1[0]=EW/10;
41 1 Disbuff1[1]=EW%10;
42 1 }
43
44 void Display()
45 {
46 1 uchar ii;
47 1 if(ii==0)
48 1 {
49 2 P0=0x80;
50 2 P2=0x80;
51 2 P2=DisCode[Disbuff0[0]]|0x80;
52 2 P0=DisCode[Disbuff1[0]]&0x7f;
53 2 }
54 1 else
55 1 {
C51 COMPILER V9.00 JIAOTONGDENG 01/04/2013 16:40:46 PAGE 2
56 2 P0=0x80;
57 2 P2=0x80;
58 2 P2=DisCode[Disbuff0[1]]&0x7f;
59 2 P0=DisCode[Disbuff1[1]]|0x80;
60 2 }
61 1 ii=~ii;
62 1 }
63 void fuzhi()//赋值
64 {
65 1 if(NN==60)
66 1 {
67 2 SN=30;
68 2 EW=25;
69 2 P1=0x5E;
70 2 }
71 1 if(EW==0&&NN==35)
72 1 {
73 2 EW=5;
74 2 P1=0x6E;
75 2 }
76 1 if(NN==30)
77 1 {
78 2 SN=25;
79 2 EW=30;
80 2 P1=0xB3;
81 2 }
82 1 if(SN==0&&NN==5)
83 1 {
84 2 SN=5;
85 2 P1=0xB5;
86 2 }
87 1 }
88 void LED()//LED
89 {
90 1 if(NN<=40&&NN>35)//
91 1 {
92 2 if(kk)
93 2 {
94 3 P1=0x5E;
95 3 }
96 2 else P1=0xfE;
97 2 }
98 1 if(NN<=35&&NN>30)
99 1 {
100 2 if(kk)
101 2 {
102 3 P1=0x6E;
103 3 }
104 2 else P1=0xEE;
105 2 }
106 1 if(NN<=10&&NN>5)
107 1 {
108 2 if(kk)
109 2 {
110 3 P1=0xB3;
111 3 }
112 2 else P1=0xF7;
113 2 }
114 1 if(NN<=5)
115 1 {
116 2 if(kk)
117 2 {
C51 COMPILER V9.00 JIAOTONGDENG 01/04/2013 16:40:46 PAGE 3
118 3 P1=0xB5;
119 3 }
120 2 else P1=0xF5;
121 2 }
122 1 }
123
124 void qiangzhi_sw()//强制通行
125 {
126 1 if(key_ew==0)
127 1 {
128 2 TR0=0;
129 2 P0=0x3f;
130 2 P2=0x3f;
131 2 P1=0x5e;
132 2 while(!key_ew);
133 2 TR0=1;
134 2 }
135 1 if(key_sn==0)
136 1 {
137 2 TR0=0;
138 2 P0=0x3f;
139 2 P2=0x3f;
140 2 P1=0xb3;
141 2 while(!key_sn);
142 2 TR0=1;
143 2 }
144 1 }
145 void key1()//调时
146 {
147 1 uchar m=0,num=0,n=0;
148 1 uchar sw11,sw22=1,sw33=1;
149 1 if(sw1==0)
150 1 {
151 2 Delay(10);
152 2 if(sw1==0)
153 2 {
154 3 while(!sw1);
155 3 num++;
156 3 TR0=0;
157 3 while(!m)
158 3 {
159 4 if(n==1)
160 4 {
161 5 if(sw11==1&&sw1==0)
162 5 {
163 6 Delay(10);
164 6 if(sw11==1&&sw1==0)
165 6 {
166 7 num++;
167 7 }
168 6 }
169 5 if(num==3)
170 5 {
171 6 while(!sw1);
172 6 }
173 5 sw11=sw1;
174 5 }
175 4 n=1;
176 4 Delay(3);
177 4 switch (num)
178 4 {
179 5
C51 COMPILER V9.00 JIAOTONGDENG 01/04/2013 16:40:46 PAGE 4
180 5 case 1:
181 5 {
182 6 if(sw22==1&&sw2==0)
183 6 {
184 7 SN++;
185 7 EW++;
186 7 if(EW==100)
187 7 {
188 8 EW=5;
189 8 SN=0;
190 8 }
191 7 if(SN==100)
192 7 {
193 8 SN=5;
194 8 EW=0;
195 8 }
196 7 fenli0();
197 7 fenli1();
198 7 }
199 6 sw22=sw2;
200 6 if(sw33==1&&sw3==0)
201 6 {
202 7 SN--;
203 7 EW--;
204 7 if(EW==255)
205 7 {
206 8 EW=94;
207 8 SN=99;
208 8 }
209 7 if(SN==255)
210 7 {
211 8 SN=94;
212 8 EW=99;
213 8 }
214 7 fenli0();
215 7 fenli1();
216 7 }
217 6 sw33=sw3;
218 6 Display();
219 6
220 6 } break;
221 5 case 2:
222 5 {
223 6 TR0=1;
224 6 m=1;
225 6 while(!sw1);
226 6 Delay(5);
227 6 while(!sw1);
228 6 } break;
229 5
230 5 }
231 4 }
232 3 }
233 2 }
234 1 }
235
236 void main()
237 {
238 1 init();
239 1 fenli0();
240 1 fenli1();
241 1 while(1)
C51 COMPILER V9.00 JIAOTONGDENG 01/04/2013 16:40:46 PAGE 5
242 1 {
243 2 qiangzhi_sw();
244 2 key1();
245 2 }
246 1
247 1 }
248 void timer0() interrupt 1
249 {
250 1 TH0=TH;
251 1 TL0=TL;
252 1 tt++;
253 1 jj++;
254 1 if(tt==250)
255 1 {
256 2 tt=0;
257 2
258 2 fuzhi();
259 2 EW--;
260 2 SN--;
261 2 if(SN==30)
262 2 {
263 3 NN=61;
264 3 }
265 2 if(EW==30)
266 2 {
267 3 NN=30;
268 3 }
269 2 if(EW<30||SN<30)
270 2 {
271 3
272 3 NN--;
273 3 if(NN==0)
274 3 NN=60;
275 3 }
276 2 fenli0();
277 2 fenli1();
278 2 }
279 1 Display();
280 1 LED();
281 1 if(jj==50)
282 1 {
283 2 jj=0;
284 2 kk=~kk;
285 2 }
286 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 698 ----
CONSTANT SIZE = 10 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 17 4
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 + -