📄 lprtpos1.lst
字号:
950 {
951 1 ISP_CONTR=0x81;
952 1 ISP_CMD=0x02;
953 1 ISP_ADDRH=(UINT8)(addr>>8);
954 1 ISP_ADDRL=(UINT8)(addr&0x00ff);
955 1 ISP_DATA=dd;
956 1 EA=0;
957 1 ISP_TRIG=0x46;
958 1 ISP_TRIG=0xB9;
959 1 _nop_();
960 1 EA=1;
961 1 noable();
962 1 }
963
964 UINT8 wrd(UINT16 addr)
965 {
966 1 UINT8 xx;
967 1 ISP_CONTR=0x81;
968 1 ISP_CMD=0x01;
969 1 ISP_ADDRH=(UINT8)(addr>>8);
970 1 ISP_ADDRL=(UINT8)(addr&0x00ff);
971 1 EA=0;
972 1 ISP_TRIG=0x46;
973 1 ISP_TRIG=0xB9;
974 1 _nop_();
975 1 xx=ISP_DATA;
976 1 EA=1;
977 1 noable();
978 1 return (xx);
979 1 }
980
981 /*STC89CXXX的EEPROM读写*/
982
983 /*day print clear?*/
C51 COMPILER V7.06 LPRTPOS1 01/08/2007 10:43:11 PAGE 17
984 void cleaday(void)
985 {
986 1 UINT8 pyear,pmonth,pday,sday,smonth,syear,x1,shour,smin,phour,pmin,yy1,yy2,yy3;
987 1 bit pokbj;
988 1
989 1 yy1=wrd(0x6a00);
990 1 yy2=wrd(0x6a01);
991 1 yy3=wrd(0x6a02);
992 1 /*xreport报表后保存的日期*/
993 1 pmin=wrd(0x5601);
994 1 delay(1);
995 1 phour=wrd(0x5602);
996 1 delay(1);
997 1
998 1 pday=wrd(0x5603);
999 1 delay(1);
1000 1 pmonth=wrd(0x5605);
1001 1 delay(1);
1002 1 pyear=wrd(0x5606);
1003 1 delay(1);
1004 1
1005 1 /*每次日累计后存放的日期*/
1006 1
1007 1 smin=wrd(0x5409);
1008 1 delay(1);
1009 1 shour=wrd(0x540a);
1010 1 delay(1);
1011 1
1012 1 sday=wrd(0x540b);
1013 1 delay(1);
1014 1
1015 1 smonth=wrd(0x540d);
1016 1 delay(1);
1017 1 syear=wrd(0x540e);
1018 1 delay(1);
1019 1
1020 1 pokbj=0;/**/
1021 1 get_time(time);
1022 1
1023 1 if ((yy1==yy2==yy3==0) &&(pday!=time[3])) {pokbj=1;}
1024 1
1025 1 /*
1026 1 if (syear==pyear)
1027 1 {
1028 1
1029 1 if (pmonth>smonth) {pokbj=1;}
1030 1
1031 1 else if (pmonth==smonth)
1032 1 {
1033 1 if (pday>sday) {pokbj=1; }
1034 1 else if((pday==sday)&&(pday<time[3]))
1035 1 {
1036 1 if (phour<shour) {pokbj=1;}
1037 1 else if((phour==shour)&&(pmin>=smin)) {pokbj=1;}
1038 1 }
1039 1
1040 1 }
1041 1
1042 1 }
1043 1 else if (syear<pyear)
1044 1 {
1045 1 pokbj=1;
C51 COMPILER V7.06 LPRTPOS1 01/08/2007 10:43:11 PAGE 18
1046 1 }
1047 1 */
1048 1 if (pokbj==1)
1049 1 {
1050 2 for (x1=0;x1<8;x1++)
1051 2 {
1052 3 erase(0x5400+x1*512);delay(2);
1053 3 zdmoney[x1]=umoney1[x1]=umoney2[x1]=umoney3[x1]=umoney4[x1]=umoney5[x1]=umoney6[x1]=0;
1054 3 }
1055 2 for (x1=0;x1<8;x1++)
1056 2 {
1057 3 wwr(0x5400+x1,0);
1058 3 wwr(0x5800+x1,0);
1059 3 wwr(0x5a00+x1,0);
1060 3 wwr(0x5c00+x1,0);
1061 3 wwr(0x5e00+x1,0);
1062 3 wwr(0x6000+x1,0);
1063 3 wwr(0x6200+x1,0);
1064 3 }
1065 2 for (x1=8;x1<15;x1++)
1066 2 {
1067 3 wwr(0x5400+x1,time[x1-8]);
1068 3 }
1069 2 delay(3);
1070 2 for (x1=0;x1<7;x1++)
1071 2 {
1072 3 wwr(0x5600+x1,time[x1]);
1073 3 delay(1);
1074 3 }
1075 2 dday=time[3];
1076 2 }
1077 1 else
1078 1 {
1079 2 dday=wrd(0x540b);
1080 2
1081 2 if (dday==0xff){dday=time[3];}
1082 2
1083 2 for (x1=0;x1<8;x1++)
1084 2 {
1085 3 zdmoney[x1]=wrd(0x5400+x1);
1086 3 umoney1[x1]=wrd(0x5800+x1);
1087 3 umoney2[x1]=wrd(0x5a00+x1);
1088 3 umoney3[x1]=wrd(0x5c00+x1);
1089 3 umoney4[x1]=wrd(0x5e00+x1);
1090 3 umoney5[x1]=wrd(0x6000+x1);
1091 3 umoney6[x1]=wrd(0x6200+x1);
1092 3 }
1093 2
1094 2 if (zdmoney[0]==0xff)
1095 2 {
1096 3 for(x1=0;x1<8;x1++)
1097 3 {
1098 4 zdmoney[x1]=0;
1099 4 umoney1[x1]=0;
1100 4 umoney2[x1]=0;
1101 4 umoney3[x1]=0;
1102 4 umoney4[x1]=0;
1103 4 umoney5[x1]=0;
1104 4 umoney6[x1]=0;
1105 4 }
1106 3 }
1107 2 else
C51 COMPILER V7.06 LPRTPOS1 01/08/2007 10:43:11 PAGE 19
1108 2 {
1109 3
1110 3
1111 3 if (umoney1[0]==0xff)
1112 3 {
1113 4 for (x1=0;x1<8;x1++) {umoney1[x1]=0;}
1114 4 }
1115 3
1116 3 if (umoney2[0]==0xff)
1117 3 {
1118 4 for (x1=0;x1<8;x1++) {umoney2[x1]=0;}
1119 4 }
1120 3
1121 3 if (umoney3[0]==0xff)
1122 3 {
1123 4 for (x1=0;x1<8;x1++) {umoney3[x1]=0;}
1124 4 }
1125 3
1126 3 if (umoney4[0]==0xff)
1127 3 {
1128 4 for (x1=0;x1<8;x1++) {umoney4[x1]=0;}
1129 4 }
1130 3
1131 3 if (umoney5[0]==0xff)
1132 3 {
1133 4 for (x1=0;x1<8;x1++) {umoney5[x1]=0;}
1134 4 }
1135 3
1136 3 if (umoney6[0]==0xff)
1137 3 {
1138 4 for (x1=0;x1<8;x1++) {umoney6[x1]=0;}
1139 4 }
1140 3 }
1141 2
1142 2
1143 2 }
1144 1 }
1145
1146 /*day print clear?*/
1147
1148
1149
1150
1151
1152 /*模拟串口相关子程序11.0592MHZ*/
1153 void IntTimer0() interrupt 1
1154 {
1155 1 F_TM=1;
1156 1 }
1157 /*发送一个字符*/
1158 void PSendChar(UINT8 inch)
1159 {
1160 1 #ifdef MODE_QUICK
ACC=inch;
F_TM=0;
BT_SND=0; //start bit
TIMER0_ENABLE; /*启动*/
while(!F_TM);
BT_SND=ACC0; /*先送出低位*/
F_TM=0;
C51 COMPILER V7.06 LPRTPOS1 01/08/2007 10:43:11 PAGE 20
while(!F_TM);
BT_SND=ACC1;
F_TM=0;
while(!F_TM);
BT_SND=ACC2;
F_TM=0;
while(!F_TM);
BT_SND=ACC3;
F_TM=0;
while(!F_TM);
BT_SND=ACC4;
F_TM=0;
while(!F_TM);
BT_SND=ACC5;
F_TM=0;
while(!F_TM);
BT_SND=ACC6;
F_TM=0;
while(!F_TM);
BT_SND=ACC7;
F_TM=0;
while(!F_TM);
BT_SND=1;
F_TM=0;
while(!F_TM);
TIMER0_DISABLE; /*停止timer*/
#else
1207 1 UINT8 ii;
1208 1
1209 1 ii=0;
1210 1
1211 1 F_TM=0;
1212 1 BT_SND=0; /*start bit*/
1213 1 TIMER0_ENABLE; /*启动*/
1214 1 while(!F_TM);
1215 1
1216 1 while(ii<8)
1217 1 {
1218 2 if(inch&1)
1219 2 {
1220 3 BT_SND=1;
1221 3 }
1222 2 else
1223 2 {
1224 3 BT_SND=0;
1225 3 }
1226 2 F_TM=0;
1227 2 while(!F_TM);
1228 2 ii++;
1229 2 inch>>=1;
1230 2 }
1231 1 BT_SND=1;
C51 COMPILER V7.06 LPRTPOS1 01/08/2007 10:43:11 PAGE 21
1232 1 F_TM=0;
1233 1 while(!F_TM);
1234 1
1235 1 #endif
1236 1 TIMER0_DISABLE; /*停止timer*/
1237 1 }
1238 /*接收一个字符*/
1239 /*
1240 UINT8 PGetChar()
1241 {
1242 #ifdef MODE_QUICK
1243
1244 TIMER0_ENABLE;
1245 F_TM=0;
1246 while(!F_TM); *//*等过起始位*/
1247 /*
1248 ACC0=BT_REC;
1249
1250 TL0=TH0;
1251
1252 F_TM=0;
1253 while(!F_TM);
1254 ACC1=BT_REC;
1255
1256 F_TM=0;
1257 while(!F_TM);
1258 ACC2=BT_REC;
1259
1260 F_TM=0;
1261 while(!F_TM);
1262 ACC3=BT_REC;
1263
1264 F_TM=0;
1265 while(!F_TM);
1266 ACC4=BT_REC;
1267
1268 F_TM=0;
1269 while(!F_TM);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -