MCS-51系列单片机读口操作有什么特殊性?
展开全部
51单片机有4组8位I/O口:P0、P1、P2和P3口,其中P1、P2和P3为准双向口,P0口则为双向三态输入输出口。由于准双向口和双向口在电路结构上不同,所以造成两种I/O口的读操作不同。
对于双向的P0口,其电路中包含有一个数据输出锁存器、两个三态数据输入缓冲器、一个数据输出的驱动电路和一个输出控制电路,作为通用的I/O口时,必须外接上拉电阻;然而,对于P1、P1、P2和P3的准双向口其电路只包含有一个数据输出锁存器、一个三态数据输入缓冲器、一个数据输出的驱动电路。
这种结构上的差异造成了P口作为通用I/O口时读取外部数据时操作不同,即对于双向口,可以直接读取外部数据,而对于准双向口,读之前需先向口写1,再去读取读取外部数据。
例如:从P1口的低四位输入数据
MOV P1,#00001111b ;先给P1口底四位写1
MOV A,P1 ;再读P1口的底四位
这方面的问题,在实际操作中可以体验到,应该不需要了解到太清楚,知道这种现象不影响实际使用就OK了。当然了解清楚了,有助于记忆。
对于双向的P0口,其电路中包含有一个数据输出锁存器、两个三态数据输入缓冲器、一个数据输出的驱动电路和一个输出控制电路,作为通用的I/O口时,必须外接上拉电阻;然而,对于P1、P1、P2和P3的准双向口其电路只包含有一个数据输出锁存器、一个三态数据输入缓冲器、一个数据输出的驱动电路。
这种结构上的差异造成了P口作为通用I/O口时读取外部数据时操作不同,即对于双向口,可以直接读取外部数据,而对于准双向口,读之前需先向口写1,再去读取读取外部数据。
例如:从P1口的低四位输入数据
MOV P1,#00001111b ;先给P1口底四位写1
MOV A,P1 ;再读P1口的底四位
这方面的问题,在实际操作中可以体验到,应该不需要了解到太清楚,知道这种现象不影响实际使用就OK了。当然了解清楚了,有助于记忆。
展开全部
MCS-51系列单片机是最基础的单片机,它怎么会有什么特殊?
是别的单片机特殊吧?
楼主还知道有那些单片机?
是别的单片机特殊吧?
楼主还知道有那些单片机?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
对于双向口,可以直接读。比如常用的AT89C51的P0口。
对于准双向口,读之前需先向口写1,因为内部有个开关选择电路,如果不写1,读出的可能不是外部的实际状态。比如AT89C51的P1、P2和P3口。
找个内部结构图看下就明白了。
对于准双向口,读之前需先向口写1,因为内部有个开关选择电路,如果不写1,读出的可能不是外部的实际状态。比如AT89C51的P1、P2和P3口。
找个内部结构图看下就明白了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
MCS51系列读操作其实是读锁存器,而不是直接读引脚的电平
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
51单片机I/O口是准双向口,在读入时需要先写一个1才行。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询