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

📄 v46x_panel.lst

📁 mtv512mg + mx88v462 液晶电视驱动C完整程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 209   4      
 210   4      //                              I2C_WriteByte(V46X_WRID, 0x1A, 0x40);   // Turn ON Screen;
 211   4                                              return  _Color;
 212   4                              }
 213   3                      }
 214   2                              
 215   2                      if ( ColorEN&0x4 )
 216   2                              V46X_ColorSystem(SECAM);
 217   2              }
 218   1              else
 219   1              {
 220   2                      V46X_ColorSystem(NTSC);
 221   2              }
 222   1      
 223   1      //      I2C_WriteByte(V46X_WRID, 0x1A, 0x40);                           // Turn ON Screen;
 224   1              return _Color ;         
 225   1      }
 226          
 227          unsigned char   V46X_Detect_ColorSystem_AV()
 228          {
 229   1              unsigned char r3A,r3C;
 230   1              
 231   1              r3A = CVD1_ReadWrite(R_TYPE, 0x3A, 0x00);
 232   1              r3C = CVD1_ReadWrite(R_TYPE, 0x3C, 0x00);
 233   1                              
 234   1              if ( r3A&0x1 )                                                                          // No Signal
 235   1                      return  _Color;
 236   1                      
 237   1              while (1)
 238   1              {
 239   2                      if ((r3C&0x4) && _Color != PAL )
C51 COMPILER V7.50   V46X_PANEL                                                            12/14/2006 10:36:49 PAGE 5   

 240   2                              break;
 241   2                      if ( (r3C&0x4)==0 && _Color != NTSC )
 242   2                              break;
 243   2                      if ( !V46X_If_CorrectCS() )
 244   2                              break;
 245   2                      return  _Color;
 246   2              }
 247   1                      
 248   1      /*              
 249   1              if ( r3A&0x1 )                                                                          // No Signal
 250   1                      return  _Color;
 251   1              if ( (r3C&0x4) && _Color == PAL )
 252   1                      return  _Color;
 253   1              if ( (r3C&0x4)==0 && _Color == NTSC )
 254   1                      return  _Color;
 255   1                      
 256   1              _Delay(500);
 257   1              r3A = CVD1_ReadWrite(R_TYPE, 0x3A, 0x00);
 258   1              r3C = CVD1_ReadWrite(R_TYPE, 0x3C, 0x00);
 259   1                      
 260   1              if ( r3A&0x1 )                                                                          // No Signal
 261   1                      return  _Color;
 262   1              if ( (r3C&0x4) && _Color == PAL )
 263   1                      return  _Color;
 264   1              if ( (r3C&0x4)==0 && _Color == NTSC )
 265   1                      return  _Color;
 266   1                      
 267   1              _Delay(500);
 268   1              r3A = CVD1_ReadWrite(R_TYPE, 0x3A, 0x00);
 269   1              r3C = CVD1_ReadWrite(R_TYPE, 0x3C, 0x00);
 270   1      
 271   1                      
 272   1              if ( r3A&0x1 )                                                                          // No Signal
 273   1                      return  _Color;
 274   1              if ( (r3C&0x4) && _Color == PAL )
 275   1                      return  _Color;
 276   1              if ( (r3C&0x4)==0 && _Color == NTSC )
 277   1                      return  _Color;
 278   1      
 279   1      */
 280   1              I2C_WriteByte(V46X_WRID, 0x1A, 0x80);                           // Turn OFF Screen;
 281   1      
 282   1              _Delay(60000);
 283   1              _Delay(60000);
 284   1      
 285   1              r3A = CVD1_ReadWrite(R_TYPE, 0x3A, 0x00);
 286   1              r3C = CVD1_ReadWrite(R_TYPE, 0x3C, 0x00);
 287   1      
 288   1              if ( r3A&0x1 )                                                                          // No Signal
 289   1                      return  _Color;
 290   1                      
 291   1              if ( r3C&0x4 )
 292   1              {
 293   2                      V46X_Set_ScanLines(S625);
 294   2                      V46X_ColorSystem(PAL);
 295   2              }
 296   1              else
 297   1              {
 298   2                      V46X_Set_ScanLines(S525);
 299   2                      V46X_ColorSystem(NTSC);
 300   2              }
 301   1                      
C51 COMPILER V7.50   V46X_PANEL                                                            12/14/2006 10:36:49 PAGE 6   

 302   1      //      I2C_WriteByte(V46X_WRID, 0x1A, 0x40);                           // Turn ON Screen;
 303   1              return  _Color;
 304   1      }
 305          
 306          void    V46X_Set_ScanLines(unsigned char scan)
 307          {
 308   1              unsigned char   R00;
 309   1              
 310   1              _Scan = scan;
 311   1              
 312   1              R00 =  CVD1_ReadWrite(R_TYPE, 0x00, 0x00);      
 313   1              if ( _Scan )
 314   1                      R00 = R00 | 0x30;
 315   1              else
 316   1                      R00 = R00 & 0xCF;
 317   1              CVD1_ReadWrite(W_TYPE, 0x00, R00);
 318   1              
 319   1              CVD1_ReadWrite(W_TYPE, 0x3F, 0x01);
 320   1              CVD1_ReadWrite(W_TYPE, 0x3F, 0x00);
 321   1      
 322   1              I2C_Write(V46X_WRID, 0x08, 0x03, &TCON_Scaler[_Screen][_Scan][0]);
 323   1              I2C_Write(V46X_WRID, 0x38, 0x28, &TCON_Scaler[_Screen][_Scan][3]);
 324   1              
 325   1              _Delay(20000);
 326   1      }
 327          
 328          void    V46X_Detect_ScanLines()
 329          {
 330   1              unsigned char r3A,r3C;
 331   1              
 332   1              r3A = CVD1_ReadWrite(R_TYPE, 0x3A, 0x00);
 333   1              r3C = CVD1_ReadWrite(R_TYPE, 0x3C, 0x00);       
 334   1      
 335   1              if ( r3A&0x1 )                                                                          // No Signal
 336   1                      return ;
 337   1              if ( (r3C&0x4)==4 && _Scan == S625 )
 338   1                      return ;
 339   1              if ( (r3C&0x4)==0 && _Scan == S525 )
 340   1                      return ;
 341   1      
 342   1              I2C_WriteByte(V46X_WRID, 0x1A, 0x80);
 343   1              
 344   1              if ( r3C&0x4 )
 345   1                      V46X_Set_ScanLines(S625);
 346   1              else
 347   1                      V46X_Set_ScanLines(S525);
 348   1      
 349   1              _Delay(20000);
 350   1      }
 351          
 352          bit             V46X_If_CorrectCS()
 353          {
 354   1              unsigned char r3A,r3C;  
 355   1      
 356   1              r3A = CVD1_ReadWrite(R_TYPE, 0x3A, 0x00);
 357   1              r3C = CVD1_ReadWrite(R_TYPE, 0x3C, 0x00);
 358   1      
 359   1      /*
 360   1              if ( _Color == SECAM )
 361   1              {
 362   1                      if ( (r3A&0x8) == 0x08 && (r3C&0x7) == 0x6 )                                    // Chroma Locked
 363   1                              return  1;                                                                                                      // and In correct color system
C51 COMPILER V7.50   V46X_PANEL                                                            12/14/2006 10:36:49 PAGE 7   

 364   1                      else
 365   1                              return  0;
 366   1              }
 367   1      */      
 368   1              if ( (r3A&0x8) == 0x08 && (r3C&0x3) == (_VStatus[_Color]&0x3) )         // Chroma Locked
 369   1                      return  1;                                                                                                              // and In correct color system
 370   1              else
 371   1                      return  0;
 372   1      }
 373          
 374          void    V46X_Change_Mode(unsigned char video_source, unsigned char color_system,
 375                                                           unsigned char screen_mode )
 376          {
 377   1              unsigned char   i;
 378   1              
 379   1              _Source = video_source;
 380   1              _Color = color_system;
 381   1              _Screen = screen_mode;
 382   1      
 383   1              I2C_WriteByte(V46X_WRID, 0x1A, 0x80);                           //Turn OFF Screen;
 384   1      
 385   1              I2C_WriteByte(V46X_WRID, 0x00, 0x60);
 386   1              I2C_WriteByte(V46X_WRID, 0x01, 0x01);
 387   1              I2C_WriteByte(V46X_WRID, 0x05, 0x00);
 388   1      
 389   1              I2C_Write(V46X_WRID, 0x08, 0x03, &TCON_Scaler[_Screen][_Scan][0]);
 390   1              I2C_Write(V46X_WRID, 0x38, 0x28, &TCON_Scaler[_Screen][_Scan][3]);
 391   1              
 392   1              for (i=0; i<9; i++)
 393   1                      CVD1_ReadWrite(W_TYPE, VideoSUR_Addr[i], VideoSUR_Data[_Source][i]);
 394   1                      
 395   1              if ( _Source == SVIDEO1 || _Source == SVIDEO2 )
 396   1                      i = VideoSTD_Data[_Color][0] | 0x1;
 397   1              else
 398   1                      i = VideoSTD_Data[_Color][0];
 399   1                      
 400   1              if ( _Scan == S625 )
 401   1                      i = i | 0x30;
 402   1              else
 403   1                      i = i & 0xCF;
 404   1      
 405   1              CVD1_ReadWrite(W_TYPE, 0x00, i);
 406   1      
 407   1              for (i=1; i<19; i++)
 408   1                      CVD1_ReadWrite(W_TYPE, VideoSTD_Addr[i], VideoSTD_Data[_Color][i]);
 409   1                      
 410   1              _Delay(60000);
 411   1      //      I2C_WriteByte(V46X_WRID, 0x1A, 0x40);                           //Turn ON Screen;
 412   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1620    ----
   CONSTANT SIZE    =   1687    ----
   XDATA SIZE       =     22      11
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       2
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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