📄 dianzi.lst
字号:
490 2 key10=1;
491 2 Read_flash(0x8008, 6, cunmima);
492 2 do{
493 3 k = scan();
494 3 if(k == 10){goto exit;}
495 3 if(k==12)DispBuf[--i] = 10;
496 3 desips7219();
497 3 if( k >=0 && k<= 9)
498 3 {
499 4 DispBuf[i++]= k;
500 4 desips7219();
501 4 }
502 3
503 3 }while(i<6);
504 2
505 2 for( i = 0 ; i < 6 ; i++ )
506 2 {
507 3 if( cunmima[i] != DispBuf[i] )
508 3 {
509 4 if( Cnt++ > 2)
510 4 {Cnt=0; goto exit;}
511 4 goto setcode;
512 4 }
513 3 }
514 2 PassOk = 1;
515 2 break;
516 2 case 11: //设定时间
517 2 if( PassOk == 0)
518 2 goto exit ;
519 2 Cnt = 0;
520 2 settime:DispBuf[0]= 10;
521 2 DispBuf[1]= 10;
522 2 DispBuf[2]= 10;
523 2 DispBuf[3]= 10;
524 2 DispBuf[4]= 10;
525 2 DispBuf[5]= 10;
526 2 i = 0;
527 2 desips7219();
528 2
529 2 do{
530 3 k = scan();
531 3 if(k == 11){PassOk = 0 ;goto exit;}
532 3 if( k == 12 )
533 3 DispBuf[--i] = 10;
534 3 desips7219();
535 3 if( k >=0 && k<= 9)
536 3 {
537 4 DispBuf[i++]= k;
538 4 desips7219();
539 4 }
540 3
541 3 }while(i<6);
542 2 if( DispBuf[0]*10 + DispBuf[1] >23 ||
543 2 DispBuf[2]*10 + DispBuf[3] > 59||
544 2 DispBuf[4]*10 + DispBuf[5] > 59 )
545 2 {
546 3 if( Cnt++ >2 )
547 3 goto exit;
548 3 else
549 3 goto settime;
550 3 }
551 2 else
C51 COMPILER V7.06 DIANZI 08/21/2008 22:03:20 PAGE 10
552 2 { SetTime(DispBuf[0]*16+DispBuf[1],
553 3 DispBuf[2]*16+DispBuf[3],
554 3 DispBuf[4]*16+DispBuf[5]);
555 3 PassOk = 0 ;key10=0;
556 3 }break;
557 2 case 12:
558 2 case 13: //修改密码
559 2 if( PassOk == 0)
560 2 goto exit ;
561 2 Cnt = 0;
562 2 DispBuf[0]= 10;
563 2 DispBuf[1]= 10;
564 2 DispBuf[2]= 10;
565 2 DispBuf[3]= 10;
566 2 DispBuf[4]= 10;
567 2 DispBuf[5]= 10;
568 2 i = 0;
569 2 desips7219();
570 2 do{
571 3 k = scan();
572 3 if(k == 13){PassOk = 0 ;goto exit;}
573 3 if(k==12)DispBuf[--i] = 10;
574 3 desips7219();
575 3 if( k >=0 && k<= 9)
576 3 {
577 4 DispBuf[i++]= k;
578 4 desips7219();
579 4 }
580 3
581 3 }while(i<6);
582 2 for(i = 0;i < 6;i++)
583 2 {
584 3 cunmima[i]=DispBuf[i];
585 3 }
586 2 Write_flash(0x8008, 6, cunmima);
587 2 delay( 5 );
588 2 PassOk = 0 ;
589 2 break;
590 2 case 14://设置闹铃
591 2 time:
592 2 if( PassOk == 0)
593 2 goto exit ;
594 2 Cnt = 0;
595 2 DispBuf[0]= 10;
596 2 DispBuf[1]= 10;
597 2 DispBuf[2]= 10;
598 2 DispBuf[3]= 10;
599 2 DispBuf[4]= 10;
600 2 DispBuf[5]= 10;
601 2 i = 0;
602 2 desips7219();
603 2 do{
604 3 k = scan();
605 3 if(k ==14){PassOk = 0 ;goto exit;}
606 3 if(k==12)DispBuf[--i] = 10;
607 3 desips7219();
608 3 if( k >=0 && k<= 9)
609 3 {
610 4 DispBuf[i++]= k;
611 4 desips7219();
612 4 }
613 3
C51 COMPILER V7.06 DIANZI 08/21/2008 22:03:20 PAGE 11
614 3 }while(i<4);keybuttflag=0;
615 2 for(i = 0;i < 4;i++)
616 2 {
617 3 naoling[nex][i]=DispBuf[i];
618 3 }
619 2 nex++;
620 2 if(nex==5)
621 2 {
622 3 nex = 0;
623 3
624 3 PassOk = 0 ;
625 3 }
626 2
627 2 else goto time;
628 2 break;
629 2 case 15:
630 2 default : break;
631 2 }
632 1
633 1
634 1 exit:;
635 1 }
636 /******************************************************
637 鬧鈴組
638 *******************************************************/
639 void naozhong()//闹钟
640 {
641 1 uchar nex;
642 1
643 1 if(keybuttflag ==0)
644 1
645 1 {
646 2
647 2 for(nex = 0;nex <5;nex++)
648 2 {
649 3 if( naoling[nex][0]==DispBuf[0]&&
650 3 naoling[nex][1]==DispBuf[1]&&
651 3 naoling[nex][2]==DispBuf[2]&&
652 3 naoling[nex][3]==DispBuf[3])
653 3 {
654 4 delay(5);
655 4 if(naoling[nex][0]==DispBuf[0]&&
656 4 naoling[nex][1]==DispBuf[1]&&
657 4 naoling[nex][2]==DispBuf[2]&&
658 4 naoling[nex][3]==DispBuf[3])
659 4
660 4 {
661 5 if(k==15){keybuttflag=1;P0= 0xff;}
662 5 else write1420(0X7E);
663 5 }
664 4 }
665 3 if( naoling[nex][0]==DispBuf[0]&&
666 3 naoling[nex][1]==DispBuf[1]&&
667 3 naoling[nex][2]==DispBuf[2]&&
668 3 naoling[nex][3]+2==DispBuf[3])
669 3 {
670 4 delay(5);
671 4 if(naoling[nex][0]==DispBuf[0]&&
672 4 naoling[nex][1]==DispBuf[1]&&
673 4 naoling[nex][2]==DispBuf[2]&&
674 4 naoling[nex][3]+2==DispBuf[3])
675 4
C51 COMPILER V7.06 DIANZI 08/21/2008 22:03:20 PAGE 12
676 4 {
677 5 if(k==15){keybuttflag=~keybuttflag;}
678 5 else write1420(0X7E);
679 5 }
680 4 }
681 3 }
682 2 }
683 1 }
684 /*******************************************************
685 紅外接收
686 *******************************************************/
687 void wai0() interrupt 0////zhong duan jin ru jie shou dao de shu ju
688 {
689 1 unsigned char jihao,shu;
690 1 unsigned long a,b,wai,m;
691 1 wai = TH0;
692 1 wai=wai<<8;
693 1 wai = wai|TL0;
694 1 if( jihao==0)
695 1 {
696 2 if(1800< wai && wai <2200)//gao dian ping wei 2 ms;
697 2 {TH0=0; TL0=0; wai=0; jihao=1; }
698 2 else
699 2 {TH0=0; TL0=0; wai=0; jihao=0;}
700 2 }
701 1 else
702 1 { shu++;
703 2 if(250<wai &&wai<700)
704 2 {m=m&0x7f; TH0=0; TL0=0;wai=0; }
705 2
706 2 if(800<wai && wai<1200)
707 2
708 2 {m=m | 0x80; TH0=0;TL0=0;wai=0; }
709 2 if(shu==8)
710 2 {
711 3 b= m&0x0f;
712 3 a=m&0xf0;
713 3 a >>=4;
714 3 if(a == (~b&0x0f))
715 3
716 3 {yuanma=(a & 0x0f); shu=0;wai=0;TH0=0;TL0=0;jihao=0;}
717 3 else
718 3 {shu=0;wai=0;TH0=0;TL0=0;jihao=0;}
719 3 }
720 2 else{ m >>= 1;}
721 2
722 2
723 2 }
724 1 }
725 void ISP_IAP_enable(void) //打开 ISP,IAP 功能
726 {
727 1 EA = 0; /* 关中断 */
728 1 ISP_CONTR = ISP_CONTR & 0x18; /* 0001,1000 */
729 1 ISP_CONTR = ISP_CONTR | WAIT_TIME; //设置延时
730 1 ISP_CONTR = ISP_CONTR | 0x80; /* 1000,0000 */ //允许IAP/ISP功能
731 1 }
732
733
734 void ISP_IAP_disable(void) //关闭 ISP,IAP 功能
735 {
736 1 ISP_CONTR = ISP_CONTR & 0x7f; /* 0111,1111 */ //禁止IAP/ISP功能
737 1 ISP_TRIG = 0x00;
C51 COMPILER V7.06 DIANZI 08/21/2008 22:03:20 PAGE 13
738 1 EA = 1; /* 开中断 */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -