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

lcd1602滚动显示

[复制链接]
  • TA的每日心情
    开心
    2023-5-15 15:25
  • 签到天数: 1 天

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    #include<reg52.h>
    1 P1 w$ x+ n/ D8 c2 \typedef unsigned char uint8;1 H7 @6 G7 c2 P# n5 q
    typedef unsigned int uint16;6 \# F; f& ?9 I/ i* p( M! k
    sbit rs=P2^6;
    9 C, X% C2 J. X. ]  n* K- q7 Fsbit rw=P2^5;. p, {( c: ]! Z8 g
    sbit e=P2^7;% L$ L% V# w, m5 q( g* s
    uint8 a[16]="perchin designed";  Z6 X. R* F7 q# c0 k; A5 j  e
    uint8 b[27]="welcome to the world of mcu";# J% h# ^7 q& F) A* \# P
    void delay(uint16 i)  //1us
    8 V/ g! I8 r) x, U' n{
    5 g' ~* J# C3 g+ R# I        while(i--);
    9 B+ g2 C2 x! G0 t0 k}
    5 i' `! J/ z6 wvoid wrc(uint8 c)
    ( t, g" v9 O: o  Z# i$ j' l" e9 `{
    1 H7 ]2 b6 V6 C. x3 D        delay(1000);
    * K: Y# @3 n4 [: e* r: e        rs=0;
    4 ?4 m0 ?- E4 e) W9 u5 Q5 a* v        rw=0;
    9 }0 |. g) W  g9 x- Z# J        e=0;$ x# n5 w4 ^  H/ t6 K
            P0=c;# z! s2 v/ f/ p+ z$ k' |4 D
            e=1;
    ' C- }) b2 F& C; h        delay(10);% P4 d: Q' ]( W" @' o4 m/ j
            e=0;! k, `+ }5 K5 L/ F
            /*
    ; j  F* |7 D9 K/ a- j        P0=c<<4;7 c! P3 r6 M5 l
            e=1;1 z/ O* v8 @. l
            e=0;*/       //四位的LCD要加上& j7 z8 o1 Y/ {0 G+ N% V" x- ^6 l
    }
    ( J% ?  T5 a- M. G+ x* C4 ^void wrd(uint8 dat)
    3 l7 v1 W' X. ]& g, w8 }1 R{
    5 z3 `+ ?% g* a, z4 t) @        delay(1000);, M3 @) S! F  ~
            rs=1;7 X! P  }1 z/ E  i2 v+ `
            rw=0;, x# a  A! g5 X+ \% K2 J
            e=0;- X, Z: i) m) }# N( _/ Z  B
            P0=dat;
    . n. G% Z2 ^. D& f6 g* ~        e=1;
    - `! C! I# v4 ?1 T6 N8 G1 R        delay(10);* i  ~# ?6 s4 d2 z; T; g
            e=0;
    ( S  J! a" n8 O! U8 r( z* Y        /*. c' g: G- [) n
            P0=dat<<4;
    + c$ [) ^, }8 Q        e=1;. Y+ [& ~& c* }% b
            e=0;*/           //四位的LCD要加上
    " N9 N2 G+ |+ G0 j- B        rs=0;      5 g% \7 }( l- g
    }
    ( [  k+ `: E- P8 K) E! fvoid init()
    ; t" T# C0 h6 S! v{; N$ S( M0 `1 k0 N
            delay(1000);
    1 `# V" B; I' M6 ?' E        /*wrc(0x32);         
    * y! N+ R- s, B        wrc(0x28);9 \- \3 l! r! j! x) ?2 Y
            wrc(0x28);        */        //四位的LCD要加上" U2 H# b$ `+ D$ b
            wrc(0x38);- }/ J+ p, ]! M4 o; {- m& I! n
            wrc(0x38);
    - ^) V5 o( a2 X9 i        wrc(0x38);      , ?4 m2 x  o5 G, F0 x6 I
            wrc(0x0c);      
    ! l' o/ F& l& l$ T# r        wrc(0x01);      
    * p0 ?0 D9 @$ M9 F' R+ Z}
    1 K: {) V4 I4 Vvoid display()) L7 y" r$ ~7 K) b9 m! U+ I7 \
    {, T6 u( w$ }- P5 `% J3 f' F, q
            uint8 i;
    4 E4 V% g- t3 f" s        wrc(0x00+0x80);
    0 U# f& k9 ?1 P% y: D: Q, U        for(i=0;i<16;i++)
    * Q8 A, E3 g! X& }, `, T1 k        {! N/ M# V: q( x6 L( R7 M
                    wrd(a);      ; C' X" z2 u- P: V5 K
            }. P, y3 c  `. l4 A: D2 r
            wrc(0x40+0x80);
      ^% j4 K- X) F3 [4 ]/ B& Z        for(i=0;i<27;i++)
    ! X% B" f9 d" ^2 h& E7 q) v0 |6 r        {
    5 m+ K( f& ]/ }$ M# ?: F- [                wrd(b);9 ]/ v: V6 y+ i% J& B
            }2 y/ I$ f# ]8 G/ \
            wrc(0x07);         //每写一个数据屏幕就要右移一位,就相对于数据来说就是左移了;
    9 p4 K; g+ d# m, n9 s( ^0 ^7 A        while(1)
    , v: p! u# t6 c: j( Q0 j" Q        {      
    ; t: _+ U8 D: E: ~                wrc(0x00+0x80);0 g& T# u; k) m* z! H
                    for(i=0;i<16;i++)
    9 J1 P+ R$ {# l3 Y" k  |                {& Q. n% f; D5 z+ l3 {+ P
                            wrd(a);$ P& o! \! v5 {0 @5 R! j
                            delay(30000);        //如果不加这条延时语句的话滚动会非常快。
    # o7 P5 L  c6 g! M% k                }4 g) C" a6 A% H( f- u
            }
    3 }0 o: U: w' ?% X}/ A  {/ v& B5 C4 u8 s9 `" {+ r
    void main()
    " Z* P4 s- k7 r, H- U7 ?3 O! e{
    0 I+ {9 A! }4 N8 D        init();
    4 U( |" X+ S/ E6 {6 K        while(1)& r/ @$ w. G6 M+ ^: z% S8 ~
            {& a" u' L. G& a: q7 W* y
                    display();' p3 d, Z' Q/ c% y2 t- p9 e6 J
            }      ( O4 P4 w4 U% [7 e; K6 e
    }* h- Q, s4 `& U
    + ?1 y& y( N/ G- p* `, l1 |
    3 m  C( b3 i& r1 s
    请问下面这一段语句是干什么的,看不懂,有知道的吗?2 Y# b: U4 k$ B
    while(1). R. n" B* }5 B. }
            {        
    6 C/ Q8 a+ v! x2 K7 y8 J6 e8 M                wrc(0x00+0x80);2 @0 M: }" S* R! s1 D" s2 f( S
                    for(i=0;i<16;i++)
    1 ^8 b1 J' n2 H+ v, x                {
    * K( h! [+ J, }9 x+ H                        wrd(a);- M2 ], ?8 p3 z  Z7 @
                            delay(30000);        //如果不加这条延时语句的话滚动会非常快。
    : L- M+ j; F* T+ I2 ^: x6 ?                }0 p, m; w0 a$ X. e
            }
      L& B' R" E" m) t% m) ?( _
    5 |/ k8 {! h* b: ?

    该用户从未签到

    2#
    发表于 2021-1-25 19:01 | 只看该作者
                                           

    该用户从未签到

    3#
    发表于 2021-1-26 10:22 | 只看该作者
    delay(30000),是每次显示完一条有短暂停顿,for语句是每行显示16个字符
  • TA的每日心情
    开心
    2023-5-15 15:14
  • 签到天数: 1 天

    [LV.1]初来乍到

    4#
    发表于 2021-1-26 11:12 | 只看该作者
    每次显示完,重新改变数组要显示的数据,

    该用户从未签到

    5#
    发表于 2021-1-28 20:05 | 只看该作者
    感谢楼主分享666666

    该用户从未签到

    6#
    发表于 2021-2-20 22:52 | 只看该作者
    谢谢分享,收藏
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-8-20 21:13 , Processed in 0.109375 second(s), 24 queries , Gzip On.

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

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

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