锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

单片机闪烁灯流水灯汇编代码大全

时间:2024-05-27 07:37:11

1、单片机AT89C51的P2口接8个发光二极管,让这8个发光二极管显示闪烁功能,即八灯亮2S,熄灭3S,如此循环。参考程序:       ORG 0000Hstart:       MOV P1,#0H       CALL delay       MOV P1,#0FFH       CALL delay       CALL delay       LJMP startdelay:       MOV R7,#200d2:   MOV R6,#250d1:   DJNZ R6,d1       DJNZ R7,d2       RET       END           ;200*250次*2*1us=1000ms=1s2、单片机AT89C51的P1口接8个发光二极管,让这8个发光二极管能够双灯左移之后再双灯右移,形成霹雳灯的效果,如此循环5次后全灭,延时0.5S。灯右移,形成霹雳灯的效果,如此循环5次后全灭。延时0.5S。参考程序1:       ORG 0000H       MOV A,#11111100Bstart:       MOV P1,A       CALL delay       RL A       RL AINC R0       CJNE R0,#4,start       MOV R0,#00Hs:           RR A       RR A       MOV P1,A       CALL delay       INC R0       CJNE R0,#4,s       MOV R0,#00H       LJMP start     delay:     MOV R5,#100k1: MOV R6,#250k2: MOV R7,#250k3:   DJNZ R7,k3          DJNZ R6,k2          DJNZ R5,k1       RET       END参考程序2:ORG 0000H MOV R0,#5 start: MOV P2,#11111100B CALL delay0_5s MOV P2,#11110011B CALL delay0_5s MOV P2,#11001111B CALL delay0_5s MOV P2,#00111111B CALL delay0_5s MOV P2,#11001111B CALL delay0_5s MOV P2,#11110011B CALL delay0_5s MOV P2,#11111100B CALL delay0_5s DJNZ R0,start MOV P2,#0FFH SJMP $  delay0_5s:    MOV R7,#20d3: MOV R6,#200d2: MOV R5,#250d1: NOP    NOP    DJNZ R5,d1    DJNZ R6,d2    DJNZ R7,d3 RET END3、单片机AT89C51的P2口接8个发光二极管,让这8个发光二极管先交互闪烁5次,然后双灯左移之后再双灯右移,如此循环,形成流水灯的效果,延时0.5S。       ORG 0000H       MOV R0,#5start:       MOV P1,#10101010B       CALL delay       MOV P1,#01010101B       CALL delay       DJNZ R0,start       MOV R0,#5       MOV A,#11111100Bs1:   MOV P1,A          CALL delay          RL A       RL A       CJNE A,#11111100B,s1s2:     RR A       RR A       MOV P1,A       CALL delay       CJNE A,#11111100B,s2       JMP start             delay:     MOV R5,#100k1: MOV R6,#250k2: MOV R7,#250k3:   DJNZ R7,k3          DJNZ R6,k2          DJNZ R5,k1       RET       END4、单片机AT89C51的P1口和P2口分别接八个发光二极管,P2口八灯实现左移,延时0.5S,要求左移第一次,P1.0对应灯点亮,P2口灯左移第二次,P1.1对应灯亮,如此延续下去,直至左移八次后,所有灯全灭。       ORG 0000H       MOV R0,#11111110Bstart:       MOV A,#11111110B       MOV P2,As:     CALL delay       RL A       MOV P2,A        CALL delay       CJNE A,#01111111B,s       MOV A,R0       MOV P1,A       RL A       MOV R0,A       JMP start             delay:     MOV R5,#100k1: MOV R6,#250k2: MOV R7,#250k3:   DJNZ R7,k3          DJNZ R6,k2          DJNZ R5,k1       RET       END5、单片机AT89C51的P2.0、P2.1和P2.2分别接按钮开关PB1、PB2和PB3;P1.0接一个LED。按下PB1,则LED亮;按下PB2则LED灭;按下PB3则LED闪烁。延时为0.1S。原理图:  参考程序:       ORG 0000H       MOV P2,#0FFHs1:   JNB P2.0,s3       JNB P2.1,s2       JNB P2.2,s4       JMP s1s2:   SETB P1.0       JMP s1s3:   CLR P1.0       JMP s1s4:     SETB P1.0       CALL delay        CLR P1.0           CALL delay       JNB P2.0,s3       JNB P2.1,s2       JMP s4             delay:     MOV R5,#100k1: MOV R6,#250k2: MOV R7,#250k3:   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,#0FFHLOOP:     JNB          P2.0,LOOP_1          JNB          P2.1,LOOP_2          JNB          P2.2,LOOP_3          JMP          LOOP LOOP_1:   MOV          R0,#2LOOP_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_1LOOP_1_2: JB           P2.0,LOOP          JMP          LOOP_1_2 LOOP_2:   MOV          A,#11111110B          MOV          R0,#8LOOP_2_1: MOV          P0,A      RL           A      CALL         D100MS          DJNZ         R0,LOOP_2_1      MOV          P0,#11111111BLOOP_2_2: JB           P2.1,LOOP          JMP          LOOP_2_2 LOOP_3:   MOV          A,#01111111B          MOV          R0,#8LOOP_3_1: MOV          P0,A          RR           A          CALL         D100MS          DJNZ         R0,LOOP_3_1          MOV          P0,#11111111BLOOP_3_2: JB           P2.2,LOOP          JMP          LOOP_3_2 D100MS:   MOV          R7,#250D1:       MOV          R6,#200          DJNZ         R6,$          DJNZ         R7,D1          RET          END7、单片机AT89C51的P2口分别接8个指拨开关;P0口接8个LED。指拨开关闭合之前8个LED全亮,闭合指拨开关P2.0,则P0.0所对应的LED灭,以此类推。     源代码:         ORG          0          MOV          A,#00000000B          MOV          P0,A           MOV          P2,#0FFHLOOP:    MOV          A,P2          CPL           A          MOV          P0,A          JMP            LOOP          END8、单片机AT89C51的P2口分别接8个指拨开关;P0口接8个LED。指拨开关闭合之前8个LED单灯左移3次后,全亮,闭合指拨开关P2.0,则P0.0所对应的LED灭,以此类推。延时为0.2S。原理图:  源代码:                  ORG          0           MOV          R1,#3LOOP1:     MOV          R0,#8           MOV          A,#11111110BLOOP2:    MOV          P0,A           RL           A           CALL         D200MS           DJNZ         R0,LOOP2           DJNZ         R1,LOOP1           MOV          A,#00000000B           MOV          P0,A           MOV          P2,#0FFHLOOP:     MOV          A,P2           CPL          A           MOV          P0,A           JMP          LOOPD200MS:           MOV          R7,#250D1:        MOV          R6,#200D2:        MOV          R5,#2           DJNZ         R5,$           DJNZ         R6,D2           DJNZ         R7,D1           RET           END9、单片机AT89C51的P2.0、P2.1和P2.2口分别接一个按钮开关,P1口低4位接译码器7447,7447输出部分接共阳极LED数码管。要求按一下P2.0口对应按钮,数码管显示数字“0”;按一下P2.1口对应按钮,数码管显示数字“8”;按一下P2.2口对应按钮,数码管所显示的数字被关闭。原理图:      源代码:                ORG 0000H         START:  MOV P2,#0FFH        LOOP:   JNB P2.0,ON                JNB P2.1,ON8                JNB P2.2,OFF                 JMP LOOP       ON:        MOV P1,#00H    ON_1:       JB      P2.0,LOOP                JMP     ON_1         ON8:        MOV P1,#08H    ON_8:       JB      P2.1,LOOP                JMP     ON_8       OFF:        MOV P1,#0FFH    OFF_1:      JB      P2.2,LOOP                JMP OFF_1                 END10、单片机AT89C51的P2口接7447驱动一个共阳极七段数码管。让该数码管循环显示数字“9~0”,延时为1S。       ORG 0000H       MOV R0,#10start:            DJNZ R0,s       MOV P2,R0       CALL delay       MOV R0,#10       JMP starts:     MOV P2,R0       CALL delay       JMP start             delay:     MOV R5,#100k1: MOV R6,#250k2: MOV R7,#250k3:   DJNZ R7,k3          DJNZ R6,k2          DJNZ R5,k1       RET       END11、单片机AT89C51的P2口接7447驱动一个共阳极七段数码管。让该数码管显示数字“2~6”,之后显示“9~0”,如此循环,延时为1S。ORG       0START:     MOV       R0,#5             MOV       A,#2LOOP_1:  MOV       P2,A             INC       A             CALL      D1000MS             DJNZ      R0,LOOP_1             MOV       R0,#10          MOV       A,#9LOOP_2:   MOV       P2,A             DEC       A             CALL      D1000MS             DJNZ      R0,LOOP_2             JMP       STARTD1000MS:          MOV       R7,#250D1:        MOV       R6,#200D2:        MOV       R5,#250             DJNZ      R5,$             DJNZ      R6,D2             DJNZ      R7,D1             RET             END12、四个集成共阳极七段数码管的公共端以PNP三极管做开关分别连接到单片机AT89C51的P1低四位,数码管的各显示引脚a~dP分别连接到P2.0~2.7。让4个数码管稳定显示“2012”。ORG          0LOOP:            MOV          P1,#11111110B          MOV          P2,#10100100B          CALL         D4MS           MOV          P1,#11111101B          MOV          P2,#11000000B          CALL         D4MS          MOV          P1,#11111011B          MOV          P2,#11111001B          CALL         D4MS          MOV          P1,#11110111B          MOV          P2,#11111001B          CALL         D4MS        JMP          L
锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章