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

📄 stccoinbox.lst

📁 投币按摩椅驱动程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
1141   2                              LcdSendData(21,nLcdDisplay2);
1142   2                              nDisCount = 11;
1143   2                              break;
1144   2                      case 11:
1145   2                              nLcdDisplay2 = Lcddis[11]; 
1146   2                              LcdSendData(22,nLcdDisplay1);
1147   2                              nDisCount = 0;
1148   2                              break;
1149   2                      default:
1150   2                              nDisCount = 0;
1151   2                              break;
1152   2              }
1153   1      }
1154          
1155          void LcdSendCommand(uchar nCommand)
1156          {
1157   1              uchar nCount ;
1158   1              unsigned int nSerialData ;
1159   1              //bit bSendBit ;
1160   1              bLcdData = HIGH ;
1161   1              bLcdClock = HIGH ;
1162   1              bLcdCS  = LOW  ;
1163   1              nSerialData = 0x0400 | nCommand ;
1164   1              for(nCount=0;nCount<12;nCount++)
1165   1              {
1166   2                      if(nSerialData & 0x0400)
1167   2                      {
1168   3                              bSendBit = 1 ;
C51 COMPILER V7.06   STCCOINBOX                                                            11/10/2007 10:37:46 PAGE 20  

1169   3                      }
1170   2                      else
1171   2                      {
1172   3                              bSendBit = 0 ;
1173   3                      }
1174   2                      bLcdData = bSendBit ;
1175   2                      NOP() ;
1176   2                      bLcdClock = LOW ;
1177   2                      Delay();
1178   2                      bLcdClock = HIGH ;
1179   2                      nSerialData <<= 1 ;
1180   2              }
1181   1              bLcdCS = HIGH ;
1182   1      }
1183          
1184          void LcdSendData(uchar nAddress,uchar nData)
1185          {
1186   1              uchar nCount ;
1187   1              unsigned int  nSerialData ;
1188   1              //bit bSendBit ;
1189   1              bLcdData = HIGH ;
1190   1              bLcdClock = HIGH ;
1191   1              bLcdCS  = LOW  ;
1192   1              nAddress &= 0x3f ;
1193   1              nData &= 0x0f ;
1194   1              nSerialData = 0x0140 | nAddress ;
1195   1              nSerialData <<= 4 ;
1196   1              nSerialData |= nData ;//*nData:低位在前*/
1197   1              for(nCount=0;nCount<13;nCount++)
1198   1              {
1199   2                      if(nSerialData & 0x1000)
1200   2                      {
1201   3                              bSendBit = 1 ;
1202   3                      }
1203   2                      else
1204   2                      {
1205   3                              bSendBit = 0 ;
1206   3                      }
1207   2                      bLcdData = bSendBit ;
1208   2                      Delay();
1209   2                      bLcdClock = LOW ;
1210   2                      Delay();
1211   2                      bLcdClock = HIGH ;
1212   2                      nSerialData <<= 1 ;
1213   2              }
1214   1              bLcdCS = HIGH ;
1215   1      }
1216          /////////////////////////////////////////////////////////////////
1217          /*******************************************************/
1218          /******************按键扫描处理************************************/
1219          /******************************************************************/
1220          void Timer0() interrupt 1 using 2
1221          { ET0=0;
1222   1              TH0=0xf8;  //TH0 = 0xf8;   //2ms for 12MHZ 
1223   1              TL0=0xcd;  //TL0 = 0x30;
1224   1              //P0 = P0|0x80;
1225   1              P2 = P2|0x08;
1226   1              P3 = 0xff;
1227   1              P1 = P1|keyoff;
1228   1              nTimeCounter++;
1229   1              SendTime++;
1230   1              ReceiveTime++;
C51 COMPILER V7.06   STCCOINBOX                                                            11/10/2007 10:37:46 PAGE 21  

1231   1              Cointime++;
1232   1             // Movtime++;
1233   1              Totaltime++;
1234   1             
1235   1              if(bCloseTC35iPermit)GsmDelayTime++;
1236   1               if(bDelay20mS)GsmDelayTime++;  
1237   1            //   if(bDelay160mS)Delay160mSTime++;
1238   1               //      if(Delay160mSTime>80){Delay160mSTime=0;bDelay160mS=0;}
1239   1              // if(bDelay1S)Delay1STime++;
1240   1              //       if(Delay1STime>500){Delay1STime=0;bDelay1S=0;}
1241   1              //if(bDelay3S)GsmDelayTime++;
1242   1              if((GsmDelayTime>10)&&(bDelay20mS)){GsmDelayTime=0;bDelay20mS=0;}
1243   1              if(GsmDelayTime>1500){GsmDelayTime=0;bCloseTC35iPermit=0;bStartGsm=0;}//bDelay3S=0;
1244   1            //  if(Movtime>5000)
1245   1             // {Movtime=0;}
1246   1              keydata1 = P1&keyoff;  
1247   1      /**********************Check coin signal for part A*********/
1248   1      ////////////////////////////////////////////////////////////
1249   1      if((T_Status==0)&&(nSpareMoney==0))
1250   1      {
1251   2              
1252   2              if(((keydata1!=keyoff)||(bSensorCheck==0))&&(bCheckCoinA == 1))
1253   2              {
1254   3      //////////////////////////////////////////////////////////
1255   3                      nKeyHighLevel2Counter++;
1256   3                      nKeyLowLevel2Counter = 0;
1257   3                      if(nKeyHighLevel2Counter>=KeyMaxHighLevel)
1258   3                      {
1259   4                              nKeyProcessStep2 = 1;
1260   4                              //nKeyHighLevel2Counter =KeyMaxHighLe;
1261   4            if(bSensorCheck==0)//霍尔检测,显示投币总金额
1262   4             {
1263   5              bShowMoneyTotalPermit=1;
1264   5               bShowTotalcoinsumPermit=1;
1265   5               bdisp=1;Disp_Process();
1266   5               keystatus=0;
1267   5               Totaltime=0;
1268   5              }
1269   4                               keydata = keydata1;
1270   4                               bKeyPermit = FALSE;
1271   4                              // if(nKeyHighLevel2Counter==KeyMaxHighLevel)Movtime=0;
1272   4                            //  bBeepFlag = TRUE;
1273   4                       }
1274   3         }
1275   2      
1276   2              //////////////////////////////////////////////
1277   2              else
1278   2              {
1279   3                      if(nKeyProcessStep2 == 1)
1280   3                      {
1281   4                              nKeyLowLevel2Counter++;
1282   4                              nKeyHighLevel2Counter = 0;
1283   4                              if(nKeyLowLevel2Counter>=KeyMaxLowLevel)
1284   4                              { 
1285   5                                      nKeyProcessStep2 =2;
1286   5                                      nKeyLowLevel2Counter =KeyMaxLowLevel;
1287   5                                      bKeyPermit = TRUE;
1288   5                                      bEtime=0; 
1289   5                              }
1290   4                      }
1291   3              if(nKeyProcessStep2 == 2)nKeyProcessStep2 = 0;
1292   3      
C51 COMPILER V7.06   STCCOINBOX                                                            11/10/2007 10:37:46 PAGE 22  

1293   3               }      
1294   2       }
1295   1      /////////////////////////////////////////////////////////////
1296   1              if((bCheckCoinA == 1)&&(bKeyCoin==0))      //上电处理
1297   1              {
1298   2                      nHigh_CheckCoinCounter++;
1299   2                      nLow_CheckCoinCounter = 0;
1300   2                      if(nHigh_CheckCoinCounter>= PassWordFlashOnTime)
1301   2                      {
1302   3                              nCheckLevelStep = 1;
1303   3                              nHigh_CheckCoinCounter = PassWordFlashOnTime;
1304   3                      }
1305   2              }
1306   1              else
1307   1              {
1308   2                      if(nCheckLevelStep == 1)
1309   2                      {
1310   3                              nLow_CheckCoinCounter++;
1311   3                              nHigh_CheckCoinCounter = 0;
1312   3                              if(nLow_CheckCoinCounter>= MaxLowLevel)
1313   3                              {
1314   4      
1315   4                                nCheckLevelStep =2;
1316   4                                if(nLow_CheckCoinCounter >= MaxLowLevel){nLow_CheckCoinCounter=MaxLowLevel;}///////  ////
1317   4                                
1318   4                              }
1319   3                      }
1320   2              }
1321   1              
1322   1              
1323   1              if(bPassWordPermit)PassWordDelay++;
1324   1              else PassWordDelay=0;
1325   1       if(Delay_ms)Delay_ms--;
1326   1      ET0=1;
1327   1      }       
1328          ////////////////////////////////////////////////////////
1329          /////////////////////////////////////////////////////////
1330          void Send (void)
1331          {
1332   1        TI=0;  
1333   1       ////////////////////////////////////////////////////////
1334   1       switch(T_Status)
1335   1       {
1336   2        case 0: bRest=0;bTxd0_SendPermit=0;bSetState=0;bSendCommand=0; break; 
1337   2        case 1: if(Init_BackTime>=16)
1338   2                {Senddata1 = 0x35; Senddata2 = backtime[Init_BackTime-16];}
1339   2                else{Senddata1=0x34; Senddata2 = backtime[Init_BackTime];}
1340   2                bTxd0_SendPermit=1; SendTime=0; bGetCommand=0; bAckCommand=0; break;  
1341   2        case 2: if(bGetCommand==1){T_Status=6; SendTime=0; bTxd0_SendPermit=0;break;}
1342   2                if(SendTime>500){T_Status=1;bTxd0_SendPermit=0;SendTime=0;break;}
1343   2                else{T_Status=2;bTxd0_SendPermit=0;break;}
1344   2        case 3: if(SendTime>5000){Senddata1=0x38;Senddata2=0x30;bTxd0_SendPermit=1;break;}//Walkon
1345   2                else{bTxd0_SendPermit=0;break;}
1346   2        case 4: Senddata1=0x36;Senddata2=0x30;bTxd0_SendPermit=1;bSetState=0;bRest=1;bSendCommand=0;break; //
1347   2        case 5: if(bSetState==1){T_Status=7; SendTime=0; bTxd0_SendPermit=0;break;}
1348   2                if(SendTime>500){T_Status=4;bTxd0_SendPermit=0;SendTime=0;break;}
1349   2                else{T_Status=5;bTxd0_SendPermit=0;break;}
1350   2        case 7: if(bSendCommand==1)
1351   2                {T_Status=0;bTxd0_SendPermit=0;SendTime=0;bSendCommand=0;bERR=0;bRun = Off;break;}
1352   2                if(SendTime>=32000){bTxd0_SendPermit=0;bRun = Off;SendTime=32000; bERR=1;break;}   //E //r
1353   2                else{T_Status=7;bTxd0_SendPermit=0;break;}
1354   2        case 6: if(bAckCommand==1)
C51 COMPILER V7.06   STCCOINBOX                                                            11/10/2007 10:37:46 PAGE 23  

1355   2                {T_Status=3;bTxd0_SendPermit=0;bAckCommand=0;SendTime=0; break;}  
1356   2                if(SendTime>=18000){T_Status=3;SendTime=0; bTxd0_SendPermit=0; break;}   //E //r
1357   2                else{T_Status=6;bTxd0_SendPermit=0;break;}
1358   2        default: bTxd0_SendPermit=0; break; 
1359   2        }
1360   1      // else{T_Status=0;bTxd0_SendPermit=0;Transmit_Point=6;}
1361   1       ////////////////////////////////////////////////////////
1362   1       if(bTxd0_SendPermit==1)
1363   1       {
1364   2        switch(Transmit_Point)
1365   2           {
1366   3            case 0: SBUF= SOI;Transmit_Point++;break;
1367   3            case 1: SBUF= DATAH;Transmit_Point++;break;
1368   3            case 2: SBUF= DATAL;Transmit_Point++;break;
1369   3            case 3: SBUF= Senddata1;Transmit_Point++;break;
1370   3            case 4: SBUF= Senddata2;Transmit_Point++;break;
1371   3            case 5: SBUF= EOI;Transmit_Point++;break;
1372   3            default:Transmit_Point=6;if((Senddata1==0x34)||(Senddata1==0x35)){T_Status=2;}
1373   3                        if(Senddata1==0x38)
1374   3                          { 
1375   4                           T_Status=3;
1376   4                           if(SendTime>5000){SendTime=0;}
1377   4                          }
1378   3                        if(Senddata1==0x36){T_Status=5;}
1379   3                            bTxd0_SendPermit=0;break;
1380   3            }
1381   2        }
1382   1      }
1383          /////////////////////////////////////////////////////////
1384          void Receive(void)
1385          {
1386   1      RI=0;
1387   1       switch (R_Status)
1388   1       {     
1389   2        case 0: if(SBUF==SOI){R_Status=1;break;}
1390   2                else{R_Status=0;break;}
1391   2        case 1: if(SBUF==GETH){R_Status=2;break;} 
1392   2                else{R_Status=0;break;}      
1393   2        case 2: if(SBUF==GETL){R_Status=3;Rxd0_DataLength=0;break;} 
1394   2                if(SBUF==M_AckCommand){R_Status=5;Rxd0_DataLength=0;break;}  /// 
1395   2                if(SBUF==M_SetState){R_Status=7;Rxd0_DataLength=0;break;}
1396   2                else{R_Status=0;break;} 
1397   2        case 3: if(SBUF==EOI){R_Status=0;Rxd0_DataLength=0;Transmit_Point=0;Send();break;}
1398   2                Rxd0_DataLength++; 
1399   2                if(Rxd0_DataLength>21){R_Status=0;Rxd0_DataLength=0;break;}
1400   2                else{R_Status=3;break;}
1401   2        case 5: if(SBUF==DATAACK){R_Status=6;Transmit_Point=0;break;} 
1402   2                else{R_Status=0;break;}  
1403   2        case 6: 
1404   2                if(SBUF==M_GetCommand)   
1405   2                {bGetCommand=1; R_Status=0;break;} 
1406   2                if(SBUF==M_SetState)  
1407   2                {
1408   3                bSetState=1;
1409   3                R_Status=0;
1410   3                break;
1411   3                }
1412   2                if(SBUF==M_AckCommand)  
1413   2                {
1414   3                 bAckCommand=1; 
1415   3                 R_Status=0;
1416   3                 break;
C51 COMPILER V7.06   STCCOINBOX                                                            11/10/2007 10:37:46 PAGE 24  

1417   3                 } 
1418   2                if(SBUF==S_SendCommand)  {bSendCommand=1; R_Status=0;break;}
1419   2                if(SBUF==EOI){R_Status=0;break;Rxd0_DataLength=0;}
1420   2                Rxd0_DataLength++;
1421   2                if(Rxd0_DataLength>21){R_Status=0;Rxd0_DataLength=0;break;}
1422   2                break;
1423   2       case 7: Rxd0_RecBuffer[Rxd0_DataLength]=S

⌨️ 快捷键说明

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