📄 text1.lst
字号:
C51 COMPILER V7.20 TEXT1 08/13/2007 15:13:36 PAGE 10
551 2 }
552 1
553 1
554 1 CLK=0;
555 1 _nop_();
556 1 _nop_();
557 1 CLK=1;
558 1 _nop_();
559 1 _nop_();
560 1
561 1
562 1 for(i=0;i<=6;i++)
563 1 {
564 2 CLK = 0; //时钟为低电平
565 2 if(DO)
566 2 { //如果采集到的位为1
567 3 Temp1=Temp1+1; //给临时存储Temp1加1
568 3 Temp1=Temp1<<1;
569 3 } //临时存储器左移一位
570 2 else
571 2 Temp1=Temp1<<1; //如果采集到的数位为0,临时存储器左移一位
572 2 _nop_();
573 2 _nop_();
574 2 _nop_();
575 2 _nop_();
576 2 CLK = 1;
577 2 } //时钟为高电平,完成一个时钟周期数据采集
578 1 CLK = 0;
579 1 if(DO) Temp1=Temp1+1;
580 1 if(DO) Temp2=0x80;
581 1
582 1 CLK = 1;
583 1 //采集数据校验
584 1
585 1 for(i=0;i<=6;i++)
586 1 {
587 2 CLK=0;
588 2 if(DO){
589 3 Temp2=Temp2>>1;
590 3 Temp2=Temp2+0x80; }
591 2 else
592 2 Temp2=Temp2>>1;
593 2 CLK = 1;
594 2 }
595 1 CS = 1;
596 1 if(Temp1==Temp2) //判断数据采集是否有效
597 1 {
598 2 error=0;
599 2 return Temp1;
600 2 }
601 1 else
602 1 {
603 2 error=1;
604 2 return Temp1;
605 2 }
606 1 }
607
608
609
610
611
612
C51 COMPILER V7.20 TEXT1 08/13/2007 15:13:36 PAGE 11
613
614 void main()
615 {
616 1 unsigned int result;
617 1 uchar i;
618 1 uchar t;
619 1
620 1
621 1 uchar i2;
622 1 uchar j=0; //标记
623 1 ulong a=1000,b=1000; //a用来记录频率;b用来记录频率间隔(开始是为1000HZ)
624 1 ulong c=0;
625 1
626 1
627 1 uchar code d[]="please insert F:";
628 1 uchar code q[]="insert code: ";
629 1 uchar code w[]="please insert DF:" ;
630 1 uchar ask[20];
631 1
632 1
633 1 /* uchar code str0='1';
634 1 uchar code str1='2';
635 1 uchar code str2='3';
636 1 uchar code str3='A';
637 1 uchar code str4='4';
638 1 uchar code str5='5';
639 1 uchar code str6='6';
640 1 uchar code str7='B';
641 1 uchar code str8='7';
642 1 uchar code str9='8';
643 1 uchar code str10='9';
644 1 uchar code str11='c';
645 1 uchar code str12='*';
646 1 uchar code str13='0';
647 1 uchar code str14='#';
648 1 uchar code str15='D';
649 1 */
650 1
651 1
652 1 unsigned char offset=0x80; //定义一个偏移地址变量,lcd1602 写入控制字时用到
653 1 unsigned char key;
654 1
655 1 delay(2);
656 1 lcd1602_bus=0xff;
657 1 lcd1602_init();
658 1 lcd1602_wrcmd(offset+0x00);
659 1 xianshi(0);
660 1
661 1
662 1
663 1
664 1
665 1 // lcd1602_clear();
666 1 while(1)
667 1 {
668 2
669 2 key=getkey_ii();
670 2
671 2 /*************** A键上调 ******************/
672 2 if(key==7)
673 2 {
674 3 j=j+1;
C51 COMPILER V7.20 TEXT1 08/13/2007 15:13:36 PAGE 12
675 3 if(j>6)j=0;
676 3 xianshi(j);
677 3
678 3 }
679 2
680 2
681 2 /*************** B键下调 ******************/
682 2 if (key==3)
683 2 {
684 3 if (j==0) j=7;
685 3 j=j-1;
686 3 xianshi(j);
687 3
688 3 }
689 2
690 2
691 2 /************* SIN *******************/
692 2 if(key==0 || ((j==0)&&(key==15)))
693 2 { key=getkey_ii();
694 3 ad9850(a,b,c);
695 3 delay(1000);
696 3 }
697 2
698 2
699 2
700 2 /*************** OOK *****************/
701 2 if(key==1 || ((j==1)&&(key==15)))
702 2 {
703 3 key=18;
704 3 i2=0;
705 3 lcd1602_init();
706 3 lcd1602_clear();
707 3
708 3 while(key!=15)
709 3 {
710 4 key=getkey_ii();
711 4 delay(100);
712 4 if (key==0) {i2=i2+1; ask[i2-1]=1 ;}
713 4 if (key==13) {i2=i2+1; ask[i2-1]=0; }
714 4 lcd1602_clear();
715 4 for(i=0;i<18;i++) lcd1602_wrdata(q[i]);
716 4 lcd1602_wrcmd(offset+0x40); //换行
717 4 for(i=0;i<i2;i++) lcd1602_wrdata(ask[i]+0x30);
718 4 }
719 3 if(i2!=0)
720 3 {
721 4 lcd1602_clear();
722 4 key=18;
723 4 while(key!=15)
724 4 {
725 5
726 5 for(i=0;i<i2;i++)
727 5 {
728 6 if(ask[i]==0) ad9850(0,0,0);
729 6 if(ask[i]==1) ad9850(300,0,0);
730 6 lcd1602_clear();
731 6 lcd1602_wrcmd(offset+0x40); //换行
732 6 for(t=0;t<i2;t++) lcd1602_wrdata(ask[t]+0x30);
733 6 delay_1ms(10);
734 6 key=getkey_ii();
735 6 }
736 5
C51 COMPILER V7.20 TEXT1 08/13/2007 15:13:36 PAGE 13
737 5 }
738 4
739 4 }
740 3 xianshi(j);
741 3 }
742 2
743 2
744 2
745 2 /************* SET F *******************/
746 2 if(key==2|| ((j==2)&&(key==15)))
747 2 { a=0;
748 3 lcd1602_clear();
749 3 for(i=0;i<16;i++) lcd1602_wrdata(d[i]);
750 3 key=18; //避免和下面的WHILE语句条件冲突;临时改变KEY 只变一次
751 3
752 3 while(key!=15 )
753 3 {
754 4 key=getkey_ii();
755 4
756 4
757 4 if(key==0)
758 4 {
759 5 lcd1602_clear();
760 5 lcd1602_wrcmd(offset+0x00);
761 5
762 5 a=a*10+1;
763 5
764 5 for(i=0;i<16;i++) lcd1602_wrdata(d[i]);
765 5 lcd1602_wrcmd(offset+0x40); //换行
766 5 xianshu(a);
767 5 //lcd1602_wrcmd(offset+0x40);
768 5 // for(i=0;i<11;i++) lcd1602_wrdata(str12[i]);
769 5 }
770 4 else if (key==1)
771 4 {
772 5 lcd1602_clear();
773 5 lcd1602_wrcmd(offset+0x00);
774 5
775 5 for(i=0;i<16;i++) lcd1602_wrdata(d[i]);
776 5 lcd1602_wrcmd(offset+0x40); //换行
777 5 a=a*10+2;
778 5 xianshu(a);
779 5 //lcd1602_wrcmd(offset+0x40);
780 5 //for(i=0;i<15;i++) lcd1602_wrdata(str22[i]);
781 5 }
782 4 else if (key==2)
783 4 {
784 5 lcd1602_clear();
785 5 lcd1602_wrcmd(offset+0x00);
786 5
787 5 for(i=0;i<16;i++) lcd1602_wrdata(d[i]);
788 5 lcd1602_wrcmd(offset+0x40); //换行
789 5 a=a*10+3;
790 5 xianshu(a);
791 5 // lcd1602_wrcmd(offset+0x40);
792 5 // for(i=0;i<15;i++) lcd1602_wrdata(str31[i]);
793 5 }
794 4
795 4 else if (key==4)
796 4 {
797 5 lcd1602_clear();
798 5 lcd1602_wrcmd(offset+0x00);
C51 COMPILER V7.20 TEXT1 08/13/2007 15:13:36 PAGE 14
799 5 a=a*10+4;
800 5
801 5 for(i=0;i<16;i++) lcd1602_wrdata(d[i]);
802 5 lcd1602_wrcmd(offset+0x40); //换行
803 5 xianshu(a);
804 5 }
805 4 else if (key==5)
806 4 {
807 5 lcd1602_clear();
808 5 lcd1602_wrcmd(offset+0x00);
809 5
810 5 for(i=0;i<16;i++) lcd1602_wrdata(d[i]);
811 5 lcd1602_wrcmd(offset+0x40); //换行
812 5 a=a*10+5;
813 5 xianshu(a);
814 5 }
815 4 else if (key==6)
816 4 {
817 5 lcd1602_clear();
818 5 lcd1602_wrcmd(offset+0x00);
819 5
820 5 for(i=0;i<16;i++) lcd1602_wrdata(d[i]);
821 5 lcd1602_wrcmd(offset+0x40); //换行
822 5 a=a*10+6;
823 5 xianshu(a);
824 5 }
825 4 else if (key==8)
826 4 {
827 5 lcd1602_clear();
828 5 lcd1602_wrcmd(offset+0x00);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -