c51单片机的P3口功能切换方法:想让P3口做I/O口使用的时候如何避免与第二功能冲突?做输出时怎样避免?
我使用STC单片机时P2口做I/O口时没有问题,但是换成P3口的P3.4~3.6就无法工作,请教高手帮忙...
我使用STC单片机时P2口做I/O口时没有问题,但是换成P3口的P3.4~3.6就无法工作,请教高手帮忙
展开
4个回答
展开全部
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口是没什么区别的。
1、针对WR:不能有对外部RAM的写操作,也就是说不能对XDATA及PDATA型变量进行写操作;再进一步,软件在编译时,变量存储模式选项不能选择中模式及大模式,否则缺省状态下,程序中的局部变量都会采用外部RAM,这样的话一旦发生写操作(对变量赋值),则WR(P3.6)管脚上一定会输出写操作的负脉冲。这种冲突不采用额外的硬件手段是不可能避免的。
2、针对T0、T1:比较简单,只要系统中没有将T0、T1用作外部信号计数,则可以将其用作普通IO口用,不会造成什么冲突。
不像P0口需要接上拉电阻,P3口只要在应用上避开其第二功能,仅用作普通IO口,那么与P2口是没什么区别的。
展开全部
P3.4~3.6,分别是 T0、T1、WR。
在你的项目中,如果使用了外部计数输入端T0......等,就不能再用这些引脚当普通IO口。
使用 P2 做IO口,就避免了冲突。
在你的项目中,如果使用了外部计数输入端T0......等,就不能再用这些引脚当普通IO口。
使用 P2 做IO口,就避免了冲突。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
P3口的第一和第二功能无需切换,但要注意作为输入口或者第二功能口使用时,不能向其中写入0,最好先写入1(上电复位后默认就是1)。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不用切换,单片机对不同指令响应,从而控制不同的外设,执行不同功能。
SBUF = data;则串行数据通过P3.0 P3.1送出去,串口0工作。
单纯指令P3_0 = 1;则GPIO工作。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询