微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 单片机读端口与读引脚的区别

单片机读端口与读引脚的区别

时间:11-23 来源:互联网 点击:
把I/O口作为输入口使用时,是“读引脚”,不同于“读端口”。注意,读端口的“口”
不是P0口、P1口的“口”,而是锁存器的Q端口,也就是读锁存器Q端的输出信号然后送
三态缓冲器输入,经过缓冲器输出到单片机内部总线。而读引脚则是直接把芯片引脚上
的外部数据,经过三态缓冲器把数据放到内部总线。

例如,用MOV进行读引脚操作:

MOV P1,0FFH ;注意首先把P1引脚置为高电平
MOV A,P1 ;P1作为输入口,读P1口信号到A

编程时须先置I/O口引脚为高电平的原因如下(请查看口电路结构图):

51单片机的P0口是双向口,P1~3口是准双向口,其I/O口引脚都和单片机内部的场效应管
FET漏极连接。首先我们不妨假设init时引脚为低电平(我不知道单片机reset时
引脚缺省电平是低还是高?还是不定?),即FET漏极为低电平,因为此时FET是导通的,
所以无论外部输入1还是0,都会产生拉电流,拉为低电平,从而无法正确判断外部输入
的是1还是0.严重的话,如果拉电流过大,还可能烧坏FET。

因此,init时只好将引脚设为高电平,例如MOV P1,0FFH,由单片机口电路的结构图可以
看出,这条指令的内部电路逻辑是这样的:
先把0FFH放到内部总线,锁存器输入端(D端)从内部总线取数据,锁存,然
后从Q非端输出到FET极,显然此时Q非为0,FET截止,通过漏极上拉电阻输出高电平,
不会影响外部输入电平(相当于和外部输入逻辑与)。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top