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

📄 mcu.c

📁 mcu for gm5621带遥控,键盘输入的单片机代码.供学习参考使用.谢谢.
💻 C
字号:
#include "board.h"
//#include "types.h"
//#include "misc.h"



void Init_ExternalInterrupt(void);
void Init_Timer(void);
void Init_SerialPort(void);
void Init_IOPorts(void);

void Init_MCU(void)
{ EA=0;
  Init_ExternalInterrupt();
  Init_Timer();
  Init_SerialPort();
  Init_IOPorts();
  EA=1;
}


// Initialize I/O setting
void Init_IOPorts(void)
{
  P1=0xFF;
  P3=0xFF;
}

/* initialize 8051 CPU timer & interrupt routine */
/* TCON.7(   TF1): Timer 1 overflow flag */
/* TCON.6(   TR1): Timer 1 stop/start bit */
/* TCON.5(   TF0): Timer 0 overflow flag */
/* TCON.4(   TR0): Timer 0 stop/start bit */
/* TCON.3(   IE1): Timer 1 INT1 interrupt flag */
/* TCON.2(   IT1): Timer 1 INT1 interrupt style setup*/
/* TCON.1(   IE0): Timer 0 /INT0 interrupt flag */
/* TCON.0(   IT0): Timer 0 /INT0 interrupt style setup */

void Init_ExternalInterrupt(void)
{

  IT0=0;//1;
  IE0=0;
  EX0=0;  // enable external interrupt 0

  IT1=1;//1; // set external interrupt 0 & 1 as falling edge trigger
  IE1=0;  // interrupt flag
  EX1=1;  // enable external interrupt 1

  PX0=1;  //
}

void Init_Timer(void)
{ 
	WORD clock_period=ClockPeriod;
	//BYTE br_cnt=0xfb;//BaudRatePeriod;
	BYTE br_cnt=0xfa;
	//BYTE temp;
	/* -------------initialize Timer 0 -----------------------------*/
	#if 0
  	ET0=1;  // enable timer 0 interrupt
  	TH0=clock_period>>8;
  	TL0=clock_period&0xFF; // timer 0 counter
  	TF0=0; // timer 1 flag
	#else
	ET0=0;  // enable timer 0 interrupt
  	TH0=0;
  	TL0=0; // timer 0 counter
  	TF0=0; // timer 1 flag
	#endif
 	/* -------------initialize Timer 0 -----------------------------*/
  	ET1 = 0;  // disable timer 1 interrupt
  	TH1 = br_cnt;
  	TL1 = br_cnt; // timer 1 counter
  	TF1 = 0; // timer 1 flag

  	// setup Timer mode
  	TMOD=0x21;  // set timer 1 as timer(1) , timer 0 as counter(5)
	//temp = AUXR &0xbf;
	//AUXR = temp;
	//temp = PCON &0x7f;
	//PCON = temp;

	#if 1
	//PCA
	CMOD = 0x80;
	CCON = 0x00;
	CL = 0;
	CH = 0;

	//CCAP0L = 0x00;
	//CCAP0H = 0x06;
	CCAP0L = 0x02;
	CCAP0H = 0x00;
	CCAPM0 = 0x49;

	EPCA_LVD = 1;
	#endif
	
  	// enable/disable timer
  	TR0=0;  // disable timer 0
  	TR1=1;  // disable timer 1

	CR = 1;
}

/*----------Timer 2 -------------------*/
/* T2CON.7(   TF2): overflow flag */
/* T2CON.6(  EXF2): extern enable flag */
/* T2CON.5(  RCLK): receive clock */
/* T2CON.4(  TCLK): transfer clock */
/* T2CON.3( EXEN2): extern enable flag */
/* T2CON.2(   TR2): stop/start timer 2 */
/* T2CON.1(  C_T2): intern clock(0)/extern counter(1) switch */
/* T2CON.0(CP_RL2): capture flag */

void Init_SerialPort(void)
{ 
   // BYTE br_cnt=BaudRatePeriod;
#if 0
  SCON=0x50;
  TMOD|=0x01;
  TH1=0xFD;
  TR1=1;
  TI=0;
#else

  SCON=0x50;

  RI=0;
  TI=0;
//#if DebugVersion
#if DebugVersion 
  ES=1;
#else
  ES=0;
#endif

#endif
}




⌨️ 快捷键说明

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