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.
Device = 16F877A ; Chosen Picmicro
DEFINE OSC 4 ; utilizando un oscilador de 4 MHz
'**********Establezca la opción de registro************************
OPTION_REG = %10000101 ; PÁGINA 48 de Hoja de datos del PIO 16f877a
; bit 7=1 deshabilita pull-ups de PORTB
; bit 5=0 selecciona el modo de temporizador
; bit 2=1 }
; bit 1=0 } Timer0 conjuntos pre-escalador Para 64
; bit 0=1 }
'**********establece el registro de control de interrupción*******
INTCON = %10100000 ; bit 7=1 permite todas las interrupciones
; bit 5=1 permite interrumpir el desbordamiento del Timer0
; bit 2 se establecerá sobre la Interrupción y
; tiene que ser liquidada en la rutina de interrupción.
; se limpia el conjunto para empezar.
ALPHA VAR Word ; VARIABLE en el circuito de Pausa
BETA VAR Byte ; Esta variable contabiliza el 61 en interrupción
TRISD = %11110100 ; selecciona 3 pines de port D como salida
PORTD = %00000000 ; pone todos los pine de port D a nivel bajo
BETA =0 ; Carga variable a 0
On Interrupt GoTo INTERUPTROUTINE ; esta línea es necesaria
; en el programa, en todo caso, antes de la rutina es llamada.
MAINLOOP: ; bucle principal parpadea D0 y D1 alternadamente
If PORTD.1 = 0 Then
PORTD.1 = 1
PORTD.0 = 0 ; primera alternancia
Else ; sino segunda alternancia
PORTD.1 = 0 ; ]
PORTD.0 = 1 ; ]
EndIf ; ]
For ALPHA = 1 To 300 ; la larga pausa se elimina con este bucle
PAUSEUS 100 ; PAUSA comando con una activación corta
Next ALPHA
GoTo MAINLOOP
Disable ; Deshabilitar y habilitar el soporte de la
; la rutina a interrumpir
INTERUPTROUTINE: ; esta información es utilizada sólo por el compilador
BETA = BETA + 1 ;
If BETA < 61 Then ENDINTERRUPT ; un segundo no ha podido pasar
BETA = 0 ; restablecer el contador después de que se desborda
If PORTD.3 = 1 Then ; bucle de interrupción para encenderse y apagarse D3
PORTD.3 = 0 ; 61 veces por la rutina de interrupción
Else ; Eso es casi un segundo por todo el ciclo de interrupción
PORTD.3 = 1 ;
EndIf ;
ENDINTERRUPT: ; Si utiliza una SEC no ha transcurrido
INTCON.2 = 0 ; desactiva la bandera de interrupción para el contador
Resume ; Reanudar el programa principal
Enable ; Deshabilitar y habilitar la rutina de interrupción
End ; fin del programa