void Init_Timer0(void) //1500微秒@12.000MHz
{
AUXR &= 0x7F; //定時器時鐘12T模式
TMOD &= 0xF0; //設置定時器模式
TMOD |= 0x01; //設置定時器模式
TL0 = 0x24; //設置定時初值
TH0 = 0xFA; //設置定時初值
TF0 = 0; //清除TF0標志
TR0 = 1; //定時器0開始計時
EA = 1; //開總中斷
ET0 = 1; //開T0中斷
}
void UART_init(void) //4800bps@12.000MHz
{
PCON |= 0x80; //使能波特率倍速位SMOD
SCON = 0x50; //8位數據,可變波特率
AUXR &= 0xBF; //定時器1時鐘為Fosc/12,即12T
AUXR &= 0xFE; //串口1選擇定時器1為波特率發生器
TMOD &= 0x0F; //清除定時器1模式位
TMOD |= 0x20; //設定定時器1為8位自動重裝方式
TL1 = 0xF3; //設定定時初值
TH1 = 0xF3; //設定定時器重裝值
ET1 = 0; //禁止定時器1中斷
TR1 = 1; //啟動定時器1
// EA = 1; //開總中斷
ES = 1; //開串口中斷
} |