51单片机I/O端口

51单片机的4个I/O端口P0~P3的位结构如图所示:

 每个端口在读数据之前都应该先对端口写1,以P1口为例说明如下:

假设初始时内部总线为低电平,则Q非端为高电平,此时VT管导通,引脚接地,被钳位为0,此时读到的数据恒为0。当执行MOV P1,#0FFH后,内部总线为高电平,Q非端为低电平,VT管截止,此时如果引脚电平为高电平,当执行读指令时(如MOV A,P1),读引脚打开三态缓冲器,引脚信号送至内部总线,由于内部总线也为高电平,则内部总线和引脚输入的电平一样,这是我们希望的;如果引脚电平变为低电平,当执行读指令时(如MOV A,P1),读引脚打开三态缓冲器,引脚信号输送至内部总线使内部总线由高电平变为低电平,此时Q非端为高电平,VT管导通,接地与引脚低电平契合,这也是我们希望的,达到了和谐。

P0端口在作I/O口使用时必须外接上拉电阻,如下图所示:

 在矩阵键盘中有如下电路:

假设开关闭合之前,P1.0=0,P1.4=1。现在闭合开关S,则由于P1.4一开始为1,使得VT截止,当引脚电平变为0后,由于这仅仅是引脚外部变化,CPU并未执行读端口指令,故读引脚未使能,三态缓冲器断开,内部总线不受影响,依然为1。所以当S闭合后,P1.0和P1.4都为低电平。当S再断开,P1.0仍为低电平,而P1.4因为受上拉电阻影响会变为高电平。注意整个开关S合上断开过程内部总线未受影响,因为CPU未执行任何读写端口指令。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值