请问读取1602的状态是什么意思?有些什么状态,每个状态的输出是多少?
#define BUSY 0x80;
addr = read_state()&~BUSY;
这是什么意思?
登录后可评论,请 登录或 注册
这个指令用来读取LCD1602状态。对于单片机来说,LCD1602属于慢速设备。当单片机向其发送一个指令后,它将去执行这个指令。这时如果单片机再次发送下一条指令,由于LCD1602速度较慢,前一条指令还未执行完毕,它将不接受这新的指令,导致新的指令丢失。因此这条读忙指令可以用来判断LCD1602是否忙,能否接收单片机发来的指令。当BF=1,表示LCD1602正忙,不能接受单片机的指令;当BF=0,表示LCD1602空闲,可以接收单片机的指令。
通俗的讲就是这样的:
读状态是用来读1602是否在忙,意思是如果你给1602传输两个东西,1602要先吃完第一个,忙,此时不能吃第二个,等到第一个吃完了,变闲,通过这函数知道1602可以吃第二个了,,再发第二个给它。
这个指令用来读取LCD1602状态。对于单片机来说,LCD1602属于慢速设备。当单片机向其发送一个指令后,它将去执行这个指令。这时如果单片机再次发送下一条指令,由于LCD1602速度较慢,前一条指令还未执行完毕,它将不接受这新的指令,导致新的指令丢失。因此这条读忙指令可以用来判断LCD1602是否忙,能否接收单片机发来的指令。当BF=1,表示LCD1602正忙,不能接受单片机的指令;当BF=0,表示LCD1602空闲,可以接收单片机的指令。
通俗的讲就是这样的:
读状态是用来读1602是否在忙,意思是如果你给1602传输两个东西,1602要先吃完第一个,忙,此时不能吃第二个,等到第一个吃完了,变闲,通过这函数知道1602可以吃第二个了,,再发第二个给它。
书上有这么一句话是这样说的,由于单片机不是很快,只需要做简单延时即可,就是说,用比较慢的单片机时,你发第二个给1602时,1602早就把第一个吃完了。或者做简单延时,如1602吃第一个要用1 秒,那么我就延时3秒,它总吃完了吧,那么我就不用检测它是否忙而直接给它第二个,我个人理解是,在要求时间相当快而紧时,1602一旦吃完第一个就要吃第二个的准确要求下,就要用到这个读状态。一旦不忙,就让它继续忙。。。。。。。