(一)八个按键控制八个灯原理图
程序:
ORG 0000H
Ljmp main ORG 0100H main:mov sp,#40H mov A,#0FFH mov P1,A Loop:mov A,P1 mov P0,A;将P1口的数据通过A为媒介传给P0 sjmpLoop;短转移 END1 (二)流水灯 原理图同上 程序: ORG 0000H Ljmp main ORG 0100H main:mov sp,#50H mov R1,#01H mov A,R1 Loop:mov P0,A LCALLDELAY100;调用延时程序 RLA;循环右移 sjmpLoop DELAY100: push PSW CLR RS0 SETB RS1 mov R7,#0C7H LOOP1:mov R6,#0FAH LOOP2:DJNZ R6,LOOP2 DJNZ R7,LOOP1 POP PSW RET
END 仿真时的效果为,发光二极管从上到下依次亮起,不断循环这个过程。 (三)交通灯 原理图 程序: org 0000h ljmp main org 0100H main: mov SP,#50H mov R3,#0AH MOVA,#00H MOVP1,A LOOP1: SETB P1.7 SETB p1.0 LOOP2:LCALL DELAY100 DJNZR3,LOOP2;亮一秒 MOVR3,#0AH CLRP1.0 LOOP3:SETB P1.1 LCALLDELAY100 CLRP1.1 LCALLDELAY100 DJNZR3,LOOP3;闪一秒 CLRP1.1 CLRP1.7 MOVR3,#0AH SETBP1.2 SETBP1.5 LOOP4:LCALL DELAY100 DJNZ R3,LOOP4;亮一秒 CLRP1.2 CLRP1.5 SETBP1.2 SETBP1.5 MOVR3,#0AH LOOP5:LCALL DELAY100 DJNZR3,LOOP5;亮一秒 CLRP1.5 MOVR3,#0AH LOOP6:CLR P1.6 LCALLDELAY100 SETBP1.6 LCALLDELAY100 DJNZR3,LOOP6;闪一秒 CLRP1.6 CLRP1.2 SETBP1.7 SETBP1.0 MOVR3,#0AH LOOP7:LCALL DELAY100 DJNZR3,LOOP7;亮一秒 CLRP1.2 CLRP1.6 LJMPMAIN DELAY100:PUSH PSW CLR RS0 SETB RS1 MOV R7,#0C7H LOOP8:MOV R6,#0FAH LOOP9:DJNZ R6,LOOP9 DJNZ R7,LOOP8 POP PSW RET
END 功能:
|