5.2.2并行接口的使用 1输出数据 1)使用数据传送MOV指令输出字节数据 MOV P #data MOV PA m MOV P direct MOV PR m MOV PaR 2)使用位操作指令输出各位数据 MOV P.C mn SETB R mn CLR P m n 3)使用读-改-写指令改变输出数据 ANL P #data ORL PA m 2 INC P CPL P mn
5.2.2 并行接口的使用 1.输出数据 1)使用数据传送MOV指令输出字节数据 MOV Pm ,#data MOV Pm ,A MOV Pm ,direct MOV Pm ,Rn MOV Pm ,@Ri 2)使用位操作指令输出各位数据 MOV Pm.n ,C SETB Rm.n CLR Pm.n 3)使用读-改-写指令改变输出数据 ANL Pm ,#data ORL Pm ,A INC Pm CPL Pm.n
2输入数据 1)使用MOV指令输入字节数据 MOV AP MOV direct p MOV R 1-m 2)使用MOV指令输入口线位数据 MOV C mn 3)输入数据参与运算、判断 ANL AP XRL AP m ADD AP JNB P rel mn JBC P m.m
2.输入数据 1)使用MOV指令输入字节数据 MOV A,Pm MOV direct,Pm MOV @Ri ,Pm 2)使用MOV指令输入口线位数据 MOV C,Pm.n 3)输入数据参与运算、判断 ANL A,Pm XRL A,Pm ADD A,Pm JNB Pm.n ,rel JBC Pm.m ,rel
〔例5-1〕图5-6中,由开关K0~K3控制L0~L3,开 关闭合,对应灯亮,试编程实现该功能。 〔解〕分析:开关闭合,相应输入为0,而当输出为 0时,指示灯亮,即只要将P10~P13的状态传递给 P14~P1即可 程序如下: ORL P,#OFH ;将要输入的低位置1 同时不改变高位状态 MOV A, PI SWAP A ORL A #OFH MOV PA RET
〔例5-1〕 图5-6中,由开关K0 ~K3控制L0 ~L3,开 关闭合,对应灯亮,试编程实现该功能。 〔解〕 分析:开关闭合,相应输入为0,而当输出为 0时,指示灯亮,即只要将P1.0 ~P1.3的状态传递给 P1.4 ~P1.7即可。 程序如下: ORL P1 ,#0FH ;将要输入的低位置1, 同时不改变高位状态 MOV A,P1 SWAP A ORL A,#0FH MOV P1,A RET
也可用位操作指令实现该功能,程序如下: ORL P, #OFH MOV C,PLO MOV PC MOV C, PLI MOV P,C MO CP1. MOV PC MOV C,P13 MOV P.C RET
也可用位操作指令实现该功能,程序如下: ORL P1 ,#0FH MOV C,P1.0 MOV P1.4 ,C MOV C,P1.1 MOV P1.5 ,C MOV C,P1.2 MOV P1.6 ,C MOV C,P1.3 MOV P1.7 ,C RET
P P1.5 P 1.4 8051 K3 K2 P1,1 P1.0 图5-6例5-1图
图5-6 例5-1图