how to slove the problem in code???
Discussion in "8051 Discussion Forum" started by HiteshDR Dec 24, 2007.
Mon Dec 24 2007, 01:54 pm
STEPPER EQU P1 KEY EQU P2 KEY_1 EQU P2.0 KEY_2 EQU P2.1 KEY_3 EQU P2.2 KEY_4 EQU P2.3 Org 0h Ljmp Main Org 0200h Main: Mov A, #00h Mov Stepper, A Mov Key, A Setb Key_1 Mov A, Key Jnz Ant_clk clk_wise:mov Stepper, #0ch Acall Delay_1ms Mov Stepper, #06h Acall Delay_1ms Mov Stepper, #03h Acall Delay_1ms Mov Stepper, #09h Acall Delay_1ms Sjmp Main Ant_clk:mov Stepper, #09h Acall Delay_1ms Mov Stepper, #03h Acall Delay_1ms Mov Stepper, #06h Acall Delay_1ms Mov Stepper, #0ch Acall Delay_1ms Ret DELAY_1MS: MOV R6, #231D ; 1 MILLISECONDS DELAY GOTO: NOP NOP DJNZ R6, GOTO RET
i have problem in this code.
the ant_clk loop runs only once
on next time program enters to the ant_clk loop but its not completing the loop. the program is returing to the line one of the program after desplaying 09 on port1.
what should be the reason for not completeing the loop?
wher should be the mistak??
[ Edited Mon Dec 24 2007, 02:34 pm ]
Mon Dec 24 2007, 02:39 pm
the reason is..
in your main routine.. you are using..
that means you are jumping to Ant_clk..
but at the end of Ant_clk routine.. you are using "Ret" you should use jump there.. you cannot return without calling a subroutine.
in your main routine.. you are using..
Jnz Ant_clk
that means you are jumping to Ant_clk..
but at the end of Ant_clk routine.. you are using "Ret" you should use jump there.. you cannot return without calling a subroutine.
Mon Dec 24 2007, 02:42 pm
you mean to say i have to write
instaed of
am i right...???
sjmp main
instaed of
ret
am i right...???
Powered by e107 Forum System