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

51单片机+LCD12864串行显示程序

  [复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-8-17 09:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

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

x
如题,论坛里串行显示LCD12864的例程,要不就是不清晰,甚至有错误,网上一些资料或者要会员(我不说是哪家),要不就是有误。我的这个程序是我亲测可用的,接线也很明确。供坛友们下载。) @( A: j% |1 B8 Z
附图,实际操作图# V3 l2 i0 X8 w$ k& M
6 j8 }$ G4 Y5 j% v8 {: L
单片机程序节选
% @2 H. `! q4 Y( L1 c% l" Y: B1 _/********************************************************************
7 i* I7 w# i$ N* P0 _* 名称 : delay()4 x1 R$ ~; ?# {. h+ b# q8 |
* 功能 : 延时,延时时间为 100us * t。这是通过软件延时,有一定误差。5 G3 [% y& z* a' q. ^" V9 A9 `! O" A
* 输入 : t
' w- T3 F6 g3 i# S* 输出 : 无1 ^  H! V1 R. U$ t- y4 J
***********************************************************************/
, E$ _2 e: e: @void delay(unsigned int t)
  q- d( `- o8 m5 x/ r' g! `6 }. F{: X2 L' Y. ]* b. l) l) D
    unsigned int i,j;
( |4 u/ V; E' H, ~    for(i=0; i<t;  i++)
% ^+ ]/ p( B- d# E  n& I& e% w    for(j=0; j<10; j++);8 ~' }3 Q+ ~$ i& P" Z
}: T5 C) e1 o0 Y# I& m

+ K* M1 S; G  Q3 x$ T/********************************************************************
: V) d) O: E1 R1 N* 名称 : sendbyte()
& D6 t& l9 X' I* 功能 : 按照液晶的串口通信协议,发送数据
! b' Y4 e9 h# P* {, a* 输入 : zdata
" U" D7 ~/ X, P: r* 输出 : 无
9 v$ h5 A) w- H9 ]***********************************************************************/, m5 h9 p- }- d' M
void sendbyte(unsigned char zdata)
& f. g6 f  e2 Y{
$ H- M0 K9 A6 Z; g* O1 s) n) U5 b    unsigned int i;4 ?6 ^% ~4 M: ~+ X- _
    for(i=0; i<8; i++)
/ t' b% a# \/ k# T    {2 m3 F/ w- \) O3 }/ S4 g/ l
        if((zdata << i) & 0x80)
1 {9 Q3 x" J1 Y! v2 c, @) W        {
: N/ N7 }; Q7 ^            SID = 1;$ D0 L" `& h  M" I( ]
        }
1 W2 U6 @2 \( i. X5 `        else 7 q; ?) S  r; Z& y8 J
        {" `/ J/ v8 i; p9 v+ ]6 D$ |$ U8 c
            SID = 0;' O* m# F5 F1 R. v8 N
        }
/ a6 B7 d( u  x7 K        SCLK = 0;, X4 F( H: j% e$ x0 E
        SCLK = 1;
8 b$ k' q( A* w( G    }$ ?. F* x* D+ y
}
3 Y# r# C& _. |) a4 l: x( [( {% ]; ]2 f5 j, P7 I
/********************************************************************7 \3 f3 d- c1 t8 p  z9 |5 h% t: z
* 名称 : write_com(). c- t$ y7 r6 e/ u! g5 A) f: ?% s# x
* 功能 : 写串口指令$ r9 f1 ]* C, Y0 x3 E
* 输入 : cmdcode
* f* ^& ]8 ]( l! F5 @' a$ M& ]* 输出 : 无! x) E4 D9 `/ V3 o* K
***********************************************************************/2 U' B$ }- }. B% h) L
void write_com(unsigned char cmdcode)
) F, w! _2 F. s% g  D{
: B  J5 K6 P. h    CS = 1;
6 f+ t0 j5 q7 q" C$ _    sendbyte(0xf8);
( H, z! _  o. E+ U    sendbyte(cmdcode & 0xf0);
$ g( T+ h% g' ^7 X+ [    sendbyte((cmdcode << 4) & 0xf0);' a* J! n1 y  L' ~7 ?
    delay(2);
! Y6 [  e3 m% _6 x5 p# |# [0 D, X}4 z3 b/ C. i3 h- n
8 e5 M3 |  {1 i% T! Q: k% P
/********************************************************************. e" O/ Q/ y. A: J' ]" X& Q
* 名称 : write_data()
4 Y& \4 ?+ U0 z* h6 v7 d- T* 功能 : 写串口指令
3 C0 P0 V% _1 H* 输入 : cmdcode
7 q# M* f2 u5 ]* 输出 : 无: V6 O* ?' S0 L' E/ ~; w. g0 X' @% s8 u
***********************************************************************/
% o/ p, M# v3 h; U# m' F' E# d, w! |" mvoid write_data(unsigned char Dispdata)4 m; X( B  h) t* b" U' z4 }1 l
{$ ?9 h2 f7 j7 p% W/ \
    CS = 1;
* l& L, h$ ^. j    sendbyte(0xfa);1 F" x6 q7 ]8 E6 b; V( y
    sendbyte(Dispdata & 0xf0);. g  I1 e6 S( P. h9 M
    sendbyte((Dispdata << 4) & 0xf0);
# X6 g& I$ h# g6 l# ?    delay(2);
* X) W; r5 v( m; v1 A}( J) ^' x% V2 S0 a# r1 U

9 |' `/ B; b  l' G: B% N/********************************************************************4 x. c. k$ z  c  A; n
* 名称 : lcdinit()
/ a. [6 K3 f7 k' U( L6 m2 s* 功能 : 初始化函数. j, B( e1 c- m, U7 }$ u3 U" i
* 输入 : cmdcode
( V7 ^" A/ E( n7 k! h0 o. |* 输出 : 无
9 }2 ~" E3 Z' ]' L; ^8 N% P5 B1 i***********************************************************************/
# h' m! ]) @6 a$ v% C+ D* {void lcdinit()* J) _1 g. o1 H! H: R7 w, r
{  
2 H9 {/ k% D+ t1 M4 g( i- f5 `//    RST = 0;5 x0 S( x- B; S) w3 B/ I
//    delay(100);
( G" F# v# T: d7 V& E& G, R//    RST = 1;
8 Q. z$ q0 S5 e, [+ X: k//    delay(20000);! r: U; `' J: ~5 C' h$ N/ \. r
    write_com(0x30);
5 M8 B5 h% i4 e! f+ {    delay(50);
: v1 n5 X0 R! a8 @( g& Q    write_com(0x0c);& z  u% i6 {* ]/ h6 J
    delay(50);
$ z8 G, d1 J/ t}
0 S. b/ A  E5 J+ Q4 e" F

该用户从未签到

3#
发表于 2022-8-17 10:35 | 只看该作者
真的很有用,谢谢分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-8-24 09:15 , Processed in 0.109375 second(s), 23 queries , Gzip On.

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

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

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