⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lprtpos1.lst

📁 原创一个简单打小票POS机源代码
💻 LST
📖 第 1 页 / 共 5 页
字号:
 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 + -