Discussion in "Project Doubts" started by    sankalp_s    Nov 30, 2014.
Sun Nov 30 2014, 01:29 am
#1
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
Tue Dec 02 2014, 10:25 am
#2
This program is already an infinte loop.
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
#3
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.

Fri Dec 05 2014, 10:38 pm
#4
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.
Sun Dec 07 2014, 01:47 pm
#5
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..
Wed Dec 10 2014, 10:05 am
#6
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.
    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
#7
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.


[ Edited Sat Dec 13 2014, 12:34 am ]
Tue Dec 16 2014, 10:25 am
#8
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
#9


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
#10


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

Get Social

Information

Powered by e107 Forum System

Downloads

Comments

Bobbyerilar
Thu Mar 28 2024, 08:08 am
pb58
Thu Mar 28 2024, 05:54 am
Clarazkafup
Thu Mar 28 2024, 02:24 am
Walterkic
Thu Mar 28 2024, 01:19 am
Davidusawn
Wed Mar 27 2024, 08:30 pm
Richardsop
Tue Mar 26 2024, 10:33 pm
Stevencog
Tue Mar 26 2024, 04:26 pm
Bernardwarge
Tue Mar 26 2024, 11:15 am