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

📄 cpu.lst

📁 车载DVD osdIC TW8816原厂代码
💻 LST
📖 第 1 页 / 共 5 页
字号:
 962   2                              RemoPhase2 = P3_2;
 963   2                      else
 964   2                              ;
 965   2                      if( i==0 ) {    //every 8 tm01
 966   3                              if( RemoPhase1==RemoPhase2 ) {  // error
 967   4                                      ClearRemoTimer();                       
 968   4                                      EnableRemoconInt();
 969   4                                      return;
 970   4                              }
 971   3                              if( tm01<=(8*8) ) {                             // start control system
 972   4                                      RemoSystemCode <<=1;
 973   4                                      if( RemoPhase1==1 && RemoPhase2==0 )
 974   4                                              RemoSystemCode |=1;
 975   4                              }
 976   3                              else {                                                  // data
 977   4                                      RemoDataCode <<=1;
 978   4                                      if( RemoPhase1==1 && RemoPhase2==0 )
 979   4                                              RemoDataCode |=1;
 980   4                              }
 981   3                      }
C51 COMPILER V7.50   CPU                                                                   04/01/2008 15:02:02 PAGE 17  

 982   2                      if( tm01 > (8*14) ) {
 983   3                              RemoDataReady++;        //LJY051502 RemoDataReady = 1;                          // new key
 984   3                              ClearRemoTimer();                               
 985   3                              //RemoOver = 0;
 986   3                      }
 987   2              }
 988   1      
 989   1              #elif defined REMO_NEC
                      
                      {
                              if( RemoDataReady ) return;
              
                              switch( RemoStep ) {
              
                              case 0:
                                      if( P3_2==0 ) {
                                              RemoLcnt++;
                                              if( RemoLcnt==0xff ) goto RemoError;
                                      }
                                      else {
                                              RemoHcnt = 0;
                                              RemoStep++;
                                      }
                                      break;
              
                              case 1:
                                      if( P3_2==1 ) {
                                              RemoHcnt++;
                                              if( RemoHcnt==0xff ) goto RemoError;
                                      }
                                      else {
                                              if( RemoLcnt>=15*3 && RemoLcnt<=17*3 ) {
                                                      
                                                      if( RemoHcnt>=3*3 && RemoHcnt<=5*3 ) {
                                                              RemoStep = 3;
                                                              RemoDataReady = 2;
                                                              break;
                                                      }
                                                      else if( RemoHcnt>=7*3 && RemoHcnt<=9*3 ) {
                                                              RemoStep++;
                                                              RemoPhase = 0;
                                                              RemoLcnt = 0;
                                                              RemoNum  = 0;
                                                              RemoBit  = 0;
                                                              break;
                                                      }
                                              }
                                              else goto RemoError;
                                      }
                                      break;
              
                              case 2:
                                      if( RemoPhase==0 ) {
                                              if( P3_2==0 )                                   // Phase=0  Input=0
                                                      RemoLcnt++;
                                              else {                                                  // Phase=0  Input=1
                                                      RemoPhase = 1;
                                                      RemoHcnt = 0;
                                              }
                                      }
                                      else {                                                          
                                              if( P3_2==1 )                                   // Phase=1  Input=1
C51 COMPILER V7.50   CPU                                                                   04/01/2008 15:02:02 PAGE 18  

                                                      RemoHcnt++;
                                              else {                                                  // Phase=1  Input=0
                                                      RemoPhase = 0;
                                                      if( RemoLcnt>=1 && RemoLcnt<=5 ) {
                                                              if( RemoHcnt<=2*3 )                     // bit 0
                                                                      RemoData[RemoNum] <<= 1;
                                                              else if( RemoHcnt<=4*3 ) {              // bit 1
                                                                      RemoData[RemoNum] <<= 1;
                                                                      RemoData[RemoNum]++;
                                                              }
                                                              else goto RemoError;
              
                                                              if( ++RemoBit>=8 ) {
                                                                      RemoBit = 0;
                                                                      if( ++RemoNum>=4 ) {
                                                                              RemoDataReady = 1;
                                                                              RemoStep++;
                                                                      }
                                                              }
                                                              RemoLcnt = 0;
              
                                                      }
                                                      else goto RemoError;
                                              }
                                      }
                                      break;
              
                              case 3:
                                      break;
                              
                              }
                              return;
              
              RemoError:
                              ClearRemoTimer();                               //TimerFor208us();
                              EnableRemoconInt();
                      }
              
                      #endif  // REMO_NEC
1083   1      }
1084          
1085          
1086          void delay(BYTE cnt)
1087          {
1088   1              WORD ttic01;
1089   1      
1090   1              ttic01 =  ( tic01 + cnt ) % 100;
1091   1              do {
1092   2                      ;
1093   2              } while( tic01 != ttic01 );
1094   1      }
1095          
1096          
1097          //=============================================================================
1098          //              Time
1099          //=============================================================================
1100          #define _24H_SECS                       86400L                  // 24*60*60
1101          WORD GetTime_ms(void)
1102          {
1103   1              WORD tms;
1104   1      
1105   1              tms = tic01;
C51 COMPILER V7.50   CPU                                                                   04/01/2008 15:02:02 PAGE 19  

1106   1              tms += ( SystemClock % 60 ) * 100;
1107   1              return tms;     // in ms
1108   1      }
1109          BYTE GetTime_H(void)
1110          {
1111   1              return ( SystemClock / 60 / 60 ) % 24 ;
1112   1      }
1113          
1114          BYTE GetTime_M(void)
1115          {
1116   1              return ( SystemClock / 60  ) % 60 ;
1117   1      }
1118          
1119          BYTE GetSleepTimer(void)
1120          {
1121   1              WORD val;
1122   1      
1123   1              val = SleepTimer;
1124   1              if( val )       {       // already set, display rest of time
1125   2                      val = ( SleepTime >> 8 ) * 60 + ( SleepTime & 0xff );
1126   2                      val -= ( GetTime_H() * 60 + GetTime_M() );
1127   2              }
1128   1              return (BYTE)val;
1129   1      }
1130          
1131          void SetSleepTimer(BYTE stime)
1132          {
1133   1              SleepTimer = stime;
1134   1              if( SleepTimer==0 )
1135   1                      SleepTime = 0xffff;
1136   1              else {
1137   2                      SleepTime = GetTime_H() + ( GetTime_M() + SleepTimer ) / 60;
1138   2                      SleepTime = ( SleepTime << 8 ) | ( ( GetTime_M() + SleepTimer ) % 60 );
1139   2              }
1140   1      
1141   1              #ifdef DEBUG_TIME
                      dPrintf("\r\n++(SetSleepTimer) SleepTime:0x%x__", (WORD)SleepTime);
                      #endif
1144   1      }
1145          
1146          BYTE OKSleepTime(void)
1147          {
1148   1              if( GetTime_H() == ( SleepTime >>8 ) && 
1149   1                      GetTime_M() == ( SleepTime & 0xff ) )   {
1150   2                      SleepTimer=0;
1151   2                      SleepTime = 0xffff;
1152   2                      return 1;
1153   2              }
1154   1              return 0;
1155   1      }
1156          
1157          WORD DiffTime_ms( WORD stime, WORD etime )
1158          {
1159   1              //#ifdef DEBUG
1160   1              //dPrintf("\r\n(DiffTime) stime:%d, etime:%d", (WORD)stime, (WORD)etime );
1161   1              //#endif
1162   1              if( etime < stime ) {                   // resetted
1163   2                      return etime + (6000 - stime);
1164   2              }
1165   1              else {
1166   2                      return etime - stime;
1167   2              }
C51 COMPILER V7.50   CPU                                                                   04/01/2008 15:02:02 PAGE 20  

1168   1      }
1169          
1170          // cCount X 0.01 sec  delay 
1171          void SetDelayCount(BYTE cCount)
1172          {
1173   1              cDelayCounter = cCount;
1174   1      }
1175          
1176          BYTE GetDelayCount(void)
1177          {
1178   1              return cDelayCounter;
1179   1      }
1180          
1181          // cCount X 0.01 sec  delay 
1182          // Don't call this function between "ssMeasureSetup" state and "ssModeDetect" state.
1183          void WaitDelay(BYTE cWaitCount)
1184          {
1185   1              cDelayCounter = cWaitCount;
1186   1              do {
1187   2                      ;
1188   2              } while(cDelayCounter);
1189   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1551    ----
   CONSTANT SIZE    =    408    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =      2       8
   DATA SIZE        =     33    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      5    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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