STC12C5A60S2单片机程序
我做了一个多机通信,用STC12C5A60S2,串口通信独立波特率发生器,工作一段时间就通信不了,没有规律,定时器也停了,数码显显示静止状态,按键不会加减,请哪位大师指定一下,谢谢!
//==================串口和定时器初始化===============//
TMOD=0x11;
PCON &= 0x7F; //波特率不倍速
SCON = 0x50; //8位数据,可变波特率
AUXR &= 0xFB; //定时器时钟12T模式
BRT = 0xFD; //设置定时重载值
AUXR |= 0x01; //串口1使用独立波特率发射器为波特率发生器
AUXR |= 0x10; //启动独立波特率发射器
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;// 串口优先级
//=========定时器0,控制数码管显示 ==============//
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;//数码管闪烁值
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;
}
|