📄 19264cv0_1.lst
字号:
973 2 Dispchar(2,11,(number_ascii(RxMain_data[5])),1);
974 2 Dispchar(2,10,(number_ascii((RxMain_data[5]>>4))),1);
975 2 Dispchar(2,13,(number_ascii(RxMain_data[6])),1);
976 2 Dispchar(2,12,(number_ascii((RxMain_data[6]>>4))),1);
977 2 */
978 2 /*
979 2 Dispchar(2,0,(RxMain_data[0]),1);
980 2 Dispchar(2,1,(RxMain_data[1]),1);
981 2 Dispchar(2,2,(RxMain_data[2]),1);
982 2 Dispchar(2,4,(number_ascii(RxMain_data[3])),1);
983 2 Dispchar(2,3,(number_ascii(((RxMain_data[3])>>4))),1);
984 2
C51 COMPILER V7.50 19264CV0_1 06/06/2005 09:14:09 PAGE 17
985 2 Dispchar(2,6,(number_ascii(RxMain_data[4])),1);
986 2 Dispchar(2,5,(number_ascii((RxMain_data[4]>>4))),1);
987 2 Dispchar(2,8,(number_ascii(RxMain_data[5])),1);
988 2 Dispchar(2,7,(number_ascii((RxMain_data[5]>>4))),1);
989 2
990 2 Dispchar(2,10,(number_ascii(RxMain_data[6])),1);
991 2 Dispchar(2,9,(number_ascii((RxMain_data[6]>>4))),1);
992 2
993 2 Dispchar(2,12,(RxMain_data[7]),1);
994 2 Dispchar(2,11,(RxMain_data[8]),1);
995 2 Dispchar(2,13,(RxMain_data[9]),1);
996 2 Dispchar(2,14,(RxMain_data[10]),1);
997 2 Dispchar(2,15,(RxMain_data[11]),1);
998 2 Dispchar(2,16,(RxMain_data[12]),1);
999 2 Dispchar(2,17,(RxMain_data[13]),1);
1000 2 Dispchar(2,18,(RxMain_data[14]),1);
1001 2 Dispchar(2,19,(KEYVAL_OK|0x30),1);
1002 2 Dispchar(2,20,(RxMain_end|0x30),1);
1003 2 */
1004 2 //for debug end
1005 2 //p1tune(RAMCS);
1006 2 //i=E_ConveneRec[0].Timer;
1007 2 i=SP;
1008 2 Dispchar(6,1,(number_ascii(i)),1);
1009 2 Dispchar(6,0,(number_ascii((i>>4))),1);
1010 2
1011 2 //Dispchar(6,2,(RxMain_data[0]),0);
1012 2 //Dispchar(6,4,(RxMain_data[1]),0);
1013 2 //Dispchar(6,6,(RxMain_data[2]),0);
1014 2 //Dispchar(6,8,(RxMain_data[3]),0);
1015 2 RefushFace();//刷新主界面//for
1016 2
1017 2 //||OldInforCnt!=NewInforCnt
1018 2 //如果有来电而且未显示来电号码。或者在非主界面显示超时或者即时显示新信息超时
1019 2 if((comeingtelep&&dispteleph)||WaitingOver||((BLtime>=6100)&&((InforType&0x0f)>0)))
1020 2 {
1021 3 keytabindex=0;
1022 3 mainface();
1023 3 pic_temp=0;
1024 3 if((InforType&0x0f)>0)//清除新信息显示标志
1025 3 InforType=0;
1026 3
1027 3 }
1028 2 if(testkey())
1029 2 {
1030 3
1031 3 KeyCaller=0x10;
1032 3 keytune();
1033 3
1034 3 }
1035 2 IRKeyVal=HandleIR();
1036 2 if(IRKeyVal!=0xff)
1037 2 {
1038 3
1039 3 KeyCaller=0x20;
1040 3 keytune();
1041 3
1042 3 }
1043 2
1044 2 if(gps_rec_end)
1045 2 {
1046 3 seridatatune();//GPS信号处理
C51 COMPILER V7.50 19264CV0_1 06/06/2005 09:14:09 PAGE 18
1047 3 gps_star = 0;
1048 3 gps_rec_end = 0;
1049 3
1050 3 }
1051 2
1052 2 rxdatatune();//处理主机发送来的数据*/
1053 2
1054 2 if(MainRecBusy_flag&&MainRecBusyTime>110)//接受主机数据完后延迟一秒
1055 2 {
1056 3 MainRecBusy_flag=0;
1057 3 MainRecBusyTime=0;
1058 3 CONRX=DGPS_COMM;
1059 3 flag_main_dgps=DGPS_COMM;
1060 3 EX1=1;//开外部中断1,检测主机串行信号
1061 3
1062 3 }
1063 2
1064 2 if(MainRecTimer>250)//从接受主机数据开始延迟2.5秒后断开
1065 2 {
1066 3 flag_main_dgps=DGPS_COMM;
1067 3 CONRX=DGPS_COMM;
1068 3 MainRecTimer=0;
1069 3 EX1=1;//开外部中断1,检测主机串行信号
1070 3
1071 3 }
1072 2
1073 2
1074 2 }
1075 1
1076 1
1077 1 }
1078
1079 ////////////////主函数结束///////////////////////////////////////////////
1080
1081 void untogb(uchar hi_unicode,uchar low_unicode)//unicode 转换成 GB2312内码
1082 { //查表后所得到的是区位码+0x2020
1083 1 //加0x8080转化为内码送入缓冲
1084 1 //如果以后RAM不够用可采用返回参数方式
1085 1 //!!不可显示字符转换会出乱码!!!//不转换ASCII的UNICODE
1086 1 uint16 data unicode;
1087 1 /*if(hi_unicode==0&&low_unicode<0xa4)//如果是ASCII字符
1088 1 {
1089 1 }*/
1090 1 p1tune(ROMCS);
1091 1 A18=1;
1092 1 A17=0;//非常重要!!!!!
1093 1 LCDRWIO=1;
1094 1 LCDDIIO=1;
1095 1 //P1=ROMCS;
1096 1 unicode=hi_unicode;
1097 1 //CY=0;
1098 1 unicode=unicode<<8;
1099 1 //k=low_unicode;
1100 1 unicode+=(uint16)(low_unicode);
1101 1
1102 1 if(unicode>=0x80a4)//判断是在第一还是第二个64K范围
1103 1 {
1104 2 //unicode=unicode-0x80a4;
1105 2 unicode-=0x80a4; //减去0x8000
1106 2 A16=1;
1107 2 //unicode-=0x00a4;
1108 2 }
C51 COMPILER V7.50 19264CV0_1 06/06/2005 09:14:09 PAGE 19
1109 1 else
1110 1 {
1111 2 A16=0;
1112 2 unicode-=0x00a4;
1113 2 }
1114 1 //CY=0;
1115 1
1116 1 unicode=unicode<<1;
1117 1
1118 1 if(unicode<0x0400)//STC89C512RD+有1024BYTE XRAM如用此IC 0X400以内地址需屏蔽
1119 1 { FlagXram=1;//读取点阵时使用XDATA 0x0000--0x02ff标志。1:使用 0:未使用
1120 2 AUXR|=0x02;//屏蔽内部XRAM
1121 2 }
1122 1
1123 1 hi_gb=XBYTE[unicode];
1124 1
1125 1 unicode++;
1126 1 low_gb=XBYTE[unicode];
1127 1 FlagXram=0;//读取点阵时使用XDATA 0x0000--0x02ff标志。1:使用 0:未使用
1128 1 AUXR&=0xfd;//使能内部XRAM
1129 1
1130 1 /*if((hi_gb<0x21)||(low_gb<0x21))//for debug
1131 1 {
1132 1 hi_gb=0x21;low_gb=0x32;
1133 1
1134 1
1135 1 } //for debug
1136 1
1137 1 //P1=j;
1138 1 if((hi_gb>0x77)||(low_gb>0x7e))//for debug
1139 1 {
1140 1 hi_gb=0x21;low_gb=0x24;
1141 1
1142 1
1143 1 } //for debug*/
1144 1 hi_gb=hi_gb|0x80;
1145 1 low_gb=low_gb|0x80;
1146 1
1147 1 A18=0;
1148 1
1149 1
1150 1 }
1151
1152
1153
1154 void rxdatatune(void)//接收主机数据处理
1155 {
1156 1 uchar data i,j,k,checksum;
1157 1
1158 1 uint16 idata p,q,r;
1159 1
1160 1 p=q=r=0;
1161 1 i=j=k=checksum=0;
1162 1 //while(TxNum!=0||TxPos!=0);
1163 1 //ES=0;
1164 1 Feedingdog();
1165 1 LCDRWIO=1;
1166 1 LCDDIIO=1;
1167 1 p1tune(RAMCS);
1168 1
1169 1 if(RxMain_end)
1170 1 {
C51 COMPILER V7.50 19264CV0_1 06/06/2005 09:14:09 PAGE 20
1171 2
1172 2 p=RxMain_data[3];
1173 2 p=(p<<8);
1174 2 p+=RxMain_data[4];
1175 2 p+=5;//加上$+设备字+命令字+2数据长度字节
1176 2 checksum=RxMain_data[3];
1177 2 for(q=4;q<p;q++)
1178 2 {
1179 3 checksum^=RxMain_data[q];
1180 3 }//算校验和
1181 2
1182 2 //for GPRS SMS DEBUG STAR
1183 2 if(RxMain_data[2]==0x43)//发送短语或者业务代码后主机的回应。
1184 2 {
1185 3 if(RxMain_data[5]==0x00)
1186 3 KEYVAL_OK=1;
1187 3 else
1188 3 KEYVAL_OK=0;
1189 3 RxMain_end=FALSE;
1190 3 }
1191 2 if(RxMain_data[2]==0x42)//for test
1192 2 { ReturnOK(0x42); //for test
1193 3 BEEPtime=0;
1194 3 BLtime=0;
1195 3 BEEP=0;
1196 3 BLIGHT=0;
1197 3 if(RxMain_data[15]==0x00)//如果是公共信息
1198 3 CommProcess(p);//GPRS发送的公共信息处理
1199 3 if(RxMain_data[15]==0x10)//如果是调度信息
1200 3 ScheduleInforProcess(p);//GPRS发送的调度信息处理
1201 3 //电召存储
1202 3 if(RxMain_data[15]>=0x20&&RxMain_data[15]<0x30)
1203 3 ConveneInforProcess(p);//电召信息存储
1204 3 if(RxMain_data[15]==0x30)//如果是定制短语
1205 3 CenterCstmWordsProcess(p);
1206 3 if(RxMain_data[15]==0x40)//登陆密码恢复出厂设置
1207 3 {
1208 4 reginit();//登录初始化
1209 4 }
1210 3
1211 3 ReturnOK(0x42);
1212 3 if(keytabindex==115)//如果正在及时显示新信息状态
1213 3 InforType|=1;
1214 3
1215 3
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -