Contents
- 1> P1口
- 1.1> 写 "0" 过程
- 1.2> 写 "1" 过程
- 1.3> 读引脚
- ”准“双向问题:
- 1.4> 读 寄存器
- 2> P3口
- 3> P0口
1> P1口
- 没画【P1.0/T2】【P1.1/T2EX】第2功能;
1.1> 写 “0” 过程
D触发器FF1,输入0;
则,Q# = 1, NMOS管Q1导通,引脚【P1.n】接地输出0;LED1灭;
1.2> 写 “1” 过程
D触发器FF1,输入1;
则,Q# = 0, NMOS管Q1截止,引脚【P1.n】通过R1接到VCC,输出1,LED1亮;
1.3> 读引脚
测试电路,S1连接2-3引脚;
开关S2断开,引脚【P1.n】为高电平,读使能三态门G2,读到高电平”1“;
开关S2闭合,引脚【P1.n】为低电平,读使能三态门G2,读到低电平”0“;
/* C程序 */
unsigned char data = P1^0;
”准“双向问题:
如果对引脚先进行写‘0’操作,则NMOS管Q1导通,引脚【P1.n】接地;
这时无论开关S2断开,还是闭合,读引脚都是”0“;
所以读引脚前需,先写‘1’,使NMOS断开,这就是准双向的意思,要有”准“备;
😀这设计还挺麻烦;
1.4> 读 寄存器
读寄存器,读的就是D触发器Q端值,Q = D;
P1^0 = ~P1^0; // 这个是读寄存器;
2> P3口
增加了第2功能的输入与输出;