mmm... mira este codigo...
Código:
@ DEVICE pic16F87
@ DEVICE INTRC_OSC_NOCLKOUT ' Opción del Osc Interno
@ DEVICE WDT_Off ' Watchdog Timer ON
@ DEVICE PWRT_Off ' Power-On Timer
@ DEVICE BOD_Off
@ DEVICE MCLR_OFF ' Master Clear Opción interno
@ DEVICE LVP_OFF ' Bajo voltaje de programación
@ DEVICE CPD_OFF ' Protección del código de memoria OFF
@ DEVICE PROTECT_OFF' protección de código OFF
Define Osc 4
CMCON = 7 'HACE QUE SE TRABAJE CON LAS ENTRADAS EN DIGITAL
TrisA=1
trisB=0
led1 var portb.0
led2 var portb.1
led3 var portb.2
led4 var portb.3
led5 var portb.4
led6 var portb.5
led7 var portb.6
led8 var portb.7
pulsador var porta.0
contador var byte
Timers var word
clear
PortB=0
inicio:
if pulsador then
contador = contador+1
pause 300 ' este es el antirebote... ajusta el tiempo deseado
portb=0
if contador >=8 then contador =0
endif
timers=timers+1
pause 1 ' ajusta el tiempo a 1 milisegundo por ciclo...
if timers>=600 then timers=0
select case contador
case 0
if timers>= 0 and timers<=200 then led1=1
if timers>=201 and timers<=400 then Led1=0
if timers>=401 and timers<=600 then Led1=1
case 1
if timers>= 0 and timers<=200 then led2=1
if timers>=201 and timers<=400 then Led2=0
if timers>=401 and timers<=600 then Led2=1
case 2
if timers>= 0 and timers<=200 then led3=1
if timers>=201 and timers<=400 then Led3=0
if timers>=401 and timers<=600 then Led3=1
case 3
if timers>= 0 and timers<=200 then led4=1
if timers>=201 and timers<=400 then Led4=0
if timers>=401 and timers<=600 then Led4=1
case 4
if timers>= 0 and timers<=200 then led5=1
if timers>=201 and timers<=400 then Led5=0
if timers>=401 and timers<=600 then Led5=1
case 5
if timers>= 0 and timers<=200 then led6=1
if timers>=201 and timers<=400 then Led6=0
if timers>=401 and timers<=600 then Led6=1
case 6
if timers>= 0 and timers<=200 then led7=1
if timers>=201 and timers<=400 then Led7=0
if timers>=401 and timers<=600 then Led7=1
case 7
if timers>= 0 and timers<=200 then led8=1
if timers>=201 and timers<=400 then Led8=0
if timers>=401 and timers<=600 then Led8=1
end select
goto inicio
end
no es lo mas adecuado como te menciono lo mejor es usar el
ON INTERRUPT...
pero he encontrado un ejemplo claro de como se usa!
Algun dia lo encontrare es cuestión de tiempo...
Listo creo que es una buena ayuda....
Who is NEXT?