led chaser pattern repetiton
Sun Nov 30 2014, 01:29 am
hello ajay sir,
i've recently joined this forum, I've downloaded code for led chaser,
i want to infinite repetition of current running pattern through external interrupt(INT0)
when switch is on, but when switch is off then pattern should be run as previous defined time.
the code is:-
ORG 000H ; starting address
SJMP LABEL
L1 EQU P1.2 ;LED CONECTED TO THIS PORT
L2 EQU P1.3 ;LED CONECTED TO THIS PORT
L3 EQU P1.4 ;LED CONECTED TO THIS PORT
L4 EQU P1.5 ;LED CONECTED TO THIS PORT
L5 EQU P1.6 ;LED CONECTED TO THIS PORT
L6 EQU P1.7 ;LED CONECTED TO THIS PORT
LABEL:
MOV R3, #05 ;REPEtion of pattern
D7: CALL DESGN7
DJNZ R3,D7
MOV R3, #05 ;REPEtion of pattern
D8: CALL DESGN8
DJNZ R3,D8
MOV R3, #05 ;REPEtion of pattern
D9: CALL DESGN9
DJNZ R3,D9
JMP LABEL
DESGN7: CALL ALLON
CALL DELAY
SETB L1
CALL DELAY
SETB L2
CALL DELAY
SETB L3
CALL DELAY
SETB L4
CALL DELAY
SETB L5
CALL DELAY
SETB L6
CALL DELAY
CALL DELAY
SETB L6
CALL DELAY
SETB L5
CALL DELAY
SETB L4
CALL DELAY
SETB L3
CALL DELAY
SETB L2
CALL DELAY
SETB L1
CALL DELAY
RET
DESGN8: CALL ALLON
SETB L6
SETB L1
CALL DELAY
CALL ALLON
SETB L5
SETB L2
CALL DELAY
CALL ALLON
SETB L4
SETB L3
CALL DELAY
RET
DESGN9: CALL ALLON
CALL DELAY
SETB L6
CALL DELAY
SETB L5
CALL DELAY
SETB L4
CALL DELAY
SETB L3
CALL DELAY
SETB L2
CALL DELAY
SETB L1
CALL DELAY
RET
CLEAR: SETB L1
SETB L2
SETB L3
SETB L4
SETB L5
SETB L6
RET
ALLON: CLR L1
CLR L2
CLR L3
CLR L4
CLR L5
CLR L6
RET
DELAY: MOV R0,#0FFH
INLOP: MOV R1,#0FFH
DJNZ R1,$
DJNZ R0,INLOP
RET
END
i've recently joined this forum, I've downloaded code for led chaser,
i want to infinite repetition of current running pattern through external interrupt(INT0)
when switch is on, but when switch is off then pattern should be run as previous defined time.
the code is:-
ORG 000H ; starting address
SJMP LABEL
L1 EQU P1.2 ;LED CONECTED TO THIS PORT
L2 EQU P1.3 ;LED CONECTED TO THIS PORT
L3 EQU P1.4 ;LED CONECTED TO THIS PORT
L4 EQU P1.5 ;LED CONECTED TO THIS PORT
L5 EQU P1.6 ;LED CONECTED TO THIS PORT
L6 EQU P1.7 ;LED CONECTED TO THIS PORT
LABEL:
MOV R3, #05 ;REPEtion of pattern
D7: CALL DESGN7
DJNZ R3,D7
MOV R3, #05 ;REPEtion of pattern
D8: CALL DESGN8
DJNZ R3,D8
MOV R3, #05 ;REPEtion of pattern
D9: CALL DESGN9
DJNZ R3,D9
JMP LABEL
DESGN7: CALL ALLON
CALL DELAY
SETB L1
CALL DELAY
SETB L2
CALL DELAY
SETB L3
CALL DELAY
SETB L4
CALL DELAY
SETB L5
CALL DELAY
SETB L6
CALL DELAY
CALL DELAY
SETB L6
CALL DELAY
SETB L5
CALL DELAY
SETB L4
CALL DELAY
SETB L3
CALL DELAY
SETB L2
CALL DELAY
SETB L1
CALL DELAY
RET
DESGN8: CALL ALLON
SETB L6
SETB L1
CALL DELAY
CALL ALLON
SETB L5
SETB L2
CALL DELAY
CALL ALLON
SETB L4
SETB L3
CALL DELAY
RET
DESGN9: CALL ALLON
CALL DELAY
SETB L6
CALL DELAY
SETB L5
CALL DELAY
SETB L4
CALL DELAY
SETB L3
CALL DELAY
SETB L2
CALL DELAY
SETB L1
CALL DELAY
RET
CLEAR: SETB L1
SETB L2
SETB L3
SETB L4
SETB L5
SETB L6
RET
ALLON: CLR L1
CLR L2
CLR L3
CLR L4
CLR L5
CLR L6
RET
DELAY: MOV R0,#0FFH
INLOP: MOV R1,#0FFH
DJNZ R1,$
DJNZ R0,INLOP
RET
END
Tue Dec 02 2014, 10:25 am
This program is already an infinte loop.
Are you looking for a particular design to be taken into loop? then you can put that design in interrupt routine itself, and keep going till the pin is high. There will be significant changes in the code. You need to understand it and then make changes.
LABEL: MOV R3, #05 ;REPEtion of pattern D7: CALL DESGN7 DJNZ R3,D7 MOV R3, #05 ;REPEtion of pattern D8: CALL DESGN8 DJNZ R3,D8 MOV R3, #05 ;REPEtion of pattern D9: CALL DESGN9 DJNZ R3,D9 JMP LABEL
Are you looking for a particular design to be taken into loop? then you can put that design in interrupt routine itself, and keep going till the pin is high. There will be significant changes in the code. You need to understand it and then make changes.
sankalp_s like this.
Wed Dec 03 2014, 03:45 pm
Thank u very much sir, for ur response.
Actually i want to lock that pattern which is currently executing .
and when it return from interrupt then pattern should execute in their sequence.
sir please help me for the code..could u write the code?
thank u sir.
Actually i want to lock that pattern which is currently executing .
and when it return from interrupt then pattern should execute in their sequence.
sir please help me for the code..could u write the code?
thank u sir.
Fri Dec 05 2014, 10:38 pm
We can't really understand what you want.
Do you want to freeze the display when the button is pressed. ?
Can you describe what you want in a different way.
Do you want to freeze the display when the button is pressed. ?
Can you describe what you want in a different way.
Sun Dec 07 2014, 01:47 pm
yes sir exactly as you said..
i want to freeze the display when switch is presses & when switch is not pressed then all pattern should execute in their sequence..
i want to freeze the display when switch is presses & when switch is not pressed then all pattern should execute in their sequence..
Wed Dec 10 2014, 10:05 am
so in ISR put a while loop till the switch is low and then as soon as it is high exit from there... processor will continue what it was doing earlier.. e.g.
So when you make INT0 low (switch pressed) it will jump to ISR and make your cpu wait till the switch is pressed.
ORG 03H JNB P3.2, $ RETI
So when you make INT0 low (switch pressed) it will jump to ISR and make your cpu wait till the switch is pressed.
[ Edited Wed Dec 10 2014, 10:06 am ]
Fri Dec 12 2014, 11:59 pm
Thank u sir for your response.
sir can u explain more about this or put the code in that code please.. it will be very helpful sir.
actually i've tried bit failed .. so please help me about exact code n where it would be put.
thank you.
sir can u explain more about this or put the code in that code please.. it will be very helpful sir.
actually i've tried bit failed .. so please help me about exact code n where it would be put.
thank you.
[ Edited Sat Dec 13 2014, 12:34 am ]
Tue Dec 16 2014, 10:25 am
ORG 000H ; starting address SJMP LABEL1 ORG 03H JNB P3.2, $ RETI L1 EQU P1.2 ;LED CONECTED TO THIS PORT L2 EQU P1.3 ;LED CONECTED TO THIS PORT L3 EQU P1.4 ;LED CONECTED TO THIS PORT L4 EQU P1.5 ;LED CONECTED TO THIS PORT L5 EQU P1.6 ;LED CONECTED TO THIS PORT L6 EQU P1.7 ;LED CONECTED TO THIS PORT LABEL1: SETB EXT0 ; Enable external interrupt SETB EA ; Enable interrupts LABEL: MOV R3, #05 ;REPEtion of pattern D7: CALL DESGN7 ; ... rest of the code ...
Wed Dec 17 2014, 09:41 pm
ORG 000H ; starting address SJMP LABEL1 ORG 03H JNB P3.2, $ RETI L1 EQU P1.2 ;LED CONECTED TO THIS PORT L2 EQU P1.3 ;LED CONECTED TO THIS PORT L3 EQU P1.4 ;LED CONECTED TO THIS PORT L4 EQU P1.5 ;LED CONECTED TO THIS PORT L5 EQU P1.6 ;LED CONECTED TO THIS PORT L6 EQU P1.7 ;LED CONECTED TO THIS PORT LABEL1: SETB EXT0 ; Enable external interrupt SETB EA ; Enable interrupts LABEL: MOV R3, #05 ;REPEtion of pattern D7: CALL DESGN7 ; ... rest of the code ...ajay_bhargav
Thank u sir.
i've tried this code but faced a syntax error on line of setb ext0.....( Symbol not defined: ext0)
sir one thing more can u give me the while loop code example for my requirement .. can i use pin int1 for this operation?
Thu Dec 18 2014, 04:51 am
i've tried this code but faced a syntax error on line of setb ext0...
( Symbol not defined: ext0)sankalp_s
Which compilier are you using ?
sir one thing more can u give me the while loop code
example for my requirement ..sankalp_s
ORG 03H
JNB P3.2, $
RETI
This is all the code you need to freeze the display.
can i use pin int1 for this operation?sankalp_s
Yes, but the code changes to.. ORG 13H JNB P3.3, $ RETI //and SETB EXT1 ; Enable external interrupt 1 SETB EA ; Enable interrupts
An alternative method does not use an interrupt.
Monitor the key in the delay routine.
DELAY: MOV R0,#0FFH INLOP: MOV R1,#0FFH buttonTest: ;button is the input pin JNB button, buttonTest ;wait while pressed DJNZ R1,buttonTest DJNZ R0,INLOP RET
Powered by e107 Forum System