proteus虚拟终端乱码问题。

2019-07-18 10:43发布

刚学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,指向先下一个字符
         }
}

0001.png
0002.png
0003.png
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。