;知识要点:理解熟悉单片机的逻辑运算
;运行结果:P1口输出结果为01100000,注意1为灭0为亮,从1.7到1.0排列
;ANL 0FH就是把数据与00001111相与那么遇1得原来的数遇0则为0,结果是前面的4位变0, 后面的4位保留
ORG 0000H;程序开始
LJMP MAIN;
ORG 030H;
MAIN:MOV A,#59H;A中送59H这个数 01011001
ANL A,#0FH;59H和00001111相与就是保留后4位结果为1001
SWAP A;A中的高低字节交换结果为10010000
ANL P1,#0FH;P1口的内容与A相与就是清除高4位注意P1本来为11111111即FF此时变为00001111
ORL P1,A;P1的内容与相或 10010000和00001111相或结果为01100000
ACALL DEL;调用延时以便观察
AJMP MAIN;重新开始
DEL: MOV R7,#0FFH;延时子程序
DEL1:MOV R6,#0FFH;
DEL2:MOV R5,#01FH;
DEL3: DJNZ R5,DEL3;
DJNZ R6,DEL2;
DJNZ R7,DEL1;
RET;
END
运行结果:P1口输出结果为01100000,注意1为灭0为亮,从1.7到1.0排列