刚学C51,用
proteus仿真,结果发现乱码。求大师指导一下。
下面附上代码。
#include <REG52.H>
#include <stdio.h>
void initUsart(void);
void send_char(unsigned char data1);
void send_string(unsigned char *dat);
int main(void)
{
unsigned long counter;
initUsart();
while(1)
{
//SBUF='A';
//while(!
ti); //等待发送完
//TI=0;
send_string("Receiving from 8051...
"); //发送字符串,结尾回车换行
for(counter =0;counter<2000;counter++);
}
return 0;
}
void initUsart(void)
{
SCON = 0x40; //串口工作方式设置
TMOD = 0x20; //定时器工作方式设置
PCON = 0x00; //波特率倍增设置
TL1 = 0xfd; //波特率设置
TH1 = 0xfd; //
TI = 0; // 清0发送中断标志
TR1 = 1; //开启定时器
}
//字符发送函数
void send_char(unsigned char data1)
{
SBUF = data1; //将待发送的字符送入发送缓冲器
while(TI == 0); //等待发送完成
TI = 0; //发送中断标志请0
}
//字符串发送函数
void send_string(unsigned char *dat)
{
while(*dat != ' ') //判断字符串是否发送完毕
{
send_char(*dat); //发送单个字符
dat++; //字符地址加1,指向先下一个字符
}
}
-
-
-
一周热门 更多>