- 论坛徽章:
- 0
|
5可用积分
小弟新手,江湖救急
情况是,在单片机没有232接口的情况下,直接接到P3.0和P3.1上时,下列程序可以运行,但是数据不对,求解答原因
#include<reg51.h>
#include<stdio.h>
#include <intrins.h>
//直接由串口
#define uchar unsigned char
#define DPIO P0
#define TXD P3^0
#define RXD P3^1
uchar xdata r_buf[8];
int i,n;
void Delay10ms(unsigned int c) //误差 0us
{
unsigned char a, b;
//--c已经在传递过来的时候已经赋值了,所以在for语句第一句就不用赋值了--//
for (;c>0;c--)
{
for (b=38;b>0;b--)
{
for (a=130;a>0;a--);
}
}
}
void main(void)
{
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
TCON=0x40;
SCON=0x50;
IE=0x90;
i=0;
n=0;
DPIO=0x00;
while(1){
if(RI==1){
r_buf[i]=SBUF;
RI=0;
if(i==4) //r_buf[0]不显示
{
DPIO=r_buf[i];
Delay10ms(50);
}
i++;
if(i>7)
{
i=0;
};
//将接收到的数据显示到led上
}
else
{RI=0;}
}
}
|
|