MCS-51单片机的P3口的每一位均具有第二功能,使用时会不会发生冲突?为什么?

[复制链接]
查看11 | 回复5 | 2011-10-15 08:35:59 | 显示全部楼层 |阅读模式
回复

使用道具 举报

千问 | 2011-10-15 08:35:59 | 显示全部楼层
复位后第二功能都是关闭的,要设置一下才能用,不设置就是一般的端口
回复

使用道具 举报

千问 | 2011-10-15 08:35:59 | 显示全部楼层
第二功能是由特殊寄存器控制的,在没有设置情况下,就是一般的端口如P1,P2。。。
回复

使用道具 举报

千问 | 2011-10-15 08:35:59 | 显示全部楼层
楼上说对,比如如果你使用了串口中断就不要去使用RX,Tx对应的引脚了
回复

使用道具 举报

千问 | 2011-10-15 08:35:59 | 显示全部楼层
一般而言,同一个端口要同时实现两种功能是不可能的。不过具体问题具体分析,有时候根据应用可以做到分时共用。你说的这种模式一定有,但一定是非常巧妙的,绝不是常规用法,不具备通用性。所以最好的办法还是进行扩展或使用多个端口。具体到你的例子,共用无法实现。又想了一下,有一种方法可能会实现:在对RAM写操作前保存LED状态,等完成后再恢复,这有个要求,就是RAM应有片选控制,总原则是不至于由于LED状态影响其它的外围设备,由于WR的负脉冲很短,对视觉的影响不大。如此可以实现。不过说实话,不规范,可能软件也比较麻烦,作为实验,你可以尝试一下,作为产品则不足龋
回复

使用道具 举报

千问 | 2011-10-15 08:35:59 | 显示全部楼层
P3.4~P3.6对应的分别是:T0、T1、WR。要使用这三根线做普通IO口需要满足以下条件:1、针对WR:不能有对外部RAM的写操作,也就是说不能对XDATA及PDATA型变量进行写操作;再进一步,软件在编译时,变量存储模式选项不能选择中模式及大模式,否则缺省状态下,程序中的局部变量都会采用外部RAM,这样的话一旦发生写操作(对变量赋值),则WR(P3.6)管脚上一定会输出写操作的负脉冲。这种冲突不采用额外的硬件手段是不可能避免的。2、针对T0、T1:比较简单,只要系统中没有将T0、T1用作外部信号计数,则可以将其用作普通IO口用,不会造成什么冲突。不像P0口需要接上拉电阻,P3口只要在应用上避开其第二功能,仅用作普通IO口,那么与P2口是没什么区别的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行