📄 main.lst
字号:
274 3 d=d&0x3f;
275 3 e=d;
276 3 d=d>>4;
277 3 e=e&0x0f;
278 3 Mcs=0;Scs=1;
279 3 Disp1_Digit(0,16,zero+d*16);
280 3 Disp1_Digit(0,24,zero+e*16);
281 3 Disp1_Chinese(0,32,ri);
282 3 }
283 2 else
284 2 {
285 3 Mcs=0;Scs=1;
286 3 Disp1_Digit(0,16,space); //显示空格
287 3 Disp1_Digit(0,24,space);
288 3 }
289 2 }
290 1 else
291 1 {
292 2 d=read_clock(0x05);//读日
293 2 d=d&0x3f;
294 2 e=d;
295 2 d=d>>4;
296 2 e=e&0x0f;
297 2 Mcs=0;Scs=1;
298 2 Disp1_Digit(0,16,zero+d*16);
299 2 Disp1_Digit(0,24,zero+e*16);
300 2 Disp1_Chinese(0,32,ri);
301 2 }
302 1
C51 COMPILER V8.08 MAIN 06/28/2008 15:24:32 PAGE 6
303 1 Conver_week(((read_clock(0x08))&0x80)>>7,read_clock(0x08),read_clock(0x07)&0x1F,read_clock(0x05)&0x3F)
-;
304 1
305 1
306 1
307 1 if(weekk==1) //星期闪烁标志位
308 1 {
309 2 if(flag==1)
310 2 {
311 3 d=week;
312 3 // d=read_clock(0x06);//读星期
313 3 Mcs=1;Scs=0;
314 3 Disp_Chinese(2,40,cone+(d-1)*32);//写入星期的汉字
315 3 }
316 2 else
317 2 {
318 3 Mcs=1;Scs=0;
319 3 Disp_Chinese(2,40,spaces); //显示空格
320 3 }
321 2 }
322 1 else
323 1 {
324 2 d=week;
325 2 // d=read_clock(0x06);//读星期
326 2 Mcs=1;Scs=0;
327 2 Disp_Chinese(2,40,cone+(d-1)*32);//写入星期的汉字
328 2 }
329 1 }
330
331 /******************************************************************************/
332 void Disp2(void)//显示和闪烁函数
333 {
334 1 if(Kgb==1) //开关闪烁标志位
335 1 {
336 2 if(flag==1)
337 2 {
338 3 if(Bell_Swh == 0)//0为关
339 3 {
340 4 Mcs=0;Scs=1;
341 4 Disp1_Chinese(2,32,guan);//显示关
342 4 }
343 3 else
344 3 {
345 4 Mcs=0;Scs=1;
346 4 Disp1_Chinese(2,32,kai);//显示开
347 4 }
348 3 }
349 2 else
350 2 {
351 3 Mcs=0;Scs=1;
352 3 Disp1_Chinese(2,32,spaces); //显示空格
353 3 }
354 2 }
355 1 else
356 1 {
357 2 if(Bell_Swh == 0)//关
358 2 {
359 3 Mcs=0;Scs=1;
360 3 Disp1_Chinese(2,32,guan);
361 3 }
362 2 else
363 2 {
C51 COMPILER V8.08 MAIN 06/28/2008 15:24:32 PAGE 7
364 3 Mcs=0;Scs=1;
365 3 Disp1_Chinese(2,32,kai);
366 3 }
367 2 }
368 1
369 1 if(Hourb==1)
370 1 {
371 2 if(flag==1) //时闪烁标志位
372 2 {
373 3 d = Read_One_Byte(0x01);//读取2408的小时的数值
374 3 Mcs=1;Scs=0;
375 3 Disp_Digit(4,48,zero+(d/10)*16);
376 3 Disp_Digit(4,56,zero+(d%10)*16);
377 3 }
378 2 else
379 2 {
380 3 Mcs=1;Scs=0;
381 3 Disp_Digit(4,48,space); //显示空格
382 3 Disp_Digit(4,56,space);
383 3 }
384 2 }
385 1 else
386 1 {
387 2 d = Read_One_Byte(0x01);//读取24的小时的数值
388 2 Mcs=1;Scs=0;
389 2 Disp_Digit(4,48,zero+(d/10)*16);
390 2 Disp_Digit(4,56,zero+(d%10)*16);
391 2 }
392 1
393 1 if(Minb==1) //分钟闪烁标志位
394 1 {
395 2 if(flag==1)
396 2 {
397 3 d = Read_One_Byte(0x02);//读取24的分的数值
398 3 Mcs=0;Scs=1;
399 3 Disp1_Digit(4,8,zero+(d/10)*16);
400 3 Disp1_Digit(4,16,zero+(d%10)*16);
401 3 }
402 2 else
403 2 {
404 3 Mcs=0;Scs=1;
405 3 Disp1_Digit(4,8,space); //显示空格
406 3 Disp1_Digit(4,16,space);
407 3 }
408 2 }
409 1 else
410 1 {
411 2 d = Read_One_Byte(0x02);//读取24的分的数值
412 2 Mcs=0;Scs=1;
413 2 Disp1_Digit(4,8,zero+(d/10)*16);
414 2 Disp1_Digit(4,16,zero+(d%10)*16);
415 2 }
416 1
417 1 if(Secb==1) //秒闪烁标志位
418 1 {
419 2 if(flag==1)
420 2 {
421 3 d = Read_One_Byte(0x03);//读取24的秒的数值
422 3 Mcs=0;Scs=1;
423 3 Disp1_Digit(4,32,zero+(d/10)*16);
424 3 Disp1_Digit(4,40,zero+(d%10)*16);
425 3 }
C51 COMPILER V8.08 MAIN 06/28/2008 15:24:32 PAGE 8
426 2 else
427 2 {
428 3 Mcs=0;Scs=1;
429 3 Disp1_Digit(4,32,space); //显示空格
430 3 Disp1_Digit(4,40,space);
431 3 }
432 2 }
433 1 else
434 1 {
435 2 d = Read_One_Byte(0x03);//读取24的秒的数值
436 2 Mcs=0;Scs=1;
437 2 Disp1_Digit(4,32,zero+(d/10)*16);
438 2 Disp1_Digit(4,40,zero+(d%10)*16);
439 2 }
440 1 }
441
442 /******************************************************************************/
443 void id_case1_key(void)//id为1时的下一级选择
444 {
445 1 if(Add_Key == 0) //增加
446 1 {
447 2 Delay(100);
448 2 if(Add_Key == 0)
449 2 Set_time(id,0); //调用Set_time函数
450 2 while(Add_Key ==0);
451 2 }
452 1 if (Dec_Key==0) //减少
453 1 {
454 2 Delay(100);
455 2 if(Dec_Key == 0)
456 2 Set_time(id,1);
457 2 while(Dec_Key ==0);
458 2 }
459 1 }
460
461 /******************************************************************************/
462 void Set_time(unsigned char sel, bit sel_1) //根据选择调整相应项目并写入DS8563
463 {
464 1 signed char address,item;
465 1 signed char max,mini;
466 1 if(sel==7)
467 1 {
468 2 address=0x02; max=0;mini=0;
469 2 }
470 1 //秒
471 1 if(sel==6)
472 1 {
473 2 address=0x03; max=59;mini=0;
474 2 }
475 1 //分钟
476 1 if(sel==5)
477 1 {
478 2 address=0x04; max=23;mini=0;
479 2 }
480 1 //小时
481 1 if(sel==3)
482 1 {
483 2 address=0x05; max=31;mini=1;
484 2 }
485 1 //日
486 1 if(sel==2)
487 1 {
C51 COMPILER V8.08 MAIN 06/28/2008 15:24:32 PAGE 9
488 2 address=0x07; max=12;mini=1;
489 2 }
490 1 //月
491 1 if(sel==1)
492 1 {
493 2 address=0x08; max=99; mini=0;
494 2 }
495 1 //年
496 1 if(sel==4)
497 1 {
498 2 address=0x16; max=7;mini=1;
499 2 }
500 1 //星期
501 1
502 1 //读取8563某地址上的数值转换成10进制赋给item
503 1 item=((read_clock(address))/16)*10 + (read_clock(address))%16;
504 1 if(sel_1==0)
505 1 item++;
506 1 else
507 1 item--;
508 1 if(item>max) item=mini;
509 1 if(item<mini) item=max;
510 1
511 1
512 1 write_clock(address,(item/10)*16+item%10);//转换成16进制写入8563
513 1
514 1 }
515
516 /******************************************************************************/
517 void id_case2_key(void)//id为1时的下一级选择
518 {
519 1 if(Add_Key == 0) //增加
520 1 {
521 2 Delay(100);
522 2 if(Add_Key == 0)
523 2 Set_Bell(id2,0); //调用Set_time函数
524 2 while(Add_Key ==0);
525 2 }
526 1 if (Dec_Key==0) //减少
527 1 {
528 2 Delay(100);
529 2 if(Dec_Key == 0)
530 2 Set_Bell(id2,1);
531 2 while(Dec_Key ==0);
532 2 }
533 1 }
534
535 /******************************************************************************/
536 void Set_Bell(unsigned char sel, bit sel_1)//根据选择调整相应项目并写入24
537 {
538 1 signed char address,item;
539 1 signed char max,mini;
540 1 if(sel==4)
541 1 {
542 2 address=0x03; max=59;mini=0;
543 2 }
544 1 //秒
545 1 if(sel==3)
546 1 {
547 2 address=0x02; max=59;mini=0;
548 2 }
549 1 //分
C51 COMPILER V8.08 MAIN 06/28/2008 15:24:32 PAGE 10
550 1 if(sel==2)
551 1 {
552 2 address=0x01; max=23; mini=0;
553 2 }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -