51单片机串口通信乱码。。。闹不清什么问题= =
超级冷兔 2014-10-25 10:22:49 串口显示的应该是“0123456789jiuehskdjfHSKLJsdla47547237836876357425687361463543”,但是当MemoryModel在data里时收到的是“0123456789jiuehskdjfHSKLcdlA4794723w:3w876357425687361463543”,在pdata里收到的是“0123456789jiuehskdjfHSKLJsdla47547x>ëòêòéòäýüx>âû?1463543”,在xdata里收到的是”?å‚)õ‚åƒ:õƒä“"Óï?“,在send_ARRAY里加延时也不行。。。这是怎么回事呢??应该怎样避免?
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar array[]="0123456789jiuehskdjfHSKLJsdla47547237836876357425687361463543";
void init(void)
{
PCON=0x00;
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
TR1=1;
REN=1;
SM0=0;
SM1=1;
//IT0=1;
EA=1;
ES=1;
//EX0=1;
}
void delayms(uint t)
{
uint i,j;
for(i=t;i>0;i--)
for(j=110;j>0;j--);
}
void send_BYTE(uchar ch)
{
SBUF=ch;
while(!TI);
TI=0;
}
void send_ARRAY(uchar *a)
{
uint i=0;
while(a[i]!='\0')
{
send_BYTE(a[i]);
i++;
//delayms(1);
}
}
void main()
{
delayms(300);
init();
delayms(300);
send_ARRAY(array);
while(1);
}