Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

30/03/2010 #1


Entradas condicionadas con pic16f84
DISCULPEN
LO QUE TRATO DE HACER CON ESTE CODIGO Y NO SE QUE MAS HACERLE...PARA QUE AL COMBINAR LAS ENTRADAS ME DEN LOS "N" DESTELLOS Y NO VUELVA A PRENDER EL LED... ASI SUCESIVAMENTE...

¿que le agrego?
PROGRAMA:

Código:
G VAR BYTE
DIODO VAR PORTB.4
X1 VAR PORTB.2
X2 VAR PORTB.3  
INICIO:
    IF X1=0 AND X2=0 THEN INICIO
    IF X1=0 AND X2=1 THEN COMB1
    IF X1=1 AND X2=0 THEN COMB2
    IF X1=1 AND X2=1 THEN COMB3
COMB1:                   
    FOR G= 1 TO 4
    HIGH DIODO
    PAUSE 500
    LOW DIODO
    PAUSE 500
    NEXT G
COMB2:
    FOR G= 1 TO 6
    HIGH DIODO
    PAUSE 500
    LOW DIODO
    PAUSE 500
    NEXT G
COMB3:
    FOR G= 1 TO 8
    HIGH DIODO
    PAUSE 500
    LOW DIODO
    PAUSE 500
    NEXT G
END
31/03/2010 #2

Avatar de thenot

Respuesta: Entradas condicionadas con pic16f84
si tiras un diseño del circuito te podria ayudar.. no entiendo ni pisca lo que quieres hacer-..
01/04/2010 #3

Avatar de sammaael

Respuesta: Entradas condicionadas con pic16f84
si puedes adjunta el circuito pero creo que lo primero a descartar es k estes usando interuprores que los dejes precionados y por eso no queda colgado en el bucle INICIO:
IF X1=0 AND X2=0 THEN INICIO. porfavor trata de ser mas explicito en la funcion de tu circuito y con gusto te ayudaremos adios
02/04/2010 #4


Respuesta: Entradas condicionadas con pic16f84
Hola, no sé lo que quieres hacer, pero lo que veo que en el caso de que X1=0 y X2=1 ejecutará las instrucciones de Comb1, pero cuando termines éstas, se ejecutarán el restos de ellas, ya que no hay ningún salto para que no se cumplan las demás, salvo que tú quieras que se ejecuten todas. Igual que la primera etiqueta Inicio, por precaución, aunque no debe haber problemas, también le pondría una sentencia de salto al terminar el último If...Then. Pero lo dicho, no sabemos exactamente que quieres hacer.
Gracias y saludos.
03/04/2010 #5


Respuesta: Entradas condicionadas con pic16f84
Gracias a los que responideron
tratare de explicarme

lo que quiero hacer con el codigo, en un pic16f84 tengo dos entradas y una salida.
Sabemos que hay 4 posibles combinaciones que son:
0 0
0 1
1 0
1 1

x1 representa entrada 1
x2 representa entrada 2

al combinar x1=0 and x2=0 que se vaya a inicio eso si esta bien
posteriormente al combinar x1=0 and x2=1 deberia ejecutar lo que esta en comb1.
Luego debo hacer las otras combinaciones x1=1 and x2=0 deberia ejecutar comb2.
Y asi mismo con la combinacion x1=1 and x2=1 deberia ejecutar lo que esta en comb3.

Eso es lo que quiero hacer con este codigo!!!

Código:
G var byte
diodo var portb.4
x1 var portb.1
x2 var portb.2  
inicio
    if x1=0 and x2=0 then inicio
    if x1=0 and x2=1 then comb1
    if x1=1 and x2=0 then comb2
    if x1=1 and x2=1 then comb3
comb1                   
    for g= 1 to 4
    high diodo
    pause 500
    low diodo
    pause 500
    next g
    goto inicio
comb2
    for g= 1 to 6
    high diodo
    pause 500
    low diodo
    pause 500
    next g
    goto inicio
comb3
    for g= 1 to 8
    high diodo
    pause 500
    low diodo
    pause 500
    next g
    goto inicio
end

espero sus respuestas
gracias
03/04/2010 #6


Respuesta: Entradas condicionadas con pic16f84
lo que te pasa en tu programa es que tus subrutinas no tienen el finel endif tienes que agregarlas para que tu pic vuelva a escanear las entradas
04/04/2010 #7


Respuesta: Entradas condicionadas con pic16f84
Hola, en la forma que ha puesto lo if...Then, no hace falta poner lo Endif.

Código PHP:
var byte
diodo 
var portb.4
x1 
var portb.1
x2 
var portb.2
 
inicio
:
    if 
x1=and x2=0 then inicio
    
if x1=and x2=1 then comb1
    
if x1=and x2=0 then comb2
    
if x1=and x2=1 then comb3

comb1
:
    for 
g1 to 4
    high diodo
    pause 500
    low diodo
    pause 500
    next g
Comprobacion1
:
if 
x1=and x2=0 then inicio
    
goto Comprobacion1

comb2
:
    for 
g1 to 6
    high diodo
    pause 500
    low diodo
    pause 500
    next g
Comprobacion2
:
if 
x1=and x2=0 then inicio
    
goto Comprobacion2

comb3
:
    for 
g1 to 8
    high diodo
    pause 500
    low diodo
    pause 500
    next g
Comprobacion3
:
if 
x1=and x2=0 then inicio
    
goto Comprobacion3

end 
Las etiquetas van seguidas de dos puntos, sino, no la reconocerá. Si lo que utilizas son pulsadores, te debe valer lo que has escrito, ya que con los retrasos que tienes, te deben dar tiempo a soltar los pulsadores, pero si utilizas interruptores, debes poner el programa como te lo he puesto, ya que sino, se seguirá repitiendo continuamente la opción elegida, aunque también te valen para pulsadores. Lo dicho, las etiquetas seguida de dos puntos, pero no cuando se llaman con un goto.
Gracias y saludos.
04/04/2010 #8

Avatar de sammaael

Respuesta: Entradas condicionadas con pic16f84
mmm nada mas que agregar eso debe bastar tanto para pulsadores como interruptores
06/04/2010 #9


Respuesta: Entradas condicionadas con pic16f84
Ok muchas gracias por sus respuestas
revisare lo que me comentaron
06/04/2010 #10

Avatar de sammaael

Respuesta: Entradas condicionadas con pic16f84
si tienes exito nos avisas y sino aca estamos
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.