/*--------------------------------------------------------------*/
/* T1设置为自动重载的8位模式 */
/*T1设定时间=(256-TH1)*12/fsoc
/*T1溢出率=fsoc/(256-TH1)*12=153600
/*波特率 = 2*153600/32 */
/*--------------------------------------------------------------*/
TMOD=0x20;
TH1 = 0x0f6; //放置初值
TL1 = TH1;
PCON |= 0x80;/* SMOD =0?9600 */
/*--------------------------------------------------------------*/
/* 初始化串行口0 */
/* 波特率9600,数据长度8位,奇校验,1位停止位*/
/* 波特率 = ( 2 ^ SMOD ) * T1溢出率/32 */
/*--------------------------------------------------------------*/
SM0 = ON; /* 9位UART模式,校验位作为第9位 */
SM1 = ON; /* 波特率可变 */
/*--------------------------------------------------------------*/
/* 初始化串行口1 */
/* 波特率9600,数据长度9位,奇校验,1位停止位*/
/* 波特率 = ( 2 ^ SMOD ) * T1溢出率/32 */
/*--------------------------------------------------------------*/
SCON1|=0XC0; //9位模式
SMOD_1=1; //在watchdog control中
/*--------------------------------------------------------------*/
/* T2设置为自动重载的16位模式 */
/*T1设定时间=(65535-T1)*12/fsoc=1ms
/*--------------------------------------------------------------*/
T2CON = 0x00;
TH2 = RCAP2H = HIGH_BYTE( -1536 );
TL2 = RCAP2L = LOW_BYTE( -1536 );
/*设置watchdog */
EWT=OFF; //不使用内带WATCHDOG
/* 分别启动定时器1,定时器2*/
TR1 = ON;
TR2 = ON;
/* 中断初始化 */
TI = OFF;
RI = OFF;
TI1 = OFF;
RI1 = OFF;
REN = ON;
REN1 = ON;
EA=TRUE;
ES0=TRUE;
ES1=TRUE;
ET2=TRUE;
}
void TimeIntSrv( void ) interrupt 5 using 1
{
}
void CommIntSrv0(void ) interrupt 4 using 2
{
}
void CommIntSrv1(void ) interrupt 7 using 3
{
}