找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1908|回復(fù): 3
收起左側(cè)

LCD12864漢字亂碼

[復(fù)制鏈接]
ID:277539 發(fā)表于 2018-1-28 10:03 | 顯示全部樓層 |閱讀模式
#include <reg52.h>
#include <intrins.h
typedef unsigned char u8;
typedef unsigned int u16;
sbit RS=P0^7;
sbit RW=P0^6;
sbit EN=P0^5;
sbit PSB=P0^4;
sbit RST=P0^3

void delay_ms(u16 t)
{
        u16 y;
        for(;t>0;t--)
                for(y=125;y>0;y--);
}
void delay_us(u8 t)
{
        while(--t);
}
bit read_busy()
{
        bit D7;
        RS=0;
        RW=1;
        EN=0;
        _nop_()
        EN=1;
        _nop_();
        D7=(bit)(P2&0x80);
        _nop_();
        EN=0;
        return D7;
}
void write_cmd(u8 cmd
{
        while(read_busy());
        RS=0;
        RW=0;
        EN=0;
        _nop_();
        EN=1;
        P2=cmd;
        delay_us(40);
        EN=0;
        _nop_();
}

void write_data(u8 dat
{
        while(read_busy());
        RS=1;
        RW=0;
        EN=0;
        _nop_();
        EN=1;
        P2=dat;
        delay_us(40);
        EN=0;
        _nop_();
}

void init()
{
        PSB=1;
        RST=1;
        delay_ms(50);
        write_cmd(0x30);
        delay_us(100);
        write_cmd(0x30);
        delay_us(40);
        write_cmd(0x0c);
        delay_us(100);
        write_cmd(0x01);
        delay_ms(15);
        write_cmd(0x06);
}

void position(u8 m,u8 n)
{
        u8 i,j;
        switch(m)
        {
                case 1:i=0x80;break;
                case 2:i=0x90;break;
                case 3:i=0x88;break;
                case 4:i=0x98;break;
        }
        j=i+n;
        write_cmd(j);
}

void show_poem()
{
        u8 i,j;
        u8 *str[2]={"一二三四五","四五六去"};
        for(i=0;i<4;i++)
        {
                position(i+1,0);
                for(j=0;*(str[i]+j)!='\0';j++)
                        write_data(*(str[i]+j));
        }
}

void main()
{
        init();
        show_poem();
        while(1);
}


程序有什么問題嗎?怎么寫入·漢字會亂碼,寫入英文正常顯示

回復(fù)

使用道具 舉報

ID:147459 發(fā)表于 2018-1-28 10:31 | 顯示全部樓層
看下你的屏有沒有漢字庫?
回復(fù)

使用道具 舉報

ID:277539 發(fā)表于 2018-1-28 18:38 | 顯示全部樓層
xinxiaoci 發(fā)表于 2018-1-28 10:31
看下你的屏有沒有漢字庫?

應(yīng)該有吧,我用廠家的可以顯示中文無亂碼
回復(fù)

使用道具 舉報

ID:7485 發(fā)表于 2018-1-28 20:50 | 顯示全部樓層
你是實(shí)驗(yàn)吧?把“三”這個字去掉看看是否正常?

區(qū)位碼漢字庫中凡是含有“0FDH”的字(包括“三”)都會這樣,每一個“區(qū)”里面都有一個這樣的字。

這是keil的一個bug。

可以看看:  http://www.torrancerestoration.com/bbs/dpj-5399-1.html
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表