Runing LED's Using Assembly Language Programming, Instruction MOV, SETB, CPL, DJNZ, ACALL, Time Delay 0.25 Second

Running LED Display Using 8052

Runing LED's Using Assembly Language Programming, Instruction MOV, SETB, CPL, DJNZ, ACALL, Time Delay 0.25 Second

;=================================================================

;Code Written by: Azhar Ahmed
; W W W . I A M T E C H N I C A L . C O M

;Crystal Frequency = 12MHz / 12 Machine Cycles = 1Mhz

;1/1MHz = 1 Microsecond

;(250 x 250 x 2 x 1Microsecond) x 2 times ACALL Delay = 0.25 Second  

;=================================================================
               ORG   0000H    
BACK:      MOV P1,#00H           ;Send Logic 0 Level to all Bits of Port 1 i.e 00H    
               SETB P1.0                 ;Set Port Bit 0 of P1 to HIGH
               ACALL DELAY            ;WAIT 0.125 Second
               ACALL DELAY            ;WAIT 0.125 Second
               CPL P1.0                   ;Complement Bit 0 of Port 1,High-to-Low
               SETB P1.1                 ;Set Port Bit 1 of P1 to HIGH
               ACALL DELAY            ;WAIT 0.125 Second
               ACALL DELAY            ;WAIT 0.125 Second
              CPL p1.1                    ;Complement Bit 1 of Port 1,High-to-Low
              SETB P1.2                  ;Set Port Bit 2 of P1 to HIGH
              ACALL DELAY             ;WAIT 0.125 Second
              ACALL DELAY             ;WAIT 0.125 Second
              CPL p1.2                    ;Complement Bit 2 of Port 1,High-to-Low
              SETB P1.3                  ;Set Port Bit 3 of P1 to HIGH
              ACALL DELAY             ;WAIT 0.125 Second
              ACALL DELAY             ;WAIT 0.125 Second
              CPL p1.3                    ;Complement Bit 3 of Port 1,High-to-Low
              SETB P1.4                  ;Set Port Bit 4 of P1 to HIGH
              ACALL DELAY             ;WAIT 0.125 Second
              ACALL DELAY             ;WAIT 0.125 Second
              CPL p1.4                    ;Complement Bit 4 of Port 1,High-to-Low
              SETB P1.5                  ;Set Port Bit 5 of P1 to HIGH
              ACALL DELAY             ;WAIT 0.125 Second
              ACALL DELAY             ;WAIT 0.125 Second
             CPL P1.5                     ;Complement Bit 5 of Port 1,High-to-Low
             SETB P1.6                   ;Set Port Bit 6 of P1 to HIGH
             ACALL DELAY              ;WAIT 0.125 Second
             ACALL DELAY              ;WAIT 0.125 Second
            CPL P1.6                      ;Complement Bit 6 of Port 1,High-to-Low
            SETB P1.7                    ;Set Port Bit 7 of P1 to HIGH
            ACALL DELAY               ;WAIT 0.125 Second
            ACALL DELAY               ;WAIT 0.125 Second
            CPL P1.7                       ;Complement Bit 7 of Port 1,High-to-Low
            SJMP BACK                   ;Make This Operation to Run Repeatedly
      
DELAY:
      MOV R0,#250                    ;Initialize the R0 Register With an Immediate Value 250 
NEXT: 
      MOV R1,#250                    ;Load R0 With 250 Value to Repeat the Loop for 250 Times

AGAIN:
      DJNZ R1,AGAIN                 ;Internal Loop Repeates 250 Times
      DJNZ R0,NEXT                   ;External Loop Repeates 250 Times
      RET                                  ;Return to Caller
      END                                  ;End of .asm File

;================================================================

More From Iamtechnical.com

Advertisement: