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

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

  [复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
如题,论坛里串行显示LCD12864的例程,要不就是不清晰,甚至有错误,网上一些资料或者要会员(我不说是哪家),要不就是有误。我的这个程序是我亲测可用的,接线也很明确。供坛友们下载。9 P3 l9 v( L0 i7 J- a5 {
附图,实际操作图
9 j/ X# J) o. _# Y- u6 E1 G8 r: c4 x
单片机程序节选8 Q9 d. N' G# ^( u7 Y5 m
/********************************************************************) _$ p" O% N! s
* 名称 : delay()
. n* [. l# @0 V- k* 功能 : 延时,延时时间为 100us * t。这是通过软件延时,有一定误差。+ S8 p! _/ ~2 F' _) E! Q4 @: k7 i
* 输入 : t
, n7 m: _6 j, ]6 X1 Y7 D1 U* 输出 : 无
; }2 A" O( ?* F, X***********************************************************************/" {, F4 h" F" K$ f
void delay(unsigned int t)9 l' i: E- x$ t
{5 j( u0 C0 }+ T: Q
    unsigned int i,j;2 w" {" S0 c9 a
    for(i=0; i<t;  i++)5 M1 A/ V$ O) {2 B( N; u# G/ P4 _* Z
    for(j=0; j<10; j++);) ^3 [$ w2 i/ n2 b7 N0 T) x
}
) H8 d0 R2 Q0 H# ^
% I- G1 V4 c/ b/********************************************************************
% q' ~" `6 \1 a5 ^/ M* 名称 : sendbyte(), }- a& h( U2 k" a1 ]- K* M
* 功能 : 按照液晶的串口通信协议,发送数据0 M7 k7 W7 U/ {2 o" p2 `5 @: Z% \
* 输入 : zdata
) _6 p1 M/ [. J* n- g* 输出 : 无$ c. }9 i8 N* I0 L- b5 {5 e; g
***********************************************************************/
' G$ o, ^: ~. ?4 Vvoid sendbyte(unsigned char zdata)) N6 j4 _3 N$ v* D
{
- O+ d4 q  A" i+ u" R! j    unsigned int i;
0 e8 w4 w% k6 o    for(i=0; i<8; i++). l: ]9 s; ?; H* j- y( z
    {0 v8 B3 a0 y+ z7 E
        if((zdata << i) & 0x80)
( a0 }2 x; t6 l( d        {% J6 P/ G3 T3 f: a9 J- ?( E
            SID = 1;/ V4 d% g3 E/ x1 O  {  [
        }* m6 ?8 @' o. B
        else
) |' ^- [8 K+ N+ Q; Y8 c        {
) r3 g( O5 N! r0 n# ]            SID = 0;. `( n) y& N( `7 v
        }
9 y% C. F! ^* W2 T/ k) ~) V, t        SCLK = 0;
6 l  Z* J/ i0 N9 i2 m( o; p        SCLK = 1;
9 A% s* @8 y+ o) x: ?    }# C3 r) e8 c1 X0 }3 a8 ^7 P$ [2 X7 I
}
  ]) X5 R( D& S6 j1 w, w& ~& {4 ?# M% c  F
/********************************************************************# L* h1 R$ \/ J; s( z8 n3 h
* 名称 : write_com()
" d& k# |5 p# u: i; i# j* 功能 : 写串口指令0 e$ f& R- m6 C
* 输入 : cmdcode! \6 E7 W% E# B
* 输出 : 无
1 Y% Z' f. G4 [& \3 h; b***********************************************************************/
, ]; a3 X$ \# E$ p4 mvoid write_com(unsigned char cmdcode)
9 W8 s6 u+ B. p6 Q- S7 a! z5 I{& j) F1 C: R/ e. s2 ~( v9 g" }
    CS = 1;
6 j! d: z$ W( W+ _    sendbyte(0xf8);8 L( c1 X$ }& o0 N0 @3 M& j* f
    sendbyte(cmdcode & 0xf0);
5 i! h4 @) O* L! _    sendbyte((cmdcode << 4) & 0xf0);
/ z& h6 q" F, X2 u' C( F5 q    delay(2);; r: t" D( }1 t8 q+ g' }
}. a, |' }3 X8 S- x, W

0 g7 U/ [9 Q# \6 }' a4 O$ C' Q) x/********************************************************************
  u0 h  q" Z' I! [- J1 m1 c2 u* 名称 : write_data()
( W0 d) K' a: C4 t! H3 f; m* 功能 : 写串口指令
! }. {6 I3 L6 ]2 o- T2 k, F' _  b* 输入 : cmdcode3 I7 `) y  U3 O
* 输出 : 无
  v# R* H" M$ V' }) C; ^***********************************************************************/
# u1 g, E9 ]; [$ e  p5 \void write_data(unsigned char Dispdata)! f' M0 d4 Q0 `; o2 A: ]
{
" S0 k4 V: k; F    CS = 1;
2 R9 K3 s4 m8 p4 o" @4 E$ w% Q+ ~. l    sendbyte(0xfa);1 E) [: [& l/ p2 ?2 ~4 r* C; Y8 W
    sendbyte(Dispdata & 0xf0);
4 F, ^  V7 W( B; A& \' v; k    sendbyte((Dispdata << 4) & 0xf0);* k- B% Y0 x# u4 y' L
    delay(2);
: z1 U, |' w- ]. G- Y}
2 A% x' ~& ?  z9 a/ p+ l
* {3 T& A3 U# G1 \/ Y4 w/********************************************************************* }$ @; v& M5 D2 M
* 名称 : lcdinit()- y2 A1 I9 F3 N
* 功能 : 初始化函数
: ^/ [# u! |7 h2 x) \+ y* 输入 : cmdcode2 P" L# q) _- `
* 输出 : 无
7 m& N1 X5 ?5 @9 K+ ~" {+ r***********************************************************************/6 `; ?% K. M$ }
void lcdinit()# \. ]6 y0 V+ Y' ~2 x3 F1 _
{  
$ k4 O7 N5 ~3 x) Z//    RST = 0;
; y# w% z' Q3 s( B  y; X6 Q//    delay(100);. a2 c& M+ Y. h2 O# j1 O
//    RST = 1;$ ]* _% P- k0 l* J& h
//    delay(20000);) e+ C2 J' A: X& ^8 E8 H) x
    write_com(0x30);
" h5 l, q( m4 p) U) D. n0 O    delay(50);
) E* [  t9 r  v" Y7 T( X9 D    write_com(0x0c);
8 @! {2 N6 U$ c3 }    delay(50);4 P, h% @; z0 x! o. x" v1 y( V
}
) e' g) K9 x  ?- ?3 v+ @

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-8 12:04 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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