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

📄 initial.c

📁 C51的LED显示程序 可以显示多种字符,里面有多种显示驱动,方便应用
💻 C
字号:
//***********************************************************************
//FILE:	initial.c
//功能:	初始化所有外设
//***********************************************************************
#include "REG51.h"
//#include"port.h"
//#include"lcd.h"
//***********************************************************************
//	PxM1 	PxM2
//	0		0		准双向口
//	0		1		推挽
//	1		0		仅输入(高阻)
//	1		1		开漏
// KBA1 = P2^0;  KBA2 = P1^2; KBA3 = P2^5; KBA4 = P0^1;
// KBB1 = P0^7;	 KBB2 = P0^6; KBB3 = P1^4; KBB4 = P2^6;
// KBB5 = P2^7;

// com0 = P0^5;	 com1 = P0^4;  com2 = P0^3;

// ledf =	P2^2;   leda = P2^1;  ledb = P0^0;   ledc = P2^4;  
//ledd =	P1^7;   lede=	P1^6;  ledg =	P1^3;   leddot = P2^3;

// LAMP = P0^2;

// 	P0.7	P0.6	P0.5	P0.4	P0.3	P0.2	P0.1	P0.0
//	KBB1	KBB2	com0	com1	com2	Lamp	KBA4	ledb
//	1		1		0		0		0		0		1		1
//	1		1		1		1		1		1		0		1

//	P1.7	P1.6	P1.5	P1.4	P1.3	P1.2	P1.1	P1.0
//	ledd	lede	RST		KBB3	ledg	KBA2	RxD		TxD
//	1		1		1		1		1		1		1		0
//	1		1		0		1		1		0		0		1

//	P2.7	P2.6	P2.5	P2.4	P2.3	P2.2	P2.1	P2.0
//	KBB5	KBB4	KBA3	ledc	leddot	ledf	leda	KBA1
//	1		1		1		1		1		1		1		1
//	1		1		0		1		1		1		1		0
/*void	InitialIO()			//初始化I/O口
{
	P0M1=0xc3;			//设置P0端口1100 0011
	P0M2=0xfd;				//1111 1101
	P1M1=0xfe;			//设置P1端口1111 1110
	P1M2=0xd9;			// 1101 1001
	P2M1=0xff;			//设置P2端口1111 1111
	P2M2=0xde;			//1101 1110
	P3M1=0xff; 			//1111 1111
   	P3M2=0xff;			//1111 1111
//	ES = 0;			// disenable UART interrupt
} */
//***********************************************************************
/*
void	InitialRTC()		//初始化RTC
{

	RTCL	=0x7f;			//设置RTC的重装值
	RTCH	=0x00;			
	RTCCON	=0x43;			//允许RTC中断,使能RTC
	WDCON	=0xe0;			//关闭WDT
	IEN0	|=0x40;			//使能RTC中断
}*/

//**********************************************************************	
/*void UART_init()
{	
	SCON=0x50;				// select BRG as UART Baud Rate Gen 0101 0000 mode1
	SSTAT=0x60;				// separate Rx / Tx interrupts 0110 0000
	BRGR0=0xF0;				// setup BRG for 9600 baud @ 7.373MHz internal RC oscillator
	BRGR1=0x02;
//	BRGR0=0x70;				// setup BRG for 9600 baud @ 12MHz external Crystal
//	BRGR1=0x04;
	BRGCON = 0x03;     		// enable BRG
}	*/

void UART_init()     /*串口初始化*/
{
		SCON =0x70;	/*串行口工作方式3,9位异步收发*/	
        TMOD =0x20;		/* TMOD: timer 1, mode 2, 8-bit reload */
    	TH1 = 252;		  //9600  工作在双倍速模式下。6T模式。。
		TL1 = 252;
//		AUXR=AUXR^0X40;
//        PCON = 0x80;    
//	    SADDR=0X01;
//	    SADEN=0X0FF;
        RI = 0;				//清收发标志
		TI = 0;
        TR1 = 1;			/*启动T/C1*/
		EA=1;
		ES=1;
    
 }

//***********************************************************************
/*
void	InitialKey()		//初始化按键相关
{
	KBMASK	=0x4f; 			//使能相应按键中断
	KBCON	=0x00;			//清按键中断标志
	IEN1	|=0x02;			//允许按键中断
	Mode	=4;				//显示模式初始化为1(时间模式)
	KeyFlag	=0;  			//初始化为无按键标志
	ModifyP =0;
}*/
//***********************************************************************
/*
void	InitialSPI()		//初始化SPI总线
{
// SPCTL    D7		D6		D5		D4		D3		D2		D1		D0
//			SSIG	SPEN	DORD   	MSTR	CPOL    CPHA   	SPR1	SPR0
//			1		1		0		1		1		1		1		1
	SPCTL	=0xdf;			//初始化SPI时钟设置上升沿有效 1101 1111
	SPSTAT	=0xc0; 			//
}
 */

//***********************************************************************
//void	InitialAll()		//总初始化函数
//{
//	InitialTime();			//初始化时间参量
//	InitialSPI();			//初始化SPI总线
//	InitialIO();			//初始化I/O口
//	UART_init();
//	INIdata();
//	InitialLCD();
//	InitialRTC();			//初始化RTC
//	InitialKey();			//初始化按键相关
//	FLASH_Ini();
//	IniDat	();
//	SendDatTo595(0xff<<Mode);//指示默认模式
//	EA=1;					//开总中断
//}
//********************************END************************************

⌨️ 快捷键说明

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