一分钟带你了解LCD1602

为什么用锁?

一般来说,用锁的地方一般就两种,一个是串口发送的数据的时候是用锁的,因为串口发送是一个比特一个比特发送的,所以在发送一个字节的时候不能被打扰,否则再次调用发送函数的话会发生错位。另外一个用锁的地方就是LCD1602,这个用锁的理由和上面的类似,也是防止LCD在执行命令的时候不被打扰,能够完整的执行命令,也就是有一个忙状态,所以每次向LCD写数据还是写命令的时候,都需要检查一下LCD是否是在处理别的事情,即检查一下是否在忙碌。也就是说,用锁的目的总的来说,是让上个流程能够完整地执行下去才行。

为什么只有接受数据才需要缓存?

缓存缓存,正是因为为了照顾主机处理不过来上次处理的事情而建立的一个临时存储空间,只是在接受数据的时候使用的。而当主机作为发送方的时候,如果不是串口通信(串口通信需要上锁),发送的时候就直接发就好了,不用缓存,要不要缓存是接收方才要考虑的事情。并且,主机作为发送方的话,是完全不用顾忌对方有没有缓存,这超出了主机的能力范围,这不是主机能够干涉的事情,如果主机作为发送方的话,只需要关注发送数据就好了。

18B20的发送和接受中的时序问题

由于18B20只用一个引脚进行通信,所以就会发生主机芯片和18B20占用引脚的行为,而我们编写的代码是主机芯片来运行的,和18B20无关,也就是说对于唯一的一根数据引脚,主机写的代码只能控制主机对于引脚的占据和释放,并不能左右18B20对于引脚的占用和释放,一定需要注意这一点。这里的关系很容易与主机通过引脚控制别的部件相混淆,需要注意的是,上述的关于18B20的例子中,是关于数据的传输而对于一根引脚的占用和释放,数据的传输是双向的,所以就有了从机18B20对于引脚的控制,但是第二种情况是主机通过引脚对部件的单项控制,而不是双向的数据传输,所以对于部件的单项控制,引脚的电平高低是全权由主机控制的,无论引脚需要如何变化,主机都是需要写出相应变化的,而在数据传输的双向对引脚的控制中,主机控制完了自己的一部分,就不需要写代码管引脚了,剩下的部分会由从机18B20自己独自读对引脚进行操作。

LCD的传输模式

值得一提的事LCD传输数据是并行的,可以一个字节一个字节的传递,所以发送数据的时候,不需要上锁(串行需要上锁。),直接检测忙碌状态之后,直接发送就好了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值