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

📄 t100.lst

📁 非常经典的一款LCD单芯片方案的驱动代码.(T100)
💻 LST
📖 第 1 页 / 共 5 页
字号:
 777   2                           break;
 778   2                      case REMOTE_KEY_VO_DEC:
 779   2                           bTemp=IRVolUpKeyCtrl();
 780   2                           break;
 781   2                      case REMOTE_KEY_DEC_P:
 782   2                           bTemp=IRDownKeyCtrl();
 783   2                           break;*/
 784   2      
 785   2      
 786   2              }
 787   1                      if(bTemp)
 788   1                              OSDEventMgr();
*** WARNING C206 IN LINE 788 OF C:\WAVE6000\T100_S~1\T100.C: 'OSDEventMgr': missing function-prototype
 789   1      
 790   1      
 791   1              EX1=1;
 792   1      }
 793          void IRSourceSelCtrl(void)
 794          {
C51 COMPILER V7.06   T100                                                                  10/30/2005 21:46:44 PAGE 14  

 795   1      
 796   1              if(cSource>=5)cSource = 1; //Kuo
 797   1              cSource++;
 798   1              ClosePanel();
 799   1              //I2CWriteByte(EEPVIDEOBLOCK, idVIDEO_SOURCE_INDEX,m_cSource);
 800   1              SetSource();
 801   1              Delay_ms(25);
 802   1              OpenPanel();
 803   1              //OSDShowSource();
 804   1      //      return 1;
 805   1      }
 806          void IRSCALEREvent(void)
 807          {
 808   1             bFULL_43=!bFULL_43;
 809   1             SetMode();
 810   1             Delay_ms(25);
 811   1             OpenPanel();
 812   1      //   OSDShowRatio();
 813   1         //return 1;
 814   1      }
 815          void IRDismodeEvent(void)
 816          {
 817   1              uCHAR cTemp;
 818   1              if(bUP_DOWN&bLEFT_RIGHT)
 819   1              {
 820   2                bUP_DOWN= 1;      //0:Down to Up      1:Up to Down
 821   2                bLEFT_RIGHT= 0;      //0:Right to Left     1:Left to Right
 822   2                cTemp=UD_LR;
 823   2              }
 824   1              else if(bUP_DOWN&!bLEFT_RIGHT)
 825   1              {
 826   2                 bUP_DOWN= 0;      //0:Down to Up     1:Up to Down
 827   2                 bLEFT_RIGHT= 1;
 828   2                 cTemp=UD_RL;
 829   2              }
 830   1              else if(!bUP_DOWN&bLEFT_RIGHT)
 831   1              {
 832   2                 bUP_DOWN= 0;      //0:Down to Up     1:Up to Down
 833   2                 bLEFT_RIGHT= 0;
 834   2                 cTemp=DU_LR;
 835   2              }
 836   1              else if(!bUP_DOWN&!bLEFT_RIGHT)
 837   1              {  bUP_DOWN= 1;      //0:Down to Up     1:Up to Down
 838   2                 bLEFT_RIGHT= 1;
 839   2                 cTemp=DU_RL;
 840   2              }
 841   1              I2CWriteByte(TW100,0xe1,cTemp);
 842   1      }
 843          //****************************************************************
 844          #ifdef OSD_EN
 845          void OSDShowLine(uCHAR *string,uCHAR x,uCHAR y,uCHAR cColor);
 846          void OSDDrawGauge(uCHAR cVal, uCHAR x, uCHAR y, uCHAR cColor);
 847          void LoadFont(void);
 848          void LoadMenu(void);
 849          void ShowOSDData(void);
 850          void LoadData(void);
 851          void SaveData(void);
 852          void InitOSD(void)
 853          {
 854   1          LoadFont();
 855   1          LoadMenu();
 856   1          LoadData();
C51 COMPILER V7.06   T100                                                                  10/30/2005 21:46:44 PAGE 15  

 857   1          ShowOSDData();
 858   1          OSDDisable();
 859   1      }
 860          void LoadFont(void)
 861          {
 862   1              unsigned int i;
 863   1              StartCondition();
 864   1              Send_Byte(0x50);
 865   1              Send_Byte(0xA4);
 866   1              for(i=0; i<35*18; i++){
 867   2                      Send_Byte(font_00[2*i]);
 868   2                      Send_Byte(font_00[2*i+1]);
 869   2                     }
 870   1         //0xc00==1024*3;
 871   1              for(; i<0x360; i++){
 872   2                      Send_Byte(0x00);
 873   2                      Send_Byte(0x00);
 874   2              }//*/
 875   1              StopCondition();
 876   1      }
 877          void LoadMenu(void)
 878          {
 879   1          uCHAR i;
 880   1          for(i=0;i<4;i++)
 881   1          {
 882   2              OSDShowLine(iBlankLine,0,i,COL_NORMAL);
 883   2          }
 884   1              OSDShowLine(iBright_ICON,0,0,COL_NORMAL);
 885   1      
 886   1              OSDShowLine(iColor_ICON,0,1,COL_NORMAL);
 887   1      
 888   1              OSDShowLine(iScreen_ICON,0,2,COL_NORMAL);
 889   1      
 890   1              OSDShowLine(iScreen_ICON,0,3,COL_NORMAL);
 891   1      
 892   1              OSDShowLine(iFULL_ICON,LINE_LENGTH-2,3,COL_NORMAL);
 893   1      
 894   1              OSDShowLine(i4_3_ICON,LINE_LENGTH-3,2,COL_NORMAL);
 895   1                        OSDDrawGauge(cColor,3,1,COL_GAUGE);
 896   1                        OSDDrawGauge(cBright,3,0,COL_GAUGE);
 897   1      }
 898          void ShowOSDData(void)
 899          {
 900   1          switch(cOSDFunc)
 901   1          {
 902   2              case 1:
 903   2                        OSDDrawGauge(cBright,3,0,COL_GAUGE);
 904   2                      break;
 905   2              case 2:
 906   2                        OSDDrawGauge(cColor,3,1,COL_GAUGE);
 907   2                      break;
 908   2              case 3: break;
 909   2              }
 910   1      }
 911          
 912          void OSDSetRamAddr(int address)
 913          {
 914   1              I2CWriteByte(TW100,0xA3,(uCHAR)(address>>8));
 915   1              I2CWriteByte(TW100,0xA2,(uCHAR)(address & 0xff));
 916   1      }
 917          void OSDShowLine(uCHAR *string,uCHAR x,uCHAR y,uCHAR cColor)
 918          {
C51 COMPILER V7.06   T100                                                                  10/30/2005 21:46:44 PAGE 16  

 919   1              if((x < 30) && ( y < 0x28))
 920   1              {
 921   2              OSDSetRamAddr(MENU_START_ADDR+((int)y << 5)+x);
 922   2              StartCondition();
 923   2              Send_Byte(0x50);
 924   2              Send_Byte(0xA4);
 925   2              while((*string) != EOL && (x < LINE_LENGTH))
 926   2              {
 927   3                      Send_Byte(*string++);
 928   3                      Send_Byte(cColor );
 929   3                      x++;
 930   3                      }
 931   2              StopCondition();
 932   2              }
 933   1      }
 934          
 935          void OSDDrawGauge(uCHAR cVal,  uCHAR x, uCHAR y, uCHAR cColor)
 936          {
 937   1           uCHAR cTemp1,cTemp2,i=8;
 938   1           cTemp1=cVal/2;
 939   1           cTemp2=cVal%2;
 940   1           OSDSetRamAddr(MENU_START_ADDR+((int)y << 5)+x);
 941   1              StartCondition();
 942   1              Send_Byte(0x50);
 943   1              Send_Byte(0xA4);
 944   1           while(i)
 945   1           {
 946   2              if(cTemp1==0)
 947   2              {
 948   3                if(i==8)Send_Byte(0x0A+cTemp2);
 949   3                else if(i==1)Send_Byte(0x10+cTemp2);
 950   3                else Send_Byte(0x0D+cTemp2);
 951   3               Send_Byte(cColor);
 952   3                i--;
 953   3                break;
 954   3               }
 955   2               else
 956   2               {
 957   3                if(i==8)Send_Byte(0x0C);
 958   3                else if(i==1)Send_Byte(0x12);
 959   3                else Send_Byte(0x0F);
 960   3               }
 961   2               Send_Byte(cColor);
 962   2               cTemp1--;
 963   2               i--;
 964   2            }
 965   1            while(i)
 966   1            {
 967   2               if(i>1)Send_Byte(0x0D);
 968   2               else   Send_Byte(0x10);
 969   2               Send_Byte(cColor);
 970   2               i--;
 971   2            }
 972   1            StopCondition();
 973   1            //Num
 974   1           cTemp1=cVal/10;
 975   1           cTemp2=cVal%10;
 976   1           i=cVal/10;
 977   1      /*     cTemp1=(cVal%100)/10;
 978   1           cTemp2=cVal%10;//*/
 979   1              OSDSetRamAddr(MENU_START_ADDR+((int)(y) << 5)+(LINE_LENGTH-2));
 980   1              StartCondition();
C51 COMPILER V7.06   T100                                                                  10/30/2005 21:46:44 PAGE 17  

 981   1              Send_Byte(0x50);
 982   1              Send_Byte(0xA4);
 983   1              if(i)Send_Byte(i+0x13);
 984   1              else Send_Byte(BLANK);
 985   1               Send_Byte(cColor);
 986   1              Send_Byte(cTemp2+0x13);
 987   1               Send_Byte(cColor);
 988   1            StopCondition();
 989   1      
 990   1      }
 991          void  OSDDisable(void)
 992          {
 993   1         I2CWriteTbl(OSDDisableTbl);
 994   1      }
 995          void OSDEnable(void)
 996          {
 997   1         uCHAR cTemp[8];
 998   1         cTemp[0]=TW100;
 999   1         cTemp[1]=5;
1000   1         cTemp[2]=0xa0;
1001   1         cTemp[3]=3;
1002   1         cTemp[4]=Y_INC;
1003   1         cTemp[5]=0x05;
1004   1         cTemp[6]=23+(cOSDFunc-1);
1005   1         if((cOSDFunc==3)&&bFULL_43)cTemp[6]+=1;
1006   1         cTemp[7]=EOT;
1007   1         I2CWriteTbl(cTemp);
1008   1         cTemp[5]=0x1E;
1009   1         I2CWriteTbl(cTemp);
1010   1         I2CWriteTbl(OSDEnableTbl);
1011   1      }
1012          void OSDCtrl(char cDir)
1013          {
1014   1              uCHAR cTemp;
1015   1              switch(cOSDFunc)
1016   1              {
1017   2                      case 0: OSDDisable();return;
1018   2                      case 1:
1019   2                            if((cBright==0x10)&&(cDir==1))return;
1020   2                            if((cBright==0x00)&&(cDir==-1))return;
1021   2                            cBright+=cDir;
1022   2                                               if(cBright<16)cTemp=cBright*16;
1023   2                                               else cTemp=0xff;
1024   2                            I2CWriteByte(TW100,0x69,cTemp);
1025   2                            break;
1026   2                      case 2:
1027   2                            if((cColor==0xfc)&&(cDir==1))return;
1028   2                            if((cColor==0x00)&&(cDir==-1))return;
1029   2                            cColor+=cDir*4;
1030   2                                               if(cColor<16)cTemp=cColor*16;
1031   2                                               else cTemp=0xff;
1032   2                            I2CWriteByte(TW100,0x6c,cTemp);
1033   2                            break;
1034   2                      case 3:
1035   2                            if(Repeat_Times==0)return;
1036   2                            if(cDir)
1037   2                            {
1038   3                                bFULL_43=!bFULL_43;

⌨️ 快捷键说明

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