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

📄 function.lst

📁 一个LCD TV的源程序, 用的是realtek的IC
💻 LST
📖 第 1 页 / 共 5 页
字号:
 696          
 697          /* -------------------------------------------------------------------
 698            Name    : Gamma adjust
 699            Purpose :
 700            Passed  :
 701            Returns :
 702            Notes   :
 703            ------------------------------------------------------------------- */
 704          void Gamma_Adj()
 705          {
 706   1          Word i;
 707   1      
 708   1          for(i = 0; i <= 255; i++)
 709   1          {
 710   2              I2CWriteByte(HX8824_ADDR, 0x51, i);
 711   2              I2CWriteByte(HX8824_ADDR, 0x52, i); // red
 712   2              I2CWriteByte(HX8824_ADDR, 0x53, i); // blue
 713   2              I2CWriteByte(HX8824_ADDR, 0x54, i);     // green
 714   2          }
 715   1          I2CWriteByte(HX8824_ADDR, HX8824_GAMMA_EN, 0x00);
 716   1      }
 717          
 718          /* -------------------------------------------------------------------
 719            Name    : NTSC Vertical scaling
 720            Purpose : for stupid use
 721            Passed  :
 722            Returns :
 723            Notes   :
 724            ------------------------------------------------------------------- */
 725          
 726          void NTSC_Vertical_Scaling(Byte S)
 727          {
 728   1          Byte i;
C51 COMPILER V7.07   FUNCTION                                                              09/26/2006 08:56:43 PAGE 13  

 729   1          code unsigned char V_Scaling[2][53][2] =
 730   1          {{{0x00, 0xD0}, {0x01, 0x02}, {0x02, 0xF0}, {0x03, 0x00}, {0x10, 0x1C}, {0x11, 0x0F}, {0x12, 0x7A},
 731   1            {0x13, 0x00}, {0x14, 0x00}, {0x15, 0x00}, {0x16, 0x00}, {0x17, 0x00}, {0x19, 0x00}, {0x20, 0x66},
 732   1            {0x21, 0x06}, {0x22, 0xFF}, {0x23, 0x0F}, {0x20, 0x65}, {0x21, 0x0E}, {0x22, 0xFF}, {0x23, 0x1F},
 733   1            {0x24, 0x00}, {0x25, 0x00}, {0x24, 0x00}, {0x25, 0x04}, {0x27, 0x01}, {0xA0, 0x00}, {0xA1, 0x05},
 734   1           // {0xA2, 0x00}, {0x90, 0xF8}, {0x91, 0x03}, {0x92, 0x48}, {0x93, 0x00}, {0x94, 0x90}, {0x95, 0x00}, 
             - // 11/02 become brighter
 735   1            {0xA2, 0x00}, {0x90, 0xF7}, {0x91, 0x03}, {0x92, 0x48}, {0x93, 0x00}, {0x94, 0x90}, {0x95, 0x00},
 736   1            {0x96, 0x20}, {0x97, 0x03}, {0x98, 0x92}, {0x99, 0x02}, {0x9A, 0x13}, {0x9B, 0x00}, {0x9C, 0x26},
 737   1            {0x9D, 0x00}, {0x9E, 0x58}, {0x9F, 0x02}, {0xD0, 0x08}, {0xD1, 0x09}, {0xD2, 0x09}, {0xD3, 0x2B},
 738   1            {0xD4, 0x01}, {0x29, 0x00}, {0x81, 0x3C}, {0x80, 0x00}
 739   1           },
 740   1           {{0x00, 0xD0}, {0x01, 0x02}, {0x02, 0xF3}, {0x03, 0x00}, {0x10, 0x1C}, {0x11, 0x0F}, {0x12, 0x7A},
 741   1            {0x13, 0x00}, {0x14, 0x00}, {0x15, 0x00}, {0x16, 0x00}, {0x17, 0x00}, {0x19, 0x00}, {0x20, 0x19},
 742   1            {0x21, 0x08}, {0x22, 0xFF}, {0x23, 0x0F}, {0x20, 0x65}, {0x21, 0x0E}, {0x22, 0xFF}, {0x23, 0x1F},
 743   1            {0x24, 0x00}, {0x25, 0x00}, {0x24, 0x00}, {0x25, 0x04}, {0x27, 0x01}, {0xA0, 0x34}, {0xA1, 0x09},//B
             -4,11,00
 744   1            {0xA2, 0x00}, {0x90, 0x2F}, {0x91, 0x04}, {0x92, 0x35}, {0x93, 0x00}, {0x94, 0x70}, {0x95, 0x00},
 745   1            {0x96, 0x20}, {0x97, 0x03}, {0x98, 0x0D}, {0x99, 0x02}, {0x9A, 0x03}, {0x9B, 0x00}, {0x9C, 0x1D},
 746   1            {0x9D, 0x00}, {0x9E, 0xE0}, {0x9F, 0x01}, {0xD0, 0x08}, {0xD1, 0x09}, {0xD2, 0x07}, {0xD3, 0xC7},
 747   1            {0xD4, 0x00}, {0x29, 0x00}, {0x81, 0x04}, {0x80, 0x00}
 748   1           }};
 749   1      
 750   1          for(i = 0; i < 53; i++)
 751   1            I2CWriteByte(HX8824_ADDR, V_Scaling[S][i][0], V_Scaling[S][i][1]);
 752   1      }
 753          
 754          /* -------------------------------------------------------------------
 755            Name    : PAL Vertical scaling
 756            Purpose : for stupid use
 757            Passed  :
 758            Returns :
 759            Notes   :
 760            ------------------------------------------------------------------- */
 761          
 762          void PAL_Vertical_Scaling(Byte S)
 763          {
 764   1          Byte i;
 765   1          code unsigned char V_Scaling[2][53][2] =
 766   1          {// 8 mode7228_8060
 767   1           {{0x00, 0xD0}, {0x01, 0x02}, {0x02, 0x20}, {0x03, 0x01}, {0x10, 0x1C}, {0x11, 0x0F}, {0x12, 0x7A},
 768   1            {0x13, 0x00}, {0x14, 0x00}, {0x15, 0x00}, {0x16, 0x00}, {0x17, 0x00}, {0x19, 0x02}, {0x20, 0xAA},
 769   1            {0x21, 0x07}, {0x22, 0xFF}, {0x23, 0x0F}, {0x20, 0x65}, {0x21, 0x0E}, {0x22, 0xFF}, {0x23, 0x1F},
 770   1            {0x24, 0x00}, {0x25, 0x00}, {0x24, 0x00}, {0x25, 0x04}, {0x27, 0x01}, {0xA0, 0x00}, {0xA1, 0x2A},//0
             -0,2A,00
 771   1            {0xA2, 0x00}, {0x90, 0xF8}, {0x91, 0x03}, {0x92, 0x48}, {0x93, 0x00}, {0x94, 0x90}, {0x95, 0x00},
 772   1            {0x96, 0x20}, {0x97, 0x03}, {0x98, 0x92}, {0x99, 0x02}, {0x9A, 0x13}, {0x9B, 0x00}, {0x9C, 0x26},
 773   1            {0x9D, 0x00}, {0x9E, 0x58}, {0x9F, 0x02}, {0xD0, 0x0B}, {0xD1, 0x0C}, {0xD2, 0x09}, {0xD3, 0x4C},
 774   1            {0xD4, 0x01}, {0x29, 0x00}, {0x81, 0x3C}, {0x80, 0x00}
 775   1           },
 776   1           // 9 mode7228_8048
 777   1           {{0x00, 0xD0}, {0x01, 0x02}, {0x02, 0x20}, {0x03, 0x01}, {0x10, 0x1C}, {0x11, 0x0F}, {0x12, 0xBB},
 778   1            {0x13, 0x00}, {0x14, 0x00}, {0x15, 0x00}, {0x16, 0x00}, {0x17, 0x00}, {0x19, 0x02}, {0x20, 0x96},
 779   1            {0x21, 0x09}, {0x22, 0xFF}, {0x23, 0x0F}, {0x20, 0x65}, {0x21, 0x0E}, {0x22, 0xFF}, {0x23, 0x1F},
 780   1            {0x24, 0x00}, {0x25, 0x00}, {0x24, 0x00}, {0x25, 0x04}, {0x27, 0x01}, {0xA0, 0x44}, {0xA1, 0x1B},
 781   1            {0xA2, 0x00}, {0x90, 0x25}, {0x91, 0x04}, {0x92, 0x35}, {0x93, 0x00}, {0x94, 0x70}, {0x95, 0x00},
 782   1            {0x96, 0x20}, {0x97, 0x03}, {0x98, 0x0D}, {0x99, 0x02}, {0x9A, 0x03}, {0x9B, 0x00}, {0x9C, 0x1F},
 783   1            {0x9D, 0x00}, {0x9E, 0xE0}, {0x9F, 0x01}, {0xD0, 0x0D}, {0xD1, 0x0E}, {0xD2, 0x07}, {0xD3, 0x02},
 784   1            {0xD4, 0x01}, {0x29, 0x00}, {0x81, 0x02}, {0x80, 0x00}
 785   1           }
 786   1          };
 787   1          for(i = 0; i < 53; i++)
C51 COMPILER V7.07   FUNCTION                                                              09/26/2006 08:56:43 PAGE 14  

 788   1            I2CWriteByte(HX8824_ADDR, V_Scaling[S][i][0], V_Scaling[S][i][1]);
 789   1      }
 790          /* -------------------------------------------------------------------
 791            Name    : Video_Detect
 792            Purpose :
 793            Passed  :
 794            Returns :
 795            Notes   :
 796            ------------------------------------------------------------------- */
 797          void Video_Detect(void)
 798          {
 799   1        Byte i, temp1;
 800   1      //  Byte temp2;
 801   1      
 802   1        Old_Status = New_Status;
 803   1      
 804   1        for(i = 0;i < 100;i++)
 805   1        {
 806   2          /*
 807   2          if(i==4)
 808   2            i=5;
 809   2          I2CWriteByte(SAA7114_ADDR, 0x0e, I2CReadByte(SAA7114_ADDR, 0x0e&0x8f)|(i*16));
 810   2          I2CWriteByte(SAA7114_ADDR, 0x0e, I2CReadByte(SAA7114_ADDR, 0x0e)&0x7f);
 811   2          I2CWriteByte(SAA7114_ADDR, 0x0e, I2CReadByte(SAA7114_ADDR, 0x0e)|0x80);
 812   2          DelayX1ms(5);
 813   2          */
 814   2          //do
 815   2          //{
 816   2      //        do
 817   2      //        {
 818   2                  temp1= I2CReadByte(SAA7114_ADDR, 0x1F);
 819   2      //            DelayX10ms(2);
 820   2      //            temp2= I2CReadByte(SAA7114_ADDR, 0x1F);
 821   2      //       }while(temp1!=temp2);
 822   2          //}while((temp1 & 0x01) != 0x01);
 823   2        }
 824   1        if((temp1 & 0x40) == 0x00)  // video locked
 825   1        {
 826   2            bVideo_Status = 1;
 827   2            if((temp1 & 0x20) == 0x00)
 828   2            {
 829   3                b60hz = 0;                // PAL
 830   3                //Puts_UART("PAL!\r\n");
 831   3            }
 832   2            else if((temp1 & 0x20) == 0x20)
 833   2            {
 834   3                b60hz = 1;                // NTSC
 835   3                //Puts_UART("NTSC!\r\n");
 836   3            }
 837   2            New_Status = b60hz;
 838   2        }
 839   1        else
 840   1        {
 841   2                New_Status = 0x03;            // no signal
 842   2            bVideo_Status = 0;            // Video unlocked
 843   2        }
 844   1        if(New_Status == Old_Status)
 845   1        {
 846   2            Status_Change = 0;
 847   2            //Puts_UART("Status No Change!\r\n");
 848   2        }
 849   1        else
C51 COMPILER V7.07   FUNCTION                                                              09/26/2006 08:56:43 PAGE 15  

 850   1        {
 851   2            Status_Change = 1;
 852   2            Puts_UART("Video Status Change!\r\n");
 853   2        }
 854   1      }
 855          
 856          /* -------------------------------------------------------------------
 857            Name    : VGA_Detect
 858            Purpose :
 859            Passed  :
 860            Returns :
 861            Notes   :
 862            ------------------------------------------------------------------- */
 863          void VGA_Detect()
 864          {
 865   1          pre_status = now_status;
 866   1          now_status = 0x01 & SCDT;
 867   1          Puts_UART("VGA now Status = ");HexTobyStr(now_status);Puts_UART(byStr);Puts_UART("\r\n");
 868   1          //Puts_UART("VGA pre Status = ");HexTobyStr(pre_status);Puts_UART(byStr);Puts_UART("\r\n");
 869   1          if(pre_status == now_status)
 870   1          {
 871   2              Status_Change = 0;
 872   2              //Puts_UART("VGA Status No Change!\r\n");
 873   2              if(SCDT)
 874   2                  bVGA_Status = 1;
 875   2              else
 876   2                  bVGA_Status = 0;
 877   2          }
 878   1          else
 879   1          {
 880   2              Status_Change = 1;
 881   2              Puts_UART("VGA Status Change!\r\n");
 882   2              if(SCDT)
 883   2                  bVGA_Status = 1;
 884   2              else
 885   2                  bVGA_Status = 0;
 886   2          }
 887   1          pre_status = 0x01 & SCDT;
 888   1          Puts_UART("VGA pre Status = ");HexTobyStr(pre_status);Puts_UART(byStr);Puts_UART("\r\n");
 889   1      }
 890          
 891          /* -------------------------------------------------------------------
 892            Name    : Stand_alone_mode
 893            Purpose :
 894            Passed  :
 895            Returns :
 896            Notes   :
 897            ------------------------------------------------------------------- */
 898          void Stand_alone_mode()
 899          {
 900   1          Byte i;
 901   1          for(i = 0; i < 53; i++)
 902   1          {
 903   2              I2CWriteByte(HX8824_ADDR, ModeTbl[5][i][0], ModeTbl[5][i][1]);
 904   2          }
 905   1          I2CWriteByte(HX8824_ADDR, 0xA0, 0xFF);
 906   1          I2CWriteByte(HX8824_ADDR, 0xA1, 0xFF);
 907   1          I2CWriteByte(HX8824_ADDR, 0xA2, 0xFF);
 908   1      }
 909          /* -------------------------------------------------------------------
 910            Name    : Display
 911            Purpose :
C51 COMPILER V7.07   FUNCTION                                                              09/26/2006 08:56:43 PAGE 16  

 912            Passed  :
 913            Returns :
 914            Notes   :
 915            ------------------------------------------------------------------- */
 916          void Display()
 917          {
 918   1          Byte i;
 919   1          for(i = 0; i < 53; i++)
 920   1             {
 921   2                 I2CWriteByte(HX8824_ADDR, ModeTbl[Mode][i][0], ModeTbl[Mode][i][1]);
 922   2             }
 923   1          Puts_UART("Mode = ");HexTobyStr(Mode);Puts_UART(byStr);Puts_UART("\r\n");
 924   1          bNo_Signal = 0;
 925   1      }
 926          /* -------------------------------------------------------------------
 927            Name    : Switch_Input
 928            Purpose :
 929            Passed  :

⌨️ 快捷键说明

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