main.lst
来自「myson的MTV332的DEMO程序 主要功能有菜单的设计和无线遥控以及视频」· LST 代码 · 共 315 行
LST
315 行
C51 COMPILER V7.09 MAIN 09/26/2006 13:36:04 PAGE 1
C51 COMPILER V7.09, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN ..\OUTPUT\MAIN.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ..\code\MAIN.C LARGE ROM(COMPACT) BROWSE DEBUG OBJECTEXTEND PRINT(.\MAIN.ls
-t) OBJECT(..\OUTPUT\MAIN.obj)
line level source
1 #define _MAIN_
2
3 #include "global.h"
4 #include "TV.h"
5
6 //*****************************************************************************************
7 // MTV MCU I/O Initialization Setupt
8 //*****************************************************************************************
9 #ifdef _MTV332_
10 void Initial_MTV(void)
11 {
12 1 P5EN = 0xFF;
13 1 P6EN = 0xFF;
14 1 //byMTV_PadMode9 = MTV332_PadMode9;
15 1 byMTV_PadMode9 = 0xF8;
16 1 //byMTV_PadModeA = MTV332_PadModeA;
17 1 byMTV_PadModeB = MTV332_PadModeB;
18 1 byMTV_PadModeC = MTV332_PadModeC;
19 1 //byMTV_PadModeD = MTV332_PadModeD;
20 1 byMTV_PadModeE = MTV332_PadModeE;
21 1 byMTV_FIDCTL=0x00; //0x00 for 12Mhz ; 0x01 for 4Mhz
22 1 byMTV_PREG3A = 0x00; // FB3 disable for use DA6 and DA11
23 1
24 1 byMTV_Option = MTV332_OPTION;
25 1 //Set_VCOMAPMPWM=0x80;
26 1 //Set_VCOMCENTPWM=0x80;
27 1 //enable slaveB, address 0x4C (0xA6 = 0x80 | 0x4C>>1)
28 1 byMTV_IIC_SLVBADR = 0xA6;
29 1
30 1 byMTV_LCDID = 0x95;
31 1
32 1
33 1 //---------------Initial SyncProcessor--------------
34 1 byMTV_HVCTR0 = 0x43;
35 1 //----------------------------------------------
36 1
37 1 //enable RCBBUF interrupt
38 1 byMTV_IIC_INTEN = 0xE0;
39 1
40 1
41 1 }
42 #endif
43
44 /*
45 #ifdef _MTV230_
46 void Initial_MTV(void)
47 {
48 byMTV_PadModeB = MTV230_PadModeB; //81;//0x81; //isp,p60 p61,p46 p47,p45,normal,p62
49 byMTV_PadModeC = MTV230_PadModeC; //da3~da0,p53~p50
50 byMTV_PadModeD = MTV230_PadModeD; //0x40;//0xfc; // p42~p47 output,hsync vsync
51 byMTV_PadModeE = MTV230_PadModeE; // p50~p53
52 byMTV_Option = MTV230_OPTION; //0xC0; // PWM 94k
53
54 //enable slaveB, address 0x4C (0xA6 = 0x80 | 0x4C>>1)
C51 COMPILER V7.09 MAIN 09/26/2006 13:36:04 PAGE 2
55 byMTV_IIC_SLVBADR = 0xA6;
56
57 //enable slaveA, address 0xA0 (0xD0 = 0x80 | 0xA0 >> 1)
58 byMTV_IIC_SLVAADR = 0xD0;
59
60 //
61 byMTV_IIC_INTEN = 0x58;
62 }
63 #endif
64 */
65
66 //*****************************************************************************************
67 // Initialization MTV CPU Core
68 //*****************************************************************************************
69 void Initial_CPU(void)
70 {
71 1 IE1 = 0; //disable extern interrupt 1
72 1 EA = 0; //disable all interrupt
73 1
74 1 P0 = 0xFF; //set P0 to high
75 1 P1 = 0xFF; //set P1 to high
76 1 P2 = 0xFF; //set P2 to high
77 1 P3 = 0xFF; //set P3 to high
78 1
79 1 TMOD |= 0x21;
80 1 TR0 = 1; //start timer0
81 1 TR1 = 1; //start timer1
82 1 IT1 = 1; // set INT1 type=falling edge
83 1 IT0 = 1; // set INT0 type=falling edge
84 1 EX1 = 1; // enable INT1
85 1 ET0 = 1; // enable TIMER0
86 1
87 1 //IR Remote Contro Use the INT0 Pin and Function
88 1 #ifdef _IR_
89 1 EX0 = 1; // enable INT0
90 1 ET1 = 1; //enable TIMER1
91 1 #else
EX0 = 0; // enable INT0
ET1 = 0; //enable TIMER1
#endif
95 1
96 1 PX1 = 1; //INT1 priority high
97 1 PX0 = 1; //INT0 priority high
98 1 PT1 = 0; //set TIMER1 priority low
99 1 PT0 = 0; //set TIMER0 priority low
100 1
101 1 Initial_MTV();
102 1
103 1 EA = 1; //enable all interrupt
104 1 }
105
106 //*****************************************************************************************
107 // Initialization TCON Output
108 //*****************************************************************************************
109 #ifdef _MTV332_
110
111
112 //*****************************************************************************************
113 // Initialization PLL
114 //*****************************************************************************************
115 void Initial_PLL(void)
116 {
C51 COMPILER V7.09 MAIN 09/26/2006 13:36:04 PAGE 3
117 1 byMTV_HORRH = 0x07;
118 1 byMTV_HORRL = 0x15;
119 1 byMTV_PLLCTL = 0x1C; // Charge pump current
120 1 byMTV_PREG1A = 0x8B;
121 1 byMTV_PREG1B = 0x86;
122 1 byMTV_PREG2A = 0x80;
123 1 byMTV_PREG2B = 0x87;
124 1 byMTV_PREG3B = 0x00;
125 1
126 1 #ifdef VD_PLL
byMTV_TESTMODE = 0xA0; // For enter test mode
#endif
129 1
130 1 #ifdef MTV332_PLL
131 1 byMTV_TESTMODE = 0x00; // For do not enter test mode
132 1 #endif
133 1
134 1 HVMUX = 0x00; // HVMUX= 0x01 is for bypass H,V sync
135 1
136 1 }
137 #endif
138
139 void Initial_TCON(BYTE panel)
140 {
141 1 BYTE i;
142 1 BYTE code PANELTCONSetting[][30]={
143 1 // AU7"
144 1 {
145 1 // 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09
146 1 0x01,0x8f,0x70,0x85,0x50,0x2e,0x04,0x32,0x08,0x53,
147 1 // 0x0A 0x0B 0x0C 0x0D 0x0E 0x0F 0x10 0x11 0x12 0x13
148 1 0x2a,0x08,0x10,0xef,0xe0,0x04,0xc0,0xaa,0x01,0x5E,
149 1 // 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 0x1C 0x1D
150 1 0xff,0xff,0xff,0x03,0x20,0x00,0x08,0x05,0x34,0x92
151 1 },
152 1
153 1 // LG7"
154 1 {
155 1 // 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09
156 1 0x01,0x8f,0x70,0x85,0x50,0x2E,0x04,0x52,0x08,0x04,
157 1 // 0x0a 0x0b 0x0c 0x0d 0x0e 0x0f 0x10 0x11 0x12 0x13
158 1 0x2a,0x80,0x11,0xEF,0xE0,0x08,0x10,0xaa,0x00,0x60,
159 1 // 0x14 0x15 0x16 0x17 0x18 0x19 0x1a 0x1b 0x1c 0x1d
160 1 0xff,0xff,0xff,0x03,0x20,0x00,0x28,0x40,0x0F,0x42
161 1 },
162 1
163 1 };
164 1 for(i=0x00;i<=0x1d;i++)
165 1 {
166 2 byMTV_TCONADDR = i; // 0x00 ~ 0x1d
167 2 byMTV_TCONDATA = PANELTCONSetting[panel][i];
168 2 }
169 1 byMTV_FIDCTL=0x00;
170 1
171 1 }
172
173 //*****************************************************************************************
174 // When Enable the TCON output the PORT5 and PORT6 Disable
175 //*****************************************************************************************
176 void InitialIO(void)
177 {
178 1 Res_BKLT;
C51 COMPILER V7.09 MAIN 09/26/2006 13:36:04 PAGE 4
179 1 Res_PALEN;
180 1 Res_FREEEN;
181 1 //Res_VGAEN;
182 1 //SetSwitchAVIn;
183 1 Set_AVEN;
184 1 Res_ImageLR;
185 1 Res_ImageUD;
186 1 }
187
188 //*****************************************************************************************
189 // Main Entrance
190 //*****************************************************************************************
191 void main(void)
192 {
193 1
194 1 DoWait(100);
195 1 OSDConVal = 0x00;
196 1 Initial_CPU();
197 1 InitialIO();
198 1 InitialOSD();
199 1
200 1 //CS7111_Write(0x0D,0x08); // For Use V2 in
201 1 #ifdef _MTV332_
202 1 Initial_PLL();
203 1
204 1 Initial_TCON(LG7);
205 1
206 1 #endif
207 1
208 1 Initial_I2C();
209 1 InitialFlag();
210 1
211 1 Initial_EEPROM();
212 1
213 1 KeyNo = ReadKeyPort();
214 1 if(KeyNo == POWERKEY)
215 1 {
216 2 Initial_EEPData();
217 2 Read_EEPData();
218 2 }
219 1 Initial_SystemSetting();
220 1 #ifdef _CS7111_
221 1 Initial_Video();
222 1 #endif
223 1
224 1 #ifdef _TV_ // 060830 for TV
225 1 Set_TVChannel();
226 1 #endif
227 1
228 1 #ifdef _IR_
229 1 Init_IR();
230 1 #endif
231 1
232 1 Initial_Key();
233 1
234 1 SStatus=Video_Sync(); // For Sync detect
235 1 Video_S(SStatus);
236 1
237 1 MenuProcess = Disp_Entry;
238 1
239 1 #ifdef _MTV332_
240 1 Set_SharpPWM = 0xff;
C51 COMPILER V7.09 MAIN 09/26/2006 13:36:04 PAGE 5
241 1 #endif
242 1
243 1 DoWait(200);
244 1 Set_BKLT;
245 1 Set_PowerLED;
246 1 bSyncChange = TRUE;
247 1 OldVideoStatus = 0xFF;
248 1 //DebugIRKey();
249 1
250 1 while(1)
251 1 {
252 2
253 2 #if 1
254 2 //OpenWindow(1,0,0,29,0,Green);
255 2 //EnableOSD();
256 2 #ifdef _IR_
257 2 IR_Key = GetIRKey();
258 2 #endif
259 2 KeyNo = GetKey();
260 2 CheckIICHoldKey();
261 2
262 2 if(!i2c_flag)
263 2 {
264 3 SStatus=Video_Sync(); // For Sync detect
265 3 Video_S(SStatus);
266 3
267 3 Get_VideoSync(); // For get sync
268 3 Video_SyncProc();
269 3
270 3
271 3 //EnableOSD();
272 3 //OpenWindow(1,0,0,15,14,Blue);
273 3 }
274 2 #endif
275 2
276 2 #if 1
277 2 OSDProc();
278 2 #endif
279 2
280 2 }
281 1
282 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 403 ----
CONSTANT SIZE = 98 ----
XDATA SIZE = 123 ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = 16 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?