?? t100.lst
字號:
C51 COMPILER V7.06 T100 07/19/2005 18:02:54 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE T100
OBJECT MODULE PLACED IN T100.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE T100.c BROWSE DEBUG OBJECTEXTEND
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 #include "T100Data_PVI8.h"
19
20
21 #ifdef OSD_EN
22 #include "OSDFont1218_new.h"
23 #include "OSD1218_new.h"
24 #endif
25
26 sbit T100_RESET = P1^4;
27 sbit SCL = P1^6;//P1^6;
28 sbit SDA = P1^7;//P1^7;
29 sbit BL_EN = P0^7;
30 #if 1
31 #define kyKEY_MSK 0x81
32 #define KEYPORT P0
33
34 #define kyMENU 0x08
35 #define kyDEC 0x04
36 #define kyINC 0x02
37 #define kySOURCE 0x10
38 #define kyUD_LR 0x20
39 #define kyFULL_43 0x40
40 #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 //*/
51 /*sbit kyMENU = P0^1;
52 sbit kyDEC = P0^2;
53 sbit kyINC = P0^3;
54 sbit kySOURCE = P0^4;
55 sbit kyUD_LR = P0^5;
C51 COMPILER V7.06 T100 07/19/2005 18:02:54 PAGE 2
56 sbit kyFULL_43 = P0^6;//*/
57 bit ir_enable =0;
58 bit bNTSC_PAL = 0; //0:PAL 1:NTSC
59 bit bFULL_43 = 1; //0:4:3 1:FULL
60 bit bUP_DOWN = 1; //0:Down to Up 1:Up to Down
61 bit bLEFT_RIGHT = 1; //0:Right to Left 1:Left to Right
62 uCHAR cSource = 2; //2-4:CVBS2-4 5:S-Video 6:ITU656
63 uCHAR cStandard = 0xff; //0:PAL 4:NTSC
64 uCHAR c60HZ_Mode=0;
65 uCHAR c50HZ_Mode=0;
66 uCHAR cKey_Curr,cKey_Pre;
67 uCHAR ir_data;
68 uCHAR Repeat_Times;
69 void Initial(void);
70 void Delay_ms(uCHAR);
71 void InitT100(void);
72 void ClosePanel(void);
73 void OpenPanel(void);
74 void DetectNTSC_PAL(void);
75 void SetSource(void);
76 void SetMode(void);
77 void SetUD_LR(void);
78 void I2CWriteTbl(char*);
79 uCHAR I2CReadByte(uCHAR, uCHAR);
80 uCHAR I2CWriteByte(uCHAR,uCHAR,uCHAR);
81 void kyKeypad(void);
82 #ifdef OSD_EN
83 void InitOSD(void);
84 void OSDDisable(void);
85 void OSDEnable(void);
86 void OSDCtrl(char cDir);
87 uCHAR cLanguage=0; //0:English 1:French 2:German 3:Spanish 4:Japenese 5:Russian
88 uCHAR cOSDFunc=1; //0:OSD Off 1:Bright 2:Color 3:Screen
89 uCHAR cBright,cColor=COLOR;
90
91 #endif
92 void main(void)
93 {
94 1 Initial();
95 1 while(1)
96 1 {
97 2 //kyKeypad();
98 2 DetectNTSC_PAL();
99 2 // #ifdef OSD_EN
100 2 // OSDEnable();
101 2 // #endif
102 2
103 2 // OSDEnable();
104 2 }//while
105 1 }//main
106
107 void Initial(void)
108 {
109 1 //Initial 8051
110 1 P0=0xff;
111 1 P1=0xff;
112 1 P2=0xff;
113 1 P3=0xff;
114 1 //8051Register Set
115 1 IE = 0; // disable all interrupt
116 1 TMOD = 0x11; // Timer1 Mode 1, Timer0 Mode 1;
117 1 //TMOD = 0x01; // Timer0 Mode 1;
C51 COMPILER V7.06 T100 07/19/2005 18:02:54 PAGE 3
118 1 EX0 = 0; // disable external interrupt 0, IE[0]
119 1 EX1 = 0;
120 1 //ET0 = 1; // enable bTimer 0
121 1 //IT0 = 1; // falling endge generate interrupt, TCON[0]
122 1 INT0 = 1;
123 1 IT1 = 1; // falling endge generate interrupt, TCON[0]
124 1 INT1 = 1;
125 1
126 1 //Initial T100
127 1 T100_RESET = 0 ;
128 1 Delay_ms(50); //50
129 1 T100_RESET = 1 ;
130 1 Delay_ms(20);
131 1 InitT100();
132 1 // SetUD_LR();
133 1 #ifdef OSD_EN
134 1 InitOSD();
135 1 #endif
136 1 }//Initial
137
138 void Delay_ms(uCHAR cTime)
139 {
140 1 uCHAR i,j;
141 1 for(i=0;i<cTime;i++)
142 1 {
143 2 for(j=0;j<250;j++)_nop_();
144 2 for(j=0;j<250;j++)_nop_();
145 2 for(j=0;j<250;j++)_nop_();
146 2 for(j=0;j<250;j++)_nop_();
147 2 }//For
148 1 }//Delay
149
150 void InitT100(void)
151 {
152 1 I2CWriteTbl(TCONData);
153 1 ClosePanel();
154 1 I2CWriteTbl(GAMMAData);
155 1 I2CWriteTbl(T100Init);
156 1 I2CWriteTbl(FilterData);
157 1 SetMode();
158 1 SetSource();
159 1 SetUD_LR();
160 1 // OpenPanel();
161 1 }//InitT100
162 void ClosePanel(void)
163 {
164 1 BL_EN=1;
165 1 I2CWriteByte(TW100, 0xC2, I2CReadByte(TW100, 0xC2)|0x12);
166 1 I2CWriteByte(TW100, 0x91, 0x87);//I2CReadByte(TW101, PATTERN_CTRL)|0x80); //Enable Frame Background Colo
-r
167 1 }
168 void OpenPanel(void)
169 {
170 1 I2CWriteByte(TW100, 0xC2, I2CReadByte(TW100, 0xC2)&0xED);
171 1 I2CWriteByte(TW100, 0x91, I2CReadByte(TW100, 0x91)&~0x80); //Enable Frame Background Color
172 1 Delay_ms(10);
173 1 BL_EN=0;
174 1 }
175 void DetectNTSC_PAL(void)
176 {
177 1 static int wBuff=0x000;
178 1 uCHAR cBuff[2];
C51 COMPILER V7.06 T100 07/19/2005 18:02:54 PAGE 4
179 1 wBuff+=1;
180 1 if(wBuff==0x01)
181 1 {
182 2 wBuff=0x00;
183 2 for(cBuff[1]=0;cBuff[1]<1;cBuff[1]++)
184 2 {
185 3 cBuff[0] = I2CReadByte(TW100, 0x5A)&0xe0;
186 3 if(cBuff[0]==cStandard)break;
187 3 // Delay_ms(10);
188 3 if(cBuff[0]>=0x40)
189 3 {
190 4 ClosePanel();
191 4 return;
192 4 } //*/
193 3 }
194 2 #ifdef ESS
195 2 if((bNTSC_PAL)&&(cSource==6))
196 2 {
197 3 cBuff[1] = I2CReadByte(TW100, 0x82);
198 3 if(cBuff[1]>0x90)I2CWriteByte(TW100+2, 0xd3,0x06);
199 3 else if(cBuff[1]<0x78)I2CWriteByte(TW100+2, 0xd3,0x04);
200 3 }
201 2 if((!bNTSC_PAL)&&(cSource==6))
202 2 {
203 3 cBuff[1] = I2CReadByte(TW100, 0x82);
204 3 if(cBuff[1]>0xb0)I2CWriteByte(TW100+2, 0xd3,0x0b);
205 3 else if(cBuff[1]<0x78)I2CWriteByte(TW100+2, 0xd3,0x04);
206 3 }
207 2 #endif
208 2 if(cBuff[0]!=cStandard)
209 2 {
210 3 ClosePanel();
211 3 cStandard=cBuff[0];
212 3 if(cStandard)
213 3 {
214 4 bNTSC_PAL = 0;
215 4 }
216 3 else bNTSC_PAL = 1;
217 3 I2CWriteByte(TW100,0x0F,0x70);
218 3 I2CWriteByte(TW100+4,0x3f,0x01);
219 3 SetMode();
220 3 SetSource();
221 3 // Delay_ms(25);
222 3 I2CWriteByte(TW100+4,0x3f,0x00);
223 3 OpenPanel();
224 3 // I2CWriteByte(TW100,0x0F,0x00);
225 3 Delay_ms(10);
226 3 }
227 2 else OpenPanel();
228 2 }
229 1
230 1 }
231 void SetSource(void)
232 {
233 1 switch(cSource)
234 1 {
235 2 case 2: I2CWriteTbl(CVBS2Data);
236 2 break;
237 2 case 3: I2CWriteTbl(CVBS3Data);
238 2 break;
239 2 case 4: I2CWriteTbl(CVBS4Data);
240 2 break;
C51 COMPILER V7.06 T100 07/19/2005 18:02:54 PAGE 5
241 2 case 5: I2CWriteTbl(SVIDEOData);
242 2 break;
243 2 case 6: I2CWriteTbl(ITU656Data);
244 2 }
245 1 }
246 void SetMode(void)//N/P,Full/4:3
247 {
248 1 // uCHAR i;
249 1 if(bNTSC_PAL)//NTSC&&FULL
250 1 {
251 2 I2CWriteTbl(NTSC_FULLData);
252 2 if((!bFULL_43))//NTSC&&4:3
253 2 I2CWriteTbl(NTSC_43Data);
254 2 switch(c60HZ_Mode)
255 2 {
256 3 case 1: I2CWriteTbl(NTSC443Data);
257 3 break;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -