📄 all.lst
字号:
705 /*全局变量:DS_Tl[5] DS_Th[5]*/
706 void SetThTl(unsigned char Num)
707 {
708 1 LCD_Initial();
709 1 GotoXY(5,2);
710 1 Print("S C UD LR Q"); //显示有效按键
711 1 GotoXY(0,2);
712 1 Print("NO.");
713 1 LCD_Write(LCD_DATA,Num+1+'0');
714 1 ThTlDisp(Num,1);
715 1 while(1)
716 1 {
717 2 unsigned char Key2=Key_scan(); //二级菜单扫描
718 2 if(Key2==CHANGE)
719 2 {
720 3 Delay_long(50);
721 3 if(Key_scan()==0)
722 3 {
723 4 unsigned char i=0; //左右指示
724 4 GotoXY(8,1);
725 4 LCD_Write(LCD_DATA,0x7f);
726 4 while(1)
727 4 {
728 5 unsigned char Key3=Key_scan(); //三级菜单扫描
729 5 if(Key3==LEFT)
730 5 {
731 6 Delay_long(50);
732 6 if(Key_scan()==0)
733 6 {
734 7 i=0; //选择TH
735 7 GotoXY(15,1);
736 7 LCD_Write(LCD_DATA,0x20);
737 7 GotoXY(8,1);
C51 COMPILER V7.20 ALL 01/16/2009 13:29:33 PAGE 13
738 7 LCD_Write(LCD_DATA,0x7f);
739 7 }
740 6 }
741 5 else if(Key3==RIGHT)
742 5 {
743 6 Delay_long(50);
744 6 if(Key_scan()==0)
745 6 {
746 7 i=1; //选择TL
747 7 GotoXY(8,1);
748 7 LCD_Write(LCD_DATA,0x20);
749 7 GotoXY(15,1);
750 7 LCD_Write(LCD_DATA,0x7f);
751 7 }
752 6 }
753 5 else if(Key3==UP)
754 5 {
755 6 Delay_long(100);
756 6 if(i==0)
757 6 DS_Th[Num]=DS_Th[Num]+1;
758 6 else
759 6 DS_Tl[Num]=DS_Tl[Num]+1;
760 6 ThTlDisp(Num,1);
761 6 }
762 5 else if(Key3==DOWN)
763 5 {
764 6 Delay_long(100);
765 6 if(i==0)
766 6 DS_Th[Num]=DS_Th[Num]-1;
767 6 else
768 6 DS_Tl[Num]=DS_Tl[Num]-1;
769 6 ThTlDisp(Num,1);
770 6 }
771 5 else if(Key3==SET)
772 5 {
773 6 Delay_long(50);
774 6 if(Key_scan()==0)
775 6 {
776 7 DS_Reset();
777 7 Match_ID(Num); //匹配ROM
778 7 DS_WriteByte(WRITE_SCR); //
779 7 DS_WriteByte(DS_Th[Num]);
780 7 DS_WriteByte(DS_Tl[Num]);
781 7 DS_WriteByte(0x7f);
782 7 DS_Reset();
783 7 Match_ID(Num);
784 7 DS_WriteByte(COPY_SCR);
785 7 SetThTl(Num);
*** WARNING C265 IN LINE 785 OF ALL.C: '_SetThTl': recursive call to non-reentrant function
786 7 }
787 6 }
788 5 else if(Key3==QUIT)
789 5 {
790 6 Delay_long(50);
791 6 if(Key_scan()==0)
792 6 {
793 7 Auto_Mode();
794 7 }
795 6 }
796 5 }
797 4 }
798 3 }
C51 COMPILER V7.20 ALL 01/16/2009 13:29:33 PAGE 14
799 2 else if(Key2==DOWN)
800 2 {
801 3 Delay_long(50);
802 3 if(Key_scan()==0)
803 3 {
804 4 Num=Num+1;
805 4 if(Num>4)
806 4 Num=0;
807 4 SetThTl(Num);
*** WARNING C265 IN LINE 807 OF ALL.C: '_SetThTl': recursive call to non-reentrant function
808 4 }
809 3 }
810 2 else if(Key2==QUIT)
811 2 {
812 3 Delay_long(50);
813 3 if(Key_scan()==0)
814 3 {
815 4 Auto_Mode();
816 4 }
817 3 }
818 2 }
819 1 }
820
821 /****报警设置模式程序*****/
822 /*功能:设置Th和Tl */
823 void Alarm_Set()
824 {
825 1 LCD_Initial();
826 1 GotoXY(0,1);
827 1 Print("Alarm Set");
828 1 GotoXY(9,2);
829 1 Print("S U D Q") ;
830 1 while(1) //主菜单循环
831 1 {
832 2 unsigned char Key1=Key_scan() ;
833 2
834 2 if(Key1==SET) //如果按SET键
835 2 {Delay_long(50); //延时0.25S等待释放按键
836 3 if(Key_scan()==0) //释放后操作
837 3 {
838 4 SetThTl(0);
839 4 }
840 3 }
841 2 else if(Key1==DOWN) //按DOWN键切换至手动模式
842 2 {Delay_long(50);
843 3 if(Key_scan()==0)
844 3 {
845 4 Hand_Mode();
846 4 }
847 3 }
848 2 else if(Key1==UP) //按DOWN键切换至手动模式
849 2 {Delay_long(50);
850 3 if(Key_scan()==0)
851 3 {
852 4 ID_Mode();
853 4 }
854 3 }
855 2 else if(Key1==QUIT) //按QUIT键返回AUTO模式
856 2 {Delay_long(50);
857 3 if(Key_scan()==0)
858 3 {
859 4 Auto_Mode();
C51 COMPILER V7.20 ALL 01/16/2009 13:29:33 PAGE 15
860 4 }
861 3 }
862 2 }
863 1 }
864
865 /////////////////////////////////////////////////
866 /*****************菜单选择部分******************/
867 /////////////////////////////////////////////////
868
869 void Menu_Function(void)
870 {
871 1 if(Key_scan()==MENU) //如果菜单键按下
872 1 {
873 2 Delay_long(200);
874 2 Delay_long(200); //延时2S(长按有效)
875 2 if(Key_scan()==MENU) //菜单键有效
876 2 {
877 3 LCD_Initial(); //初始化LCD
878 3 GotoXY(0,1);
879 3 Print("Boot Menu"); //显示"Boot Menu"
880 3 GotoXY(10,2);
881 3 Print(" D Q "); //显示有效按键
882 3 while(1)
883 3 {
884 4 unsigned char Key=Key_scan() ;
885 4 if(Key==DOWN) //如果按DOWN键
886 4 {Delay_long(50); //延时0.25S等待释放按键
887 5 if(Key_scan()==0) //按键抬起后执行
888 5 {
889 6 Hand_Mode();
890 6 }
891 5 }
892 4 else if(Key==QUIT) //如果QUIT键按下
893 4 {Delay_long(50); //延时0.25S等待释放按键
894 5 if(Key_scan()==0) //按键抬起后执行AUTO模式
895 5 {
896 6 Auto_Mode(); //返回自动模式
897 6 }
898 5 }
899 4 }
900 3 }
901 2 }
902 1 }
903
904 ////////////////////////////////////////////////////////
905 /**********************主程序**************************/
906 ////////////////////////////////////////////////////////
907
908 main()
909 {
910 1 unsigned char i;
911 1 LCD_Initial();
912 1 GotoXY(2,1);
913 1 Print("Sun Yunhui");
914 1 GotoXY(3,2);
915 1 Print("04021313"); //开机显示画面
916 1 for(i=0;i<5;i++) //将EEPROM中的ID载入RAM
917 1 ISP_Read8(i);
918 1 for(i=0;i<5;i++)
919 1 DS_ReadTemp(i); //读出器件Th和Tl
920 1 Delay_long(200);
921 1 Delay_long(200);
C51 COMPILER V7.20 ALL 01/16/2009 13:29:33 PAGE 16
922 1 Auto_Mode();
923 1
924 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 2542 ----
CONSTANT SIZE = 135 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 65 30
IDATA SIZE = ---- ----
BIT SIZE = 1 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 2 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -