请各位老师和大虾们指导一下!我的8251怎么不能同时发送和接收呢?以下是我做的89C52简单的发送和接收程序,我在电脑上用串口调试助手进行调试,示波器发现8251的rxd,txd只能有一个有波形,就是发送和接收只能进行其中一个.(新电脑串口绝对没问题,换了好几块正确的电路板都是这个问题)
请各位老师和大虾们指导一下!
#include "reg52.h"
#include "stdlib.h"
#include "absacc.h"
#include "intrins.h"
#include "test.h"
#include "math.h"
#define uchar unsigned char
#define uint unsigned int
#define COM8251 XBYTE[0x8601]
#define DAT8251 XBYTE[0x8600]
uchar data_temp[10]={0x52,0x55,0x56,0x57,0x58,0x00};
uchar temp[10]={11,22};
uchar m=0,n=0,k;
uchar s;
void initmcu(void);
void wait(uchar p,q);
void main(void)
{
COM8251 = 0x00;
DAT8251 = 0x00;
DAT8251 = 0x00;
COM8251 = 0x40;//以上为8251复位部分
wait(11,82);
COM8251 = 0x4e;//9600baud,1停止位,无校验,8位数据,X16
wait(11,82);
COM8251 = 0x35;
wait(11,82);
while(1)
{
m=0;
while(data_temp[m]!=0x00)
{
DAT8251 = data_temp[m];//写
temp[m] = DAT8251;
m++;
}
}
}
void wait(uchar p,q)
{
uchar i,j; //(2*j+3)*i+4
for (i=p;i> 0;i--)
for (j=q;j> 0;j--);
}