发布网友 发布时间:2022-05-24 12:27
共3个回答
热心网友 时间:2023-10-13 05:50
程序如下,完全正确的程序,利用串口调试助手
#include <AT89X51.h>
#define uchar unsigned char
#define uint unsigned int
uchar idata trdata[]={'8','9','S','5','1',0x0d,0x0a,0x00};
uchar idata trdata1[]={'R','I','C','H','M','C','U',0x0d,0x0a,0x00};
main()
{
uchar i;
uint j;
SCON= 0x40; //串口方式1
PCON=0; //SMOD=0
REN=1; //允许接收
TMOD= 0x20; //定时器1定时方式2
TH1= 0xfd; //11.0592M 9600波特率
TL1= 0xfd;
TR1= 1; //启动定时器
while(1)
{
i=0;
while(trdata[i]!=0x00)
{
SBUF=trdata[i];
while(TI==0);
TI=0;
i++;
}
for (j=0;j<50000;j++);
i=0;
while(trdata1[i]!=0x00)
{
SBUF=trdata1[i];
while(TI==0);
TI=0;
i++;
}
for (j=0;j<50000;j++);
}
}
热心网友 时间:2023-10-13 05:50
详细如图,该串口采用的是直通方式,用的当然是直通头。
调试代码参考:http://www.doyoung.net/program/UART/
热心网友 时间:2023-10-13 05:51
电脑 串口 为标准RS232接口