Discussion in "Project Doubts" started by    sankalp_s    Nov 30, 2014.
Sat Dec 27 2014, 09:29 pm
#21
Dear Phil sir
my second query is, there are three program in side the code:
for example in program 1st has three design, program 2nd has two design program 3rd has six design,
now i'm using any two pin for call these design. (ie.pin p3.2 & p3.3)
if no any pin is low then only program 1 will be run
if 3.2 then only program 2
& when 3.3 then only program 3
is this possible with JB & JNB instruction?
i've tried but only 1 program works,
could you please help me for the code?
thank u for your cooperation..
Sun Dec 28 2014, 11:04 am
#22
you need to remove jump statements from main program codes. only the design loop should remain. rest you can do something like this...
;You main loop will be like this..
main:
JB P3.3, program2
;Put program 3 code here
program2:
JB P3.2, program1
;Put program 2 code here
sjmp main
program1:
;Put program 1 code here
sjmp main
 sankalp_s like this.
Fri Jan 30 2015, 11:10 pm
#23


you need to remove jump statements from main program codes. only the design loop should remain. rest you can do something like this...

;You main loop will be like this..
main:
JB P3.3, program2
;Put program 3 code here
program2:
JB P3.2, program1
;Put program 2 code here
sjmp main
program1:
;Put program 1 code here
sjmp main

ajay_bhargav



THANK U SIR FOR UR REPLY,

Dear sir i want to put five design in program 1, five design in program 2 & five design in program 3,
then how will be program structure & loop structure
Each program would be selected by switch.

"you need to remove jump statements from main program codes. only the design loop should remain" Sir could u please explain this line with my code.

thank u..
Wed Feb 04 2015, 11:15 am
#24
refer to updated code @http://www.8051projects.net/forum-t64188-10.html#post_64249
Its hard to explain everything line by line. You need to understand the logic first.
Tue Feb 17 2015, 02:03 am
#25
Dear sir facing error.... for jb and sjmp..
"Label is too far for 8-bit relative addressing."
Tue Feb 17 2015, 03:57 am
#26


Dear sir facing error.... for jb and sjmp..
"Label is too far for 8-bit relative addressing."

sankalp_s


jb and sjmp can only jump to within 127 bytes of code,
so you will get problems if your design is poor.
For sjmp you can just use jmp instead.
For jb, jnb etc, you will need to change the program layout.
Post your latest code so we can see where you are up to.
 sankalp_s like this.
Wed Feb 18 2015, 05:18 am
#27


Sir i'm doing this, code is given below..
now there i no any error but JB instructions are not working.
only progrm one starts.

sankalp_s


Hi sankalp_s, because of your program text
your last post was hard to handle.
I have removed it, and re-posted the contents here.
For larger program it is better to Zip and attach them.





Wed Feb 18 2015, 06:27 am
#28
I have changed your code to make it's operation clearer
and to remove all long branches.
I have not compiled it, so there could be minor errors.
MAIN:

testButton1:
                jb P3.3,testButton2
                call program0  ;Run this segment if button pressed
                sjmp testButton1  ;done

testButton2:
                jb P3.4,default
                call program2  ;Run this segment if button pressed
                sjmp testButton1

default:  
                call program1  ;Run this segment if no buttons pressed
                sjmp testButton1


Your "DELAY: " code gives very little delay and tests the buttons
what does it do ?




[ Edited Wed Feb 18 2015, 07:00 am ]
 sankalp_s like this.
Wed Feb 18 2015, 12:21 pm
#29
Thank you Dear experimenteruk sir.. its working after completion of all design of running program. what can we do for instant change of program..please suggest.

"Your "DELAY: " code gives very little delay and tests the buttons
what does it do ?"...... actually sir i'm using 555 timer for delay..

sir any alternate option for making mirror effect actually the code i'm using for mirroring is taking much space.


[ Edited Wed Feb 18 2015, 08:57 pm ]
Thu Feb 19 2015, 02:53 am
#30


sir any alternate option for making mirror effect actually the code i'm using for mirroring is taking much space.

sankalp_s


What is mirroring ?


Thank you Dear experimenteruk sir.. its working after completion of all design of running program. what can we do for instant change of program..please suggest.

sankalp_s


This code should do it.
It makes the "DELAY: " routine return to the main loop.
Remember it works here because "DELAY: " is always
3 calls away from the main loop.
This method is not usually a safe method.
popByte  equ 0x40  ;dump stack here ; (add to top of program)

DELAY: 
JNB P3.2,FULL
JB P3.1,$
JNB P3.2,FULL
JNB P3.1,$
JNB P3.2,FULL
RET
;************************************************* ***********************************************
; ROUTINE FOR BREAK
;************************************************* ***********************************************

FULL: MOV P1,#11000000B
JNB P3.2,$
MOV P1,#11111111B
pop popByte ;dump return address
pop popByte ;dump return address
pop popByte ;dump return address
pop popByte ;dump return address
RET



[ Edited Thu Feb 19 2015, 02:56 am ]

Get Social

Information

Powered by e107 Forum System

Downloads

Comments

Lewisuhakeply
Thu Apr 18 2024, 06:00 pm
Darrellciz
Thu Apr 18 2024, 11:07 am
Charlessber
Thu Apr 18 2024, 09:29 am
BartonSem
Thu Apr 18 2024, 04:56 am
DonaldKnown
Thu Apr 18 2024, 12:24 am
utaletxcyw
Wed Apr 17 2024, 10:21 am
Anthonyvab
Wed Apr 17 2024, 08:48 am
RobertCix
Wed Apr 17 2024, 06:46 am