MCS-51系列单片机并行P2口也有两种功用,关于内部有程序存贮器的单片机(如定制的8051),P2口能够作为输进口或输出口运用,直接衔接输入/输出设备;也能够作为体系扩展的地址总线口,输出高8位地址A8~A15。关于内部没有程序存贮器的单片机,有必要外接程序存贮器,一般情况下P2口只能作为体系扩展的高8位地址总线口,而不能作为外部设备的输入/输出口。
1、P2口的输出驱动器上有一个多路电子开关(见图5-1(c)),当输出驱动器转接至P2口锁存器的Q端时,P2口作为榜首功用输入 /输出线,这时P2口的结构和P1口类似,其功用和运用方法也和P1口相同。
2、当输出驱动器转接至地址时,P2口作为地址总线口,引脚状况由所输出的地址确认。
3、 CPU拜访外部的程序存贮器时,P2口输出程序存贮器的高8位地址A8~A15,该地址来源于内部的程序计数器PC的高8位;
4、当CPU以16位地址指针DPTR拜访外部RAM/IO的时分,P2口输出的地址来源于DPH。
P2口操作:
XRL P2 ,#1 ;P2.0取反
CPL P2.0 ;P2.0取反
2、关于只扩展少数外部RAM I/O口,其地址范围在0~255之间,P2 口也能够作为I/O口运用。对外部RAM I/O口操作,只能运用R0或R1作地址指针,不能用DPTR作址址指针。
将33H写入外部RAM的50H单元,CPU履行下面的程序段不影响P2口输出状况,因而是正确的:
MOVR0 ,#50H
MOV A,#33H
MOVX @R0,A
CPU履行下面的程序段将影响P2口的输出状况,因而是过错的;
MOV DPTR,#50H
MOV A,#33H
MOVX @DTPR ,A
3、关于既扩展程序存贮器,又扩展外部RAM/IO口的体系,P2口不能作为I/O口运用,对外部RAM/IO口操作则能够做DPTR、P2 R0、P2 R1三个16位地址指针的高8位。
将33H写入外部RAM的8200H,下面的程序段都是正确的:
(1)MOVP2,#82H
MOVR0,#0
MOV A,#33H
MOVX @R0 ,A
(2)MOV P2,#82H
MOV R1,#0
MOV A,#33H
MOVX @R1,A
(3)MOV DPTR,#8200H
MOV A,#33H
MOVX @DPTR,A