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

📄 hx8824.lst

📁 一个LCD TV的源程序, 用的是realtek的IC
💻 LST
📖 第 1 页 / 共 5 页
字号:
C51 COMPILER V7.07   HX8824                                                                09/26/2006 08:56:42 PAGE 1   


C51 COMPILER V7.07, COMPILATION OF MODULE HX8824
OBJECT MODULE PLACED IN HX8824.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE HX8824.C BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          /*********************************************************************
   2          
   3                COPYRIGHT  (C)  Himax Technologies, Inc.
   4          
   5                File name     : HX8824.c
   6          
   7                Description   : Implement HX8824 control function
   8          
   9                Author        : Taylor
  10          
  11                Create date   : 2004/10/01
  12          
  13                Modifications :
  14          
  15          *********************************************************************/
  16          
  17          #define _HX8824_C
  18          
  19          /********************** Include Section *****************************/
  20          
  21          #include "hx8824.h"
  22          #include "rs232.h"
  23          #include "osd.h"
  24          #include "Key.h"
  25          
  26          /**************** Function Implement Section ************************/
  27          
  28          /* ================================================================
  29              Name    : Init_HX8824
  30              Purpose : Initial HX8824 Device
  31              Passed  : None
  32              Notes   : None
  33             ================================================================ */
  34          
  35          void Init_HX8824(void)
  36          {
  37   1      
  38   1      //***************** version B***********************************************
  39   1      /*
  40   1          I2CWriteByte(HX8824_ADDR, 0x41, 0x10);  // initial Image enhancement
  41   1          I2CWriteByte(HX8824_ADDR, 0x42, 0xf0);
  42   1          I2CWriteByte(HX8824_ADDR, 0x43, 0x00);
  43   1          I2CWriteByte(HX8824_ADDR, 0x44, 0xf0);
  44   1          I2CWriteByte(HX8824_ADDR, 0x45, 0x0c);
  45   1          I2CWriteByte(HX8824_ADDR, 0x46, 0x80);
  46   1          I2CWriteByte(HX8824_ADDR, 0x47, 0x80);
  47   1          I2CWriteByte(HX8824_ADDR, 0x48, 0x00);
  48   1          I2CWriteByte(HX8824_ADDR, 0x49, 0x00);
  49   1          I2CWriteByte(HX8824_ADDR, 0x4A, 0x80);
  50   1          I2CWriteByte(HX8824_ADDR, 0x4B, 0x00);
  51   1      */
  52   1          I2CWriteByte(HX8824_ADDR, 0x14, 0x00);
  53   1          I2CWriteByte(HX8824_ADDR, 0x15, 0x00);
  54   1          I2CWriteByte(HX8824_ADDR, 0x16, 0x00);
  55   1          I2CWriteByte(HX8824_ADDR, 0x17, 0x00);        
C51 COMPILER V7.07   HX8824                                                                09/26/2006 08:56:42 PAGE 2   

  56   1          I2CWriteByte(HX8824_ADDR, 0x19, 0x02);
  57   1          I2CWriteByte(HX8824_ADDR, 0xD6, 0x18);   //PWM control2 default value
  58   1          I2CWriteByte(HX8824_ADDR, 0xD7, 0x12);   //PWM control2 default value
  59   1          I2CWriteByte(HX8824_ADDR, 0xD8, 0x00);   //PWM control2 default value
  60   1          I2CWriteByte(HX8824_ADDR, 0xD9, 0x00);   //PWM control2 default value
  61   1          I2CWriteByte(HX8824_ADDR, 0xDA, 0x00);   //PWM control2 default value
  62   1          I2CWriteByte(HX8824_ADDR, 0xDB, 0x00);   //PWM control2 default value  
  63   1          //I2CWriteByte(HX8824_ADDR, 0x76, 0x07);   // bitwise for 3 channel    
  64   1          I2CWriteByte(HX8824_ADDR, 0xE3, 0x01);        // TCON bypass
  65   1      
  66   1      //***************** Version A************************************************
  67   1      /*
  68   1          I2CWriteByte(HX8824_ADDR, 0x41, 0x10);  // initial Image enhancement
  69   1          I2CWriteByte(HX8824_ADDR, 0x42, 0x00);
  70   1          I2CWriteByte(HX8824_ADDR, 0x43, 0x80);
  71   1          I2CWriteByte(HX8824_ADDR, 0x44, 0x80);
  72   1          I2CWriteByte(HX8824_ADDR, 0x45, 0x00);
  73   1          I2CWriteByte(HX8824_ADDR, 0x46, 0x00);
  74   1          I2CWriteByte(HX8824_ADDR, 0x70, 0x00);  // enable dithering
  75   1      */
  76   1          /*
  77   1          I2CWriteByte(HX8824_ADDR, 0x71, 0x5F);  // 0x5F dithering mode  (78h will cause flicker in 32 gray in 
             -green?)
  78   1          I2CWriteByte(HX8824_ADDR, 0x72, 0x2D);  //
  79   1          I2CWriteByte(HX8824_ADDR, 0x73, 0x36);
  80   1          I2CWriteByte(HX8824_ADDR, 0x74, 0x8D);
  81   1          I2CWriteByte(HX8824_ADDR, 0x75, 0x63);
  82   1          */
  83   1          /*
  84   1          I2CWriteByte(HX8824_ADDR, 0x71, 0x78);  // 0x5F dithering mode  (78h will cause flicker in 32 gray in 
             -green?)
  85   1          I2CWriteByte(HX8824_ADDR, 0x72, 0x2D);  //
  86   1          I2CWriteByte(HX8824_ADDR, 0x73, 0x36);
  87   1          I2CWriteByte(HX8824_ADDR, 0x74, 0x8D);
  88   1          I2CWriteByte(HX8824_ADDR, 0x75, 0x63);
  89   1          */
  90   1      
  91   1          I2CWriteByte(HX8824_ADDR, 0x71, 0x39);  // 0x5F dithering mode  (78h will cause flicker in 32 gray in 
             -green?)
  92   1          I2CWriteByte(HX8824_ADDR, 0x72, 0x1B);  //
  93   1          I2CWriteByte(HX8824_ADDR, 0x73, 0x93);
  94   1          I2CWriteByte(HX8824_ADDR, 0x74, 0x39);
  95   1          I2CWriteByte(HX8824_ADDR, 0x75, 0x87);
  96   1      
  97   1      //**************** PWM setting ***********************************************
  98   1      /*
  99   1          I2CWriteByte(HX8824_ADDR, 0xD7, 0x02);  // Enable PWM
 100   1          I2CWriteByte(HX8824_ADDR, 0xD8, 0x0D);  // Enable PWM
 101   1          I2CWriteByte(HX8824_ADDR, 0xD9, 0x00);  // Enable PWM
 102   1          DelayX1ms(10);
 103   1          I2CWriteByte(HX8824_ADDR, 0xD6, 0x3E);  // Enable PWM
 104   1      */
 105   1          // Dump to RS232
 106   1          //Puts_UART("HX8824 ID="),HexTobyStr((Byte)TestPattern),Puts_UART(byStr),Puts_UART("\r\n");
 107   1      
 108   1      
 109   1      #if mode6448_8060
                  // Select source from VGA
                  bVideo = 0;
                  S1 = 1;
                  S2 = 0;
                  Mode = 0;
C51 COMPILER V7.07   HX8824                                                                09/26/2006 08:56:42 PAGE 3   

                  I2CWriteByte(HX8824_ADDR,0x00, 0x80);   // input h size
                  I2CWriteByte(HX8824_ADDR,0x01, 0x02);
                  I2CWriteByte(HX8824_ADDR,0x02, 0xE0);   // input v size
                  I2CWriteByte(HX8824_ADDR,0x03, 0x01);
                  I2CWriteByte(HX8824_ADDR,0x10, 0x1C);   // input format select
                  I2CWriteByte(HX8824_ADDR,0x11, 0x04);
                  I2CWriteByte(HX8824_ADDR,0x20, 0xCC);
                  I2CWriteByte(HX8824_ADDR,0x21, 0x0C);
                  I2CWriteByte(HX8824_ADDR,0x22, 0xFF);
                  I2CWriteByte(HX8824_ADDR,0x23, 0x0F);
                  I2CWriteByte(HX8824_ADDR,0x20, 0xCC);
                  I2CWriteByte(HX8824_ADDR,0x21, 0x0C);
                  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, 0xD8);
                  I2CWriteByte(HX8824_ADDR,0xA1, 0x1D);
                  I2CWriteByte(HX8824_ADDR,0xA2, 0x00);
                  I2CWriteByte(HX8824_ADDR,0x90, 0xF8);
                  I2CWriteByte(HX8824_ADDR,0x91, 0x03);
                  I2CWriteByte(HX8824_ADDR,0x92, 0x48);
                  I2CWriteByte(HX8824_ADDR,0x93, 0x00);
                  I2CWriteByte(HX8824_ADDR,0x94, 0x90);
                  I2CWriteByte(HX8824_ADDR,0x95, 0x00);
                  I2CWriteByte(HX8824_ADDR,0x96, 0x20);
                  I2CWriteByte(HX8824_ADDR,0x97, 0x03);
                  I2CWriteByte(HX8824_ADDR,0x98, 0x92);
                  I2CWriteByte(HX8824_ADDR,0x99, 0x02);
                  I2CWriteByte(HX8824_ADDR,0x9A, 0x13);
                  I2CWriteByte(HX8824_ADDR,0x9B, 0x00);
                  I2CWriteByte(HX8824_ADDR,0x9C, 0x26);
                  I2CWriteByte(HX8824_ADDR,0x9D, 0x00);
                  I2CWriteByte(HX8824_ADDR,0x9E, 0x58);
                  I2CWriteByte(HX8824_ADDR,0x9F, 0x02);
                  //*****************  PLL ********************************************************
                  I2CWriteByte(HX8824_ADDR, 0xD0, 0x03);  // P1
                  I2CWriteByte(HX8824_ADDR, 0xD1, 0x04);  // P2
                  I2CWriteByte(HX8824_ADDR, 0xD2, 0x08);  // N
                  I2CWriteByte(HX8824_ADDR, 0xD3, 0x77);  // M: 120-1
                  I2CWriteByte(HX8824_ADDR, 0xD4, 0x00);  // M
              #endif
 159   1      //**************************************************************************************
 160   1      #if mode6448_8048
                  // Select source from VGA
                  bVideo = 0;
                  S1 = 1;
                  S2 = 0;
                  Mode = 1;
                  I2CWriteByte(HX8824_ADDR, 0x10, 0x1C);
                  I2CWriteByte(HX8824_ADDR, 0x11, 0x04);
                  I2CWriteByte(HX8824_ADDR, 0x20, 0x00);
                  I2CWriteByte(HX8824_ADDR, 0x21, 0x10);
                  I2CWriteByte(HX8824_ADDR, 0x22, 0xFF);
                  I2CWriteByte(HX8824_ADDR, 0x23, 0x0F);
                  I2CWriteByte(HX8824_ADDR, 0x20, 0xCC);
                  I2CWriteByte(HX8824_ADDR, 0x21, 0x0C);
                  I2CWriteByte(HX8824_ADDR, 0x22, 0xFF);
                  I2CWriteByte(HX8824_ADDR, 0x23, 0x1F);
                  I2CWriteByte(HX8824_ADDR, 0x24, 0x00);
C51 COMPILER V7.07   HX8824                                                                09/26/2006 08:56:42 PAGE 4   

                  I2CWriteByte(HX8824_ADDR, 0x25, 0x00);
                  I2CWriteByte(HX8824_ADDR, 0x24, 0x00);
                  I2CWriteByte(HX8824_ADDR, 0x25, 0x04);
                  I2CWriteByte(HX8824_ADDR, 0xA0, 0xe2);  // 88  e2
                  I2CWriteByte(HX8824_ADDR, 0xA1, 0x13);  // 17  13
                  I2CWriteByte(HX8824_ADDR, 0xA2, 0x00);
                  I2CWriteByte(HX8824_ADDR, 0x00, 0x80);
                  I2CWriteByte(HX8824_ADDR, 0x01, 0x02);
                  I2CWriteByte(HX8824_ADDR, 0x02, 0xE0);
                  I2CWriteByte(HX8824_ADDR, 0x03, 0x01);
                  I2CWriteByte(HX8824_ADDR, 0x90, 0x20);
                  I2CWriteByte(HX8824_ADDR, 0x91, 0x04);
                  I2CWriteByte(HX8824_ADDR, 0x92, 0x3F);
                  I2CWriteByte(HX8824_ADDR, 0x93, 0x00);
                  I2CWriteByte(HX8824_ADDR, 0x94, 0x7A);
                  I2CWriteByte(HX8824_ADDR, 0x95, 0x00);
                  I2CWriteByte(HX8824_ADDR, 0x96, 0x20);
                  I2CWriteByte(HX8824_ADDR, 0x97, 0x03);
                  I2CWriteByte(HX8824_ADDR, 0x98, 0x0D);
                  I2CWriteByte(HX8824_ADDR, 0x99, 0x02);
                  I2CWriteByte(HX8824_ADDR, 0x9A, 0x03);
                  I2CWriteByte(HX8824_ADDR, 0x9B, 0x00);
                  I2CWriteByte(HX8824_ADDR, 0x9C, 0x20);
                  I2CWriteByte(HX8824_ADDR, 0x9D, 0x00);
                  I2CWriteByte(HX8824_ADDR, 0x9E, 0xE0);
                  I2CWriteByte(HX8824_ADDR, 0x9F, 0x01);
                  //**************** 0x10-->0x0C or 0x08(DE only, no VS & HS)**********************
              //    I2CWriteByte(HX8824_ADDR, 0x14, 0x00);   // 0x21~0x23  will be ok
              //    I2CWriteByte(HX8824_ADDR, 0x15, 0x00);
                  //*****************  PLL ********************************************************
                  I2CWriteByte(HX8824_ADDR, 0xD0, 0x03);    // P1
                  I2CWriteByte(HX8824_ADDR, 0xD1, 0x04);    // P2
                  I2CWriteByte(HX8824_ADDR, 0xD2, 0x08);    // N

⌨️ 快捷键说明

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