51单片机P3口的第一第二功能如何同时使用?

如题,我的外设比较多,现在就只剩下P3口可以利用了。我打算讲P3口进行io扩展,然后接上许多外设。但最近发现P3口还有第二功能,而我在编程序的时候肯定会用到中断什么的,这样我就疑惑了:P3口能既当io口,又保障第二功能实现的时候不干扰io口上的电平吗?或者说,外设的存在会不会影响第二功能的实现?

P0口接锁存器的BD0-BD7,P1口低4位接4-16译码器,译码器的15个口接锁存器的使能端(有一个悬空,防止误操作),这样就可以用12个I/O口扩展15*8=120个单输出口。也可以把一半的锁存器反转过来做输入,就60个输出60个输入。当然不好的地方是锁存器太多的话速度会变慢,而且程序会比初学的程序麻烦。这样P3口就可以接2个外部中断,2个io口做I2C接口,2个io口专门做串口通信,还2个io口再做个别的
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-05-07
定时器/计数器0和1,是内部的两个16位的寄存器,做定时器时,定时器不对管脚进行操作,与P3口毫不相干;但是作计数器时,它用到了P3.4和P3.5这两个管脚,P3.4或P3.5就被占用了。也就是说,如果定时器 为了定时 那么可以用作 普通IO口来用,但用作 外部计数器就不可以 。追问

好棒啊~~学习了~~那该怎么进行扩展呢?比如说用74hc595,怎么和单片机接线呢?

本回答被提问者和网友采纳
第2个回答  2014-07-29
复用功能和普通io不要同时使用。分析理论上是正确的。但是层主可以写个程序验证一下:使用定时器T0,每隔1秒让p33管脚闪烁一次。得到结果是换成其他管脚都可以闪烁,唯独p33管脚不可以。所以要慎用。追答

麻烦楼主艾特一下四楼。。。

第3个回答  2020-02-21
嘿嘿
俺来回答你的问题
如果用了p3,0,p3.1的第二功能rxd,txd,
则其他p3口线还可以当作普通i/o口使用
也可以做第二功能使用。
总之
比较灵活
但二者只能选一个,不可兼得哦
呵呵
满意
就选满意回答
第4个回答  2014-07-29
会影响的。比如做定时器用,相应的管脚是不能做普通io用的(网上说的不正确)。如果要扩展IO,可以用锁存器,译码器,74hc595,74ls164,等等进行扩展。如果不是特别严格的话,可以选用串口数据的芯片。追问

那扩展io口该选择P0,P1,P2,P3中的哪些好啊?如果用了定时器或外部中断的话,相应的P3都就都不能用了吗?那资源就得不到充分利用了啊!

追答

扩展用哪个都可以,复用功能是独立的,比如开启外部中断,和串口对应管脚一毛钱关系都没有。

追问

不是吧?如果开启了外部中断,不是通过手动的方法对相应管脚产生低电平或下降沿触发中断的吗?那如果接了外设,肯定会乱的嘛!该怎么解决复用功能和正常io操作的矛盾呢?

追答

复用功能和普通io不要同时使用。楼下的分析理论上是正确的。但是楼主可以写个程序验证一下:使用定时器T0,每隔1秒让p33管脚闪烁一次。得到结果是换成其他管脚都可以闪烁,唯独p33管脚不可以。

相似回答