找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5704|回复: 2
打印 上一主题 下一主题
收起左侧

LCD1602忙碌状态判断

[复制链接]
跳转到指定楼层
楼主
ID:379308 发表于 2018-9-17 21:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
        void  LCD1602_checkbusy()
{
        uchar state;
        LCD1602_DB=0xff;    //LCD1602正忙,禁止读写数据或命令
        LCD1602_RS=0;
        LCD1602_RW=1;
        do  
        {
                LCD1602_E=1;
                state=LCD1602_DB;
                LCD1602_E=0;     //读完状态后撤销使能,防止LCD输出干扰总线
        }while(state&0x80);      //若LCD为忙碌状态就持续检测,一直到不忙为止
}
此处用do-while而不能用whil,do-while是执行一次后再进行判断,而while是直接进行判断;若LCD一开始就是空闲状态的的话,空闲状态无法存储,在接下的操作中无法读出LCD的状态,从而无法再LCD上显示

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:164602 发表于 2018-9-18 08:51 | 只看该作者
1602可以不检测“忙”状态,因为它的操作是很快的。12864才需要

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

板凳
ID:865588 发表于 2020-12-22 15:58 来自手机 | 只看该作者
这个不会一直进入死循环么
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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