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