Wednesday 4 December 2013

Assembly Code To Blink LEDs




The Delay Generation ASM Routine For Generating Delay


;file: delays.asm
;ALL DELAYS ROUTINES HERE
DELAY_SEG SEGMENT CODE
RSEG DELAY_SEG
;DELAY OF 1MS SUBROUTINE
DELAY1MS:
MOV R7,#250
DJNZ R7,$
MOV R7,#247
DJNZ R7,$
RET
;DELAY OF 100MS SUBROUTINE
DELAY100MS:
MOV R6,#99;1MUS
L1:
ACALL DELAY1MS ;99MS
DJNZ R6,L1;198MUS
MOV R6,#250;1MUS
DJNZ R6,$;500US
MOV R6,#147;1US
DJNZ R6,$;294US
NOP
RET;1US
;DELAY 0F 1SEC SUB ROUTINE
DELAY1S:
MOV R5,#9
L2:
ACALL DELAY100MS
DJNZ R5,L2
MOV R5,#99
L3:
ACALL DELAY1MS
DJNZ R5,L3
MOV R5,#250
DJNZ R5,$
MOV R5,#138
DJNZ R5,$
RET


The Main ASM Routine For Operation


;file:main.asm
;Glow Alternate Leds Connected to A Port 0
$INCLUDE(delays.asm)
cseg at 0
MOV A,#0ffH
MOV A,#055H
MAIN:
MOV P2,A
LCALL DELAY1S
LCALL DELAY1S
XRL A,#0FFH
SJMP MAIN
END

Download Keil Project And Proteous Project For This

No comments:

Post a Comment