找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6851|回复: 2
收起左侧

求助!!关于51单片机串口通信,汉字显示乱码问题

[复制链接]
ID:110744 发表于 2016-3-25 15:42 | 显示全部楼层 |阅读模式
用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
回复

使用道具 举报

ID:7485 发表于 2016-3-25 16:00 | 显示全部楼层
这是keil 的问题。有一个补丁可以解决。
汉字库中每个区中都有一个字,区位码的低位字节是“FDH”的,被KEIL过滤掉了。如“三”、“电”、“庚”等等。
也可以直接用这些字的区位码,而不用汉字。
回复

使用道具 举报

ID:110744 发表于 2016-3-26 09:50 | 显示全部楼层
ahshmj 发表于 2016-3-25 16:00
这是keil 的问题。有一个补丁可以解决。
汉字库中每个区中都有一个字,区位码的低位字节是“FDH”的,被KE ...

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

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表