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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)