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

📄 mcu.lst

📁 台湾联咏NT68663 LCD MONITOR 控制程序(完整版)
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V6.12  MCU                                                                    03/05/2008 14:34:52 PAGE 1   


C51 COMPILER V6.12, COMPILATION OF MODULE MCU
OBJECT MODULE PLACED IN .\BIN\MCU.obj
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE .\SRC\MCU.C OPTIMIZE(9,SIZE) DEFINE(X17,TW2600XW02) DEBUG OBJECTEXTEND PRIN
                    -T(.\LST\MCU.lst) OBJECT(.\BIN\MCU.obj) 

stmt level    source

   1          #include "8051.H"
   2          #include "STDIO.H"
   3          #include "RAM.H"
   4          #include "MCU.H"
   5          #include "MyDef.H"
   6          #include "IIC.H"
   7          #include "F63XREG.H"
   8          #include "F63XDEF.H"
   9          #include "UserAdj.H"
  10          #include "Scaler.H"
  11          #include "rom_map.h"
  12          #include "AutoAdj.H"
  13          #include "OSD.H"
  14          #include "OSD_TAB.H"
  15          #include "MODEHANDLE.H"
  16          //#include "dvKeypad.h"
  17          #include "PANEL.H"
  18          
  19          extern WarmUp();
  20          
  21          void InitMCU(void)
  22          {
  23   1      	Byte xdata *Addr;
  24   1      	Byte i;
  25   1      	Addr = 0xf000;
  26   1      	for(i=0; i<0x23; i++){
  27   2      		*Addr++ = McuRegTab[i];
  28   2      	}
  29   1      // set timer 0
  30   1       	SCON = 0x52;
  31   1       	TMOD = 0x22;	//timer0 /timer1 8 bits auto reload
  32   1      // 	TMOD = 0x21;	//timer0 16 bits/timer1 8 bits auto reload
  33   1       	PCON = 0x80;
  34   1      // timer0 8 bits auto reload
  35   1      	TL0 = -200;
  36   1      	TH0 =-200;
  37   1      //	TL0 = 256-(CPU_CLK/1000*100/12000); //time base 100us
  38   1      //	TH0 = 256-(CPU_CLK/1000*100/12000);
  39   1      
  40   1      // timer0 16 bits
  41   1      //	TL0 = (65536-CPU_CLK/1200)%256;	//time base 10ms
  42   1      //	TH0 = (65536-CPU_CLK/1200)/256;
  43   1      
  44   1      // For 12.000 MHz 
  45   1       	TL1 = 256-(2*CPU_CLK/384/9600);
  46   1       	TH1 = 256-(2*CPU_CLK/384/9600);
  47   1      // For 14.318 MHz 
  48   1       	//TL1 = 256-(2*CPU_CLK/384/4800);
  49   1       	//TH1 = 256-(2*CPU_CLK/384/4800);
  50   1      	TR0 = 1;		//start timer0
  51   1       	TR1 = 1;		//start timer1
  52   1      // set interrupt
  53   1      	EX1 = 1;		//enable External interrupt1
  54   1      	ET0 = 1;		//enable timer0 interrupt
C51 COMPILER V6.12  MCU                                                                    03/05/2008 14:34:52 PAGE 2   

  55   1      	EA = 1;			//enable all interrupt
  56   1      	T0_INT_CNT = 0;
  57   1      	T0_10ms_Cnt = 0;
  58   1      	Sleep(50);	
  59   1      }
  60          
  61          void Timer0(void) interrupt 1 using 2
  62          {
  63   1      #if 1	//Used mode2--auto reload
  64   1      	if(++T0_INT_CNT >= 10){
  65   2      		T0_INT_CNT = 0;
  66   2      		if(Timer_1ms != 0)			// 1ms
  67   2      			Timer_1ms--;
  68   2      		if(++T0_1ms_Cnt >= 10){	// 10ms
  69   3      			CLRWDT = 0x55;
  70   3      			T0_1ms_Cnt = 0;
  71   3      			if(++T0_10ms_Cnt >= 100){//--1s
  72   4      				T0_10ms_Cnt = 0;
  73   4      				if(BackLightTimerEn){
  74   5      					if(BackLightTimer < 360000000)
  75   5      						BackLightTimer += 1;
  76   5      					else
  77   5      						BackLightTimer = 0;
  78   5      				}
  79   4      			}
  80   3      			if(OsdTimer > 0)
  81   3      				OsdTimer--;
  82   3      			if(LocalTimer > 0)
  83   3      				LocalTimer--;
  84   3      			if(PowerTimer > 0)
  85   3      				PowerTimer--;
  86   3      			if(RepeatTimer > 0)
  87   3      				RepeatTimer--;
  88   3      			if(DDCTimer > 0)
  89   3      				DDCTimer--;
  90   3      			if(SaveTimer > 0)
  91   3      				SaveTimer--;
  92   3      			if(VideoTimer > 0)
  93   3      				VideoTimer--;
  94   3      			if(BurnInTimer > 0)
  95   3      				BurnInTimer--;
  96   3      			if(MuteTimer > 0)
  97   3      				MuteTimer--;		
  98   3      		}
  99   2      	}
 100   1      
 101   1      #else	//Used mode1--16 bits counter
              	TL0 = (65536-CPU_CLK/1200)%256; //time base 10ms
              	TH0 = (65536-CPU_CLK/1200)/256;
              	CLRWDT = 0x55;
              	if(++T0_10ms_Cnt >= 100){
              		T0_10ms_Cnt = 0;
              		if(BackLightTimerEn){
              			if(BackLightTimer < 360000000)
              				BackLightTimer += 1;
              			else
              				BackLightTimer = 0;
              		}
              	}
              	if(OsdTimer > 0)
              		OsdTimer--;
              	if(LocalTimer > 0)
C51 COMPILER V6.12  MCU                                                                    03/05/2008 14:34:52 PAGE 3   

              		LocalTimer--;
              	if(RepeatTimer > 0)
              		RepeatTimer--;
              	if(PowerTimer > 0)
              		PowerTimer--;
              	if(DDCTimer > 0)
              		DDCTimer--;
              	if(SaveTimer > 0)
              		SaveTimer--;
              	if(VideoTimer > 0)
              		VideoTimer--;
              	if(BurnInTimer > 0)
              		BurnInTimer--;
              	if(MuteTimer > 0)
              		MuteTimer--;
              #endif
 133   1      	
 134   1      }
 135          
 136          void Sleep(Word T)
 137          {
 138   1      	Timer_1ms = T;			/* timeout n ms */
 139   1      	while(Timer_1ms != 0){
 140   2      	}
 141   1      //	Word i,j;
 142   1      //	for(j=0;j<T;j++)
 143   1      //		for(i=0;i<23*(CPU_CLK/20000000);i++)
 144   1      //			CLRWDT=0x55;
 145   1      }
 146          
 147          void WaitSetup(unsigned short time)
 148          {
 149   1      	LocalTimer = time;			/* timeout n 10ms */
 150   1      	while(LocalTimer != 0){
 151   2      		if(FuncBuf[pVIDEOSOURCE] <= 1) //jacky20040324
 152   2      			CheckModeChange();
 153   2      	}
 154   1      }
 155          
 156          Byte GetKey()
 157          {
 158   1       	Byte i,KeyTemp,KeyTemp2;
 159   1      	i = 0;
 160   1       	while(i < 10)
 161   1      		{
 162   2      		KeyTemp = 0;
 163   2      		if(!(PTA_REG & PA0))
 164   2      			KeyTemp = vkSOURCE;
 165   2      		if(!(PTD_REG & PD2))
 166   2      			KeyTemp |= vkMENU;
 167   2      		if(!(PTD_REG & PD0))
 168   2      			KeyTemp |= vkAUTO;
 169   2      		if(!(PTC_REG & PC6))
 170   2      			KeyTemp |= vkPOWER;
 171   2      		if(!(PTB_REG & PB1))
 172   2      			KeyTemp |= vkVALUP;
 173   2      		if(!(PTB_REG & PB0))
 174   2      			KeyTemp |= vkVADOWN;
 175   2      		if(!(PTC_REG & PC6))
 176   2      			KeyTemp |= vkPOWER;
 177   2      		if(KeyTemp != KeyTemp2)
 178   2      			{
C51 COMPILER V6.12  MCU                                                                    03/05/2008 14:34:52 PAGE 4   

 179   3      			KeyTemp2 = KeyTemp;
 180   3      			i = 0;
 181   3      			}
 182   2      		i++;
 183   2       		}
 184   1      	return KeyTemp;
 185   1      }
 186          
 187          
 188          void ScanKeyPad(void)	//2003/5/19 alvin
 189          {
 190   1      	Byte KeyTemp;
 191   1      	KeyTemp = GetKey();
 192   1      	if(PrevKey!=KeyTemp)
 193   1      	{
 194   2      		KeyLock = 0;
 195   2       		ChangeKey = 1;	//change key
 196   2      		if(PrevKey == vkSOURCE && KeyTemp == 0 && KeyRepeatCnt < 10){
 197   3      			PrevKey = KeyTemp;
 198   3      			KeyBuffer = vkSOURCE;
 199   3      			KeyRepeatCnt = 0;
 200   3      			OsdTimer = FuncBuf[pOSDTIMER] * 100;
 201   3      			//OsdTimer = 3 * 100;
 202   3      		}
 203   2      		else if(KeyTemp == vkSOURCE){
 204   3      			PrevKey = KeyTemp;
 205   3      			KeyBuffer = 0;
 206   3      			//OsdTimer = 3 * 100;
 207   3      		}
 208   2      		else{
 209   3      			PrevKey = KeyTemp;
 210   3      			KeyBuffer = KeyTemp;
 211   3      			KeyRepeatCnt = 0;
 212   3      			OsdTimer = FuncBuf[pOSDTIMER] * 100;
 213   3      		}
 214   2      		RepeatTimer = KeyHoldTime;
 215   2      	}
 216   1      	else
 217   1      	{
 218   2      		KeyBuffer = 0;	//the other key
 219   2      		if((RepeatTimer == 0))//&& MenuPtr.Menu > 0)
 220   2      			{
 221   3      			switch(KeyTemp)
 222   3      				{
 223   4      				case vkSOURCE:
 224   4      					if(KeyRepeatCnt < 10){
 225   5      						KeyBuffer = KeyTemp;
 226   5      						RepeatTimer = 30;//KeyMenuTime;
 227   5      						if(!KeyLock)
 228   5      							KeyRepeatCnt = 10;
 229   5      						else
 230   5      							KeyRepeatCnt += 1;
 231   5      					}
 232   4      					OsdTimer = FuncBuf[pOSDTIMER] * 100;
 233   4      					break;
 234   4      //				case vkLEFT:
 235   4      				case vkMENU:
 236   4      					if(!KeyLock)
 237   4      						KeyBuffer = KeyTemp;
 238   4      					RepeatTimer = KeyMenuTime;
 239   4      					OsdTimer = FuncBuf[pOSDTIMER] * 100;
 240   4      					break;
C51 COMPILER V6.12  MCU                                                                    03/05/2008 14:34:52 PAGE 5   

 241   4      				case vkVADOWN:
 242   4      				case vkVALUP:
 243   4      					if(!KeyLock)
 244   4      						KeyBuffer = KeyTemp;
 245   4      					RepeatTimer = KeyRepeatTime;
 246   4      					OsdTimer = FuncBuf[pOSDTIMER] * 100;
 247   4      					break;
 248   4      //				case (vkMENU|vkLEFT|vkVALUP):
 249   4      //					if(!KeyLock)
 250   4      //						KeyBuffer = KeyTemp;
 251   4      //					break;
 252   4      				};
 253   3      			}
 254   2      		}
 255   1      }
 256          
 257          
 258          void KeyProcess(void)
 259          {
 260   1      	Byte code MaxItemsTab[]={7,2,4,9,6,5,7,MAX_FACT_ITEM};
 261   1      	Byte temp;
 262   1      	ScanKeyPad();
 263   1      	if(OsdLock && KeyBuffer != (vkMENU|vkLEFT|vkVALUP))
 264   1      		KeyBuffer = 0;
 265   1      //	if((KeyRepeatCnt == 1) && KeyBuffer == vkSOURCE))
 266   1      //		KeyBuffer == 0;
 267   1      //	if(PowerDown && KeyBuffer != 0)	//power down press any key
 268   1      //		if(KeyBuffer != vkPOWER)
 269   1      //			WarmUp();
 270   1      	if((VideoMute && FuncBuf[pVIDEOSOURCE]<3) || (FuncBuf[pVIDEOSOURCE]>2 && !VideoOK))
 271   1      		{
 272   2      		switch(KeyBuffer)
 273   2      			{
 274   3      			case vkPOWER:
 275   3      			case vkMENU|vkLEFT|vkPOWER:	//burn in
 276   3      				break;
 277   3      			default:
 278   3      				KeyBuffer = 0;
 279   3      				break;
 280   3      			};
 281   2      		}
 282   1      	if(OutOfRange != 0 && KeyBuffer != vkPOWER)
 283   1      		KeyBuffer = 0;
 284   1      	temp = MenuPtr.Page;
 285   1      	if(MenuPtr.Menu == 2)
 286   1      		temp = 7;
 287   1      	MaxItem = MaxItemsTab[temp];
 288   1      	if(FuncBuf[pVIDEOSOURCE]==1 && temp == 0)//for DVI MenuPtr.Page = 0
 289   1      		MaxItem = 3;
 290   1      	else if(FuncBuf[pVIDEOSOURCE]>1 && temp == 0)//for CAVS and S-Video MenuPtr.Page = 0
 291   1      		MaxItem = 5;
 292   1      	if(!Saa7114En && temp == 5)
 293   1      		MaxItem = 2;
 294   1      	
 295   1      	if(MenuPtr.Level == 1)	//for level1 menu
 296   1      		BackPtr = MenuPtr.Ptr;
 297   1      	else if(MenuPtr.Level == 2)
 298   1      		BackPtr = 0;
 299   1      	if(MenuPtr.Menu == 0)
 300   1      	{
 301   2      		switch(KeyBuffer)	//open main menu
 302   2      		{
C51 COMPILER V6.12  MCU                                                                    03/05/2008 14:34:52 PAGE 6   

 303   3      			case vkSOURCE:
 304   3      				if(!FactMode){
 305   4      					if(KeyRepeatCnt == 0){
 306   5      						MenuPtr.Menu = 5;
 307   5      						MenuPtr.Page = 5;
 308   5      						MenuPtr.Ptr = FuncBuf[pVIDEOSOURCE];
 309   5      						MenuPtr.Level = 1;
 310   5      						MenuPtr.Op = oUPDATEALL;
 311   5      						KeyLock = 1;
 312   5      					}
 313   4      					else if(KeyRepeatCnt == 10){
 314   5      						MenuPtr.Menu = 4;
 315   5      						MenuPtr.Level = 0;
 316   5      						MenuPtr.Op = oUPDATEALL;
 317   5      						KeyLock = 1;
 318   5      						OsdTimer = 3 * 100;
 319   5      					}
 320   4      				}
 321   3      				return;
 322   3      				break;
 323   3      			case vkMENU:
 324   3      				if(!FactMode){
 325   4      					MenuPtr.Menu = 1;
 326   4      					MenuPtr.Ptr = 0;
 327   4      					}
 328   3      				else{
 329   4      					MenuPtr.Menu = 2;
 330   4      					MenuPtr.Ptr = 3;
 331   4      					FuncBuf[pCOLORTEMP] = 2;
 332   4      					LoadColor(FuncBuf[pCOLORTEMP]);
 333   4      					SetContrast();
 334   4      				}
 335   3      				MenuPtr.Page = 0;
 336   3      				MenuPtr.Level = 0;
 337   3      				MenuPtr.Op = oUPDATEALL;
 338   3      				KeyLock = 1;
 339   3      				return;
 340   3      				break;
 341   3      			case vkVALUP:
 342   3      				if(!FactMode){
 343   4      					MenuPtr.Menu = 3;
 344   4      					MenuPtr.Page = 0;
 345   4      					MenuPtr.Ptr = 0;
 346   4      					MenuPtr.Level = 1;
 347   4      					MenuPtr.Op = oUPDATEALL;
 348   4      					KeyLock = 1;
 349   4      				}
 350   3      				return;
 351   3      				break;
 352   3      			case vkVADOWN:
 353   3      				if(!FactMode){
 354   4      					MenuPtr.Menu = 3;
 355   4      					MenuPtr.Page = 0;
 356   4      					MenuPtr.Ptr = 1;
 357   4      					MenuPtr.Level = 1;
 358   4      					MenuPtr.Op = oUPDATEALL;
 359   4      					KeyLock = 1;
 360   4      				}
 361   3      				return;
 362   3      				break;
 363   3      		};
 364   2      	}

⌨️ 快捷键说明

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