k1: MOV R6,#250 k2: MOV R7,#250 k3: DJNZ R7,k3 DJNZ R6,k2 DJNZ R5,k1 RET END
6、单片机AT89C51的P2.0、P2.1和P2.2分别接按钮开关PB1、PB2和PB3;P1口接8个LED。
按下PB1,则8个LED闪烁;按下PB2则8个LED单灯右移;按下PB3则8个LED单灯左移。延时为0.1S。
源代码:
ORG 0 MOV P2,#0FFH LOOP: JNB P2.0,LOOP_1 JNB P2.1,LOOP_2 JNB P2.2,LOOP_3 JMP LOOP
LOOP_1: MOV R0,#2 LOOP_1_1: MOV A,#10101010B MOV P0,A CALL D100MS MOV A,#01010101B MOV P0,A CALL D100MS MOV P0,#11111111B DJNZ R0,LOOP_1_1 LOOP_1_2: JB P2.0,LOOP JMP LOOP_1_2
LOOP_2: MOV A,#11111110B MOV R0,#8 LOOP_2_1: MOV P0,A RL A CALL D100MS DJNZ R0,LOOP_2_1 MOV P0,#11111111B LOOP_2_2: JB P2.1,LOOP JMP LOOP_2_2
LOOP_3: MOV A,#01111111B MOV R0,#8 LOOP_3_1: MOV P0,A RR A CALL D100MS DJNZ R0,LOOP_3_1 MOV P0,#11111111B LOOP_3_2: JB P2.2,LOOP JMP LOOP_3_2
D100MS: MOV R7,#250 D1: MOV R6,#200 DJNZ R6,$ DJNZ R7,D1 RET END
7、单片机AT89C51的P2口分别接8个指拨开关;P0口接8个LED。指拨开关闭合之前8个LED全亮,
闭合指拨开关P2.0,则P0.0所对应的LED灭,以此类推。
源代码:
ORG 0
MOV A,#00000000B MOV P0,A
MOV P2,#0FFH LOOP: MOV A,P2 CPL A MOV P0,A JMP LOOP END
8、单片机AT89C51的P2口分别接8个指拨开关;P0口接8个LED。
指拨开关闭合之前8个LED单灯左移3次后,全亮,闭合指拨开关P2.0,
则P0.0所对应的LED灭,以此类推。延时为0.2S。 原理图: 源代码:
ORG 0 MOV R1,#3 LOOP1: MOV R0,#8 MOV A,#11111110B