1.负载能力
P0接口的输出能驱动8个LSTTL电路(1个LSTTL电路的驱动电流:低电平时为0.36mA、高电平时为20μA),作为通用I/O接口使用时,应外接上拉电阻。P1、P2、P3接口的输出能驱动4个LSTTL电路。当实际负载超过时,应加接驱动器。
2.扩展系统
P0与P2接口配合工作实现片外ROM与RAM访问和其他接口电路的扩展。
1)P0接口以分时复用的形式来传送外部存储器的低8位地址和读/写数据。
2)P2接口的功能是用于传送外部存储器的高8位地址。
鉴于这2个通道电路主要用于片外访问,因而实际上P0与P2接口电路是不能被用户再安排其他工作的,这一点请读者记住。
3.I/O并行接口应用方式
MCS-51系列单片机的4个并行接口有以下三种数据I/O接口方式。
(1)输出数据方式 在这种方式下,可采用指令的种类有MOV、ANL、ORL,这几类指令都可以用内部传送数据的五种方式。如:
如第6章6.1.4节的实例中在初始化段将所有灯关闭时使用的指令为“PO10:MOV P1,#7FH”。
(2)读接口锁存器数据方式 采用此方式的通常是ANL、ORL、XRL等“读—修改—写”指令。
“读—修改—写”这类指令的操作情况是:先读输出锁存器的状态,然后按指令要求对该读入的数据进行修改,最后把修改结果写入接口锁存器,输出到引脚上。例如执行逻辑或指令“ORL P0,#0F”的操作是先把接口锁存器中的数据读入CPU,与立即数0FH进行逻辑或操作,最后把结果写回到接口锁存器。“读—修改—写”这类指令之所以没有直接读引脚上的数据而要读锁存器Q端上的数据,是为了避免可能错读引脚上的电平信号。例如本来P0接口的输出锁存器和引脚上都是“1”,如果引脚的输出负载恰是一个晶体管的基级,则会出现导通了的晶体管把引脚的高电平拉低,这样直接读引脚就会把本来的“1”误读为“0”,从锁存器Q端读取,就不会发生这样的错误。
(3)读(输入)接口引脚数据 在作为输入口读接口引脚数据使用时,必须首先向接口锁存器写入“1”,这是因为当进行读引脚操作时,如果V2是导通的,那么不论引脚上的输入状态如何,都会变为低电平。为了正确读入引脚上的逻辑电平,先要向锁存器写1,使其Q端为“0”,V2截止,该引脚成为高阻抗的输入端。(www.xing528.com)
例如:“MOV P3,#10H”“SET P3.4”“ORL P3,#10H”“JNB P3.4,P011”等。
在实际应用中,常用P1~P3接口驱动LED发光二极管,下面来讨论P1~P3接口与LED发光二极管的驱动连接问题。与P1、P2、P3接口相比,P0接口的驱动能力较大,每位可驱动8个LSTTL输入,而P1、P2、P3接口的每一位的驱动能力,只有P0接口的一半。当P0接口的某位为高电平时,可提供400μA的电流;当P0接口的某位为低电平(0.45V)时,可提供3.2mA的灌电流,如低电平允许提高,灌电流可相应加大。所以任一个接口要想获得较大的驱动能力,只能用低电平输出。
例如:用4个发光二极管对应显示4个开关的开合状态。(如P1.0合则P1.4亮)。
1)无条件传送方式:指示灯立即反映开关状态,如图7-3所示。
参考程序如下:
2)中断传送方式:先设好开关状态,然后发出中断请求信号,改变指示灯亮灭状态,如图7-4所示。
参考程序如下:
图7-3 无条件传送方式接线图
图7-4 中断方式接线图
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。