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

📄 sfj1.lst

📁 售饭机的源码程序,单片机开发使用,可以直接使用
💻 LST
📖 第 1 页 / 共 5 页
字号:
1002   3         displaybuf[6]=0x60+(receivebuf[7]&0x0f); displaybuf[7]=0x70+numkeyvalue; 
1003   3         repeatdisplay();
1004   3         for(i=0;i<16;i++)
1005   3            write728x(0x14,displaybuf[i]);
1006   3               numkeyvalue=20;
1007   3              }
1008   2        }
1009   1        else if((machinestatus==4)&&(keydoflag==1))
1010   1        {
1011   2         cancelstatus=1;
1012   2         if(numkeyvalue<10)
1013   2         {pointoff();
1014   3          if(firstnumflag==1)
1015   3           {firstnumflag=0;
1016   4            for(dispshift=4;dispshift<9;dispshift++)  receivebuf[dispshift]=0x0f;
1017   4           }
1018   3         else
1019   3           {if(pointbit==0) behindnum=behindnum+1;
1020   4                if((behindnum<3)||(pointbit==1))
1021   4                 {for(dispshift=5;dispshift<9;dispshift++) 
1022   5                  receivebuf[dispshift-1]=receivebuf[dispshift];
1023   5             } 
1024   4               }
1025   3         receivebuf[3]=0x0a;
1026   3         receivebuf[8]=numkeyvalue;
1027   3         for(i=4;i<9;i++)
1028   3                {if((receivebuf[i]&0x80)!=0x00)   
1029   4               {write728x(0x18,pointonvalue[i-5]);
1030   5                        write728x(0x18,pointonvalue[i-1]); 
1031   5                       }
1032   4            }  
1033   3        displaybuf[2]=0x20+(receivebuf[3]&0x0f); 
1034   3        displaybuf[3]=0x30+(receivebuf[4]&0x0f); displaybuf[4]=0x40+(receivebuf[5]&0x0f); displaybuf[5]=0x50+(re
             -ceivebuf[6]&0x0f);
1035   3        displaybuf[6]=0x60+(receivebuf[7]&0x0f); displaybuf[7]=0x70+numkeyvalue; 
1036   3        repeatdisplay();
C51 COMPILER V7.50   SFJ1                                                                  04/01/2007 13:44:18 PAGE 18  

1037   3        for(i=0;i<16;i++)
1038   3           write728x(0x14,displaybuf[i]);
1039   3           numkeyvalue=20;
1040   3         }
1041   2         else if((keyvalue==20)&&(flagkeyd==0))
1042   2         {inputmoney();
1043   3          firstnumflag=1;
1044   3              pointbit=1;
1045   3              inputdata[inputpoint]=setmoney;
1046   3          inputpoint=inputpoint+1;
1047   3              inputdata[inputpoint]=1;
1048   3          inputpoint=inputpoint+1;
1049   3         }
1050   2         else if((keyvalue==28)&&(flagkeyd==0))
1051   2         {inputmoney();
1052   3          firstnumflag=1;
1053   3              pointbit=1;
1054   3              inputdata[inputpoint]=setmoney;
1055   3          inputpoint=inputpoint+1;
1056   3      
1057   3         }
1058   2        }
1059   1        else if(machinestatus==3)
1060   1         {if(enableauto!=0) 
1061   2            {for(j=0;j<8;j++)
1062   3              {write728x(0x18,pointoffvalue[j]);
1063   4              }
1064   3                }
1065   2              if(enableauto==1)
1066   2           {enableauto=2;
1067   3            currentkind=numkeyvalue;
1068   3            ramaddress=10+(currentkind*2);
1069   3            pointbit=1;
1070   3                firstnumflag=1;
1071   3            IRcvStr(0xa0,ramaddress,&receivebuf,2);
1072   3            spendmoney=(uint)(receivebuf[0]*256+receivebuf[1]);
1073   3              
1074   3                       dispmoney();
1075   3            write728x(0x14,0x2f);
1076   3            write728x(0x14,0x30+numkeyvalue);
1077   3            write728x(0x14,0xaf);
1078   3            write728x(0x14,0xb0+numkeyvalue);
1079   3            firstnumflag=1;
1080   3           }
1081   2          else if(enableauto==2)
1082   2           {receivebuf[4]=0x0a;
1083   3            if(firstnumflag==1)
1084   3              {firstnumflag=0;
1085   4               for(dispshift=5;dispshift<9;dispshift++)  receivebuf[dispshift]=0x0f;
1086   4              }
1087   3         
1088   3        else
1089   3           {if(pointbit==0) pointnum3=pointnum3+1;
1090   4                if((pointnum3<3)||(pointbit==1))
1091   4                 {for(dispshift=6;dispshift<9;dispshift++) 
1092   5                  receivebuf[dispshift-1]=receivebuf[dispshift];
1093   5             } 
1094   4               }
1095   3      
1096   3            receivebuf[8]=numkeyvalue;
1097   3                          for(i=5;i<9;i++)
1098   3                                {if((receivebuf[i]&0x80)!=0x00)   
C51 COMPILER V7.50   SFJ1                                                                  04/01/2007 13:44:18 PAGE 19  

1099   4                               {write728x(0x18,pointonvalue[i-5]);
1100   5                                        write728x(0x18,pointonvalue[i-1]); 
1101   5                                       }
1102   4                    }  
1103   3            displaybuf[2]=0x2f;
1104   3            displaybuf[3]=0x30+(receivebuf[4]&0x0f); displaybuf[4]=0x40+(receivebuf[5]&0x0f); displaybuf[5]=0x50
             -+(receivebuf[6]&0x0f);
1105   3            displaybuf[6]=0x60+(receivebuf[7]&0x0f); displaybuf[7]=0x70+numkeyvalue; 
1106   3            repeatdisplay();
1107   3            for(i=0;i<16;i++)
1108   3               write728x(0x14,displaybuf[i]);
1109   3           }
1110   2          if(receiveflag==3)  
1111   2            {cancelstatus=1;
1112   3                 pointbit=0;
1113   3                 currentkind=numkeyvalue;
1114   3             ramaddress=10+(currentkind*2);
1115   3             IRcvStr(0xa0,ramaddress,&receivebuf,2);
1116   3             kindmoney=kindmoney+(uint)(receivebuf[0]*256+receivebuf[1]);
1117   3             receivebuf[5]=(uchar)(kindmoney/1000);
1118   3             receivebuf[6]=(uchar)((kindmoney-receivebuf[5]*1000)/100);
1119   3             receivebuf[7]=(uchar)((kindmoney-receivebuf[5]*1000-receivebuf[6]*100)/10);
1120   3             receivebuf[8]=(uchar)(kindmoney%10);
1121   3               
1122   3                 write728x(0x18,0x2f);write728x(0x18,0x6f);
1123   3                 if (receivebuf[5]==0) 
1124   3                receivebuf[5]=0x0f;
1125   3             displaybuf[3]=0x3f; displaybuf[4]=0x40+receivebuf[5]; displaybuf[5]=0x50+receivebuf[6];
1126   3             displaybuf[6]=0x60+receivebuf[7]; displaybuf[7]=0x70+receivebuf[8]; 
1127   3             repeatdisplay();
1128   3             for(i=0;i<16;i++)
1129   3                write728x(0x14,displaybuf[i]);
1130   3                }
1131   2         }    
1132   1      }
1133          void inputmoney(void)
1134          { pointwhere=8;                
1135   1        for(i=4;i<9;i++)
1136   1          {if((receivebuf[i]&0x80)!=0x00)   
1137   2             {pointwhere=i;
1138   3              receivebuf[i]=receivebuf[i]&0x7f;
1139   3             }
1140   2               if(receivebuf[i]==0x0f)  receivebuf[i]=0;
1141   2          }  
1142   1         if((machinestatus==3)||(machinestatus==5)) receivebuf[4]=0;           
1143   1         switch (pointwhere)
1144   1            { case 8: setmoney=(uint)(receivebuf[6]*10000+receivebuf[7]*1000+receivebuf[8]*100);
1145   2                 break; 
1146   2              case 7: setmoney=receivebuf[5]*10000+receivebuf[6]*1000+receivebuf[7]*100+receivebuf[8]*10;
1147   2                 break; 
1148   2              case 6: setmoney=receivebuf[4]*10000+receivebuf[5]*1000+receivebuf[6]*100+receivebuf[7]*10+receive
             -buf[8];
1149   2                      break; 
1150   2                 }
1151   1      
1152   1      }
1153          
1154          uchar Rec_xorsum(uchar buf[],uchar len)
1155            {  uchar data i,sum;
1156   1           sum=buf[0];
1157   1           for(i=1;i<len;i++)
1158   1             sum=sum^buf[i];
C51 COMPILER V7.50   SFJ1                                                                  04/01/2007 13:44:18 PAGE 20  

1159   1           sum=sum&0x0f;
1160   1           return sum;
1161   1        }
1162          void send(uchar buf[],uchar len)
1163          {
1164   1        uchar  data   i ; 
1165   1        EA=0;  
1166   1        for(i=0;i<len;i++)
1167   1         {      TI=0;
1168   2           SBUF=buf[i];         
1169   2                while(!TI);
1170   2         }   
1171   1        TI=0;
1172   1        EA=1;
1173   1      }
1174          void cansend(void)
1175             {   EA=0;
1176   1             ACC=STUS;    
1177   1                
1178   1             while(ACC2!=1) {
1179   2      
1180   2                  ACC=STUS; }
1181   1            TXBID0=0x80|nodeaddress;
1182   1             TXBID1=0x08;
1183   1             TXBDATA0=nodeaddress;   
1184   1             TXBDATA1=sendorder;  
1185   1             TXBDATA2=Num_Buf[1];   
1186   1             TXBDATA3=Num_Buf[2];   
1187   1             TXBDATA4=Num_Buf[3];  
1188   1             TXBDATA5=Num_Buf[4];   
1189   1             TXBDATA6=Serial_Buf_NumSum;
1190   1             TXBDATA7=0x00;  
1191   1             COMD=0x01;    
1192   1                 EA=1;
1193   1               
1194   1         }
1195          void canreceive(void)
1196               {    receivebuf[0]=RXR0;
1197   1                receivebuf[1]=RXR1;
1198   1                receivebuf[2]=RXRDATA1;  
1199   1                receivebuf[3]=RXRDATA2; 
1200   1                receivebuf[4]=RXRDATA3;  
1201   1                receivebuf[5]=RXRDATA4;  
1202   1                receivebuf[6]=RXRDATA5;  
1203   1                receivebuf[7]=RXRDATA6;  
1204   1                receivebuf[8]=RXRDATA7;  
1205   1                receivebuf[9]=RXRDATA8; 
1206   1      
1207   1           }
1208          void timer0() interrupt 1 using 0
1209          {
1210   1      
1211   1        TH0=0x3c;
1212   1        TL0=0xb0;
1213   1        inttimer0 =1;
1214   1      } 
1215          
1216          void Receive_Serial() interrupt 4 using 2
1217          {EA=0; 
1218   1      
1219   1       if(RI)
1220   1        {    Serial_Buf[Serial_Buf_Num]=SBUF; 
C51 COMPILER V7.50   SFJ1                                                                  04/01/2007 13:44:18 PAGE 21  

1221   2                 RI=0;
1222   2                 Serial_Buf_Num++; 
1223   2                 if((!Find_Head)&&(Serial_Buf_Num==1))
1224   2                 {  if(Serial_Buf[0]==0xf0)
1225   3                              {   TR0=0;
1226   4                                                          EX0=0;
1227   4                                 Serial_Buf_Num=0;
1228   4                                 Serial_Buf_NumSum=0;
1229   4                                 Find_Head=1;//TRUE;
1230   4                                 ALARM=0;
1231   4                               }
1232   3                
1233   3                   else  {Serial_Buf[0]=7;    Serial_Buf_Num=0;}
1234   3                      
1235   3                 }
1236   2                 else
1237   2                 {
1238   3                   if((Serial_Buf_Num>1)&&(Find_Head))
1239   3                              {
1240   4                           if(Serial_Buf[Serial_Buf_Num-1]==0xF9)
1241   4                                         {
1242   5                                  SYS_STATE=0x11;
1243   5                                  Serial_Buf_NumSum=Serial_Buf_Num-2;
1244   5                                  Serial_Buf_Num=0;
1245   5                                                              enablesend=1; 
1246   5                                  Find_Head=0;
1247   5                                                      
1248   5                                                          ALARM=1;
1

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -