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

📄 main.lst

📁 mtv512mg + mx88v462 液晶电视驱动C完整程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
1089          void    SoundSystem_Check()
1090          {
1091                  if ( (SoundEN&0x1F) == 0x00 )
1092                          SoundEN = 0x1F;
1093          }
1094          */
1095          void    SoundSystem_Up()
1096          {
1097   1              for(;;)
1098   1              {
1099   2                      if (SIF < 4)
1100   2                              SIF++;
1101   2                      else
1102   2                              SIF = 0;
1103   2                      if ( (0x1<<SIF) & SoundEN )
1104   2                      {
1105   3                              if ( (Video_SYS == NTSC || Video_SYS == PALM || Video_SYS == PALN) && SIF == M )
1106   3                                      return;
1107   3                              else if ( Video_SYS == PAL && (SIF == BG || SIF == DK || SIF == I ) )
1108   3                                      return;
C51 COMPILER V7.50   MAIN                                                                  12/14/2006 10:36:36 PAGE 19  

1109   3                              else if ( Video_SYS == SECAM && (SIF == BG || SIF == DK || SIF == L ) )
1110   3                                      return;
1111   3                              if ( Video_SYS == NTSC443 && SIF == M )
1112   3                                      return; 
1113   3                      }                       
1114   2              }
1115   1      }
1116          
1117          void    SoundSystem_Down()
1118          {
1119   1              for(;;)
1120   1              {
1121   2                      if (SIF != 0)
1122   2                              SIF--;
1123   2                      else
1124   2                              SIF = 4;
1125   2                      if ( (0x1<<SIF) & SoundEN )
1126   2                      {
1127   3                              if ( (Video_SYS == NTSC || Video_SYS == PALM || Video_SYS == PALN ) && SIF == M )
1128   3                                      return;
1129   3                              else if ( Video_SYS == PAL && (SIF == BG || SIF == DK || SIF == I ) )
1130   3                                      return;
1131   3                              else if ( Video_SYS == SECAM && (SIF == BG || SIF == DK || SIF == L ) )
1132   3                                      return;
1133   3                              if ( Video_SYS == NTSC443 && SIF == M )
1134   3                                      return; 
1135   3                      }                       
1136   2              }
1137   1      }
1138          /*
1139          void    ColorSystem_Check()
1140          {
1141                  switch ( ColorEN )
1142                  {
1143                          case    0x00 :
1144                                  ColorEN = 0x02;
1145                          case    0x02 :
1146                                  Video_SYS = PAL;
1147                                  return;
1148                          case    0x01 :
1149                                  Video_SYS = NTSC;
1150                                  return;
1151                          case    0x04 :
1152                                  Video_SYS = SECAM;
1153                                  return;
1154                          default          :
1155                                  ColorEN = ColorEN | 0x08;
1156                                  break;
1157                  }
1158                  if ( (0x1<<Video_SYS) & ColorEN )
1159                          return;
1160          
1161                  Video_SYS = 3;
1162                  return;
1163          }
1164          */
1165          void    ColorSystem_Up()
1166          {
1167   1              for(;;)
1168   1              {
1169   2                      if (Video_SYS < NTSC443)
1170   2                              Video_SYS++;
C51 COMPILER V7.50   MAIN                                                                  12/14/2006 10:36:36 PAGE 20  

1171   2                      else
1172   2                              Video_SYS = 0;
1173   2      
1174   2                      if ( (0x1<<Video_SYS) & ColorEN )
1175   2                              return;
1176   2              }
1177   1      }
1178          
1179          void    ColorSystem_Down()
1180          {
1181   1              for(;;)
1182   1              {
1183   2                      if (Video_SYS != 0)
1184   2                              Video_SYS--;
1185   2                      else
1186   2                      {
1187   3                              Video_SYS = NTSC443;
1188   3                      }
1189   2                      if ( (0x1<<Video_SYS) & ColorEN )
1190   2                              return;
1191   2              }
1192   1      }
1193          
1194          //------------------------------------------------------------------------------
1195          //      TV Subroutine
1196          //------------------------------------------------------------------------------
1197          
1198          void    Channel_Up()
1199          {
1200   1              BYTE    chl;
1201   1      
1202   1      //      ScreenOFF;
1203   1                      
1204   1              for (chl=(Channel+1)&0x7F;chl!=Channel; chl=(chl+1)&0x7F)
1205   1              {
1206   2                      if (chl > 99 )
1207   2                              chl = 99;
1208   2                      if ( !(TV_Skip[chl/8] & (1<<(chl%8))) )
1209   2                      {
1210   3                              Channel = chl;
1211   3                              break;
1212   3                      }
1213   2                      if      (chl >= 99)             
1214   2                              chl = 0x7F;             
1215   2              }
1216   1               
1217   1              if (Source_type == TV_CHL )
1218   1              {
1219   2                      Show_Channel();
1220   2                      Show_VideoMode();
1221   2              }
1222   1              else
1223   1              {
1224   2                      S_Source_type = Source_type = TV_CHL;
1225   2                      Set_SourceType();
1226   2              }
1227   1      }
1228          
1229          void    Channel_Down()
1230          {
1231   1              BYTE    chl;
1232   1              
C51 COMPILER V7.50   MAIN                                                                  12/14/2006 10:36:36 PAGE 21  

1233   1      //      ScreenOFF;
1234   1              
1235   1              for (chl=(Channel-1)&0x7F;chl!=Channel; chl=(chl-1)&0x7F)
1236   1              {
1237   2                      if      (chl >= 0x7F)
1238   2                              chl = 99;
1239   2                      if ( !(TV_Skip[chl/8] & (1<<(chl%8))) )
1240   2                      {
1241   3                              Channel = chl;
1242   3                              break;
1243   3                      }
1244   2              } 
1245   1                                                      
1246   1              if (Source_type == TV_CHL )
1247   1              {
1248   2                      Show_Channel();
1249   2                      Show_VideoMode();
1250   2              }
1251   1              else
1252   1              {
1253   2                      S_Source_type = Source_type = TV_CHL;
1254   2                      Set_SourceType();
1255   2              }
1256   1      }
1257          
1258          void    Set_Channel_Skip()
1259          {
1260   1              if (Skip)
1261   1                      TV_Skip[Channel/8] = TV_Skip[Channel/8] | (1<<(Channel%8)) ;
1262   1              else
1263   1                      TV_Skip[Channel/8] = TV_Skip[Channel/8] & (~(1<<(Channel%8))) ;
1264   1      }
1265          
1266          bit             Get_Channel_Skip()
1267          {
1268   1              return  (TV_Skip[Channel/8] & (1<<(Channel%8)));
1269   1      }
1270          
1271          void    Save_Channel()
1272          {
1273   1              Save_Channel_Info();
1274   1              Save_Channel_Skip();
1275   1      }
1276          
1277          void    Save_Channel_Info()
1278          {
1279   1              BYTE    channel_data[4];
1280   1              
1281   1              channel_data[0]=Fp_Position%256;
1282   1              channel_data[1]=Fp_Position/256;
1283   1              channel_data[2]=Video_SYS|(SIF<<4);
1284   1              channel_data[3]=Fine_Turn;
1285   1              
1286   1      /*      
1287   1              if(cn>63)
1288   1              {
1289   1                      cn-=36;         
1290   1                      I2C_Write(EEPROM_WRID,cn*4, 0x4, channel_data);
1291   1              }
1292   1              else
1293   1                      I2C_Write(EEPROM_WRID|0x2,cn*4, 0x4, channel_data);
1294   1              Delay(2000);
C51 COMPILER V7.50   MAIN                                                                  12/14/2006 10:36:36 PAGE 22  

1295   1      */      
1296   1              if ( Channel <64 )
1297   1                      I2C_Write(EEPROM_WRID|0x2, Channel*4, 0x4, channel_data);
1298   1              else if ( Channel <100 )
1299   1              {
1300   2                      I2C_Write(EEPROM_WRID, (Channel-36)*4, 0x4, channel_data);
1301   2              }       
1302   1              Delay(3000);
1303   1      
1304   1              Set_Channel_Skip();
1305   1      }
1306          
1307          void    Save_Channel_Skip()
1308          {
1309   1              I2C_Write(EEPROM_WRID, 0x20, 0x10, TV_Skip);            //Write TV skip info
1310   1              Delay(3000);
1311   1      }
1312          
1313          void    Load_Channel()
1314          {
1315   1              BYTE    channel_data[4];
1316   1              
1317   1              if ( Channel <64 )
1318   1                      I2C_Read(EEPROM_WRID|0x2, Channel*4, 0x4, channel_data);
1319   1              else if ( Channel <100 )
1320   1                      I2C_Read(EEPROM_WRID, (Channel-36)*4, 0x4, channel_data);
1321   1              
1322   1              Fp_Position = channel_data[1]*256 + channel_data[0];
1323   1              Video_SYS = channel_data[2]&0xF;
1324   1              SIF = channel_data[2]>>4;
1325   1              Fine_Turn = channel_data[3];
1326   1              
1327   1              if ( (Fp_Position < Fp_VL_Start) || (Fp_Position > Fp_UHF_End) )
1328   1                      Fp_Position = Fp_VL_Start;
1329   1                      
1330   1              if ( SIF > L )
1331   1                      SIF = BG;
1332   1      
1333   1              if ( Video_SYS >= 5 )
1334   1                      Video_SYS = NTSC;
1335   1                      
1336   1              if (Fine_Turn>0x8A || Fine_Turn<0x76)
1337   1                      Fine_Turn = 0x80;
1338   1                      
1339   1              I2C_Read(EEPROM_WRID, 0x20, 0x10, TV_Skip);             //Read TV skip info
1340   1              Skip = Get_Channel_Skip();
1341   1      }
1342          
1343          void    Show_Channel()
1344          {
1345   1              ScreenOFF;
1346   1              
1347   1              Mute();
1348   1              
1349   1              Delay(4000);
1350   1              
1351   1              Load_Channel();
1352   1      
1353   1              Set_CS(Video_SYS);
1354   1              Set_SIF(SIF);
1355   1              Set_DEMOD();
1356   1              Set_Fosc(Fp_Position,Fine_Turn);
C51 COMPILER V7.50   MAIN                                                                  12/14/2006 10:36:36 PAGE 23  

1357   1              Delay(4000);
1358   1              Auto_Detect_T

⌨️ 快捷键说明

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