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

📄 init.c

📁 CRT显示器的运行程序
💻 C
📖 第 1 页 / 共 2 页
字号:
#include <reg51.h>
#include "MTV212MN32.h"
#include "gen.h"
#include "comm.h"
#include "I2C.h"
#include "eeprom.h"
#include "osd.h"
#include "intpro.h"

//**************************************************************************
//       MTV212M32微处理器所扩充的特殊功能寄存器的定
volatile unsigned char pdata XFR_PADMOD1     _at_    0x30;	//配制DA输出引脚和AD输入引脚
volatile unsigned char pdata XFR_PADMOD2     _at_    0x31;    //配制P5口
volatile unsigned char pdata XFR_PADMOD3     _at_    0x32;    //配制P4口,IIC和行场同步分频输出
volatile unsigned char pdata XFR_PADMOD4     _at_    0x3A;    //P1口的引脚配置
volatile unsigned char pdata XFR_PADMOD5     _at_    0x3B;    //P2口的引脚配置
volatile unsigned char pdata XFR_PADMOD6     _at_    0x3C;    //P5口的引脚配置
volatile unsigned char pdata XFR_OPTION1     _at_    0x33;    //芯片配制:PWM和IIC
volatile unsigned char pdata XFR_OPTION2     _at_    0x34;    //芯片配制:从方式模块A的从地址长度
volatile unsigned char pdata XFR_XBANK       _at_    0x35;    //辅助RAM的段控制寄存器,每段128字节
volatile unsigned char pdata XFR_PORT4       _at_    0x38;    //P4口
volatile unsigned char pdata XFR_PORT5       _at_    0x39;    //P5口

//------------------------------------------------------------------------
//		MTV212MN32的PWM输出寄存器地
volatile unsigned char pdata XFR_DA0         _at_    0x20;    
volatile unsigned char pdata XFR_DA1         _at_    0x21;
volatile unsigned char pdata XFR_DA2         _at_    0x22;
volatile unsigned char pdata XFR_DA3         _at_    0x23;
volatile unsigned char pdata XFR_DA4         _at_    0x24;
volatile unsigned char pdata XFR_DA5         _at_    0x25;
volatile unsigned char pdata XFR_DA6         _at_    0x26;
volatile unsigned char pdata XFR_DA7         _at_    0x27;
volatile unsigned char pdata XFR_DA8         _at_    0x28;
volatile unsigned char pdata XFR_DA9         _at_    0x29;
volatile unsigned char pdata XFR_DA10        _at_    0x2A;
volatile unsigned char pdata XFR_DA11        _at_    0x2B;
volatile unsigned char pdata XFR_DA12        _at_    0x2C;
volatile unsigned char pdata XFR_DA13        _at_    0x2D;

//------------------------------------------------------------------------
//      MTV212MN32中的同步信号处理、自测模式和中断控制寄存器
volatile unsigned char pdata XFR_HVSTUS      _at_    0x40;    //同步信号状态
volatile unsigned char pdata XFR_HCNTH       _at_    0x41;    //水平同步信号计数器高6位
volatile unsigned char pdata XFR_HCNTL       _at_    0x42;    //水平同步信号计数器低8位
volatile unsigned char pdata XFR_VCNTH       _at_    0x43;    //垂直同步信号计数器高4位
volatile unsigned char pdata XFR_VCNTL       _at_    0x44;    //垂直同步信号计数器低8位
//unsigned char pdata XFR_HVCTR0      _at_    0x40;
//unsigned char pdata XFR_HVCTR2      _at_    0x42;
//unsigned char pdata XFR_HVCTR3      _at_    0x43;
volatile unsigned char pdata XFR_INTFLG      _at_    0x48;
volatile unsigned char pdata XFR_INTEN       _at_    0x49;

//------------------------------------------------------------------------
//      MTV212MN32
volatile unsigned char pdata XFR_IIC_CTR     _at_    0x00;    //IIC接口控制寄存器
volatile unsigned char pdata XFR_IIC_STUS1   _at_    0x01;    //IIC接口状态寄存器1
volatile unsigned char pdata XFR_IIC_STUS2   _at_    0x02;    //IIC接口状态寄存器2
volatile unsigned char pdata XFR_IIC_INTFLG  _at_    0x03;    //IIC中断标志寄存器
volatile unsigned char pdata XFR_IIC_INTEN   _at_    0x04;    //IIC中断允许寄存器
volatile unsigned char pdata XFR_IIC_MBUF    _at_    0x05;    //主方式的发送/接受寄存器
volatile unsigned char pdata XFR_IIC_RCABUF  _at_    0x06;    //从方式模块A的接受寄存器
//unsigned char pdata XFR_IIC_TXABUF  _at_    0x06;    //从方式模块A的发送寄存器
volatile unsigned char pdata XFR_IIC_SLVAADR _at_    0x07;    //从方式模块A的从地址寄存器
volatile unsigned char pdata XFR_IIC_RCBBUF  _at_    0x08;    //从方式模块B的接受寄存器
//unsigned char pdata XFR_IIC_TXBBUF  _at_    0x08;    //从方式模块B的发送寄存器
volatile unsigned char pdata XFR_IIC_SLVBADR _at_    0x09;    //从方式模块B的从地址寄存器
volatile unsigned char pdata XFR_IIC_DBUF    _at_    0x0A;    //DDC1传输寄存器

//------------------------------------------------------------------------
volatile unsigned char pdata XFR_ADC         _at_    0x10;
volatile unsigned char pdata XFR_WDT         _at_    0x18;


#define 	INIT_DDC_DATA		// 如果定义了则进行DDC数据的初始化
//#undef		INIT_DDC_DATA

#define		XFR_IIC_TXABUF	XFR_IIC_RCABUF
#define		XFR_IIC_TXBBUF	XFR_IIC_RCBBUF
#define		XFR_HVCTR0		XFR_HVSTUS
#define		XFR_HVCTR2		XFR_HCNTL
#define		XFR_HVCTR3		XFR_VCNTH
#define		Flg_Init_Eeprom	0	//0表示正常初始化;非零表示强行初始化

void Init(void);
void Init_mtv212mn32(void);
void Init_TDA4857(void);
void Init_TDA4886(void);
void Init_MTV021(void);
void Init_Eeprom(void);


void Init(void)
{
  Set_pLED_Normal();
 // Mute_ON();//待定
  Enable_Degauss();
 miscDelay(50);
  Disable_Degauss();
  Init_mtv212mn32();
  sEvent_DisplayMuteOFF(0);
  sEvent_PowerSaving(0);
  sEvent_SaveEDID(0);
  sEvent_SavePar(0);
  sEvent_SysReset(0);
  Mute_Off();
  Init_Eeprom();
  Init_TDA4857();
  Init_TDA4886();
  Init_MTV021();
  Get_Mode_Data();
  Get_SysConfig_Data();
  Flg_SoftStart=1;
  Set_Power_Normal();
  Flg_PowerState=1;
    TMOD=0x01;
    TH0=C_T0_DATAH;
    TL0=C_T0_DATAL;
    IP=0x04;		// 00000100
    IE=0x82;		// 10000110
    TR0=1;

}


void Init_mtv212mn32(void)
{	
	XFR_PADMOD1=0x04;       //若pin12为按键输入则为AD
	XFR_PADMOD2=0x47;   //       //1、2、3、30为I/O,36、37、38PW
   #if I2cBusType==0			// 采用模拟的IIC总线
	XFR_PADMOD3=0x88;		// P3.4/P3.5,ISCL/ISDA,DA8,DA9,HCLAMP,STOUT,HBLANK,VBLANK
   #elif I2cBusType==1			// 采用MTV212的专用IIC总线 
	XFR_PADMOD3=0xc8;		// HSCL/HSDA,ISCL/ISDA,DA8,DA9,HCLAMP,STOUT,HBLANK,VBLANK
   #endif
	XFR_PADMOD4=0x8c;
	XFR_PADMOD5=0x1a;      // 12,23,25,26,27为8051 I/O
	XFR_PADMOD6=0x00;      // 30,36,37和38脚,均为开路I/O
	XFR_OPTION1=0x80;	// ENSCL无效
	XFR_OPTION2=0x00;      //7bit从地址长度
	XFR_HVCTR0=0x80;       //水平和垂直同步信号均为正极性
	XFR_HVCTR2=0x00;        //根据初始化模式而定
	XFR_HVCTR3=0x04;
	XFR_INTEN=0x00;
	XFR_IIC_CTR=0x82;       
	XFR_IIC_INTEN=0xfe; 
	XFR_IIC_SLVAADR=0xd0;
	XFR_IIC_SLVBADR=0xfb;
	XFR_IIC_DBUF=0xff;
	XFR_ADC=0x84;
       XFR_WDT=0x00; 
	XFR_PORT5=0xff;
	//PIN_MUTE=0;
	//PIN_CS1=0;              //p2.5
	//PIN_CS2=0;              //p2.6
	//PIN_CS3=0;              //p2.7
	//PIN_DEGAUSS=0;
    }

void Init_TDA4857(void)
{
        Write_TDA48XX_Reg(0x0d,0x01);   
        Write_TDA48XX_Reg(0x0d,0x00);     
	 Write_TDA48XX_Reg(0x00,0xef);    
        Write_TDA48XX_Reg(0x01,0x00);
	 Write_TDA48XX_Reg(0x02,0x72);
        Write_TDA48XX_Reg(0x03,0x7f);
        Write_TDA48XX_Reg(0x04,0x07);
        Write_TDA48XX_Reg(0x05,0x80);	
	 Write_TDA48XX_Reg(0x06,0x80);
	 Write_TDA48XX_Reg(0x07,0x80);
	 Write_TDA48XX_Reg(0x08,0x80);
	 Write_TDA48XX_Reg(0x09,0x03);
	 Write_TDA48XX_Reg(0x0a,0xe0);
	 Write_TDA48XX_Reg(0x0b,0x90);	
        Write_TDA48XX_Reg(0x0c,0xaf);
	 Write_TDA48XX_Reg(0x01,0x20);
        Write_TDA48XX_Reg(0x0b,0x90);	
        Write_TDA48XX_Reg(0x0d,0x02);
}

void Init_TDA4886(void)
{
       Write_TDA4886_Reg(0x00,0x0f);
       Write_TDA4886_Reg(0x01,0x0f);
	Write_TDA4886_Reg(0x02,0x3f);
	Write_TDA4886_Reg(0x03,0x0d);
	Write_TDA4886_Reg(0x04,0x3f);
	Write_TDA4886_Reg(0x05,0x3f);
	Write_TDA4886_Reg(0x06,0x3f);
	Write_TDA4886_Reg(0x07,0x50);
	Write_TDA4886_Reg(0x08,0x50);
       Write_TDA4886_Reg(0x09,0x50);
       Write_TDA4886_Reg(0x00,0x09);
}

⌨️ 快捷键说明

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