Paso 6: reflexiones finales: más
Han proporcionado el código fuente bajo licencia GPL, pero si es útil y deseas contribuir a mi fondo de componentes entonces por favor envíe Paypal pago de £3 para mandolina
Tener diversión y feliz Navidad!
-A
código fuente comienza aquí...
LISTA P = 10f200
; Fader/parpadeo de LED rutina v0.01
; Escrito por Andre de Guerin "mandolina
; W registro es 0 x 00
; registro f es 0 x 01
; GPIO, 0 a 2 son salidas
; Nota que ICSP requiere Vcc externo y no asume ninguna carga en pins ICSPCLK/DAT
; Tenga en cuenta que estado de contexto W registro necesita preservarse, estoy usando 0x1F para esto
; Nota que ahora estoy usando una rutina de salida diferentes a 6 salidas con 3 pernos del io
; Este código es publicado gratis bajo licencia GPL, sin embargo si gusta y desea
; contribuir al fondo de los componentes electrónicos del autor envíe Paypal pago de £3 :)
Originalmente escrito como prueba de concepto para la serie de 10F20x
; Gracias de nuevo a Quasar Electronics para su programador K182 y MicroBrn, y
; su personal de apoyo técnico muy útil.
; Circuito:-pares de LEDs con polaridad inversa entre cada combinación de salidas
; Puede reducir el número de interconexiones conectando el LED en parejas de la serie
; Inicio es decir,---0-AK-0-AK-0-AK---to, donde 0 son líneas GPIO.
GPIO EQU H '0006'; definir GPIO
TMR0 EQU H '0001'; definir TMR0
OSCCAL EQU H '0005'; define OSCCAL
BCF OSCCAL, 0; permite GPIO 0 * importante *
clrwdt; claro esencial de WDT antes cambio divisor
Inicio movlw b '11000100'; Sin despertar en cambio de pin,
; No ups pull, ignorar temporizador
; Permitir que 256:1 razón de prescaler TMR0
opción
movlw b '11001000'; todos excepto GPIO 3 son salidas
Tris GPIO
movlw b '00100100'
movwf 0 x 10
movlw b '10010010'
movwf 0x11; nota, menos registros en 10f200
movlw b '01001001'
movwf 0x12
movlw b '10010010'
movwf 0 x 13
movlw b '01001001'
movwf 0x14
movlw b '00100100'
movwf 0x15
movlw b '10010010'
movwf 0x16
movlw b '01001001'
movwf 0x17
movlw b '00100100'; puede tener error en el registro de rutina, pero obras atm
movwf 0x18
movlw b '00010001'
movwf 0x19
movlw b '10001000'
movwf 0x1A
movlw b '01000100'; genera el efecto de centelleo
movwf 0x1B
movlw b '00100100'
movwf 0x1C
movlw b '10010010'
movwf 0x1D
movlw b '01001001'
movwf 0x1E
movlw b '11001000'; todos excepto GPIO 3 son salidas
Tris GPIO
Goto loop; salto incondicional a lazo
bucle btfss TMR0, 7; establece salidas por lo que los únicos cambios del estado en tiempo de espera de tmr0 (11111100)
Goto loop; con eficacia usos TMR0 como un bucle de retardo largo
btfss TMR0, 6
Goto bucle
btfsc TMR0, 5
cambio de Goto
cambio movlw b '00000000'; valor inicial se restablece TMR0
movwf TMR0
RLF 0 x 10, f; Realizar el cambio, a pesar de que un registro es redundante
RLF 0x11, f
RLF 0x12, f; utiliza todos los registros disponibles como línea de retardo
RLF 0 x 13, f
RLF 0x14, f
RLF 0x15, f; registros utilizables son 0 x 10 a 0x1E sólo
RLF 0x16, f
RLF 0x17, f
RLF 0x18, f
RLF 0x19, f
RLF 0x1A, f
RLF 0x1B, f
RLF 0x1C, f
RLF 0x1D, f
RLF 0x1E, f
movlw b '11001000'
btfsc 0 x 10, 3; rutina de salida
BSF 0 x 00, 0; bit GPIO permite 0
btfsc 0x12, 3
BSF 0 x 00, 1, punta de la GPIO de permite 1
btfsc 0x14, 3
BSF 0 x 00, 2; permite GPIO bit 2
Tris GPIO; se mueve el estado actual de la W a GPIO
btfsc 0 x 10, 7
BSF GPIO, 0
btfss 0 x 10, 7; bit 7 de pruebas 0 x 10
BCF GPIO, 0; borra GPIO si 0 x 10 bits claro 7
btfsc 0x15, 7
BSF GPIO, 1
btfss 0x15, 7
BCF GPIO, 1; esto se hace debido a la doble salida
btfsc 0x1A, 2
BSF GPIO, 2
btfss 0x1A, 2
BCF GPIO, 2; separa TRIS de GPIO estado efectivamente 3 "salidas"
bsf reg 0x1F, 7; Establece 1E bit 8 a F
btfss 0 x 10, 0; Pruebas para ver si el bit 0 x 10 0 es 0
BCF 0x1F, 7; Borra el bit 1E 8 si no
Goto bucle
FINAL
código hexadecimal empieza aquí:-
: 020000040000FA
: 1000000005040400C40C0200C80C0600240C3000D7
: 10001000920C3100490C3200920C3300490C340030
: 10002000240C3500920C3600490C3700240C3800A3
: 10003000110C3900880C3A00440C3B00240C3C00A5
: 10004000920C3D00490C3E00C80C0600270AE1074F
: 10005000270AC107270AA1062D0A000C21007003F8
: DÍA 1000600071037203730374037503760377037803 4
: 1000700079037A037B037C037D037E03C80C70063F
: 10008000000572062005740640050600F006060508
: 10009000F0070604F5062605F50726045A06460568
: 0C00A0005A074604FF051007FF04270A5A
: 00000001FF