单片机引脚为什么有读锁存器和读引脚两个选项?

要解答这个问题,我们先考虑一种情况,假如我们要对P0.1引脚输出(赋值)为1,那么单片机内部是如何工作的?我的分析如下:
我们知道,引脚属于IO设备,单片机内部CPU是通过地址总线,数据总线,控制总线对其进行赋值的,也就是说CPU不可能只对P0.1赋值,应该是对整个P0端口整体赋值,但是我们确实在编程过程中是可以通过指令对P0.1进行赋值。假如要给P0.1置位1,这个时候CPU的工作应该是这样的,CPU先读取整个P0寄存器的数值,然后将其跟1000 0000 进行或操作,再送回至P0寄存器。这样除了将P0.1引脚置1,其他引脚状态不变。
那么如果我们读取不是寄存器而是引脚的话就会出现问题,因为在某些情况下(应该说这种情况很多,比如我们将P0口接上拉电阻,然后检测其引脚状态,这个时候引脚状态是随外电路变化而变化的)引脚的状态与寄存器输出不相同,就会使得我们在对P0.1置位的同时其他引脚也被错误的置位。
以上就是为什么会有读锁存器与读引脚两个选择的原因。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值