📄 dy1clock.lst
字号:
201
202 void turn(uchar i){
203 1 switch (i){//
204 2 case 1://
205 2 display1();
206 2 break;//
207 2 case 2://
208 2 display2();
209 2 break;//
210 2 case 3://
211 2 display3();
212 2 break;//
213 2 case 4://
214 2 display4();
215 2 break;//
216 2 case 5://
217 2 display5();
218 2 break;//
219 2 case 6://
220 2 display6();
221 2 break;//
222 2 case 7://
223 2 display7();
224 2 break;//
225 2 case 8://
226 2 display8();
227 2 break;//
228 2 case 9://
229 2 display9();
230 2 break;//
231 2 case 0://
232 2 display0();
233 2 break;//
234 2 }
235 1 }
236 /**********************************************************************************************/
237
238 void main(void){
239 1 TMOD = 0x11; // 定时/计数器0,1工作于方式1
240 1 TH0 = 0xd8; // 预置定时常数55536(d8f0),产生10ms时基信号
241 1 TL0 = 0xf0;
C51 COMPILER V6.12 DY1CLOCK 04/27/2009 00:06:27 PAGE 5
242 1 EA = 1; // 开总中断
243 1 ET0 = 1; // 定时/计数器0允许中断
244 1 TR0 = 1; // 开闭定时/计数器0
245 1 while(1){
246 2
247 2 unsigned char a,b;
248 2
249 2 if(MENU == 0){
250 3 ledh = 1;
251 3 SP_DIS = 150;
252 3 turn(hou/10);
253 3 delay_P2();
254 3 displayN();
255 3 delay_P2();
256 3 turn(hou%10);
257 3 delay_P2();
258 3 displayN();
259 3 delay_P2();
260 3 ledh = 0;
261 3 delay_P2();
262 3 ledh = 1;
263 3 delay_P2();
264 3 turn(min/10);
265 3 delay_P2();
266 3 displayN();
267 3 delay_P2();
268 3 turn(min%10);
269 3 delay_P2();
270 3 displayN();
271 3
272 3 delay_ms(7000);
273 3 if(key1 == 0 && key2 == 1){
274 4 delay_ms(20);//去抖
275 4 if(key1 == 0 && key2 == 1){
276 5 MENU = 1;
277 5 while(key1 == 0 || key2 == 0){ ledh = 0; }
278 5 }
279 4 }
280 3 }
281 2 /**********************************************************************************************/
282 2
283 2 if(MENU == 1){
284 3 SP_DIS = 1;
285 3 turn(hou/10);
286 3 displayN2();
287 3 if(key1 == 0 && key2 == 1){
288 4 delay_ms(20);//去抖
289 4 if(key1 == 0 && key2 == 1){
290 5 MENU = 2;
291 5 }
292 4 }
293 3 if(key2 == 0 && key1 == 1){
294 4 delay_ms(20);//去抖
295 4 if(key2 == 0 && key1 == 1){
296 5 a = hou/10;
297 5 b = hou%10;
298 5 a++;
299 5 if(a > 2){
300 6 a = 0;
301 6 }
302 5 hou = a*10 + b;
303 5 }
C51 COMPILER V6.12 DY1CLOCK 04/27/2009 00:06:27 PAGE 6
304 4 }
305 3 while(key1 == 0 || key2 == 0){ }
306 3 }
307 2 /**********************************************************************************************/
308 2
309 2 if(MENU == 2){
310 3 ledh = 0;
311 3 turn(hou%10);
312 3 displayN2();
313 3 if(key1 == 0 && key2 == 1){
314 4 delay_ms(20);//去抖
315 4 if(key1 == 0 && key2 == 1){
316 5 MENU = 3;
317 5 }
318 4 }
319 3 if(key2 == 0 && key1 == 1){
320 4 delay_ms(20);//去抖
321 4 if(key2 == 0 && key1 == 1){
322 5 a = hou/10;
323 5 b = hou%10;
324 5 b++;
325 5 if(b > 9){
326 6 b = 0;
327 6 }
328 5 if(a > 1){
329 6 if(b > 3){
330 7 b = 0;
331 7 }
332 6 }
333 5 hou = a*10 + b;
334 5 }
335 4 }
336 3 while(key1 == 0 || key2 == 0){ }
337 3 }
338 2 /**********************************************************************************************/
339 2
340 2 if(MENU == 3){
341 3 ledh = 0;
342 3 turn(min/10);
343 3 displayN2();
344 3 if(key1 == 0 && key2 == 1){
345 4 delay_ms(20);//去抖
346 4 if(key1 == 0 && key2 == 1){
347 5 MENU = 4;
348 5 }
349 4 }
350 3 if(key2 == 0 && key1 == 1){
351 4 delay_ms(20);//去抖
352 4 if(key2 == 0 && key1 == 1){
353 5 a = min/10;
354 5 b = min%10;
355 5 a++;
356 5 if(a > 5){
357 6 a = 0;
358 6 }
359 5 min = a*10 + b;
360 5 }
361 4 }
362 3 while(key1 == 0 || key2 == 0){ }
363 3 }
364 2 /**********************************************************************************************/
365 2
C51 COMPILER V6.12 DY1CLOCK 04/27/2009 00:06:27 PAGE 7
366 2 if(MENU == 4){
367 3 ledh = 0;
368 3 turn(min%10);
369 3 displayN2();
370 3 if(key1 == 0 && key2 == 1){
371 4 delay_ms(20);//去抖
372 4 if(key1 == 0 && key2 == 1){
373 5 MENU = 0;
374 5 }
375 4 }
376 3 if(key2 == 0 && key1 == 1){
377 4 delay_ms(20);//去抖
378 4 if(key2 == 0 && key1 == 1){
379 5 a = min/10;
380 5 b = min%10;
381 5 b++;
382 5 if(b > 9){
383 6 b = 0;
384 6 }
385 5 min = a*10 + b;
386 5 sec = 0;//调时完成后把秒清0
387 5 }
388 4 }
389 3 while(key1 == 0 || key2 == 0){ }
390 3 }
391 2 }
392 1 }
393 /**********************************************************************************************/
394
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1245 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 8 2
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 + -