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

📄 hx8824.lst

📁 一个LCD TV的源程序, 用的是realtek的IC
💻 LST
📖 第 1 页 / 共 5 页
字号:
 869   1      #if mode8060_8060
                  bVideo = 1;
                  S1 = 0;
                  S2 = 1;
                  Mode = 12;
                  I2CWriteByte(HX8824_ADDR, 0x10, 0x1C);   // input format select
                  I2CWriteByte(HX8824_ADDR, 0x11, 0x07);
                  I2CWriteByte(HX8824_ADDR, 0x20, 0x00);
                  I2CWriteByte(HX8824_ADDR, 0x21, 0x10);
                  I2CWriteByte(HX8824_ADDR, 0x22, 0xFF);
                  I2CWriteByte(HX8824_ADDR, 0x23, 0x0F);
                  I2CWriteByte(HX8824_ADDR, 0x20, 0x00);
                  I2CWriteByte(HX8824_ADDR, 0x21, 0x10);
                  I2CWriteByte(HX8824_ADDR, 0x22, 0xFF);
                  I2CWriteByte(HX8824_ADDR, 0x23, 0x1F);
                  I2CWriteByte(HX8824_ADDR, 0x24, 0x00);
                  I2CWriteByte(HX8824_ADDR, 0x25, 0x00);
                  I2CWriteByte(HX8824_ADDR, 0x24, 0x00);
                  I2CWriteByte(HX8824_ADDR, 0x25, 0x04);
                  I2CWriteByte(HX8824_ADDR, 0xA0, 0x11);
                  I2CWriteByte(HX8824_ADDR, 0xA1, 0x27);
                  I2CWriteByte(HX8824_ADDR, 0xA2, 0x00);
                  I2CWriteByte(HX8824_ADDR, 0x00, 0x20);
                  I2CWriteByte(HX8824_ADDR, 0x01, 0x04);
                  I2CWriteByte(HX8824_ADDR, 0x02, 0x58);
                  I2CWriteByte(HX8824_ADDR, 0x03, 0x02);
                  I2CWriteByte(HX8824_ADDR, 0x90, 0x20);
                  I2CWriteByte(HX8824_ADDR, 0x91, 0x04);
                  I2CWriteByte(HX8824_ADDR, 0x92, 0x80);
                  I2CWriteByte(HX8824_ADDR, 0x93, 0x00);
                  I2CWriteByte(HX8824_ADDR, 0x94, 0xD8);
                  I2CWriteByte(HX8824_ADDR, 0x95, 0x00);
                  I2CWriteByte(HX8824_ADDR, 0x96, 0x20);
                  I2CWriteByte(HX8824_ADDR, 0x97, 0x03);
                  I2CWriteByte(HX8824_ADDR, 0x98, 0x74);
                  I2CWriteByte(HX8824_ADDR, 0x99, 0x02);
                  I2CWriteByte(HX8824_ADDR, 0x9A, 0x04);
                  I2CWriteByte(HX8824_ADDR, 0x9B, 0x00);
                  I2CWriteByte(HX8824_ADDR, 0x9C, 0x1B);
                  I2CWriteByte(HX8824_ADDR, 0x9D, 0x00);
                  I2CWriteByte(HX8824_ADDR, 0x9E, 0x58);
                  I2CWriteByte(HX8824_ADDR, 0x9F, 0x02);
                  //*****************  PLL ********************************************************
                  I2CWriteByte(HX8824_ADDR, 0xD0, 0x08);  // P1
                  I2CWriteByte(HX8824_ADDR, 0xD1, 0x08);  // P2
                  I2CWriteByte(HX8824_ADDR, 0xD2, 0x09);  // N
                  I2CWriteByte(HX8824_ADDR, 0xD3, 0x2B);  // M: 300 -1
                  I2CWriteByte(HX8824_ADDR, 0xD4, 0x01);  // M
              #endif
 918   1      //****************************************************************************************
 919   1      #if mode7224_4827
 920   1         bVideo = 1;
C51 COMPILER V7.07   HX8824                                                                09/26/2006 08:56:42 PAGE 16  

 921   1          S1 = 0;
 922   1          S2 = 1;
 923   1          Mode = 13;
 924   1          I2CWriteByte(HX8824_ADDR, 0x00, 0xD0);
 925   1          I2CWriteByte(HX8824_ADDR, 0x01, 0x02);
 926   1          I2CWriteByte(HX8824_ADDR, 0x02, 0xF3);
 927   1          I2CWriteByte(HX8824_ADDR, 0x03, 0x00);
 928   1          I2CWriteByte(HX8824_ADDR, 0x10, 0x1C);  // input format select
 929   1          I2CWriteByte(HX8824_ADDR, 0x11, 0x0F);  // 656
 930   1          I2CWriteByte(HX8824_ADDR, 0x20, 0x4D);  // (243/272)*4096 = 0x0E4B
 931   1          I2CWriteByte(HX8824_ADDR, 0x21, 0x0E);
 932   1          I2CWriteByte(HX8824_ADDR, 0x22, 0xFF);
 933   1          I2CWriteByte(HX8824_ADDR, 0x23, 0x0F);
 934   1          I2CWriteByte(HX8824_ADDR, 0x20, 0x00);   // (720/480)*4096 = 0x1800
 935   1          I2CWriteByte(HX8824_ADDR, 0x21, 0x18);
 936   1          I2CWriteByte(HX8824_ADDR, 0x22, 0xFF);
 937   1          I2CWriteByte(HX8824_ADDR, 0x23, 0x1F);
 938   1          I2CWriteByte(HX8824_ADDR, 0x24, 0x00);
 939   1          I2CWriteByte(HX8824_ADDR, 0x25, 0x00);
 940   1          I2CWriteByte(HX8824_ADDR, 0x24, 0x00);
 941   1          I2CWriteByte(HX8824_ADDR, 0x25, 0x04);
 942   1          I2CWriteByte(HX8824_ADDR, 0x26, 0x01);
 943   1          I2CWriteByte(HX8824_ADDR, 0x29, 0x01);  //
 944   1          I2CWriteByte(HX8824_ADDR, 0xA0, 0x67);  //
 945   1          I2CWriteByte(HX8824_ADDR, 0xA1, 0x02);  //
 946   1          I2CWriteByte(HX8824_ADDR, 0xA2, 0x00);
 947   1          I2CWriteByte(HX8824_ADDR, 0x90, 0x15);//  527
 948   1          I2CWriteByte(HX8824_ADDR, 0x91, 0x02);
 949   1          I2CWriteByte(HX8824_ADDR, 0x92, 0x29);//  41
 950   1          I2CWriteByte(HX8824_ADDR, 0x93, 0x00);
 951   1          I2CWriteByte(HX8824_ADDR, 0x94, 0x2B);//  43
 952   1          I2CWriteByte(HX8824_ADDR, 0x95, 0x00);
 953   1          I2CWriteByte(HX8824_ADDR, 0x96, 0xE0);//  480
 954   1          I2CWriteByte(HX8824_ADDR, 0x97, 0x01);
 955   1          I2CWriteByte(HX8824_ADDR, 0x98, 0x30);//  297
 956   1          I2CWriteByte(HX8824_ADDR, 0x99, 0x01);
 957   1          I2CWriteByte(HX8824_ADDR, 0x9A, 0x0A);//  10
 958   1          I2CWriteByte(HX8824_ADDR, 0x9B, 0x00);
 959   1          I2CWriteByte(HX8824_ADDR, 0x9C, 0x1D);//  12
 960   1          I2CWriteByte(HX8824_ADDR, 0x9D, 0x00);
 961   1          I2CWriteByte(HX8824_ADDR, 0x9E, 0x10);//  272
 962   1          I2CWriteByte(HX8824_ADDR, 0x9F, 0x01);
 963   1          //*****************  PLL ********************************************************
 964   1          I2CWriteByte(HX8824_ADDR, 0xD0, 0x29);  // P1   clk_o = 9.4MHz
 965   1          I2CWriteByte(HX8824_ADDR, 0xD1, 0x1B);  // P2   clk_m = 14.1MHz
 966   1          I2CWriteByte(HX8824_ADDR, 0xD2, 0x09);  // N
 967   1          I2CWriteByte(HX8824_ADDR, 0xD3, 0x48);  // M:
 968   1          I2CWriteByte(HX8824_ADDR, 0xD4, 0x01);  // M
 969   1      #endif
 970   1      //****************************************************************************************
 971   1      }
 972          
 973          /* ================================================================
 974              Name    : Select_Video_Input
 975              Purpose : According Pass Variable to change Input Mux Path
 976              Passed  : None
 977              Notes   : None
 978             ================================================================ */
 979          
 980          void Select_Video_Input(Byte VideoSrc)
 981          {
 982   1          switch(VideoSrc)
C51 COMPILER V7.07   HX8824                                                                09/26/2006 08:56:42 PAGE 17  

 983   1          {
 984   2              // From Video Decoder
 985   2              case _AV:
 986   2              case _YC:
 987   2                      //I2CWrtCNByte(HX8824_ADDR, &HX8824_Input_Format[2][0], HX8824_MAIN_INP_CLK, 2);
 988   2                  break;
 989   2      
 990   2              // From ADC YUV, ADC Component
 991   2      //        case _Component:
 992   2      //        case _VGA_IN:
 993   2      //             I2CWrtCNByte(HX8824_ADDR, &HX8824_Input_Format[1][0], HX8824_MAIN_INP_CLK, 2);
 994   2      //             break;
 995   2      
 996   2                      // DVI Input
 997   2                      case  _DVI:
 998   2                   //I2CWrtCNByte(HX8824_ADDR, &HX8824_Input_Format[0][0], HX8824_MAIN_INP_CLK, 2);
 999   2                   break;
1000   2          }
1001   1      }
1002          
1003          /* ================================================================
1004              Name    : Initial PLL
1005              Purpose : clock generator
1006              Passed  : None
1007              Notes   : None
1008             ================================================================ */
1009          void Init_PLL(void)
1010          {
1011   1      #if EX_PLL
                  I2CWriteByte(HX8824_ADDR, 0xE0, 0x1E);  // use external clk_m and clk_o -->0x1C; internal:-->0x10
                  I2CWriteByte(PLL_ADDR, 0x0E, 0x1F);
                  I2CWriteByte(PLL_ADDR, 0x0B, 0x0A);   // CLKM = 29.94 MHz
                  I2CWriteByte(PLL_ADDR, 0x14, 0x26);
                  I2CWriteByte(PLL_ADDR, 0x15, 0xF0);
                  I2CWriteByte(PLL_ADDR, 0x16, 0x5D);
                  I2CWriteByte(PLL_ADDR, 0x09, 0x0C);   // CLKO = 33.3 MHz
                  I2CWriteByte(PLL_ADDR, 0x11, 0x08);
                  I2CWriteByte(PLL_ADDR, 0x12, 0xA3);
                  I2CWriteByte(PLL_ADDR, 0x13, 0x4C);
              #endif
1023   1      #if IN_PLL
1024   1          I2CWriteByte(HX8824_ADDR, 0xE0, 0x13);  // use external clk_m and clk_o -->0x1C; internal:-->0x10
1025   1          I2CWriteByte(HX8824_ADDR, 0xD0, 0x08);
1026   1          I2CWriteByte(HX8824_ADDR, 0xD1, 0x09);
1027   1          I2CWriteByte(HX8824_ADDR, 0xD2, 0x07);
1028   1          I2CWriteByte(HX8824_ADDR, 0xD3, 0xC7);
1029   1          I2CWriteByte(HX8824_ADDR, 0xD4, 0x00);
1030   1      #endif
1031   1      
1032   1      }
1033          
1034          /* ================================================================
1035              Name    : Initial SAA7111
1036              Purpose :
1037              Passed  : None
1038              Notes   : None
1039             ================================================================ */
1040          void Init_SAA7111(void)
1041          {
1042   1          I2CWriteByte(SAA7111_ADDR, 0x02, 0xC0);
1043   1          I2CWriteByte(SAA7111_ADDR, 0x03, 0x33);
1044   1          I2CWriteByte(SAA7111_ADDR, 0x04, 0x00);
C51 COMPILER V7.07   HX8824                                                                09/26/2006 08:56:42 PAGE 18  

1045   1          I2CWriteByte(SAA7111_ADDR, 0x05, 0x00);
1046   1          I2CWriteByte(SAA7111_ADDR, 0x06, 0xEB);
1047   1          I2CWriteByte(SAA7111_ADDR, 0x07, 0xE0);
1048   1          I2CWriteByte(SAA7111_ADDR, 0x08, 0xC8);
1049   1          I2CWriteByte(SAA7111_ADDR, 0x09, 0x41);
1050   1          I2CWriteByte(SAA7111_ADDR, 0x0A, 0xD0); //0x95
1051   1          I2CWriteByte(SAA7111_ADDR, 0x0B, 0x47); //0x48
1052   1          I2CWriteByte(SAA7111_ADDR, 0x0C, 0x40);
1053   1          I2CWriteByte(SAA7111_ADDR, 0x0D, 0x00);
1054   1          I2CWriteByte(SAA7111_ADDR, 0x0E, 0x01);
1055   1          I2CWriteByte(SAA7111_ADDR, 0x10, 0xC0);
1056   1          I2CWriteByte(SAA7111_ADDR, 0x11, 0x0D);
1057   1          I2CWriteByte(SAA7111_ADDR, 0x12, 0x00);
1058   1          I2CWriteByte(SAA7111_ADDR, 0x13, 0x40);
1059   1      }
1060          
1061          /* ================================================================
1062              Name    : Initial SAA7114
1063              Purpose :
1064              Passed  : None
1065              Notes   : None
1066             ================================================================ */
1067          void Init_SAA7114(void)
1068          {
1069   1      code unsigned char T7114[136][2]=
1070   1                                      {{0x01,0x08},{0x02,0xc4},{0x03,0x20},{0x04,0x00},{0x05,0x00},{0x06,0xeb},{0x07,0xe0},
1071   1                                       {0x08,0xF8},{0x09,0x40},{0x0a,0x80},{0x0b,0x44},{0x0c,0x50},{0x0d,0x00},{0x0e,0x89},
1072   1                                       {0x0f,0x2a},{0x10,0x01},{0x11,0x00},{0x12,0xdf},{0x13,0x40},{0x14,0x08},{0x15,0x11},
1073   1                                       {0x16,0x01},{0x17,0x00},{0x18,0x40},{0x19,0x80},{0x40,0x00},{0x41,0xff},{0x42,0xff},
1074   1                                       {0x43,0xff},{0x44,0xff},{0x45,0xff},{0x46,0xff},{0x47,0xff},{0x48,0xff},{0x49,0xff},
1075   1                                       {0x4a,0xff},{0x4b,0xff},{0x4c,0xff},{0x4d,0xff},{0x4e,0xff},{0x4f,0xff},{0x50,0xff},
1076   1                                       {0x51,0xff},{0x52,0xff},{0x53,0xff},{0x54,0xff},{0x55,0xff},{0x56,0xff},{0x57,0xff},
1077   1                                       {0x58,0x40},{0x59,0x47},{0x5a,0x06},{0x5b,0x83},{0x5d,0x00},{0x5e,0x00},{0x60,0x00},
1078   1                                       {0x61,0x00},{0x62,0x00},{0x80,0x10},{0x83,0x01},{0x84,0x45},{0x85,0x00},{0x86,0x45},
1079   1                                       {0x87,0x01},{0x88,0xf8},{0x8f,0x00},{0x90,0x00},{0x91,0x08},{0x92,0x10},{0x93,0x80},
1080   1                                       {0x94,0x02},{0x95,0x00},{0x96,0xd0},{0x97,0x02},{0x98,0x0D},{0x99,0x00},{0x9a,0xF2},
1081   1                                       {0x9b,0x00},{0x9c,0xd0},{0x9d,0x02},{0x9e,0xF0},{0x9f,0x00},{0xa0,0x01},{0xa1,0x00},
1082   1                                       {0xa2,0x00},{0xa4,0x80},{0xa5,0x40},{0xa6,0x40},{0xa8,0x00},{0xa9,0x04},{0xaa,0x00},
1083   1                                       {0xac,0x00},{0xad,0x02},{0xae,0x00},{0xb0,0x00},{0xb1,0x04},{0xb2,0x00},{0xb3,0x04},
1084   1                                       {0xb4,0x00},{0xb8,0x00},{0xbc,0x00},{0xc0,0x00},{0xc1,0x08},{0xc2,0x10},{0xc3,0x80},
1085   1                                       {0xc4,0x00},{0xc5,0x00},{0xc6,0xd0},{0xc7,0x02},{0xc8,0x0C},{0xc9,0x00},{0xca,0xf2},
1086   1                                       {0xcb,0x00},{0xcc,0xd0},{0xcd,0x02},{0xce,0xf0},{0xcf,0x00},{0xd0,0x00},{0xd1,0x00},
1087   1                                       {0xd2,0x00},{0xd4,0x80},{0xd5,0x40},{0xd6,0x40},{0xd8,0x00},{0xd9,0x04},{0xda,0x20},
1088   1                                       {0xdc,0x00},{0xdd,0x02},{0xde,0x00},{0

⌨️ 快捷键说明

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