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

求助LCD1602液晶光标的问题

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

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2021-3-15 09:38 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

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

    x
    1602液晶的光标打开之后,本来是在设置好的位置进行闪烁的,但是闪烁一下后就跑到其它地方进行闪烁了,请问是什么原因呢?如图片所示,我通过按键动作,调用RightShiftSet()函数,而RightShiftSet()里又调用了RefreshCursorShow()函数,在RefreshCursorShow()函数里本来运行的是case1,设置完光标后,并且光标闪烁,结果在这个位置闪烁一下后,就跑到case4所设置的位置进行闪烁了,很奇怪,请教下各位这是什么原因造成的呢?
    . i0 s3 B, C, L0 e" g8 B" h) M( w0 \* H7 }5 S0 ]2 J

    $ `0 g6 {  i8 X) g6 y

    该用户从未签到

    2#
    发表于 2021-3-15 13:21 | 只看该作者
        switch(LCD1602_Write_Cursor_Add)$ Y4 c0 M+ \0 J: G
            {/ M# f: K1 a$ [
                    case 0CD1602_Write_Add(0x0C);break;//不显示也不闪烁光标5 m4 C4 T0 i, K7 |6 O! Z
                    case 1CD1602_Write_Add(0x0F);LCD1602_Write_Add(0xCa);break;
    8 }: ~% T2 L, e9 T                case 2CD1602_Write_Add(0x0F);LCD1602_Write_Add(0xCd);break;
    , d" E8 `9 e0 `2 t+ d# b% O                case 3:LCD1602_Write_Add(0x0F);LCD1602_Write_Add(0xC7);break;* ?: X6 y$ }" w. k) A% b8 J& \2 v! w
                    case 4:LCD1602_Write_Add(0x0F);LCD1602_Write_Add(0xC4);break;
    ' U- i# M( C! F0 M4 d8 ?$ S1 K                case 5:LCD1602_Write_Add(0x0F);LCD1602_Write_Add(0xC1);break;% M: ~: f, ]0 h3 M9 `+ ]
                    case 6:LCD1602_Write_Add(0x0F);LCD1602_Write_Add(0xCf);break;5 N2 y( F) _. d7 K+ w
                    case 7:LCD1602_Write_Add(0x0F);LCD1602_Write_Add(0x89);break;
    1 j) a& v" t; T1 {" }, u                case 8:LCD1602_Write_Add(0x0F);LCD1602_Write_Add(0x86);break;
    ! w$ _! I" x: U8 F7 t" b                case 9:LCD1602_Write_Add(0x0F);LCD1602_Write_Add(0x83);break;
    ( }+ E  w# b" ^8 j2 `6 p        }
    2 `" n6 \: k6 W0 ~2 e  x6 x( I5 |0 Z' c
    像我这样做,使用一个全局变量来控制光标闪烁的位置。变量是0则不显示光标。& X; w% a+ g+ k/ t
    不要把设备互相包含,这样你会很乱的。比如执行某个计算过程调用显示,那就打乱了计算过程。
      Y* x! W, t! P4 B$ ?( D+ W+ Y而显示的时候显示10次足够了。你每次计算都显示,那么计算1000次就显示了1000次,白白浪费了9900次的CPU时间。记住“什么是单片机?玩的就是时间!”
  • TA的每日心情
    开心
    2023-5-15 15:14
  • 签到天数: 1 天

    [LV.1]初来乍到

    3#
    发表于 2021-3-15 16:54 | 只看该作者
    四连击啊,没看出程序问题,倒是像按键程序带连发功能,或是防抖问题?

    点评

    使用的是薄膜键盘,触发时间只有10ms左右,没有进行消抖。  详情 回复 发表于 2021-3-15 16:56
  • TA的每日心情
    开心
    2023-6-12 15:40
  • 签到天数: 1 天

    [LV.1]初来乍到

    4#
     楼主| 发表于 2021-3-15 16:56 | 只看该作者
    Heaven_1 发表于 2021-3-15 16:54) ~& Q9 t% \. F: O% x4 ]4 y: E$ L
    四连击啊,没看出程序问题,倒是像按键程序带连发功能,或是防抖问题?
    7 }, x7 g1 m! S0 q% {( W
    使用的是薄膜键盘,触发时间只有10ms左右,没有进行消抖。7 r2 `! l. K, t& l

    点评

    肯定要祛痘的,不然毛刺就回有触发显示  详情 回复 发表于 2021-3-16 14:08
  • TA的每日心情
    开心
    2023-5-15 15:14
  • 签到天数: 1 天

    [LV.1]初来乍到

    5#
    发表于 2021-3-16 14:08 | 只看该作者
    本帖最后由 Heaven_1 于 2021-3-16 14:10 编辑 3 Y6 P7 |! v3 m
    mnfvbnk 发表于 2021-3-15 16:56
    * P  [3 t/ n# V0 @' J' b' z+ h使用的是薄膜键盘,触发时间只有10ms左右,没有进行消抖。
    , r. f/ E3 M' F3 X) n( Z# O; S8 ^
    肯定要去抖动判断的,不然毛刺就回有触发显示
    7 t* Y. x0 ]7 T0 x& B# M% [7 W: p
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-8-20 17:48 , Processed in 0.140625 second(s), 31 queries , Gzip On.

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

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

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