📄 lcd3.lst
字号:
769 1
770 1 dhz(1,6,"纬度");
771 1 dstring(5,6,": ~");
772 1 dhz(1,7,"航向");
773 1 dstring(5,7,": ~");
774 1 dhz(1,8,"横摇");
775 1 dstring(5,8,": ~");
776 1
777 1 dhz(1,9,"纵摇");
778 1 dstring(5,9,": ~");
779 1
780 1 dhz(1,10,"东速");
781 1 dstring(5,10,": m/s");
782 1
783 1 dhz(1,11,"北速");
784 1 dstring(5,11,": m/s");
785 1
786 1 }
787
788
789 //DVL数据显示
790 void DVL(void)
791 {
792 1 fnPR1(LC_GRH_STP,0x00,0x00);
793 1 dstring(8,2,"DVL");
794 1 dhz(11,2,"信息显示");
795 1
796 1 dhz(1,4,"东速");
797 1 dstring(5,4,": m/s");
798 1
C51 COMPILER V7.07 LCD3 09/07/2006 09:21:47 PAGE 14
799 1 dhz(1,5,"北速");
800 1 dstring(5,5,": m/s");
801 1
802 1 }
803 //GPS数据显示
804 void GPS(void)
805 {fnPR1(LC_GRH_STP,0x40,0x0B);
806 1 dstring(8,8,"GPS");
807 1 dhz(11,8,"信息显示");
808 1 dhz(1,10,"经度");
809 1 dstring(5,10,": ~");
810 1 dhz(1,11,"纬度");
811 1 dstring(5,11,": ~");
812 1 serg();
813 1 }
814 //惯导数据显示
815 void INS(void)
816 {
817 1 fnPR1(LC_GRH_STP,0x80,0x07);
818 1 dstring(8,4,"I42");
819 1 dhz(11,4,"惯导信息显示");
820 1 dhz(1,5,"经度");
821 1 dstring(5,5,": ~");
822 1 dhz(1,6,"纬度");
823 1 dstring(5,6,": ~");
824 1 dhz(1,7,"航向");
825 1 dstring(5,7,": ~");
826 1 dhz(1,8,"横摇");
827 1 dstring(5,8,": ~");
828 1 dhz(1,9,"纵摇");
829 1 dstring(5,9,": ~");
830 1 dhz(1,10,"东速");
831 1 dstring(5,10,": m/s");
832 1 dhz(1,11,"北速");
833 1 dstring(5,11,": m/s");
834 1 sern();
835 1 }
836
837 //输出显示字头连接
838 void joint(void)
839 {if(t>87)
840 1 t=0;
841 1 switch(t)
842 1 {case(0):
843 2 tbuf[t++]='j';
844 2 tbuf[t++]='d';
845 2 break;
846 2 case(12):
847 2 tbuf[t++]='w';
848 2 tbuf[t++]='d';
849 2 break;
850 2 case(24):
851 2 tbuf[t++]='h';
852 2 tbuf[t++]='x';
853 2 break;
854 2 case(36):
855 2 tbuf[t++]='h';
856 2 tbuf[t++]='y';
857 2 break;
858 2 case(48):
859 2 tbuf[t++]='z';
860 2 tbuf[t++]='y';
C51 COMPILER V7.07 LCD3 09/07/2006 09:21:47 PAGE 15
861 2 break;
862 2 case(60):
863 2 tbuf[t++]='V';
864 2 tbuf[t++]='e';
865 2 break;
866 2 case(72):
867 2 tbuf[t++]='V';
868 2 tbuf[t++]='n';
869 2
870 2 break;
871 2 case(84):
872 2 tbuf[t++]='o';
873 2 tbuf[t++]='v';
874 2 tbuf[t++]='e';
875 2 tbuf[t++]='r';
876 2
877 2 break;
878 2 default:
879 2 break;}}
880
881
882 //按键函数
883 void left(void)
884 {
885 1 Text_Curser(a-1,b);
886 1 }
887 void right(void)
888 {
889 1 Text_Curser(a+1,b);
890 1 }
891 void up(void)
892 {
893 1 Text_Curser(a,b+1);
894 1 }
895 void down(void)
896 {
897 1 Text_Curser(a,b-1);
898 1 }
899 void one(void)
900 {dchar(a,b/2+4,'1');
901 1 a++;
902 1 joint();
903 1 tbuf[t++]='1';
904 1 }
905 void two(void)
906 {dchar(a,b/2+4,'2');
907 1 a++;
908 1 joint();
909 1 tbuf[t++]='2';}
910 void three(void)
911 {dchar(a,b/2+4,'3');
912 1 a++;
913 1 joint();
914 1 tbuf[t++]='3';}
915 void four(void)
916 {dchar(a,b/2+4,'4');
917 1 a++;
918 1 joint();
919 1 tbuf[t++]='4';}
920 void five(void)
921 {dchar(a,b/2+4,'5');
922 1 a++;
C51 COMPILER V7.07 LCD3 09/07/2006 09:21:47 PAGE 16
923 1 joint();
924 1 tbuf[t++]='5';}
925 void six(void)
926 {dchar(a,b/2+4,'6');
927 1 a++;
928 1 joint();
929 1 tbuf[t++]='6';}
930 void seven(void)
931 {dchar(a,b/2+4,'7');
932 1 a++;
933 1 joint();
934 1 tbuf[t++]='7';}
935 void eight(void)
936 {dchar(a,b/2+4,'8');
937 1 a++;
938 1 joint();
939 1 tbuf[t++]='8';}
940 void nine(void)
941 {dchar(a,b/2+4,'9');
942 1 a++;
943 1 joint();
944 1 tbuf[t++]='9';}
945 void zero(void)
946 {dchar(a,b/2+4,'0');
947 1 a++;
948 1 joint();
949 1 tbuf[t++]='0';}
950 void point(void)
951 {dchar(a,b/2+4,'.');
952 1 a++;
953 1 joint();
954 1 tbuf[t++]='.';}
955
956 //回车键根据光标位置功能不同
957 void enter(void)
958 {uchar t_flag=0;
959 1 unsigned long i;
960 1 switch(b)
961 1 {
962 2 case 3:
963 2 cls();
964 2 infor();
965 2 Text_Curser(29,8);
966 2 do
967 2 {
968 3 serh();
969 3 for(i=0;i<50000;i++) //大概3秒钟一次吧
970 3 key();
971 3 }
972 2 while(t_flag==0);
973 2 Text_Curser(29,4);
974 2 break;
975 2
976 2 case 4:
977 2 cls();
978 2 DVL();
979 2 serd();
980 2 Text_Curser(29,5);
981 2 break;
982 2
983 2 case 5:
984 2 cls();
C51 COMPILER V7.07 LCD3 09/07/2006 09:21:47 PAGE 17
985 2 GPS();
986 2 serg();
987 2 Text_Curser(29,6);
988 2 break;
989 2
990 2 case 6:
991 2 cls();
992 2 INS();
993 2 sern();
994 2 Text_Curser(29,3);
995 2 ES=1;
996 2 break;
997 2
998 2 case 7:
999 2 SBUF='a';
1000 2 while(TI==0);
1001 2 TI=0;
1002 2 cls();
1003 2 infor();
1004 2 break;
1005 2
1006 2 case 8:
1007 2 t_flag=1;
1008 2 ES=0;
1009 2 break;
1010 2
1011 2 case 9:
1012 2 SBUF='b';
1013 2 while(TI==0);
1014 2 TI=0;
1015 2 cls();
1016 2 infor();
1017 2 break;
1018 2
1019 2 case 10:
1020 2 cls();
1021 2 mode();
1022 2 break;
1023 2
1024 2 case 11:
1025 2 SBUF='c';
1026 2 while(TI==0);
1027 2 TI=0;
1028 2 cls();
1029 2 infor();
1030 2 break;
1031 2
1032 2 case 13:
1033 2 SBUF='c';
1034 2 while(TI==0);
1035 2 TI=0;
1036 2 cls();
1037 2 infor();
1038 2 break;
1039 2
1040 2 default:
1041 2 break;
1042 2
1043 2
1044 2 }
1045 1 }
1046
C51 COMPILER V7.07 LCD3 09/07/2006 09:21:47 PAGE 18
1047 //按键键值
1048 void key(void)
1049 {
1050 1 uchar rk;
1051 1 key_flag=0;
1052 1
1053 1 rk=keyscan();
1054 1
1055 1 if(key_flag)
1056 1 {switch(rk)
1057 2 { case 0xEE:
1058 3 one();
1059 3 break;
1060 3
1061 3 case 0xED:
1062 3 two();
-
1063 3 break;
1064 3
1065 3 case 0xE7:
1066 3 three();
1067 3 break;
1068 3
1069 3 case 0xEB:
1070 3 four();
1071 3 break;
1072 3
1073 3 case 0xDE:
1074 3 five();
1075 3 break;
1076 3
1077 3 case 0xDD:
1078 3 six();
1079 3 break;
1080 3
1081 3 case 0xD7:
1082 3 seven();
1083 3 break;
1084 3
1085 3 case 0xDB:
1086 3 eight();
1087 3 break;
1088 3
1089 3 case 0xBE:
1090 3 nine();
1091 3 break;
1092 3
1093 3 case 0xBD:
1094 3 zero();
1095 3 break;
1096 3
1097 3 case 0xB7:
1098 3 point();
1099 3 break;
1100 3
1101 3 case 0x7B:
1102 3 up();
1103 3 break;
1104 3
1105 3 case 0x7E:
1106 3 left();
1107 3 break;
C51 COMPILER V7.07 LCD3 09/07/2006 09:21:47 PAGE 19
1108 3
1109 3 case 0x7D:
1110 3 enter();
1111 3 break;
1112 3
1113 3 case 0x77:
1114 3 right();
1115 3 break;
1116 3
1117 3 case 0xBB:
1118 3 down();
1119 3 break;
1120 3
1121 3 default:
1122 3 break;
1123 3 }}
1124 1 key_flag=0;
1125 1 }
1126
1127 //主函数
1128 void main(void)
1129 {
1130 1 fnLCMInit();
1131 1 nintser();
1132 1 welcom();
1133 1 shortdelay(5000);
1134 1 menu();
1135 1 shortdelay(5000);
1136 1 mode();
1137 1 shortdelay(5000);
1138 1 while(1)
1139 1 key();
1140 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 4862 ----
CONSTANT SIZE = 3347 ----
XDATA SIZE = 588 ----
PDATA SIZE = ---- ----
DATA SIZE = 28 35
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 + -