单片机论坛

标题: 单片机八个按键控制八个灯、流水灯、交通灯程序 [打印本页]

作者: 葛生666    时间: 2019-9-1 21:59
标题: 单片机八个按键控制八个灯、流水灯、交通灯程序
(一)八个按键控制八个灯原理图



程序:
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
功能:




2.png (161.14 KB, 下载次数: 4)

2.png





欢迎光临 单片机论坛 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1