📄 mcu.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 + -