27,511
社区成员




void init()
{
SCON = 0x50;//在11.0592MHz下,设置串行口波特率为9600,方式1,并允许接收
TMOD |= 0x21;//定时器0工作方式1,TH1是重装值,TL1是初值 定时器1工作方式2
TH1=0xFD; //重载值
TL1=0xFD; //初始化值
TH0 =(65536-46080)/256; //50ms
TL0 =(65536-46080)%256;
EA = 1; //开总中断
ET0 = 1;
ET1 = 0;
TR0 = 1;
TR1 = 1;
ES = 1; //打开串口中断
}
void SendOneByte(unsigned char c) //发送字节函数
{
ACC=c;
SBUF =ACC;
while(!TI);
TI = 0;
}
void SendString(char *s) //发送字符串
{
while (*s) //Check the end of the string
{
SendOneByte(*s++); //Send current char and increment string ptr
}
}
void uart() interrupt 4 using 3//串口中断
{
uchar a;
if(RI)
{
RI = 0;
a=SBUF;
// SBUF=a;
// send_char(a);
// table[num++]=SBUF;
// num++;
// num&=0x0f;
}
else
TI = 0;
}
void Timer0(void) interrupt 1 //定时器0中断
{
Time++;
}
void main()
{
init();
while(1)
{
if(Time==20)
{
Time=0;
SendString(“table”);
} }
volatile unsigned char Time;
如果没逻辑分析仪或者硬件仿真的话,用万用表量TX脚,看电压有没有变化, 好确定是没发还是波特率不对