使用1602液晶时,为什么非要设置DB7对应I/O设为输入才能读取PIN,判断lcd是否忙!?
对m16的datasheet上有一句“不论如何配置DDxn,都可以通过读取PINxn 寄存器来获得引脚电平。”那我应该把DB7对应I/O设为输出也能读取PIN,判断1602忙的。而事实当我把DB7对应I/O为输出时,1602就就无法显示了。请问如何理解“不论如何配置DDxn,都可以通过读取PINxn 寄存器来获得引脚电平。” 没错----"不论如何配置DDxn,都可以通过读取PINxn 寄存器来获得引脚电平"
只是你要读1602输出的忙状态,M16就不能也设为输出啦----冲突了。这是电路基础问题。 1602空闲时D7为0不会拉低MCU的I/O吗?lcd空闲D7为0怎么理解? 是呀。
但你的IO口必须设为输入。 我的理解:当如果设IO口为输入的话,它上面的电平是随着外部所接的而变化的,但是设为输出的话,如果置0的话,那就一定是低了,而且也会让PIN口上为低的。除非外部输入的电平要高于MEGA内部的输出。
页:
[1]