标题: 求助!!关于51单片机串口通信,汉字显示乱码问题 [打印本页]

作者: 风逸雨青    时间: 2016-3-25 15:42
标题: 求助!!关于51单片机串口通信,汉字显示乱码问题
用51单片机写了一个单片机给PC发送数据的程序。发送的是一段汉字,前一半的汉字显示正常,后一半的汉字显示为乱码。代码如下:
#include<reg51.h>
void uartconfig();
void delay10ms(unsigned int c) ;
unsigned char dat[26]="小明是仇桥镇三门村六组人士";
void main()
{
        unsigned char i;
        uartconfig();
        while(1)
        {
                for(i=0;i<26;i++)
                {
                        SBUF=dat[i];
                        while(TI==0);
                        TI=0;
                }
                delay10ms(50);
         }
}
void uartconfig()
{
        SCON=0x40;
        TMOD=0x20;
        PCON=0x80;
        TL1=0xf3;
        TH1=0xf3;
        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--);      
}
显示的结果见附件

无标题.jpg (130.91 KB, 下载次数: 104)

无标题.jpg

作者: ahshmj    时间: 2016-3-25 16:00
这是keil 的问题。有一个补丁可以解决。
汉字库中每个区中都有一个字,区位码的低位字节是“FDH”的,被KEIL过滤掉了。如“三”、“电”、“庚”等等。
也可以直接用这些字的区位码,而不用汉字。
作者: 风逸雨青    时间: 2016-3-26 09:50
ahshmj 发表于 2016-3-25 16:00
这是keil 的问题。有一个补丁可以解决。
汉字库中每个区中都有一个字,区位码的低位字节是“FDH”的,被KE ...

谢谢说明,确实是那个问题。不过网上的晓奇的补丁不知道为什么我用不了,一直是c51.exe haven't change.




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1