#include <STC8.H>
void delay(unsigned int x)
{
while(x--);
}
void main()
{
int x,k;
S3CON = 0x10; //8位数据,可变波特率24k
S3CON &= 0xBF; //串口3选择定时器2为波特率发生器
AUXR |= 0x04; //定时器时钟1T模式
T2L = 0x8F; //设置定时初始值
T2H = 0xFD; //设置定时初始值
AUXR |= 0x10; //定时器2开始计时
while(1)
{
// if(S3CON & 0x01)
// {
// x=S3BUF;
// delay(20000);
// S3CON &=0xfe;
// if(x==0x22)
// P0=0;else P0=0xff;//检查P0的灯不对
//
// }
S3BUF=x;
while(!(S3CON & 0x01));
S3CON &=(0xff-0x01);
x=S3BUF; S3BUF=x;
delay(20000);
if(x==0x02)
P3=0;else P3=0xff;//检查P3灯有没有亮,正常
}
}
这个检测寄存器,因为是串口3用到P0口,写完之后检查也是用P0口,一直不对,检查换P3口就可以了
|