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

📄 t100.lst

📁 非常经典的一款LCD单芯片方案的驱动代码.(T100)
💻 LST
📖 第 1 页 / 共 5 页
字号:
C51 COMPILER V7.06   T100                                                                  10/30/2005 21:46:44 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE T100
OBJECT MODULE PLACED IN C:\WAVE6000\T100_S~1\T100.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE C:\WAVE6000\T100_S~1\T100.C DB SB OE OT(6)

stmt level    source

   1          #include "REG51.H"
   2          #include <intrins.h>
   3          #include "Common.h"
   4          #include "Remote.h"
   5          
   6          
   7          #define OSD_EN
   8          //typedef unsigned char  uCHAR;
   9          
  10          //#include "T100Data_A.h"
  11          //#include "T100Data_PA.h"
  12          //#include "T100Data_AU.h"
  13          //#include "T100Data_CPT.h"
  14          //#include "T100Data_PANASONIC.h"
  15          //#include "T100Data_PVI7.h"
  16          #include "T100Data_LG.h"
  17          //#include "T100Data_FOX.h"
  18          
  19          
  20          #ifdef OSD_EN
  21            #include "OSDFont1218_new.h"
  22            #include "OSD1218_new.h"
*** WARNING C317 IN LINE 1 OF OSD1218_new.h: attempt to redefine macro 'EOL'
  23          #endif
  24          
  25          sbit    T100_RESET      = P1^4;
  26          sbit    SCL             = P1^6;
  27          sbit    SDA             = P1^7;
  28          sbit    BL_EN           = P0^7;
  29          #if 1
  30          #define kyKEY_MSK               0x81
  31          #define KEYPORT                 P0
  32          
  33          #define kyMENU          0x08
  34          #define kyDEC           0x04
  35          #define kyINC           0x02
  36          #define kySOURCE        0x10
  37          #define kyUD_LR         0x20
  38          #define kyFULL_43       0x40
  39          #else
              #define kyKEY_MSK               0xc0
              #define KEYPORT                 P2
              
              #define kyMENU          0x02
              #define kyDEC           0x08
              #define kyINC           0x04
              #define kySOURCE        0x10
              #define kyUD_LR         0x20
              #define kyFULL_43       0x01//0x40
              #endif
  50          /*sbit  kyMENU          = P0^1;
  51          sbit    kyDEC           = P0^2;
  52          sbit    kyINC           = P0^3;
  53          sbit    kySOURCE        = P0^4;
  54          sbit    kyUD_LR         = P0^5;
C51 COMPILER V7.06   T100                                                                  10/30/2005 21:46:44 PAGE 2   

  55          sbit    kyFULL_43       = P0^6;//*/
  56          bit ir_enable   =0;
  57          bit bNTSC_PAL   = 0;      //0:PAL               1:NTSC
  58          bit bFULL_43    = 1;      //0:4:3               1:FULL
  59          bit bUP_DOWN    = 1;      //0:Down to Up        1:Up to Down
  60          bit bLEFT_RIGHT = 1;      //0:Right to Left     1:Left to Right
  61          uCHAR cSource   = 2;      //2-4:CVBS2-4         5:S-Video       6:ITU656
  62          uCHAR cStandard = 0xff;   //0:PAL               4:NTSC
  63          uCHAR c60HZ_Mode=0;
  64          uCHAR c50HZ_Mode=0;
  65          uCHAR cKey_Curr,cKey_Pre;
  66          uCHAR ir_data;
  67          uCHAR Repeat_Times;
  68          void Initial(void);
  69          void Delay_ms(uCHAR);
  70          void InitT100(void);
  71          void ClosePanel(void);
  72          void OpenPanel(void);
  73          void DetectNTSC_PAL(void);
  74          void SetSource(void);
  75          void SetMode(void);
  76          void SetUD_LR(void);
  77          void I2CWriteTbl(char*);
  78          uCHAR I2CReadByte(uCHAR, uCHAR);
  79          uCHAR I2CWriteByte(uCHAR,uCHAR,uCHAR);
  80          void kyKeypad(void);
  81          void IRSourceSelCtrl(void);
  82          void IRSCALEREvent(void);
  83          void IRDismodeEvent(void);
  84          #ifdef OSD_EN
  85          void InitOSD(void);
  86          void  OSDDisable(void);
  87          void OSDEnable(void);
  88          void OSDCtrl(char cDir);
  89          uCHAR cLanguage=0; //0:English 1:French 2:German 3:Spanish 4:Japenese 5:Russian
  90          uCHAR cOSDFunc=1;      //0:OSD Off 1:Bright 2:Color  3:Screen
  91          uCHAR cBright,cColor=COLOR;
  92          
  93          #endif
  94          void main(void)
  95          {
  96   1              Initial();
  97   1              while(1)
  98   1              {
  99   2                      //kyKeypad();
 100   2                  if(ir_enable)
 101   2                     {ir_enable=0;
 102   3                         RemoteEvent();
 103   3                      }
 104   2                   else if(!EX1)
 105   2                      {
 106   3                              EX1=1;
 107   3                              ir_data=0;
 108   3                      }
 109   2                  DetectNTSC_PAL();
 110   2                      #ifdef OSD_EN
 111   2      //                      OSDEnable();
 112   2                      #endif
 113   2      
 114   2      //                OSDEnable();
 115   2              }//while
 116   1      }//main
C51 COMPILER V7.06   T100                                                                  10/30/2005 21:46:44 PAGE 3   

 117          
 118          void Initial(void)
 119          {
 120   1      //Initial 8051
 121   1              P0=0xff;
 122   1              P1=0xff;
 123   1              P2=0xff;
 124   1              P3=0xff;
 125   1      //8051Register Set
 126   1              IE      = 0;    // disable all interrupt
 127   1              TMOD    = 0x11;  // Timer1 Mode 1, Timer0 Mode 1;
 128   1              //TMOD  = 0x01; // Timer0 Mode 1;
 129   1              EX0     = 0;     // disable external interrupt 0, IE[0]
 130   1              EX1             = 0;
 131   1              //ET0   = 1;    // enable bTimer 0
 132   1              //IT0   = 1;     // falling endge generate interrupt, TCON[0]
 133   1              INT0    = 1;
 134   1              IT1     = 1;     // falling endge generate interrupt, TCON[0]
 135   1              INT1    = 1;
 136   1      
 137   1      //Initial T100
 138   1              T100_RESET      = 0 ;
 139   1              Delay_ms(50);  //50
 140   1              T100_RESET      = 1 ;
 141   1              Delay_ms(20);
 142   1              InitT100();
 143   1      //      SetUD_LR();
 144   1              #ifdef OSD_EN
 145   1              InitOSD();
 146   1              #endif
 147   1      }//Initial
 148          
 149          void Delay_ms(uCHAR cTime)
 150          {
 151   1              uCHAR i,j;
 152   1              for(i=0;i<cTime;i++)
 153   1              {
 154   2                      for(j=0;j<250;j++)_nop_();
 155   2                      for(j=0;j<250;j++)_nop_();
 156   2                      for(j=0;j<250;j++)_nop_();
 157   2                      for(j=0;j<250;j++)_nop_();
 158   2              }//For
 159   1      }//Delay
 160          
 161          void InitT100(void)
 162          {
 163   1              I2CWriteTbl(TCONData);
 164   1              ClosePanel();
 165   1              I2CWriteTbl(T100Init);
 166   1              I2CWriteTbl(GAMMAData);
 167   1              I2CWriteTbl(FilterData);
 168   1              SetMode();
 169   1              SetSource();
 170   1              SetUD_LR();
 171   1      //      OpenPanel();
 172   1      }//InitT100
 173          void ClosePanel(void)
 174          {
 175   1              BL_EN=1;
 176   1              I2CWriteByte(TW100, 0xC2, I2CReadByte(TW100, 0xC2)|0x12);
 177   1              I2CWriteByte(TW100, 0x91, 0x87);//I2CReadByte(TW101, PATTERN_CTRL)|0x80);  //Enable Frame Background Colo
             -r
C51 COMPILER V7.06   T100                                                                  10/30/2005 21:46:44 PAGE 4   

 178   1      }
 179          void OpenPanel(void)
 180          {
 181   1              I2CWriteByte(TW100, 0xC2, I2CReadByte(TW100, 0xC2)&0xED);
 182   1              I2CWriteByte(TW100, 0x91, I2CReadByte(TW100, 0x91)&~0x80); //Enable Frame Background Color
 183   1              Delay_ms(10);
 184   1              BL_EN=0;
 185   1      }
 186          void DetectNTSC_PAL(void)
 187          {
 188   1              static int wBuff=0x000;
 189   1              uCHAR cBuff[2];
 190   1          wBuff+=1;
 191   1                      if(wBuff==0x01)
 192   1                      {
 193   2                              wBuff=0x00;
 194   2                              for(cBuff[1]=0;cBuff[1]<1;cBuff[1]++)
 195   2                              {
 196   3                                  cBuff[0] = I2CReadByte(TW100, 0x5A)&0xe0;
 197   3                                  if(cBuff[0]==cStandard)break;
 198   3      //                              Delay_ms(10);
 199   3                                  if(cBuff[0]>=0x40)
 200   3                                  {
 201   4                                      ClosePanel();
 202   4                                      return;
 203   4                                  }     //*/
 204   3                              }
 205   2                 #ifdef ESS
 206   2                              if((bNTSC_PAL)&&(cSource==6))
 207   2                              {
 208   3                                 cBuff[1] = I2CReadByte(TW100, 0x82);
 209   3                                 if(cBuff[1]>0x90)I2CWriteByte(TW100+2, 0xd3,0x06);
 210   3                                 else if(cBuff[1]<0x78)I2CWriteByte(TW100+2, 0xd3,0x04);
 211   3                              }
 212   2                              if((!bNTSC_PAL)&&(cSource==6))
 213   2                              {
 214   3                                 cBuff[1] = I2CReadByte(TW100, 0x82);
 215   3                                 if(cBuff[1]>0xb0)I2CWriteByte(TW100+2, 0xd3,0x0b);
 216   3                                 else if(cBuff[1]<0x78)I2CWriteByte(TW100+2, 0xd3,0x04);
 217   3                              }
 218   2                 #endif
 219   2                              if(cBuff[0]!=cStandard)
 220   2                              {
 221   3                                  ClosePanel();
 222   3                                  cStandard=cBuff[0];
 223   3                                  if(cStandard)
 224   3                                  {
 225   4                                      bNTSC_PAL       = 0;
 226   4                                  }
 227   3                                 else bNTSC_PAL       = 1;
 228   3                              SetMode();
 229   3                             Delay_ms(25);
 230   3                             OpenPanel();
 231   3                             Delay_ms(10);
 232   3                          }
 233   2                  else OpenPanel();
 234   2                      }
 235   1      
 236   1      }
 237          void SetSource(void)
 238          {
 239   1              switch(cSource)
C51 COMPILER V7.06   T100                                                                  10/30/2005 21:46:44 PAGE 5   

 240   1              {
 241   2                      case 2: I2CWriteTbl(CVBS2Data);
 242   2                                      break;
 243   2                      case 3: I2CWriteTbl(CVBS3Data);
 244   2                                      break;
 245   2                      case 4: I2CWriteTbl(CVBS4Data);
 246   2                                      break;
 247   2                      case 5: I2CWriteTbl(SVIDEOData);
 248   2                                      break;
 249   2                      case 6: I2CWriteTbl(ITU656Data);
 250   2              }
 251   1      }
 252          void SetMode(void)//N/P,Full/4:3

⌨️ 快捷键说明

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