STC12C5A60S2單片機程序
我做了一個多機通信,用STC12C5A60S2,串口通信獨立波特率發(fā)生器,工作一段時間就通信不了,沒有規(guī)律,定時器也停了,數(shù)碼顯顯示靜止狀態(tài),按鍵不會加減,請哪位大師指定一下,謝謝!
//==================串口和定時器初始化===============//
TMOD=0x11;
PCON &= 0x7F; //波特率不倍速
SCON = 0x50; //8位數(shù)據(jù),可變波特率
AUXR &= 0xFB; //定時器時鐘12T模式
BRT = 0xFD; //設置定時重載值
AUXR |= 0x01; //串口1使用獨立波特率發(fā)射器為波特率發(fā)生器
AUXR |= 0x10; //啟動獨立波特率發(fā)射器
ES = 1; //Enable UART interrupt
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
TH1=(65536-46080)/256;
TL1=(65536-46080)%256;
EA=1;
EX0=1;
IT0=0;
ET0=1;
ET1=1;
TR0=1;
PT0=1;
PT1=0;
PS=1;// 串口優(yōu)先級
//=========定時器0,控制數(shù)碼管顯示 ==============//
void Timer0(void) interrupt 1
{
TR0=0;
TH0=(65536-2000)/256; //5MS定時周期12T
TL0=(65536-2000)%256;
Display();
cout++;
if(cout%200==0)
{
t_100ms=1;//設置增加時間
}
if(cout%350==0)
{
t_180ms=1;//設置增加時間
}
if(cout%500==0)
{
t_250ms=~t_250ms;//數(shù)碼管閃爍值
if(Start_Menu==2)//==FLOU
{
cout4++;
if(cout4==25)
{
AD_Contr1=0;Out1_LED=1;
}
if(cout4==50)
{ cout4=0;
AD_Contr2=0;Out2_LED=1;
}
}
}
TR0=1;
}
//============定時器1,計時用 ============//
void Timer1() interrupt 3
{
//TR1=0;
TH1=(65536-46080)/256;
TL1=(65536-46080)%256;
t_50Ms_Cout++;
if(t_50Ms_Cout==20)
{
t_50Ms_Cout=0;
second++;
if(second==5&&Start_Time==1)
{
t_5s=1;
}
if(second==10&&Start_Time==1)
{
t_10s=1;Start_Time=0;
}
if(second==60)
{
second=0;
minute++;
if(minute==60)
{
minute=0;
hour++;
if(hour==10)
{
hour=0;
}
}
}
}
// TR1=1;
}
|