//BLOCK TRANSFER

CIRCUIT DIAGRAM
CODE

org 0000h
mov r0,#40h
mov dptr,#array
mov r2,#05h
up:
clr a
movc a,@a+dptr
mov@r0,a
inc r0
inc dptr
djnz r2,up
org 200h
array: db"123",0
end

//
org 0000h
mov r0,#40h
mov dptr,#80h
mov r2,#05h
up:
mov a,@r0
movx @dptr,a
inc r0
inc dptr
djnz r2,up
end

//
org 0000h
mov r0,#40h
mov r1,#80h
mov r2,#05h
up:
mov a,@r0
mov @r1,a
inc r0
inc r1
djnz r2,up
end

//LED INTERFACING

CIRCUIT DIAGRAM
CODE

org 0000h
mov r0,#0fh
mov a,#00h
up:inc a
mov p0,a
acall delay
djnz r0,up



delay:
mov r1,#0ffh
here1:mov r2,#0ffh
here:djnz r2,here
djnz r1,here1
ret
end

//led blink
ORG 000H
MOV P1, A
MOV R1, #0FH

BLINK:
CPL A
MOV P1, A
ACALL DELAY
DJNZ R1, BLINK
DELAY:
MOV R2, #250
AGAIN:
MOV R3, #250
AGAIN1:
MOV R4,#05
AGAIN2: DJNZ R4, AGAIN2
DJNZ R3,AGAIN1
DJNZ R2, AGAIN
RET
END

//up counter

ORG 000H
MOV R0, #0H        
MOV A, R0
MOV P1, A
MOV R1, #00H
COUNTER:
INC R0
MOV A, R0
MOV P1, A
ACALL DELAY
CJNE R1, #0FH, COUNTER
DELAY:
MOV R2, #250
AGAIN:
MOV R3, #250
AGAIN1:
MOV R4,#05
AGAIN2: DJNZ R4, AGAIN2
DJNZ R3,AGAIN1
DJNZ R2, AGAIN
RET
END

//down counter
ORG 000H
MOV R0, #0H        
MOV A, R0
MOV P1, A
MOV R1, #0FH
COUNTER:
INC R0
MOV A, R0
MOV P1, A
ACALL DELAY
DJNZ R1, COUNTER
DELAY:
MOV R2, #250
AGAIN:
MOV R3, #250
AGAIN1:
MOV R4, #05
AGAIN2: DJNZ R4, AGAIN2
DJNZ R3,AGAIN1
DJNZ R2, AGAIN
RET
END

//DAC INTERFACING

CIRCUIT DIAGRAM
CODE

//squarewave
org 0000h
up:mov a,#0ffh
mov p0,a
call delay
mov a,#00h
mov p0,a
call delay
sjmp up


delay:
mov r0,#250
here1:mov r1,#250
here:djnz r1,here
djnz r0,here1
ret
end

//triangular wave
org 0000h
up2:mov a,#00h
up:inc a
mov p0,a
cjne a,#0ffh,up
mov a,#0ffh
up1:dec a
mov p0,a
cjne a,#00h,up1
sjmp up2

delay:
mov r0,#250
here1:mov r1,#250
here:djnz r1,here
djnz r0,here1
ret
end

//positve ramp
org 0000h
up1:mov a,#00h
up:inc a
mov p0,a
cjne a,#0ffh,up
sjmp up1

delay:
mov r0,#250
here1:mov r1,#250
here:djnz r1,here
djnz r0,here1
ret
end

//negative ramp
org 0000h
up1:mov a,#00h
up:dec a
mov p0,a
cjne a,#00h,up
sjmp up1

delay:
mov r0,#250
here1:mov r1,#250
here:djnz r1,here
djnz r0,here1
ret
end

//LCD INTERFACING

CIRCUIT DIAGRAM

CODE

ORG0000H
MOV A,#38H
ACALL COMMAND
ACALL DEALY
MOV A,#0EH
ACALL COMMAND
ACALL DEALY
MOV A,#011H
ACALL COMMAND
ACALL DEALY
MOV A,#06H
ACALL COMMAND
ACALL DEALY
MOV A,#80H
ACALL COMMAND
ACALL DEALY
MOV A,'S'
ACALL DISPLAY
ACALL DELAY
MOV A,#'I'
ACALL DISPLAY
ACALL DELAY
MOV A,#'N'
ACALL DISPLAY
ACALL DELAY
MOV A,#'G'
ACALL DISPLAY
ACALL DELAY
MOV A,#'H'
ACALL DISPLAY
ACALL DELAY

HERE: SJMP HERE

 COMMAND: MOV P1,A
 CLR P3.5
 CLR P3.4
 SETB P3.3
 CLR P3.3
 ACALL DELAY
 RET

 DISPLAY: MOV P1,A
 SETB P3.5;RS
 CLR P3.4;RW
 SETB P3.3;EN
 CLR P3.3
 ACALL DELAY
 RET

 DELAY: CLR P3.3
 CLR P3.5
 SETB P3.4
 MOV P1,#0FFH
 SETB P3.3
 MOV A,P1
 JB ACC.7,DELAY
 CLR P3.3
 CLR P3.4
 RET

 END

//STEPPER MOTOR

CIRCUIT DIAGRAM
CODE

// HALF CLOCKWISE
ORG 0000H
MOV A,#00H
MOV P0,A
UP:MOV A,#09H
MOV P0,A
ACALL DALAY
MOV A,#0AH
MOV P0,A
ACALL DALAY
MOV A,#06H
MOV P0,A
ACALL DALAY
MOV A,#05H
MOV P0,A
ACALL DALAY
SJMP UP

DELAY:MOV R1,#0FFH
HERE1:MOV R2,#0FFH
HERE:DJNZ R2,HERE
DJNZ R1,HERE
RET
END

//ANTI CLOCLWISE
ORG 0000H
MOV A,#00H
MOV P0,A
UP:MOV A,#05H
MOV P0,A
ACALL DALAY
MOV A,#06H
MOV P0,A
ACALL DALAY
MOV A,#0AH
MOV P0,A
ACALL DALAY
MOV A,#09H
MOV P0,A
ACALL DALAY
SJMP UP

DELAY:MOV R1,#0FFH
HERE1:MOV R2,#0FFH
HERE:DJNZ R2,HERE
DJNZ R1,HERE
RET
END

//FULL STEP CLOCCKWISE
ORG 0000H
MOV A,#00H
MOV P0,A
UP:MOV A,#09H
MOV P0,A
ACALL DALAY
MOV A,#0CH
MOV P0,A
ACALL DALAY
MOV A,#05H
MOV P0,A
ACALL DALAY
MOV A,#04H
MOV P0,A
ACALL DALAY
MOV A,#06H
MOV P0,A
ACALL DALAY
MOV A,#02H
MOV P0,A
ACALL DALAY
MOV A,#03H
MOV P0,A
ACALL DALAY
MOV A,#01H
MOV P0,A
ACALL DALAY
SJMP UP

DELAY:MOV R1,#0FFH
HERE1:MOV R2,#0FFH
HERE:DJNZ R2,HERE
DJNZ R1,HERE
RET
END

//FULL STEP ANTI CLOCKWISE
ORG 0000H
MOV A,#00H
MOV P0,A
UP:MOV A,#01H
MOV P0,A
ACALL DALAY
MOV A,#03H
MOV P0,A
ACALL DALAY
MOV A,#02H
MOV P0,A
ACALL DALAY
MOV A,#06H
MOV P0,A
ACALL DALAY
MOV A,#04H
MOV P0,A
ACALL DALAY
MOV A,#05H
MOV P0,A
ACALL DALAY
MOV A,#0CH
MOV P0,A
ACALL DALAY
MOV A,#09H
MOV P0,A
ACALL DALAY
SJMP UP

DELAY:MOV R1,#0FFH
HERE1:MOV R2,#0FFH
HERE:DJNZ R2,HERE
DJNZ R1,HERE
RET
END

//TIMER PROGRAMING

org 0000h
mov a,#00h
mov p1,a
mov tmod,#0000001b
mov TL0,#00h
mov TH0,#0dch
mov IE,#82h
setb TR0
up:sjmp up

org 000b

cpl p1.2
mov TL0,#00h
mov TH0,#0dch
reti