Embedded Systems

IMPLEMENTATION OF ARTHEMATIC AND LOGICAL OPERATION

//8-BIT ADDITION
ORG 0000H
MOV A,#02H
ADD A,#04H   ;adds accumulator value & immediate value & stores in accumulator
MOV R1,A
HERE:SJMP HERE

//8-BIT SUBRACTION
ORG 0000H
MOV A,#04H
SUBB A,#02H
MOV R1,A
HERE:SJMP HERE

//8-BIT MULTIPLICATION
ORG 0000H
MOV A,#04H
MOV B,#03H
MUL AB
HERE:SJMP HERE

//8-BIT DIVISION
ORG 0000H
MOV A,#06H
MOV B,#03H
DIV AB
HERE:SJMP HERE

//ADDITION USING INTERNAL RAM
ORG 0000H
MOV R2,#03H
MOV R1,#00H
MOV R0,#0030H
LOOP:MOV A,@R0
ADD A,R1
MOV R1,A
INC R0                        
DJNZ R2,LOOP
MOV @R0,A
HERE:SJMP HERE
END
//SUBTRACTION USING INTERNAL RAM
ORG 0000H
MOV R2,#03H
MOV R1,#00H
MOV R0,#0030H
LOOP:MOV A,@R0
SUBB A,R1
MOV R1,A
INC R0
DJNZ R2,LOOP
MOV @R0,A
HERE:SJMP HERE
END
//MULTIPLICATION USING INTERNAL RAM
ORG 0000H
MOV R1,#03H
MOV B,#01H
MOV R0,#0030H
LOOP:MOV A,@R0
MUL AB
MOV B,A
 INC R0
DJNZ R1,LOOP
MOV @R0,A
HERE:SJMP HERE
END
//DIVISION USING INTERNAL RAM
ORG 0000H
 MOV R1,#03H
MOV B,#01H
MOV R0,#0030H
LOOP:MOV A,@R0
DIV AB
MOV B,A
 INC R0
DJNZ R1,LOOP
MOV @R0,A
HERE:SJMP HERE
END
//ADDITION USING EXTERNAL RAM
            ORG 0000H
            MOV R2,#03H
            MOV R1,#00H
            MOV DPTR,#0030H
LOOP: MOVX A,@DPTR
            ADD A,R1
            MOV R1,A
            INC DPTR
            DJNZ R2,LOOP
            MOVX @DPTR,A
HERE:SJMP HERE
            END
 //SUBTRACTION USING EXTERNAL RAM
            ORG 0000H
            MOV R2,#03H
            MOV R1,#00H
            MOV DPTR,#0030H
LOOP: MOVX A,@DPTR
SUBB A,R1
            MOV R1,A
            INC DPTR
            DJNZ R2,LOOP
            MOVX @DPTR,A
HERE:SJMP HERE
            END
 // MULTIPLICATION USING  EXTERNAL RAM
ORG 0000H
            MOV R2,#04H
            MOV B,#01H
            MOV DPTR,#0030H
LOOP:MOVX A,@DPTR
        MUL AB
    MOV B,A
 INC DPTR
DJNZ R2,LOOP
MOVX @DPTR,A
HERE:SJMP HERE
     END

// DIVISION USING  EXTERNAL RAM
ORG 0000H
            MOV R2,#04H
            MOV B,#01H
            MOV DPTR,#0030H
LOOP:MOVX A,@DPTR
        DIV AB
    MOV B,A
 INC DPTR
DJNZ R2,LOOP
MOVX @DPTR,A
HERE:SJMP HERE
     END
 //ARRAY OPERATION
//AVERAGE USING EXTERNAL RAM
ORG 0000H
MOV R0,#0000H
MOV B,#03H
MOV R1,B
MOV DPTR,#0030H
LOOP:MOVX A,@DPTR
ADD A,R0
MOV R0,A
INC DPTR
DJNZ R1,LOOP
DIV AB
HERE:SJMP HERE
          END
 //AVERAGE USING INTERNAL RAM
ORG 0000H
MOV R0,#30H
MOV B,#04H
MOV R1,B
MOV A,#00H
   LOOP:ADD A,@R0
INC R0
DJNZ R1,LOOP
 DIV AB
  HERE: SJMP HERE
//AVERAGE USING CODE MEMORY
ORG 30H
MOV R0,#00H
MOV DPTR,#DAT
MOV R2,#03H
MOV R1,#00H
LOOP:CLR A
MOVC A,@A+DPTR
ADD A,R0
MOV R0,A
JNC LOOP1
INC R1
  LOOP1:INC DPTR     
DJNZ R2,LOOP
   HERE:SJMP HERE
ORG 1230H
   DAT: DB   11H,07H,0AH
END
 //LOGICAL OPERATION
//AND OPERATION
ORG 0000H
MOV A,#05H
MOV R0,#09H
ANL A,R0
HERE:SJMP HERE
//OR OPERATION
ORG 0000H
MOV A,#05H
MOV R0,#09H
ORL A,R0
HERE:SJMP HERE
 //NOT OPERATION
ORG 30H
MOV A,#05H
CPL A
HERE:SJMP HERE
 //EXOR OPERATION
ORG 0000H
MOV A,#05H
MOV R0,#09H
XRL A,R0
HERE:SJMP HERE
//2’S COMPLEMENT
ORG 0000H
MOV A,#05H
CPL A
ADD A,#01H ;Add Acc. Value by 1
HERE:SJMP HERE

PROGRAMMING FOR INTERFACING I/O USING 8051

FLASHING SINGLE LED WITHOUT SWITCH:


         ORG 30H
         CLR P1.0
   LOOP: SETB P1.0
         CLR P1.0
         SJMP LOOP
         END        

FLASHING 8 LEDS’ WITHOUT SWITCH:

         ORG 30H
         MOV P1,#00H
   LOOP: MOV A,#0FFH
         MOV P1,A
         MOV A,#00H
         MOV P1,A
         SJMP LOOP
         END        

FLASHING 8 LEDS’ ONE AT A TIME

         ORG 30H
         MOV P1,#00H
         MOV A,#01H
   LOOP: MOV P1,A
         RL A
         SJMP LOOP
         END  

FLASING SINGLE LED USING SWITCH:

            ORG 30H
            CLR P1.0
            SETB P1.1
  LOOP1: JNB P1.1,LOOP
            SETB P1.0
            SJMP LOOP1
   LOOP:  CLR P1.0
            SJMP LOOP1
            END

7 SEGMENT DSPLAY WITHOUT SWITCH:

         ORG 30H
        MOV P1,#00H
  LOOP: MOV P1,#3FH
        MOV P1,#06H
        MOV P1,#5BH
        MOV P1,#4FH
        MOV P1,#66H
        MOV P1,#6DH
        MOV P1,#7DH
        MOV P1,#07H
        MOV P1,#7FH
        MOV P1,#6FH
        SJMP LOOP
        END

7 SEGMENT DISPLAY USING SWITCH:

            ORG 30H
            MOV DPTR,#DATA 
            MOV P1,#00H
            SETB P2.0
     LOOP: CLR A
            MOVC A,@A+DPTR
            MOV P1,A 
       L1:            JB P2.0,L1
       L2:            JNB P2.0,L2
            INC DPTR
            SJMP LOOP

             ORG 200H
   DATA: DB  3FH,06H,5BH,4FH,66H,6DH,7CH,07H,7FH,6FH
             END 


PROGRAMMING FOR LCD DISPLAY USING 8051 MICROCONTROLLER

ROLLING LCD DISPLAY:

        ORG 00H
        MOV A,#38H
        ACALL SUBR
        ACALL DELAY
        MOV A,#0EH
        ACALL SUBR
        ACALL DELAY
        MOV A,#01H
        ACALL SUBR
        ACALL DELAY
        MOV A,#06H
        ACALL SUBR
        ACALL DELAY
        MOV A,#84H
        ACALL SUBR
        ACALL DELAY
        MOV A,#'W'
        ACALL DATA
        ACALL DELAY
        MOV A,#'E'
        ACALL DATA
        ACALL DELAY
        MOV A,#'L'
        ACALL DATA
        ACALL DELAY
        MOV A,#'C'
        ACALL DATA
        ACALL DELAY
        MOV A,#'O'
        ACALL DATA
        ACALL DELAY
        MOV A,#'M'
        ACALL DATA
        ACALL DELAY
        MOV A,#'E'
        ACALL DATA
        ACALL DELAY
      AGAIN:  MOV A,#18H
        ACALL SUBR
        ACALL DELAY
       SJMP AGAIN
       
   SUBR:
         MOV P1,A
         CLR P2.0
         CLR P2.1
         SETB P2.2
         ACALL DELAY
         CLR P2.2
         RET

  DATA:
        MOV P1,A
        SETB P2.0
        CLR P2.1
        SETB P2.2
        ACALL DELAY
        CLR P2.2
        RET

 DELAY: MOV R3,#0ffh
 HERE2: MOV R4,#0ffh
 HERE: DJNZ R4,HERE
       DJNZ R3,HERE2
       RET
       END

STANDING LCD DISPLAY:

              ORG 00H
        MOV A,#38H
        ACALL SUBR
        ACALL DELAY
        MOV A,#0EH
        ACALL SUBR
        ACALL DELAY
        MOV A,#01H
        ACALL SUBR
        ACALL DELAY
        MOV A,#06H
        ACALL SUBR
        ACALL DELAY
        MOV A,#84H
        ACALL SUBR
        ACALL DELAY
        MOV A,#'W'
        ACALL DATA
        ACALL DELAY
        MOV A,#'E'
        ACALL DATA
        ACALL DELAY
        MOV A,#'L'
        ACALL DATA
        ACALL DELAY
        MOV A,#'C'
        ACALL DATA
        ACALL DELAY
        MOV A,#'O'
        ACALL DATA
        ACALL DELAY
        MOV A,#'M'
        ACALL DATA
        ACALL DELAY
        MOV A,#'E'
        ACALL DATA
        ACALL DELAY
       AGAIN:  SJMP AGAIN
       
   SUBR:
         MOV P1,A
         CLR P2.0
         CLR P2.1
         SETB P2.2
         ACALL DELAY
         CLR P2.2
         RET


  DATA:
        MOV P1,A
        SETB P2.0
        CLR P2.1
        SETB P2.2
        ACALL DELAY
        CLR P2.2
        RET


 DELAY: MOV R3,#0FFH
 HERE2: MOV R4,#0FFH
 HERE: DJNZ R4,HERE
       DJNZ R3,HERE2
       RET 
       END


BLINKING LCD DISPLAY:


                  ORG 00H
MAIN:      MOV A,#38H
                  ACALL COMNWRT
                  ACALL DELAY
                  MOV A,#0EH
                  ACALL COMNWRT
                  ACALL DELAY
                  MOV A,#01H
                  ACALL COMNWRT
                  ACALL DELAY
                  MOV A,#06H
                  ACALL COMNWRT
                  ACALL DELAY
                  MOV A,#0C0H    
                  ACALL COMNWRT
                  ACALL DELAY
                  MOV A,#'W'
                  ACALL DATAWRT
                  ACALL DELAY
                  ACALL DATAWRT
                  ACALL DELAY
                  MOV A,#'L'
                  ACALL DATAWRT
                  ACALL DELAY
                  MOV A,#'C'
                  ACALL DATAWRT
                  ACALL DELAY
                  MOV A,#'O'
                  ACALL DATAWRT
                  ACALL DELAY
                  MOV A,#'M'
                  ACALL DATAWRT
                  ACALL DELAY
                  MOV A,#'E'
                  ACALL DATAWRT
                  ACALL DELAY
                  ACALL BLINK
BLINK:     MOV A,#01H
                  ACALL COMMAND
                  ACALL DELAY
                  ACALL MAIN
AGAIN:    SJMP AGAIN
COMNWRT:
                  MOV P1,A
                  CLR P2.0
                  CLR P2.1
                  SETB P2.2
                  ACALL DELAY
                  CLR P2.2
                  RET
DATAWRT:
                  MOV P1,A
                  SETB P2.0
                  CLR P2.1
                  SETB P2.2
                  ACALL DELAY
                  CLR P2.2
                  RET
DELAY:   MOV R3,#50H
HERE2:     MOV R4,#255H
HERE:       DJNZ R4,HERE
                  DJNZ R3,HERE2
                  RET
                  END

HARDWARE IMPLEMENTATION OF INTERRUPTS


CODING:

            ORG 00H
            SJMP MAIN
            ORG 001BH
            ACALL DELAY
            CPL P1.1
            RETI
       
            ORG 30H
MAIN:CLR P1.0
            CLR P1.1
            MOV TMOD,#20H
            MOV TH0,#35H
            MOV IE,#88H
            SETB TR1
      L1:CPL P1.0
            SJMP L1

        DELAY:
            MOV R3,#0ffH
        l2:  
MOV R2,#0FFH
        LOOP:
DJNZ R2,LOOP
            DJNZ R3,L2
            RET
HARDWARE IMPLEMENTATION OF TIMERS

TIMER 0 MODE 1, 30MS DELAY:
        
         ORG 00H
         SJMP MAIN
         ORG 30H
   MAIN:
    L1: CLR P1.0
        MOV TMOD,#01H
        MOV TL0,#0FFH
        MOV TH0,#93H
        SETB TR0
   LOOP:
        JNB TF0,LOOP
        CLR TR0
        CLR TF0
        CPL P1.0
        SJMP L1
        END

TIMER 1 MODE 2, 30 MS DELAY:

         ORG 00H
         SJMP MAIN
         ORG 30H
   MAIN:
        CLR P1.0
   L1:MOV TMOD,#20H
        MOV TH1,#093H
        SETB TR1
   LOOP:
        JNB TF1,LOOP
        CLR TR1
        CLR TF1
        CPL P1.0
        SJMP L1
        END

TIMER 0 , MODE 1 30 MS DELAY:

          ORG 00H
         SJMP MAIN
         ORG 30H
   MAIN:
        CLR P1.0
     L1:MOV TMOD,#01H
        MOV THO,#93H
        MOV TL0,#0FFH
        SETB TR0
   LOOP:
        JNB TF0,LOOP
        CLR TR0
        CLR TF0
        CPL P1.0
        SJMP L1
        END

HARDWARE IMPLEMENTATION OF I/O PORTS USING 8051 MICROCONTROLLER

FLASHING SINGLE LED WITHOUT USING SWITCH:

    org 00h
    sjmp main
   main:org 30h
    clr p1.0
    loop: clr p1.0
    acall delay
    acall delay
    setb p1.0
    acall delay
    acall delay
    acall delay
    acall delay
    sjmp loop
       
 delay:
           MOV R1,#0ffH
           LOOP3:MOV R2,#0ffH
           LOOP2:DJNZ R2,LOOP2
           DJNZ R1,LOOP3
           ret
           end


FLASHING SINGLE LED USING SWITCH:

                        ORG 00H
                        SJMP MAIN
 MAIN:
                        ORG 30H
                        CLR P2.0
                        SETB P1.0
 L3:                  MOV A,#01H
                        MOV P2.0,A
LOOP:                        JB P1.0,LOOP       
                        CLR P2.0
LOOP2:          JNB P1.0,LOOP2
                        JB P1.0,L3    
                        END

FLASHING 8 LEDS ONE BY ONE:

          ORG 00H
          SJMP MAIN
   MAIN:
            MOV P1,#00H
LOOP:            MOV P1,#80H
            ACALL DELAY
            MOV P1,#40H
            ACALL DELAY
            MOV P1,#20H
            ACALL DELAY      
            MOV P1,#10H
            ACALL DELAY      
            MOV P1,#08H
            ACALL DELAY
            MOV P1,#04H
            ACALL DELAY      
            MOV P1,#02H
            ACALL DELAY      
            MOV P1,#01H
            ACALL DELAY      
            SJMP LOOP

    DELAY:
           MOV R1,#05H
           LOOP3:MOV R2,#0AH
           LOOP2:DJNZ R2,LOOP2
           DJNZ R1,LOOP3
           ret
          END


7 SEGMENT DISPLAY:

          ORG 00H
          SJMP MAIN
   MAIN:
         ORG 30H
         MOV P1,#00H
LOOP: MOV P1,#0C0H
        ACALL DELAY
        ACALL DELAY
        MOV P1,#0F9H
        ACALL DELAY
       ACALL DELAY
        MOV P1,#0A4H
       ACALL DELAY
        ACALL DELAY
        MOV P1,#0B0H
        ACALL DELAY
        ACALL DELAY
        MOV P1,#99H
        ACALL DELAY
        ACALL DELAY
        MOV P1,#92H
        ACALL DELAY
        ACALL DELAY
        MOV P1,#82H
        ACALL DELAY
        ACALL DELAY
        MOV P1,#0F8H
       ACALL DELAY
        ACALL DELAY
        MOV P1,#80H
        ACALL DELAY
        ACALL DELAY
        MOV P1,#90H
        ACALL DELAY
        ACALL DELAY
        SJMP LOOP
        DELAY:
           MOV R1,#05H
           LOOP3:MOV R2,#0AH
           LOOP2:DJNZ R2,LOOP2
          DJNZ R1,LOOP3
          ret
        END


PROGRAMMING FOR TIMER INTERRUPTS

CODING

TIMER 1 MODE 2

                        ORG 00H
                        SJMP MAIN
                        ORG 001BH
                        CPL P1.1
                        RETI

                        ORG 30H
MAIN:            CLR P1.0
                        CLR P1.1
                        MOV TMOD,#20H
                        MOV TH1,#35H
                        MOV IE,#88H
                        SETB TR1
   L1:                CPL P1.0
                        SJMP L1


LEVEL TRIGGERING

ORG 0000H
            SJMP L2
            ORG 0003H
            CPL P1.2
            RETI


            ORG 30H
            CLR P1.0
            CLR P1.2

L2:       MOV IE,#81H
            SETB P3.2
            CLR TCON.0

L1:       CPL P1.0
            SJMP L1
            END


EDGE TRIGGERING


ORG 0000H
            SJMP L2
            ORG 0003H
            CPL P1.2
            RETI


            ORG 30H
            CLR P1.0
            CLR P1.2

L2:       MOV IE,#81H
            SETB P3.2
            SETB TCON.0

L1:       CPL P1.0
            SJMP L1
            END
TRAFFIC SIGNAL USING LED
CODING
        ORG 30H
        MOV P0,#00H
        START: SETB P0.0
        SETB P0.4
        ACALL TIMER
        CLR P0.0
        CLR P0.4
        SETB P0.5
        SETB P0.0
        ACALL TIMER
        CLR P0.0
        CLR P0.5
        SETB P0.3
        SETB P0.1
        ACALL TIMER
        CLR P0.1
        CLR P0.3
        SETB P0.2
        SETB P0.3
        ACALL TIMER
        CLR P0.3
        CLR P0.2
        SJMP START

 TIMER:
            MOV TMOD,#01H
            MOV R0,#64H
   ABC:
             MOV TL0,#02H
            MOV TH0,#0B4H
            SETB TR0
DELAY: 
            JNB TF0,DELAY
            CLR TR0
            CLR TF0
            DJNZ R0,ABC
            RET

No comments:

Post a Comment