找回密码
 注册
关于网站域名变更的通知
查看: 267|回复: 4
打印 上一主题 下一主题

单片机+LCD12864汉字乱码

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-12-17 12:34 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
确定12864有中文字库  
  v  Q. {( s( k' V% r" @9 i) x
' j  ]! {3 q6 K2 s0 J# I# B9 m. v单片机源程序如下:) V# Q. s' M2 h  q' o
#include<reg52.h>
( [: ?; L" X7 [  O& t #define uchar unsigned char( W. r) l8 G: @5 @
#define uint  unsigned int, a( w9 a+ u7 K' w9 w
0 b9 o2 \3 a" q7 K; t
uchar code dis1[]={"姓名: 我爱你"};* Z4 X. A" q  H/ o! \
uchar code dis2[]={"性别: 男"};. F  @2 {- s0 `
uchar code dis3[]={"工号: 119137"};! f/ K. D/ m" l: g9 E: M
uchar code dis4[]={"www.szu.edu.cn"};
$ `' m: E; q: p: [2 C0 E9 R) ~( z4 ?, X- p* T
sbit LCD_RS=P0^7;
& u1 H5 R7 o: D sbit LCD_RW=P0^6;
5 _- y# d* d3 E# r" ~, j" q sbit LCD_EN=P0^5;
' j6 ]: O- N9 b2 P1 s sbit LCD_PSB=P0^4;
. Q6 g! V2 P1 c sbit LCD_RST=P0^3;
# C: ~4 ]3 E8 V8 A# e0 f
+ G) E1 }( D. _* r, Z$ n2 S/ | void delay_1ms(uint x)  //1ms延迟函数
9 \2 T! b+ f* b& O* k{
( j5 g) w9 s: X' {9 ^( x     uint i,j;
; N; ]7 H, ~6 s, P     for(j=0;j<x;j++)
3 `8 o4 a+ Y% j) P5 x     for(i=0;i<148;i++);1 @' s3 A5 p1 E% @1 z
}
' E$ }8 L/ e- Z4 R$ _
% C  D! }( h2 W4 `8 C' ~ void write_cmd(uchar cmd)//发送命令- j% Z6 _& A4 C8 M" J/ m& ^6 w/ A
{4 ]5 r; _8 ?- ?" x
         LCD_RW=0;. ?* o9 [2 W& V3 Y- f
         LCD_RS=0;
- f, |& n3 z4 m9 L         
& D' M* V! M+ ?& M5 D         P2=cmd;
% `+ K1 i. ^2 q* Z1 _         delay_1ms(1);1 J* a: w$ v; N3 f
         LCD_EN=1;
. P& ?# @; w5 a2 O) Q         delay_1ms(1);4 ^& B* f4 z/ ?
         LCD_EN=0;
" v. n8 z$ k2 j, i! w( ] }        1 q: {; c+ L" b8 V/ Z* }5 {

1 s/ ~! Q5 W, s# c" P# [; H void write_data(uchar a)//发送数据
  D# P& A- @& D1 m{
5 w0 m: l  L8 O3 P, @- u         LCD_RW=0;
3 L$ Y) z' {, {9 \8 F( J! ]         LCD_RS=1;
+ o0 Q7 v- L: l         LCD_EN=0;
* t2 t2 \. N& S& X& }; M- d4 A
# _* C2 O! ~: t& p4 K         P2=a;# l( C5 }! x( Z/ H
         delay_1ms(1);
  E: |% Q9 T/ [7 d; _         LCD_EN=1;4 Z- W( b( Q- L
         delay_1ms(1);/ Z% H# k- X$ [
         LCD_EN=0;
  w% D  }5 @$ c3 h, P# ?: h, X }
4 _6 ~3 |3 C: H8 Q  J void lcd_pose(uchar X,uchar Y)//定位坐标
; b- T  F$ B. E1 X  }, h3 L{. B# r' U% z, {: \- O; [3 @
         uchar S,pose;
' s# V9 r9 f" G  E- R switch (X)
" B% N7 U* i1 C( X {  n1 U4 O7 m7 }/ Y9 r# D
case 0:
" Y1 C2 H  r" B  S S=0x80; //液晶第一行显示
$ ~$ Z' T3 d/ g+ O  [: Ybreak;7 f) b2 l: \2 O' v4 D
case 1:
; ]! g! m& A- y5 I& s4 k$ Y) o S=0x90; //第二行显示
" t' l! F* n' N( S0 x$ hbreak;
' |! v0 n( ?  @* } case 2: //第三行显示
1 X( z- B1 F0 |' D: ~5 dS=0x88;
6 U+ ]  C, [1 S5 h3 I break;/ E6 S% H+ h$ M$ l7 d, S
case 3: //第四行显示
6 q2 Q/ h  |/ b' N) u; J: gS=0x98;$ T, S2 f4 y* i) Z
break;
5 H4 ]+ @$ B5 |! U6 i% O0 \ }
, a, [2 [: v$ z, a+ O! l pose=S+Y;
! Y1 j% {- h4 i* Q+ n0 {" M4 k# m4 h write_cmd(pose);: i3 Q7 o8 W! ?! P
}* |. Q' H1 ^; A; S
- g0 Z+ I; H! ?* _/ {4 g' P' f
void LCD12864_Init()
( ?6 M9 b, c, K) N         {- |! \" \$ @' t) U
             //首先对LCD进行复位
% n" w: m% d# n! E4 i4 v: {                        LCD_RST=0;
7 I( Y5 y) ~* [! C                         delay_1ms(1);3 S- r  L( t" J9 p& Q; y; w8 ~
             LCD_RST=1;
; T2 G' x7 b% Q; [7 C  L                         delay_1ms(1);
" `; |8 O- {* V( K- d! X7 `1 m& Z                         LCD_PSB=1;7 C/ E9 j# H/ c: z; Z
                         delay_1ms(1);
9 K8 [& ^8 W* ?" O5 Z2 l* C             /* 开始初始化的步骤 */
5 j- v2 w, r! K! ~- u             write_cmd(0x30);" q0 ~0 ^. N* g* ~9 r
                         delay_1ms(1);
! A  p! T, }8 v7 j2 @           //  write_cmd(0x08);, h9 G& Y1 t- G
                         delay_1ms(1);
* l6 T7 _2 O! ~# q  l, i, G6 D0 x             write_cmd(0x01);9 I8 Q/ h! x/ D" |6 R0 ^% v
                         delay_1ms(1);
6 t% E% g9 u, c3 _5 N             write_cmd(0x06);
! G, z  g: y6 {% Q! J0 m                         delay_1ms(1);
3 ^. V, j9 I2 j             write_cmd(0x0c);
) p/ z# {* [! V( U           }+ _$ H7 F% _0 H$ x- t( P9 g1 w. I  e
void write_zifu(uchar *p) //循环发送数组数据+ y8 F0 z: ]2 ^" ^+ E3 b( _" O% S9 j
{
) w1 f2 s' V7 ]7 Z: k/ m         while(*p!='\0')  S5 a  q- I! j. c+ X
         {0 v# s3 P) \9 r
                 write_data(*p);
! V; M3 y, Z; }% t5 o                 p++;
1 i- m6 d8 O2 @; h$ p1 r                 delay_1ms(5);) f# I3 H' {( u, ~8 x( B
         }
, o/ x: J4 a8 o) _! h  C( x, j& Z }
+ o" J. S6 }& Y* M void main()( U: U; n9 Y# o1 q/ c, [
{
8 s: F' O9 K7 {% `9 ]         LCD12864_Init();8 ^0 r) S9 f/ \' w; _" V
         {4 l- {4 H' O9 a) ]
         lcd_pose(0,0);
5 |" V$ `8 w) ]5 E  U* G& S2 w         write_zifu(dis1);
  N1 |. a, }( K  `! q: y         lcd_pose(1,0);1 L& f/ @3 p4 z; C# u" a
         write_zifu(dis2);
. L. t/ U7 n8 k         lcd_pose(2,0);$ ~: Y. \  J; ?) L$ j1 A' g
         write_zifu(dis3);
/ V0 `- K0 @, j! t0 }. X; K         lcd_pose(3,0);
/ z" b. M7 n) a* ~8 r: ]3 i9 Y         write_zifu(dis4);
) ]" R6 [1 A2 |9 T         }5 D  o' I9 [3 i# \7 q# f6 c7 Z
         while(1);" P" x' X6 S! H
}
( b9 F& I5 H. I* T
  • TA的每日心情
    开心
    2023-5-15 15:14
  • 签到天数: 1 天

    [LV.1]初来乍到

    推荐
    发表于 2021-12-17 20:09 | 只看该作者
    可以对着字库看看对应的16进制

    点评

    找对应的库  详情 回复 发表于 2021-12-17 20:21
  • TA的每日心情
    开心
    2022-12-27 15:07
  • 签到天数: 1 天

    [LV.1]初来乍到

    推荐
    发表于 2021-12-17 13:12 | 只看该作者
    液晶没有字库就会出现乱码

    该用户从未签到

    4#
    发表于 2021-12-17 20:21 | 只看该作者
    Heaven_1 发表于 2021-12-17 20:092 a: H0 R( z1 _6 J* [+ T# R, w2 j" ?
    可以对着字库看看对应的16进制
    , W/ d# A$ I/ X3 j, P. |7 {7 U) p
    找对应的库
    8 d1 E6 C' }* B! H( |8 H* m
  • TA的每日心情
    开心
    2023-5-30 15:22
  • 签到天数: 1 天

    [LV.1]初来乍到

    5#
    发表于 2021-12-21 17:26 | 只看该作者
    看看乱码汉子对应的码表
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-7-18 16:37 , Processed in 0.156250 second(s), 31 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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