📄 main.lst
字号:
C51 COMPILER V7.00 MAIN 03/04/2004 16:28:50 PAGE 1
C51 COMPILER V7.00, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN Main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Main.c BROWSE MODA2 DEBUG OBJECTEXTEND
stmt level source
1 //===================================================================================
2 //
3 // MAIN.C
4 // Author: Duran Liu
5 // Date: 06\12\03
6 // Version: 1.0
7 // Copyright: AUO
8 //===================================================================================
9
10 #include "include.h"
11 #include "MAIN.h"
12
13 BYTE cou;
14 BYTE OSDStatus;
15 BYTE VSCount,VSBuf;
16 bit OSDEND;
17
18
19 void main(void)
20 {
21 1 EA=1;
22 1 EnableINT0;// EX0=1,IE0=1;
23 1 EnableINT1;// EX1=1,IE1=1;
24 1 TMOD=0x21;
25 1 TR0=0;
26 1 TL0=(65536-200)%256,TH0=(65536-200)/256;
27 1 ET0=1,PT0=1;
28 1 IMPSR=0x00;//page 0.
29 1 VSCount=0;//,VSFlag=1;
30 1 MemInit();//For memory control
31 1 NP=1;//The initiation is NTSC mode.
32 1 //NP=0;//The initiation is PAL mode.
33 1 ModeBuf=P1;
34 1 //************* For IIC ************************************
35 1 InitIIC;
36 1 DelayX1ms(5);
37 1 //**********************************************************
38 1
39 1 //************* For EEPROM ************************************
40 1 //==== Read MEMBUF ====================
41 1 EnableMEM;
42 1 if(ReadMem(0)>200)
43 1 {
44 2 CCHIP_Default();
45 2 SendPage();
46 2 }
47 1 ReadPage();
48 1 //===================================
49 1 OptionTwo=0xD8|(ModeBuf>>5);//To get which resolution.
50 1 if(DIPSW1) OptionThree=0x80;//0x80 for VS output..by Stripe Panel Mode
51 1 else OptionThree=0xC0;//0xC0 for VS output..by Delta Panel Mode
52 1 OptionOne=0x3f;//The initiation is NTSC mode.
53 1 //OptionOne=0x9f;//The initiation is PAL mode.
54 1 Delay1ms();
55 1 //**********************************************************
C51 COMPILER V7.00 MAIN 03/04/2004 16:28:50 PAGE 2
56 1
57 1 //************* For CCHIP **********************************
58 1 InitCCHIP();
59 1 //**********************************************************
60 1
61 1 //************* For OSD ************************************
62 1 DelayX1ms(100);
63 1 InitOSD();
64 1 OSDSwitch(0);
65 1 //**********************************************************
66 1
67 1 TR0=1;//To start Timer 0;
68 1
69 1 //************* OSD's X51 Init **********
70 1 OSDStatus=1;
71 1 OSDEND=0;
72 1 //***************************************
73 1
74 1 while(1)
75 1 {
76 2 if(ModeBuf!=P1)
77 2 {
78 3 ModeBuf=P1;
79 3 OptionTwo=0xD8|(ModeBuf>>5);//To get which resolution.
80 3 if(DIPSW1) OptionThree=0x80;//0x80 for VS output..by Stripe Panel Mode
81 3 else OptionThree=0xC0;//0xC0 for VS output..by Delta Panel Mode
82 3 IICStart;
83 3 SendIIC(CCHIPSlaveAddress);
84 3 SendIIC(0x14);
85 3 SendIIC(OptionTwo);
86 3 IICStop;
87 3 Delay1ms();
88 3 IICStart;
89 3 SendIIC(CCHIPSlaveAddress);
90 3 SendIIC(0x15);
91 3 SendIIC(OptionThree);
92 3 IICStop;
93 3 Delay1ms();
94 3 }
95 2 //===========================================================================
96 2 if((VSBuf < 140)&&(NP==0))
97 2 {
98 3 TR0=0;
99 3 IICStart;
100 3 SendIIC(CCHIPSlaveAddress);
101 3 SendIIC(0x13);
102 3 SendIIC(0x3F);
103 3 IICStop;
104 3 Delay1ms();
105 3 NP=1;
106 3 TR0=1;
107 3 }
108 2 if((VSBuf > 159)&&(NP==1))
109 2 {
110 3 TR0=0;
111 3 IICStart;
112 3 SendIIC(CCHIPSlaveAddress);
113 3 SendIIC(0x13);
114 3 SendIIC(0x9F);
115 3 IICStop;
116 3 Delay1ms();
117 3 NP=0;
C51 COMPILER V7.00 MAIN 03/04/2004 16:28:50 PAGE 3
118 3 TR0=1;
119 3 }
120 2 //==============================================================================
121 2 if((SW1==0)&(SW2==1))
122 2 {
123 3 DisableINT0;
124 3 DisableINT1;
125 3 DelayX1ms(300);
126 3
127 3 if((SubBuf==0x91)&(SubBuf!=0x00))
128 3 {
129 4 if(RegBuf<31) RegBuf++;
130 4 BAR_H();
131 4 Show_Number();
132 4 SendCCHIPData();
133 4 SaveReg();
134 4 }
135 3 else if((SubBuf==0x92)&(SubBuf!=0x00))
136 3 {
137 4 if((RegBuf&0x3f)<63) RegBuf++;
138 4 BAR_V();
139 4 Show_Number();
140 4 SendCCHIPData();
141 4 SaveReg();
142 4 }
143 3 else
144 3 {
145 4 if(SubBuf!=0x00)
146 4 {
147 5 if(RegBuf<250) RegBuf=RegBuf+3;
148 5 BAR();
149 5 Show_Number();
150 5 SendCCHIPData();
151 5 SaveReg();
152 5 }
153 4 }
154 3 EnableINT0;
155 3 EnableINT1;
156 3 }
157 2 else if((SW1==1)&(SW2==0))
158 2 {
159 3 DisableINT0;
160 3 DisableINT1;
161 3 DelayX1ms(300);
162 3 if((SubBuf==0x91)&(SubBuf!=0x00))
163 3 {
164 4 if(RegBuf!=0) RegBuf--;
165 4 BAR_H();
166 4 Show_Number();
167 4 SendCCHIPData();
168 4 SaveReg();
169 4 }
170 3 else if((SubBuf==0x92)&(SubBuf!=0x00))
171 3 {
172 4 if(RegBuf!=0) RegBuf--;
173 4 BAR_V();
174 4 Show_Number();
175 4 SendCCHIPData();
176 4 SaveReg();
177 4 }
178 3 else
179 3 {
C51 COMPILER V7.00 MAIN 03/04/2004 16:28:50 PAGE 4
180 4 if(SubBuf!=0x00)
181 4 {
182 5 if(RegBuf!=0) RegBuf=RegBuf-3;
183 5 BAR();
184 5 Show_Number();
185 5 SendCCHIPData();
186 5 SaveReg();
187 5 }
188 4 }
189 3 EnableINT0;
190 3 EnableINT1;
191 3 }
192 2 //======================================================================
193 2 }
194 1
195 1 }
196
197 void Timer0(void) interrupt 1 using 2
198 {
199 1 TR0=0;
200 1 if(VS==1) VSCount++;
201 1 else
202 1 {
203 2 if(VSCount!=0)
204 2 {
205 3 VSBuf=VSCount;
206 3 VSCount=0;
207 3 }
208 2 }
209 1 TL0=(65536-200)%256,TH0=(65536-200)/256;
210 1 TR0=1;//To start Timer 0;
211 1 }
212
213 void int0(void) interrupt 0
214 {
215 1 DelayX1ms(300);
216 1
217 1 switch(OSDStatus)
218 1 {
219 2 case 0 :
220 2 for(cou=0;cou<19;cou++)
221 2 {
222 3 ShowWord(2,cou,ASCII_TO_OSD(R19[cou]),0,1,0,0);
223 3 }
224 2 for(cou=0;cou<19;cou++)
225 2 {
226 3 ShowWord(4,cou,ASCII_TO_OSD(R01[cou]),1,0,0,1);
227 3 }
228 2 for(cou=0;cou<19;cou++)
229 2 {
230 3 ShowWord(6,cou,ASCII_TO_OSD(R02[cou]),0,1,0,0);
231 3 }
232 2 SubBuf=0x81;//Sub.1
233 2 RegBuf=VCOM;
234 2 BAR();//VCOM Reg.
235 2 Show_Number();
236 2 OSDStatus=2;
237 2 break;
238 2 case 1 ://OSDPage 1
239 2 OSDSwitch(1);
240 2
241 2 for(cou=0;cou<sizeof(SHOW);cou++)
C51 COMPILER V7.00 MAIN 03/04/2004 16:28:50 PAGE 5
242 2 {
243 3 ShowWord(0,cou+1,ASCII_TO_OSD(SHOW[cou]),0,4,0,0);
244 3 }
245 2 for(cou=0;cou<19;cou++)
246 2 {
247 3 ShowWord(2,cou,ASCII_TO_OSD(R01[cou]),1,0,0,1);
248 3 }
249 2 for(cou=0;cou<19;cou++)
250 2 {
251 3 ShowWord(4,cou,ASCII_TO_OSD(R02[cou]),0,1,0,0);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -