找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 4716|回復(fù): 14
收起左側(cè)

單片機+LCD12864漢字亂碼

  [復(fù)制鏈接]
ID:469787 發(fā)表于 2020-7-12 21:03 | 顯示全部樓層 |閱讀模式
確定12864有中文字庫  

單片機源程序如下:
#include<reg52.h>
#define uchar unsigned char
#define uint  unsigned int

uchar code dis1[]={"姓名: 我愛你"};
uchar code dis2[]={"性別: 男"};
uchar code dis3[]={"工號: 119137"};
uchar code dis4[]={"www.szu.edu.cn"};

sbit LCD_RS=P0^7;
sbit LCD_RW=P0^6;
sbit LCD_EN=P0^5;
sbit LCD_PSB=P0^4;
sbit LCD_RST=P0^3;

void delay_1ms(uint x)  //1ms延遲函數(shù)
{
    uint i,j;
    for(j=0;j<x;j++)
    for(i=0;i<148;i++);
}

void write_cmd(uchar cmd)//發(fā)送命令
{
        LCD_RW=0;
        LCD_RS=0;
        
        P2=cmd;
        delay_1ms(1);
        LCD_EN=1;
        delay_1ms(1);
        LCD_EN=0;
}        

void write_data(uchar a)//發(fā)送數(shù)據(jù)
{
        LCD_RW=0;
        LCD_RS=1;
        LCD_EN=0;

        P2=a;
        delay_1ms(1);
        LCD_EN=1;
        delay_1ms(1);
        LCD_EN=0;
}
void lcd_pose(uchar X,uchar Y)//定位坐標(biāo)
{
        uchar S,pose;
switch (X)
{
case 0:
S=0x80; //液晶第一行顯示
break;
case 1:
S=0x90; //第二行顯示
break;
case 2: //第三行顯示
S=0x88;
break;
case 3: //第四行顯示
S=0x98;
break;
}
pose=S+Y;
write_cmd(pose);
}

void LCD12864_Init()
        {
            //首先對LCD進行復(fù)位
                        LCD_RST=0;
                        delay_1ms(1);
            LCD_RST=1;
                        delay_1ms(1);
                        LCD_PSB=1;
                        delay_1ms(1);
            /* 開始初始化的步驟 */
            write_cmd(0x30);
                        delay_1ms(1);
          //  write_cmd(0x08);
                        delay_1ms(1);
            write_cmd(0x01);
                        delay_1ms(1);
            write_cmd(0x06);
                        delay_1ms(1);
            write_cmd(0x0c);
          }
void write_zifu(uchar *p) //循環(huán)發(fā)送數(shù)組數(shù)據(jù)
{
        while(*p!='\0')
        {
                write_data(*p);
                p++;
                delay_1ms(5);
        }
}
void main()
{
        LCD12864_Init();
        {
        lcd_pose(0,0);
        write_zifu(dis1);
        lcd_pose(1,0);
        write_zifu(dis2);
        lcd_pose(2,0);
        write_zifu(dis3);
        lcd_pose(3,0);
        write_zifu(dis4);
        }
        while(1);
}

亂碼

亂碼
回復(fù)

使用道具 舉報

ID:789121 發(fā)表于 2020-7-12 21:14 | 顯示全部樓層
用的哪個軟件?檢查一下編碼方式。如果是keil改成GB2312試一下
回復(fù)

使用道具 舉報

ID:802252 發(fā)表于 2020-7-12 21:17 | 顯示全部樓層
檢查下液晶屏的操控時序?qū)Σ粚?/td>
回復(fù)

使用道具 舉報

ID:452950 發(fā)表于 2020-7-12 23:01 | 顯示全部樓層
如果你在keil代碼里打中文會變成?的話,需要先設(shè)置中文GB2312,然后重新編譯一下
回復(fù)

使用道具 舉報

ID:473186 發(fā)表于 2020-7-13 10:38 | 顯示全部樓層
找一個能正常顯示的對比一下就了解的,光這樣對你說越說你越迷糊
回復(fù)

使用道具 舉報

ID:706222 發(fā)表于 2020-7-13 10:43 | 顯示全部樓層
編碼問題或者接觸問題
回復(fù)

使用道具 舉報

ID:584814 發(fā)表于 2020-7-13 10:45 | 顯示全部樓層
時序沒問題,是字模檢索和獲取的問題,通俗點說就是在字庫找字的時候沒找對。
回復(fù)

使用道具 舉報

ID:752658 發(fā)表于 2020-7-13 10:52 | 顯示全部樓層
有沒有仿真呀,我要詳細(xì)的過程,呀呀呀呀呀
回復(fù)

使用道具 舉報

ID:469787 發(fā)表于 2020-7-18 18:08 | 顯示全部樓層
不要黑 發(fā)表于 2020-7-12 21:14
用的哪個軟件?檢查一下編碼方式。如果是keil改成GB2312試一下

你好   不會有?    keil5里面也改為GB2312
亂碼.JPG
回復(fù)

使用道具 舉報

ID:469787 發(fā)表于 2020-7-18 18:09 | 顯示全部樓層
不要黑 發(fā)表于 2020-7-12 21:14
用的哪個軟件?檢查一下編碼方式。如果是keil改成GB2312試一下

你好 用的是keil5  里面已經(jīng)改過來了
回復(fù)

使用道具 舉報

ID:469787 發(fā)表于 2020-7-18 18:31 | 顯示全部樓層
s17336380743 發(fā)表于 2020-7-13 10:52
有沒有仿真呀,我要詳細(xì)的過程,呀呀呀呀呀

沒有仿真
回復(fù)

使用道具 舉報

ID:469787 發(fā)表于 2020-7-18 18:33 | 顯示全部樓層
xxpp2011 發(fā)表于 2020-7-12 23:01
如果你在keil代碼里打中文會變成?的話,需要先設(shè)置中文GB2312,然后重新編譯一下

你好  現(xiàn)在我換成keil2中文破解版就可以了   還是因為編碼的原因嗎  keil5里面要什么改     
回復(fù)

使用道具 舉報

ID:986562 發(fā)表于 2021-12-16 21:11 來自觸屏版 | 顯示全部樓層
樓主你好,請問最后問題解決了么?我也遇到了這個麻煩
回復(fù)

使用道具 舉報

ID:766634 發(fā)表于 2021-12-17 14:57 | 顯示全部樓層
看起來像是字庫問題
回復(fù)

使用道具 舉報

ID:107799 發(fā)表于 2022-6-6 20:49 | 顯示全部樓層
需要打補丁可以解決這個問題。
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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