**************************************************************************/
设置的波特率是9600,方式1。
#include<reg51.h>
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#define uint unsigned int
#define uchar unsigned char
void UsartConfiguration();
void Delay10ms(unsigned int c);
*******************************************************************************/
int i;
int j[5]={0};
void main()
{
UsartConfiguration();
while(1)
{
j[0]=1;
j[1]=2;
j[2]=3;
j[3]=4;
j[4]=5;
for(i=0;i<5;i++)
{ SBUF=j;
while(!TI); //µÈ´ý·¢ËÍÊý¾ÝÍê³É
TI=1;
}
Delay10ms(200); //ÑÓʱһÏÂÔÙ·¢
}}
/*******************************************************************************
void UsartConfiguration()
{
SCON=0X50;
TMOD=0X20;
PCON=0X00;
TH1=0XFD;
TL1=0XFD;
ES=1;
EA=1;
TR1=1;
}
void Delay10ms(unsigned int c)
{
unsigned char a, b;
for (;c>0;c--)
{
for (b=38;b>0;b--)
{
for (a=130;a>0;a--);
}
}
}
我是一位一位数发的,应该输出的是01,02,03,04,05。但是输出的并不是这样。
设置数据位为7位则输出下图:
C:\Users\me\Desktop\MM1
设置为8位输出下图:
C:\Users\me\Desktop\MM2
但是在51上我设置的是8位数据位,1位停止位。我一直不知道问题在哪里。
|