Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

[51] freeze pattern in led chaser

Status
Not open for further replies.

jai_jem

Newbie level 4
Newbie level 4
Joined
Jan 10, 2013
Messages
5
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Visit site
Activity points
1,353
hello dear members,

this is led chaser code, i want to know that how can i lock any running pattern through external interrupt,
actually i want to freeze pattern when switch is pressed and when switch is not pressed then it should execute as their sequence..
please some body help me for the code.



Code ASM - [expand]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
;************************************************************
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 P1,#0FFH 
MOV P3,#0FFH
MOV SP,#30H
 
                
                        MOV R3, #05   ;REPEtion of pattern 
D1:             CALL pattern1
                        DJNZ R3,D1              
                        MOV R3, #05   ;REPEtion of pattern 
D2:             CALL pattern2
                        DJNZ R3,D2                      
                        MOV R3, #05   ;REPEtion of pattern 
D3:             CALL pattern3
                        DJNZ R3,D3                      
                        
         JMP LABEL
 
                        
 
 
pattern1:       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
                        
                        
 
 
pattern2:       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
                        
pattern3:       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: 
XRL A,#0FFH ;IN CASE OF 2051 CIRCUIT
 
JNB P3.2,FULL
JB P3.1,$
JNB P3.2,FULL
JNB P3.1,$
JNB P3.2,FULL
RET
;************************************************* ***********************************************
 
 
;
FULL: MOV P1,#11000000B
 
JNB P3.2,$
MOV P1,#11111111B
 
RET
                        
END

 
Last edited by a moderator:

hello dear members,

this is led chaser code, i want to know that how can i lock any running pattern through external interrupt,
actually i want to freeze pattern when switch is pressed and when switch is not pressed then it should execute as their sequence..
please some body help me for the code.



Code ASM - [expand]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
;************************************************************
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 P1,#0FFH 
MOV P3,#0FFH
MOV SP,#30H
 
                
                        MOV R3, #05   ;REPEtion of pattern 
D1:             CALL pattern1
                        DJNZ R3,D1              
                        MOV R3, #05   ;REPEtion of pattern 
D2:             CALL pattern2
                        DJNZ R3,D2                      
                        MOV R3, #05   ;REPEtion of pattern 
D3:             CALL pattern3
                        DJNZ R3,D3                      
                        
         JMP LABEL
 
                        
 
 
pattern1:       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
                        
                        
 
 
pattern2:       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
                        
pattern3:       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: 
XRL A,#0FFH ;IN CASE OF 2051 CIRCUIT
 
JNB P3.2,FULL
JB P3.1,$
JNB P3.2,FULL
JNB P3.1,$
JNB P3.2,FULL
RET
;************************************************* ***********************************************
 
 
;
FULL: MOV P1,#11000000B
 
JNB P3.2,$
MOV P1,#11111111B
 
RET
                        
END


when ext.i interrupt occurred stay there while your interrupt pin low
 

thank you so much aurn sir for your response,
ok got it,but what would b code? actually i'm newbie.
 

ok,
Code:
#include <res51.h>//keil 8051 header 
#include <REG51.H>
sbit button=P3^2;//button pin
void main()
{
	EX0=1;//enable interrupt 0
	IT0=1;// for falling edge
	EA=1;// enable globle 
	while(1)
	{
		//run your task
	}
}
void _isr_() interrupt 0
{
	EX0=0;// disable interrupt 0
	while(!button);//stey hear while button is press
	IE0=0; //clear interrupt request
	EX0=1;//enable interrupt 0
}
 

Try implementing this in asm code.


Code C - [expand]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <REG51.H>
 
sbit button = P3^2;
 
unsigned char lockPattern = 0;
 
void main() {
 
    P3.2 = 1;
 
    EX0 = 1;
    IT0 = 1;
    EA  = 1;
 
    while(1)
    {
        switch(pattern) {
 
            case 0:
                while(lockPattern)
                    LED_Pattern1();
                LED_Patterr1();
                break;
            case 1:
                while(lockPattern)
                    LED_Pattern2();
                LED_Pattern2();
                break;
            case 2:
                while(lockPattern)
                    LED_Pattern3();
                LED_Pattern3();
                break;
            case 3:
                while(lockPattern)
                    LED_Pattern4();
                LED_Pattern4();
                break;
 
        };
    }
}
 
void _isr_() interrupt 0
{
    lockPattern = ~lockPattern;
    IE0 = 0;    
}



- - - Updated - - -

Implement this in asm.
 

Attachments

  • LED Patterns.rar
    29.4 KB · Views: 111
  • Like
Reactions: jai_jem

    V

    Points: 2
    Helpful Answer Positive Rating

    jai_jem

    Points: 2
    Helpful Answer Positive Rating
Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top