no tengo el seven ni mucho menos vista, pero hay una manera de usar el xp dentro de vista... yo lo he visto o seven...Pero por lo visto me quedaré con las ganas de programar pics en basic
Follow along with the video below to see how to install our site as a web app on your home screen.
Nota: This feature currently requires accessing the site using the built-in Safari browser.
no tengo el seven ni mucho menos vista, pero hay una manera de usar el xp dentro de vista... yo lo he visto o seven...Pero por lo visto me quedaré con las ganas de programar pics en basic
a ver si te sirve lo hice sin probar...Código:stat var bit boton var porta.0 [COLOR=blue]'puerto del boton[/COLOR] main: stop: if boton then toggle stat:pause 200 if stat then goto stop [COLOR=blue]' aqui tu codigo[/COLOR] goto main end
stat var bit
boton var porta.0 [COLOR="Blue"]'puerto del boton[/COLOR]
main:
[B]stope:[/B]
if boton then toggle stat:pause 200
if stat then goto [B]stope[/B]
[COLOR="blue"] 'aqui tu codigo[/COLOR]
goto main
end
stat var bit [COLOR="blue"]'defines una variable tipo bit Alto o bajo 1 o 0[/COLOR]
boton var porta.0 [COLOR="blue"]'defines el puerto donde colocaste el boton pulsador[/COLOR]
High stat 'a[COLOR="blue"]qui pones en alto la variable stat=1 para que se haga el ciclo stope al iniciar[/COLOR]
main: [COLOR="blue"]' defines la etiqueta para el bucle infinito[/COLOR]
stope: [COLOR="blue"]' defines la etiqueta para el regreso e impide que continue la ejecucion del programa[/COLOR]
if boton then toggle stat:pause 200[COLOR="blue"] ' si el boton=1 (apretado) entonces cambia el estado de la variable stat si estaba en 1 la pone en 0 o viceversa (toggle) , el pause 200 es un antirebote[/COLOR]
if stat then goto stope [COLOR="blue"]´ahora si stat=1 (puede no ponerse el =1) entonces se regresa a la etiqueta stope si no continua con la ejecucion...[/COLOR]
[COLOR="blue"]'aqui tu codigo[/COLOR]
goto main [COLOR="Blue"]' se cierra el bucle infinito y se va a main[/COLOR]
end
y si subes el codigo y vemos de que se esta hablando...A, me olvidaba, como el codigo es "lento", un secuenciador, le cuesta parar, a veces tengo que oprimir unas cuantas veces para que se detenga, queria saber si se puede repetir ese fragmento de codigo a la mitad del programa principal para que haya mas posibilidades de que se detenga de una.
A=2
B=5
C=6
D=5
F=6
INICIO:
IF (A=2 AND (A=B AND C=D)) THEN
LCDOut "CAMBIO DE ESTADO"
PAUSE 500
ELSE
LCDOUT "ERRADO"
PAUSE 500
ENDIF
GOTO INICIO
END
Un saludo a todos,
Por aqui estoy molestando nuevamente, mis disculpas si les enredo el orden que ya traen pero necesito salir de una duda sobre las condiciones anidadas en pic basic, he tratado de hacer funcionar este pequeño código pero siempre da errado y no he podido, así que no me queda de otra que consultar con los que saben, aqui el código y muchas gracias de antemano:Código:A=2 B=5 C=6 D=5 F=6 INICIO: IF (A=2 AND (A=B AND C=D)) THEN LCDOut "CAMBIO DE ESTADO" PAUSE 500 ELSE LCDOUT "ERRADO" PAUSE 500 ENDIF GOTO INICIO END
ARCHIVO VAR BYTE[2]
A VAR BYTE
C VAR BYTE
F VAR BYTE
SALIDA VAR PORTB.0
A=2
ARCHIVO[1]=6
C=6
ARCHIVO[2]=7
F=7
INICIO:
IF A=2 AND ARCHIVO[1]=c AND ARCHIVO[2]=f THEN
LCDOut "CAMBIO DE ESTADO"
PAUSE 500
ELSE
LCDOUT "ERRADO"
PAUSE 500
ENDIF
GOTO INICIO
END
si si hay otra forma....Si no hay otra forma, tendre que hacerlo.
CMCON = %00001111
TRISA = %11111111 'todos los pines como entradas
TRISB = %00000000 'todos los pines como salida
star var bit
boton var PortA.6
A var byte
B var word
Clear
portb=0
high star
inicio:
if boton then
toggle star
portb = 0
pause 200
endif
if not star then
lookup a,[1,2,4,8],b
PORTB = b
pause 200
a=a+1
if a=4 then a=0
endif
goto inicio
end
EPROM1 VAR BYTE
EPROM2 VAR BYTE
Inicio:
DIGITAR:
x=0
READ 0,EPROM1
READ 1,EPROM2
LCDOut $fe, 1 ' Limpia la LCD
LCDOut $fe, 2 ' Posiciona el cursor en el inicio
LCDOut, "Digite la clave."
Consulta:
Call Teclado
If VAR1 = 0 Then consulta
If VAR1 = 10 Then Consulta
If VAR1 = 11 Then VAR1=0
If VAR1 = 12 Then Consulta
X = X + 1
PAUSE 100
ALMACEN[X] = VAR1
IF X=1 THEN LCDOUT $FE,$C7,"*"
IF X=2 THEN LCDOUT $FE,$C8,"*": GOSUB VERIFICAR
GOTO CONSULTA
VERIFICAR:
PAUSE 40
if ALMACEN[1]=EPROM1 AND ALMACEN[2]=EPROM2 THEN
TOGGLE SALIDA
LCDOut $fe, 1
LCDOut "CAMBIO DE ESTADO"
PAUSE 400
ENDIF
GOTO INICIO
END
EPROM1 VAR BYTE
EPROM2 VAR BYTE
x var word
var1 var word
almacen var word[3]
salida var byte
Inicio:
DIGITAR:
x=0
READ 0,EPROM1
READ 1,EPROM2
LCDOut $fe, 1 ' Limpia la LCD
LCDOut $fe, 2 ' Posiciona el cursor en el inicio
LCDOut, "Digite la clave."
Consulta:
Call Teclado
If VAR1 = 0 Then consulta
If VAR1 = 10 Then Consulta
If VAR1 = 11 Then VAR1=0
If VAR1 = 12 Then Consulta
X = X + 1
PAUSE 100
ALMACEN[X] = VAR1
IF X=1 THEN LCDOUT $FE,$C7,"*"
IF X=2 THEN LCDOUT $FE,$C8,"*": GOSUB VERIFICAR
GOTO CONSULTA
VERIFICAR:
PAUSE 40
if ALMACEN[1]=EPROM1 AND ALMACEN[2]=EPROM2 THEN
TOGGLE SALIDA
LCDOut $fe, 1
LCDOut "CAMBIO DE ESTADO"
PAUSE 400
ENDIF
GOTO INICIO
teclado:
return
END
@ DEVICE pic16F628A, INTRC_OSC_NOCLKOUT ' Opción del Osc Interno
@ DEVICE pic16F628A, WDT_ON ' Watchdog Timer ON
@ DEVICE pic16F628A, PWRT_ON ' Power-On Timer
@ DEVICE pic16F628A, BOD_ON
@ DEVICE pic16F628A, MCLR_OFF ' Master Clear Opción interno
@ DEVICE pic16F628A, LVP_OFF ' Bajo voltaje de programación
@ DEVICE pic16F628A, CPD_OFF ' Protección del código de memoria OFF
@ DEVICE pic16F628A, PROTECT_OFF' protección de código OFF
CMCON=7
TRISB=%00000100
DEFINE LCD_DREG PORTB 'UTILIZAR 4 BITS DEL PUERTO B PARA TX DE DATOS
DEFINE LCD_DBIT 4 'DESDE EL BIT B.4 AL BIT B.7
DEFINE LCD_RSREG PORTB'UTILIZAR EL REGISTRO DE CONTROL/DATOS EN EL PUERTO B
DEFINE LCD_RSBIT 1 'EN EL BIT B.1
DEFINE LCD_EREG PORTB 'UTILIZAR EL ENABLE EN EL PUERTO B
DEFINE LCD_EBIT 3 'EN EL BIT B.3
'----------------------
CAPTURA1 VAR BYTE
CAPTURA2 VAR BYTE
CAPTURA3 VAR BYTE
CAPTURA4 VAR BYTE
EPROM1 VAR BYTE
EPROM2 VAR BYTE
OPCION VAR BYTE
X VAR BYTE
Y VAR BYTE
A VAR BYTE
B VAR BYTE
VAR1 VAR BYTE
VAR2 VAR BYTE
ALMACEN VAR BYTE[1]
ALMACEN2 VAR BYTE[2]
NCLAVE1 VAR BYTE
NCLAVE2 VAR BYTE
SALIDA VAR PORTB.0
'----------------------
COLUMNA1 VAR PORTA.4
COLUMNA2 VAR PORTA.7
COLUMNA3 VAR PORTA.6
FILA1 VAR PORTA.0
FILA2 VAR PORTA.1
FILA3 VAR PORTA.2
FILA4 VAR PORTA.3
'---------------------
EEPROM 0,[5,6]
'---------------------
Inicio:
DIGITAR:
x=0
READ 0,EPROM1
READ 1,EPROM2
LCDOut $fe, 1 ' Limpia la LCD
LCDOut $fe, 2 ' Posiciona el cursor en el inicio
LCDOut, "Digite la clave."
Consulta:
Call Teclado
If VAR1 = 0 Then consulta
If VAR1 = 10 Then Consulta
If VAR1 = 11 Then VAR1=0
If VAR1 = 12 Then Consulta
X = X + 1
PAUSE 100
ALMACEN[X] = VAR1
IF X=1 THEN LCDOUT $FE,$C7,"*"
IF X=2 THEN LCDOUT $FE,$C8,"*": GOSUB VERIFICAR
GOTO CONSULTA
VERIFICAR:
PAUSE 40
if ALMACEN[1]=EPROM1 AND ALMACEN[2]=EPROM2 THEN
TOGGLE SALIDA
LCDOut $fe, 1
LCDOut "CAMBIO DE ESTADO"
PAUSE 400
ENDIF
GOTO INICIO
END
Teclado:
VAR1=0
LOW COLUMNA1 ' Columna 1 = 0
If FILA1 = 0 Then VAR1 = 1 ' tecla "1"
If FILA2 = 0 Then VAR1 = 4 ' tecla "4"
If FILA3 = 0 Then VAR1 = 7 ' tecla "7"
If FILA4 = 0 Then VAR1 = 10 ' tecla "*"
HIGH COLUMNA1 ' Columna 1 = 1
LOW COLUMNA2 ' Columna 2 = 0
If FILA1 = 0 Then VAR1 = 2 ' tecla "2"
If FILA2 = 0 Then VAR1 = 5 ' tecla "5"
If FILA3 = 0 Then VAR1 = 8 ' tecla "8"
If FILA4 = 0 Then VAR1 = 11 ' tecla "0"
HIGH COLUMNA2 ' Columna 2 = 1
LOW COLUMNA3 ' Columna 3 = 0
If FILA1 = 0 Then VAR1 = 3 ' tecla "3"
If FILA2 = 0 Then VAR1 = 6 ' tecla "6"
If FILA3 = 0 Then VAR1 = 9 ' tecla "9"
If FILA4 = 0 Then VAR1 = 12 ' tecla "#"
HIGH COLUMNA3
PAUSE 20
RETURN
END