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

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

  [复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
如题,论坛里串行显示LCD12864的例程,要不就是不清晰,甚至有错误,网上一些资料或者要会员(我不说是哪家),要不就是有误。我的这个程序是我亲测可用的,接线也很明确。供坛友们下载。
1 o6 J/ \& a$ f附图,实际操作图2 `4 {% m" G7 ^4 Z, g* N' J% m+ ?8 c

# ?6 c, N$ z9 T! V3 ?单片机程序节选5 O* `9 ?% R, s! H
/********************************************************************
; Y2 c6 I  p' e, q  v7 [2 J  {7 \, b* 名称 : delay()& Z  Y6 n9 l8 P1 G5 o
* 功能 : 延时,延时时间为 100us * t。这是通过软件延时,有一定误差。5 `: K, V  x, U& ~; o3 n- I" j( J
* 输入 : t9 ^; @( e1 Q+ R. z
* 输出 : 无& n8 m7 c7 m0 t! t0 T( |( z
***********************************************************************/
. c5 p$ y  |" m& A: L/ E8 evoid delay(unsigned int t)( B9 @" K, y& D. w9 s) t
{
0 H& O7 Y# r% k! c    unsigned int i,j;
% l* r0 v6 u2 `9 r    for(i=0; i<t;  i++)3 c4 n% T5 j3 g  Z9 ^* p  J9 P# F
    for(j=0; j<10; j++);
, P  o% |7 P, a7 I; s}7 B+ U, k% l, L" v  ^

$ r7 a; h$ F" U. d/********************************************************************
% a( `0 O6 y6 e6 R; D* 名称 : sendbyte()! H) }  q$ a( q/ w/ V+ b# l
* 功能 : 按照液晶的串口通信协议,发送数据
; D0 h2 n# L( R7 I: I. j; J* 输入 : zdata
) @3 A' ]  b+ \; I/ f- s8 P* 输出 : 无
, l8 K' f" ~5 f- d# z) M***********************************************************************/5 m. J2 g) y+ G8 O: N  e
void sendbyte(unsigned char zdata)- ^: l% D# ^3 {( W8 m# A
{/ _6 V, s- o6 J. Y. s
    unsigned int i;3 r/ o% u+ v- C+ f" W
    for(i=0; i<8; i++)
- c: k1 u- Z8 s5 q. R    {- G# i  K6 L' L9 V% |, Y
        if((zdata << i) & 0x80)0 ?; C3 a# e  [- D% G- T. k
        {
. w4 T& M$ J& G; d            SID = 1;
' G& F: R% N4 j) y" U( r        }
, V# C3 [5 e/ Y6 \2 R. Z        else 0 ?$ n" }8 L6 y, Q5 e  G( y
        {( D/ ?: P2 r  }) r# l
            SID = 0;
6 Y+ X+ f& \# n! w4 k; S0 b        }
. M6 B9 F4 a- t, h' c        SCLK = 0;: N3 V: w0 y4 Y
        SCLK = 1;7 {7 Q" e4 G$ d
    }
9 W& S" R* n/ v$ @7 ^' v9 v# y}( ^: j& x. A: z5 z0 x1 h
6 W) ~& Y. W% ]" `
/********************************************************************6 J+ S: w0 |7 p8 U( X0 F
* 名称 : write_com()
" o0 v. B2 r0 z* j* T/ M' d, u5 P* 功能 : 写串口指令, o* R0 _$ q) \. ?+ L- q
* 输入 : cmdcode
& q1 \; f) ?* b( Z6 D  g) T1 }* 输出 : 无
+ g: {! ?: w+ B! y***********************************************************************/
# e9 I0 p( z# \5 l! n: T: l6 ~' P7 Lvoid write_com(unsigned char cmdcode)  u- I( f: h* {( b. c3 w
{7 `3 h5 c% O+ |
    CS = 1;2 J' n1 l# u2 H  @
    sendbyte(0xf8);
1 H5 o. V6 _  X7 p% V+ A8 ~    sendbyte(cmdcode & 0xf0);, h, E' R2 g& b& u4 j- [
    sendbyte((cmdcode << 4) & 0xf0);/ Y5 u7 D- h+ M( y" }0 \9 A
    delay(2);, g# }% i' m' \9 S
}
+ c& }' v5 S% u, d4 J  X/ _1 ^" ]: n, g' B  x& i6 \! H% |' s
/********************************************************************
  h' M  e8 a! T* 名称 : write_data()
7 B* E( e, ^& Q. z/ x: }. P9 A% I* 功能 : 写串口指令, r# Y; O, Z8 V8 c# i( r( t+ w8 ?3 ]
* 输入 : cmdcode  j( b4 ?0 Q1 ]7 S* {* N
* 输出 : 无
0 c2 W$ A4 G( U***********************************************************************// x+ ?) i. t! [  t/ u7 u
void write_data(unsigned char Dispdata)
* o& r6 V) V" @8 e( m{/ v4 C9 }# J3 B8 D
    CS = 1;
7 {# {, P. T. O2 X  v& @9 ]    sendbyte(0xfa);  R0 m5 v% c% N" F; b
    sendbyte(Dispdata & 0xf0);2 {3 R; ^, u; ?# \6 @) J
    sendbyte((Dispdata << 4) & 0xf0);
+ ~6 m, ]/ U8 B. A1 r+ \0 d$ A    delay(2);
' V8 V  B/ x# s  U5 g: ]}
7 r, J+ `) g9 \, F! X! C
4 G% i" ^1 I+ k. b- k; b/ u/********************************************************************- Y/ x3 Y6 H( Q) v- ]
* 名称 : lcdinit()
# V( S$ J- F2 G7 l5 j* 功能 : 初始化函数* O3 b! \% D/ h8 W, w
* 输入 : cmdcode
1 y& c; l( y* _* 输出 : 无
- R( J7 Q% U" i8 ?7 t9 i0 V***********************************************************************/
. F) k4 ?0 F4 w% Jvoid lcdinit()6 @7 g- s# Q  m( X/ B
{  6 r. W; F& l, h
//    RST = 0;; \7 d6 H7 t/ R. w
//    delay(100);; r) J+ K9 L+ d  ]  A
//    RST = 1;$ ?/ u( r# ~; c: P2 d
//    delay(20000);
, |6 p% j$ i& V* b5 e; K# B    write_com(0x30);9 _6 ^" m3 i: y& \9 [; W2 e
    delay(50);
3 G; Z; s* f, r. s6 B; W3 f' N) s    write_com(0x0c);2 h9 _6 h/ G3 T- u/ \
    delay(50);
3 h% E5 J" X' ]+ K; S}
, ]* h' U' u+ J

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-6-29 08:09 , Processed in 0.078125 second(s), 23 queries , Gzip On.

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

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

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