neutronlmk 发表于 2005-8-7 16:38:38

使用1602液晶时,为什么非要设置DB7对应I/O设为输入才能读取PIN,判断lcd是否忙!?

对m16的datasheet上有一句“不论如何配置DDxn,都可以通过读取PINxn 寄存器来获得引脚电平。”那我应该把DB7对应I/O设为输出也能读取PIN,判断1602忙的。

而事实当我把DB7对应I/O为输出时,1602就就无法显示了。请问如何理解“不论如何配置DDxn,都可以通过读取PINxn 寄存器来获得引脚电平。”

HJJourAVR 发表于 2005-8-11 16:07:37

没错----"不论如何配置DDxn,都可以通过读取PINxn 寄存器来获得引脚电平"



只是你要读1602输出的忙状态,M16就不能也设为输出啦----冲突了。这是电路基础问题。

neutronlmk 发表于 2005-8-14 20:01:11

1602空闲时D7为0不会拉低MCU的I/O吗?lcd空闲D7为0怎么理解?

HJJourAVR 发表于 2005-8-15 09:43:12

是呀。

但你的IO口必须设为输入。

myhk007 发表于 2005-8-19 17:22:21

我的理解:当如果设IO口为输入的话,它上面的电平是随着外部所接的而变化的,但是设为输出的话,如果置0的话,那就一定是低了,而且也会让PIN口上为低的。除非外部输入的电平要高于MEGA内部的输出。
页: [1]
查看完整版本: 使用1602液晶时,为什么非要设置DB7对应I/O设为输入才能读取PIN,判断lcd是否忙!?