I/O 口在矩阵扫描时-输出接输出时

本文探讨了在使用特定配置进行矩阵扫描时遇到的问题。具体讨论了不同DDxn和PORTxn配置下,PINxn寄存器读取到的电平值,并尝试解释了其中的原理。文章还分析了在特殊情况下,输出低电平的管脚为何会被拉高。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.PIN读到的值是管脚的逻辑电平,而port读到的是锁存器的值。

2.不论如何配置DDxn,都可以通过读取PINxn寄存器得到引脚电平。

 

3. 实际在做矩阵扫描时,

小杨将4个管脚设为(DDxn,PORTxn = 1,0),

另外4个管脚设为(DDxn,PORTxn = 1,1)

在按下按键后发现,(1,1)的管脚PINxn =1,

但(1,0)中按键接通的管脚PINxn =1。(电平被拉高了)。

 

(DDxn,PORTxn =1,0)是输出低电平-吸收电流

(DDxn,PORTxn =1,1)是输出高电平-输出电流

 

这个在电路上怎么解释?对芯片有无损害?

 

已有初步的想法:  只有在(DDxn,PORTxn =0,1)上拉电阻才有效,使得电流从Vcc->上拉电阻->PIN(输入)->PIN(输出低)方向流动,这样pin(输入)采到的电平在电阻的低电压端 为0.

当输出高接输出低是,上拉电阻都无效,PIN(输出高)电压高于PIN(输出低),但此时PIN(输出低)与port之间是个二极管,限制了电流的方向只能输出而不能输入。结果只是Port(输出低)处电压为低,而PIN(输出低)反被拉高。 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值