有关单片机读端口、读引脚的问题
答案:2 悬赏:0 手机版
解决时间 2021-02-02 00:25
- 提问者网友:贪了杯
- 2021-02-01 03:45
在单片机中为什么要区分读端口与读引脚,同时在具体的应用当中,何时读端口,何时读引脚。请多举几个例子。
最佳答案
- 五星知识达人网友:野味小生
- 2021-02-01 04:55
80C51单片机有P0-P3四个P口,以P0为例说明:
要搞清这个问题,就要明白p0口的内部结构。P0口是由锁存器经两个驱动场效应管和外部引脚相连的。
读引脚的意思就是直接读P0外部引脚的电位,而读端口(锁存器)读的是内部与数据总线链接的锁存器的电位。
两者不同。一般来说,读取P0的数据,都是读引脚,目的是获取与P0相连的外部电路的状态。而读端口是在执行下述语句时由CPU自行完成的:
inc P0;给p0加1
执行这个语句时 ,采用“读-改-写”的过程,先读取p0的端口数据,再加1,然后送到p0锁存器里。注意这个端口数据跟p0的引脚状态不一样,比如你事先给p0写进69H,p0里数据就是69H,而引脚上的状态因为你没有执行MOV A,p0之类的指令,它是不会进到p0的锁存器里去的。由此可见,所谓的读端口,不是读取p0的状态,而是在执行inc之类的指令时由CPU自行完成的,
读引脚就是读取p0口状态了。读引脚时要注意:先要给p0写FFH,使它的场效应管T2和地断开。
因为p0口的场效应管T2一端接地,一端与外部引脚相连,由P0的锁存器控制,当给锁存器写1时,它和地断开,写0时和地相连,所以写零时读到的总是低电平。
试想你现在要读P0引脚,按理说P0与外部电路相连,外部电路的是什么状态,就应该读到什么,但如果p0口的场效应管T2一端接地的话,它会把p0口电位拉低,你读到的总是低电平0,所以要先给p0写FFH,把p0的场效应管T2和地断开,再读数时就是真实状态了。当外部电路断开,再读时读到的就是p0端口(锁存器)的真实状态了。
还不明白给hychyc_2008发消息,或给hychyc_2008@163.com发邮件。
要搞清这个问题,就要明白p0口的内部结构。P0口是由锁存器经两个驱动场效应管和外部引脚相连的。
读引脚的意思就是直接读P0外部引脚的电位,而读端口(锁存器)读的是内部与数据总线链接的锁存器的电位。
两者不同。一般来说,读取P0的数据,都是读引脚,目的是获取与P0相连的外部电路的状态。而读端口是在执行下述语句时由CPU自行完成的:
inc P0;给p0加1
执行这个语句时 ,采用“读-改-写”的过程,先读取p0的端口数据,再加1,然后送到p0锁存器里。注意这个端口数据跟p0的引脚状态不一样,比如你事先给p0写进69H,p0里数据就是69H,而引脚上的状态因为你没有执行MOV A,p0之类的指令,它是不会进到p0的锁存器里去的。由此可见,所谓的读端口,不是读取p0的状态,而是在执行inc之类的指令时由CPU自行完成的,
读引脚就是读取p0口状态了。读引脚时要注意:先要给p0写FFH,使它的场效应管T2和地断开。
因为p0口的场效应管T2一端接地,一端与外部引脚相连,由P0的锁存器控制,当给锁存器写1时,它和地断开,写0时和地相连,所以写零时读到的总是低电平。
试想你现在要读P0引脚,按理说P0与外部电路相连,外部电路的是什么状态,就应该读到什么,但如果p0口的场效应管T2一端接地的话,它会把p0口电位拉低,你读到的总是低电平0,所以要先给p0写FFH,把p0的场效应管T2和地断开,再读数时就是真实状态了。当外部电路断开,再读时读到的就是p0端口(锁存器)的真实状态了。
还不明白给hychyc_2008发消息,或给hychyc_2008@163.com发邮件。
全部回答
- 1楼网友:想偏头吻你
- 2021-02-01 05:14
89c51单片机的p0~p3口不是标准意义的双向口 ,他只是准双向口
你可以对照着p0口的结构图看这段话,向端口写1,就是向锁存器写1,
也就是让其口输出ff,为什么,是这样的,给锁存器写1,那么锁存器
的反向端就输出0,那么和它相接的mos管也就在截止状态,也就是呈高
阻态,这样p0口上数据就会从读引脚的三态缓冲器上正确的输入,如果
不写1,那么锁存器上次锁存的可能为0,那么反向端有可能出现1,这样
和反向端相接的mos管就倒通,也就是直接拉到地,那么不管你p0口上输
入什么信号都会拉成低电平,输入就错了
双向口与准双向口的区别主要是:准双向口i/o口操作时做数据输入时需
要对其置1,否则若前一位为低电平,后一位输入的电平为高则mos管拉不起来
导致出错。而双向口则不需要做此动作,因为双向口有悬浮态。
准双向口只能有效的读取0,而对1则是采用读取非零的方式,就是读入的
时候要先向接口上写1,然后再读。
真正的双向口正如其名,就是真正的双向io不需要任何预操作可直接读入读出
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯