单片机的逻辑运算--手把手教你学单片机

;知识要点:理解熟悉单片机的逻辑运算

;运行结果: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排列