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

lcd1602滚动显示

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    #include<reg52.h>
    % C6 Z' m1 V8 [% c& c, n: v1 j, Ftypedef unsigned char uint8;) N% R6 g; }, X2 P, |- a
    typedef unsigned int uint16;/ G3 A$ Z" C6 h- _- H/ e
    sbit rs=P2^6;
    0 v5 ?& C! j5 I  p' {# s7 Wsbit rw=P2^5;
    2 s6 k' `! B3 k6 S3 S3 csbit e=P2^7;
    ) _5 \* t+ r" ?7 Ouint8 a[16]="perchin designed";
    ! X5 e, D* ?& Duint8 b[27]="welcome to the world of mcu";% G- O, _1 j$ P( x
    void delay(uint16 i)  //1us
    5 u' y, M  w9 Y2 i9 \* K8 T% z9 i! F{
    ; W2 l" r8 l5 W: X3 ^1 [        while(i--);- G0 A- e% r7 L
    }
    3 j2 E2 O9 J) X0 e& v/ lvoid wrc(uint8 c). H* x2 _; S  d$ H6 X2 ?1 i
    {$ K5 y' s4 r3 h" _+ S
            delay(1000);: M- N3 _. Q& b' p/ }  @& n# Y
            rs=0;
    6 z% Y; X  i% M/ t& ?# ?, _" X# s) f3 v        rw=0;& Q0 n" V' D# z- S. _
            e=0;! i& X- ]- s( o0 c
            P0=c;2 f$ i+ H  d# i/ e
            e=1;; ^0 f% X) ~, \) K
            delay(10);3 _0 Y6 t% C9 I0 n. P
            e=0;
    ! o( M$ }2 t' a9 p0 U/ H  L( I* w8 Z        /*1 p- i2 K) E6 U, A5 \6 {8 u
            P0=c<<4;
    ) I( K# Y; |- V1 q3 E+ X5 `+ S        e=1;3 ~; F3 d" l2 F9 ^8 Y
            e=0;*/       //四位的LCD要加上3 j$ A, L' ]: P( ]9 ]) y; T
    }3 U7 G4 e" N# G( m1 p
    void wrd(uint8 dat)
    9 q! H1 u- w: q8 s: @! ]# z+ ?& d{  I+ X4 _$ A+ i/ m
            delay(1000);1 t8 L/ F1 ^# @8 b
            rs=1;
    ) N- j3 d$ v9 }9 J9 r) W        rw=0;
    % C1 l: a' }$ H) O3 h        e=0;
    + p: w0 J$ e: B0 p; X2 j        P0=dat;1 |4 x* C; Y2 T. X: K6 O4 Z: t. W' J
            e=1;
    5 a: Q7 }- B. L4 w& B        delay(10);% U( P: A3 ~0 p2 M1 n: X
            e=0;2 b3 l) V+ a6 d6 Y" J1 N( n
            /*9 c& x% m* R( h; \
            P0=dat<<4;
    " o% W/ |1 |3 {" ?( R: K6 |        e=1;4 l6 R& E- a6 k& k' [. X
            e=0;*/           //四位的LCD要加上  {" D4 s6 P0 `. D# J) \; q
            rs=0;      + }1 n0 {0 t' i, C4 V( H3 k
    }
    / A! A& Z1 K% |8 qvoid init()
    ( @6 k3 {; |& s8 T{
    ) l9 `, P0 Q  y6 ]2 |        delay(1000);
    " P# a" k& ]7 U2 A' X3 K* [        /*wrc(0x32);         3 ^" |% ~$ L2 p. P) a* A
            wrc(0x28);
    ( _( A; d4 b: |        wrc(0x28);        */        //四位的LCD要加上0 T9 {2 O& w1 ]* n8 V/ C
            wrc(0x38);0 ?' d$ i  W- ~6 P: y6 T
            wrc(0x38);
    ) x& V- N3 ^5 t8 b2 b4 j        wrc(0x38);      
    7 B/ U9 w. o. s        wrc(0x0c);      
    + }9 Y3 {! l& F* s; p. m        wrc(0x01);      2 E  W! e4 a4 i+ A; |- m# F, s
    }
    ! D8 @' }0 I2 H% ovoid display()
    ) f6 @% U; [2 R/ n{
    ( o; W' G1 y" n# A7 \: p' a5 u4 w* b        uint8 i;0 m7 Q4 Y: L2 q: v& I
            wrc(0x00+0x80);
    1 |9 j6 @# a) R# r! E6 L8 C        for(i=0;i<16;i++)5 R8 c. Y4 x9 P5 r& o+ h
            {
    1 ^5 ~. ~  h7 C2 R6 [3 }                wrd(a);      ( g/ X7 ^( }1 J2 M! v/ H
            }
    8 F* ]( b1 U% J% X. W: V3 u$ a' l        wrc(0x40+0x80);& Y1 F% x" H' h) \$ p% e
            for(i=0;i<27;i++)* v2 X6 d+ d( g% E; }# ~7 {
            {
    4 G  i% L' y' e( E) ]                wrd(b);: I& s. w1 B5 Y5 j% @
            }
    7 P3 j  X: I7 H8 Y1 f+ \% h        wrc(0x07);         //每写一个数据屏幕就要右移一位,就相对于数据来说就是左移了;- S, Z$ Q# G" p% R' U
            while(1)0 i# _1 ^7 K6 X3 m
            {      ( K: ?0 D5 T/ W; d, L9 i0 a# G1 U( ?
                    wrc(0x00+0x80);
    # n6 e7 r, B" e2 {- w% y8 _                for(i=0;i<16;i++)
    1 A4 m1 M, q* Z% C+ H+ l0 l0 b/ A7 d                {( F# c" i; G& |6 Q
                            wrd(a);. D0 q. w" B" |; P& x
                            delay(30000);        //如果不加这条延时语句的话滚动会非常快。
    & S0 `+ r" a3 P1 u                }
    ) D9 Q8 y; i3 o& V9 ^, m8 }        }
    ( ^% T5 g+ d& ~1 u}
    # B% @' Q6 U2 M$ [/ B2 U- M* R. hvoid main()0 B, `3 `/ y0 J+ N8 W( e
    {
    ' V+ j/ L) k0 G, C4 _        init();
    4 Y; T$ q7 `: D        while(1)4 E9 I' k, P  `# \' H
            {& t. p. R8 x% k. h* v* @
                    display();
    ' W1 o* W8 J# g0 U5 K, R1 ]8 X        }      
    + m! ^1 k" ]/ g( @# f9 P0 e}
    2 R, n/ R* n, `0 z/ D9 k8 K8 k2 B

    ( V4 {) u( G, U; f, k2 X请问下面这一段语句是干什么的,看不懂,有知道的吗?
    4 x7 j* s! P1 a/ Z: J* U* A3 ?while(1)
    / j2 |* Y" i  q% v        {        
    : y1 d$ d* N- X- \                wrc(0x00+0x80);$ s/ C9 f% c3 W$ S8 J) [2 d! H
                    for(i=0;i<16;i++)
    4 Z' q8 G. t' g# Z; Z                {3 F. P% H5 E8 D. Z$ V
                            wrd(a);4 B- `9 Y  T' b! Q: M1 S9 E
                            delay(30000);        //如果不加这条延时语句的话滚动会非常快。* f6 k2 L# U, f, b& A* ]$ \! |
                    }
    % ]* S, r( v8 E3 \        }
    9 t" I2 m, _+ I( W4 `' E
    2 x, g& v5 M7 c( k3 {% R/ A

    该用户从未签到

    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-10-27 03:41 , Processed in 0.140625 second(s), 23 queries , Gzip On.

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

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

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