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(输出低)反被拉高。