今天写了个简单的串口测试代码,想实验一下串口通信,现用测试器能发现串口输出端有数据输出,但不知道数据是否正确;代码写入单片机后想用串口调度软件看一下,是否能看到数据,现串口连机线也没有.又没法实验了,从来没做过串口相关的东西,心里没底,希望有串口通信实验板的朋友把代码写入芯片试试,明天就去买条串口线玩玩.更希望高手出来讨论.指点.把我们的论坛抄得更热.
#include<at89x51.h>
int a=170,n1.shou;
main()
{
tmod=0x12;//t0为8位定时器;t1为16位定时器;
scon=0x40;//串口为8位异步发送;
ea=1;//开总中断;
th0=0xff;//t0的高位;
tl0=0x32;//t0的初值;
et0=1;//开t0中断;
tr0=1;//开始计数;
th1=0xff;//t1的高位;
tl1=0x30;//t1的初值;//波特率为75.倍增后为150;
pcon=0x80;//波特率*2;
tr1=1;//开始终t1计数;
es=1;//开串行口中断;/////////
ren=1;//开串口接收;
while(1)
{
sbuf=a;//循环发送数据
if(ti==1)
{
n1=sbuf;
ti=0;
}
}
}
void t0(void) interrupt 1 using 0//t0中断;
{
p3_6=~p3_6;//位取反;
th0=0xff;//初值重装;
tl0=0x64;
}
void ps(void) interrupt 4 using 1//串行中断;
{//暂空
while(ri==1)
shou=sbuf;//////////////////////////////////////收到pc发送过来的信号数据;
ri=0;
p3_2=~p3_2;////////////////////////////////////取反p3_2
}