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

📄 init.c

📁 C51源码.其内文件包含spi
💻 C
字号:

void InitPro()
{
//	Clrlcdram();
 //	Clrlcdram_L();
 //	Clrlcdram_R();
 //	Clrlcdram_D();
 //	Clrlcdram_U();
 //	Clrlcdram_B();
}

//晶振初始化
void OscInit()          	
{
	OSCXCN=0X67;
	DelayMs(10);
	while(!(OSCXCN&0x80));   	//判断晶体振荡器是否工作稳定??????????????????
	OSCICN=0x08;             	//选择外部时钟,禁止内部
}
void CpuIinit()  
{
	ET2		=	0;	            //禁止T2中断
	ES0		=	1;	            //允许UART0中断
	//ET1	=	0;	            //禁止T1中断
	
	ET1		=	1;	            //允许T1中断
	EX1		=	0;	            //禁止INT1中断
	ET0		=	1;	            //允许T0中断
	EX0		=	0;	            //禁止INT0中断
	EIE1	=	0x00;          	//禁止比较器0/1上升沿、下降沿,可编程阵列,ADC0窗口比较,SMBus,串行外设中断
	EIE2	=	0x42;          	//禁止外部时钟有效,INT7中断,INT6中断,ADC1转换结束,T4中断,ADC0转换结束中断,T3中断;允许UART1中断

	WDTCN	=	0xDE;
	WDTCN	=	0xAD;         	//禁止WDT 

	ADC0CN	=	ADC0CN&0x7F; 	//禁止ADC0
	ADC1CN	=	ADC1CN&0x7F; 	//禁止ADC1

	REF0CN	=	REF0CN&0xFC; 	//节省功耗

	CPT0CN	=	CPT0CN&0x7F; 	//禁止比较器0
	CPT1CN	=	CPT1CN&0x7F; 	//禁止比较器1

	SPIEN	=	0;            	//禁止串行外设SPI
	ENSMB	=	0;            	//禁止SMBus

	CKCON	=	CKCON&0x90;   	//T0、T2、T4使用系统时钟的12分频

	TMR3CN	=	TMR3CN&0xFB; 	//禁止定时器3
	TR1		=	0;              //禁止定时器1

	TMOD	=	TMOD&0xF1;
	TMOD	=	TMOD|0x01;     	//T0,方式1,作为16位计数器
	//TL0		=	0x48;
	//TH0		=	0xFF;       //置T0初值,(0xFFFF-TH0TL0+1)*12/22.1184MHz=0.1ms

	TL0		=	0x8F;
    TH0		=	0xFE;           //置T0初值,(0xFFFF-TH0TL0+1)*12/22.1184MHz=0.2ms

	//TL0		=	0x66;
    //TH0		=	0xFC;           //置T0初值,(0xFFFF-TH0TL0+1)*12/22.1184MHz=0.5ms
	
	PCON	=	0x00;          	//波特率不加倍
	SCON1	=	0xf8;//0x70;         	//URAT1,方式1,8位,波特率可变
	T4CON	=	0x34;         	//T4作为串口1波特率发生器,16位
	TL4		=	0xC0;
	TH4		=	0xFD;
	RCAP4L	=	0xC0;	    	//22.1184/(32*(0xffff+1-RCAP4HRACP4L))=9600
	RCAP4H	=	0xFD;			//115200--FFFA,57600--FFF4,9600--FFB8,1200--FDC0

	SCON0	=	0x70;         	//URAT0,方式1,8位,波特率可变,允许接收
	T2CON	=	0x34;         	//T2作为串口0波特率发生器,16位
	
	TL2		=	0xB8;
	TH2		=	0xFF;	
	RCAP2L	=	0xB8;	    	//22.1184/(32*(0xffff+1-RCAP4HRACP4L))=9600
	RCAP2H	=	0xFF;			//115200--FFFA,57600--FFF4,9600--FFB8

	XBR0	=	0x07;         	//UATR0,SPI,I2C
	XBR1	=	0x00;         	//SYSCLK,T2EX,T2,INT1,T1,INT0,T0,CP1都不连到端口
	XBR2	=	0x44;         	//弱上拉全局允许,交叉开关允许,T4,T4EX不连到端口,UART1连到端口,
                       			//P0.7,P0.6,P0.5的功能由交叉开关或端口锁存器决定,外部启动CNVSTE不连到端口
	
	IP		=	0x02;			//T0为高优先级中断;
	
	//总线控制设置   20090325
	EMI0CN  =   0X00;
	EMI0CF  =   0X3C;

	EMI0TC  =   0X8A;



	TR0		=	1;              //T0允许
	EA      =   1;

}
void KeyIni()
{
	P0MDOUT = 0Xf7;
	P1MDIN  = 0XFd;
	P1MDOUT = 0;
	P2MDOUT = 0xff;
	P3MDOUT = 0xff;
	P74OUT = 0xff;
}

⌨️ 快捷键说明

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