Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Prese Class 23
Prese Class 23
TEMPORIZADOR
SALTO INDEXADO
addwf PCL,F
SALTO INDEXADO ;Tabla de verdad para una funcion de 3 entradas y 6 salidas
goto Configuracion1
;FLH goto Configuracion2
goto Configuracion3
;Asignación de los fusibles para el PIC16F84A goto Configuracion4
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC ; Configuración para el goto Configuracion5
quemador goto Configuracion6
goto Configuracion7
;Tipo de micro Configuracion0
LIST P=16F84 ; Procesador utilizado. movlw b'01000000' ; (Configuración 0).
#INCLUDE <P16F84.INC> ; Etiquetas del micro goto ActivaSalida
; Configuracion1
; Descripciónión de Memoria del codigo movlw b'00000000' ; (Configuración 1).
goto ActivaSalida
ORG 0x000 ; Vector reset Configuracion2
movlw b'00100000' ; (Configuración 2).
Inicio goto ActivaSalida
bsf STATUS,RP0 ; Acceso al Banco 1. Configuracion3
clrf TRISB ; Las líneas del Puerto B se configuran como salida. movlw b'01000000' ; (Configuración 3).
movlw b'00011111' ; Las 5 líneas del Puerto A se configuran como entrada. goto ActivaSalida
movwf TRISA Configuracion4
bcf STATUS,RP0 ; Acceso al Banco 0. movlw b'00000001' ; (Configuración 4).
Principal goto ActivaSalida
movf PORTA,W ; Lee el valor de las variables de entrada. Configuracion5
andlw b'00000111' ; Se queda con los tres bits de entrada. movlw b'10000000' ; (Configuración 5).
addwf PCL,F ; Salta a la configuración adecuada. goto ActivaSalida
Tabla Configuracion6
goto Configuracion0 movlw b'11100000' ; (Configuración 6).
goto ActivaSalida
Configuracion7
movlw b'11110000' ; (Configuración 7).
ActivaSalida
movwf PORTB ; Visualiza por el puerto de salida.
goto Principal
END
SALTO INDEXADO
addwf PCL,F
;Tipo de micro
LIST P=16F84A ; Procesador utilizado.
#INCLUDE <P16F84A.INC> ; Etiquetas del micro
;
; Descripciónión de Memoria del codigo
Inicio
bsf STATUS,RP0 ; Acceso al Banco 1.
clrf TRISB ; Las líneas del Puerto B se configuran como salida.
movlw b'00011111' ; Las 5 líneas del Puerto A se configuran como
entrada.
movwf PORTA
bcf STATUS,RP0 ; Acceso al Banco 0.
Principal
movf PORTA,W ; Lee el valor de las variables de entrada.
andlw b'00000111' ; Se queda con los tres bits de entrada.
Tabla
addwf PCL,F ; Salta a la configuracin
DT 0x0A,0x09,0x23,0x0F,0x20,0x07,0x17,0x03F ;
END ; Fin del script
DISPLAY DE 7 SEGMENTOS
SCRIPT
; Script para visualizar un número en hexadecimal en un display de 7 segmentos
;
;; Datos de los fusibles de programación
;zona de memoria
ORG 0x000 ; Vector de reset
;;
Inicio
bsf STATUS,RP0 ; Acceso al Banco 1
clrf TRISB ; Las líneas del Puerto B se configuran como salida
movlw b'00011111' ; El puerto A esta habilitado como entrada
movlw PORTA ; PortA
bcf STATUS,RP0 ; Acceso al Banco 0.
Principal
movf PORTA,W ; Checa el valor de la entrada
andlw b'00011111' ; valor de las entradas para el nibble bajo
call Tabla ; Llamado a la tabla para el BCD
movwf PORTB ; Mueve el valor al puerto B
goto Principal ; Ciclo
Tabla
addwf PCL,F ; Salta a la configuracin
;;
END
REBOTES
TEMPORIZACIONES
REGISTRO INTCON
GIE EEIE T0IE INTE RBIE T0IF INTF RBIF
BIT's LóE Reset Descripción
Bit 7: GIE 1 = Todas las Interrupciones activadas
L/E 0
Habilitación General. 0 = Todas las Interrupciones desactivadas
Bit 6: EEIE 1 = Activada
L/E 0
Int. de Periféricos 0 = Desactivada
Bit 5: T0IE 1 = Activada
L/E 0
Int. del TMR0 0 = Desactivada
Bit 4: INTE 1 = Activada
L/E 0
Int. Externa 0 = Desactivada
Bit 3: RBIE 1 = Activada
L/E 0
Int. por PORTB 0 = Desactivada
Bit 2: T0IF 1 = TMR0 desbordado.
L/E 0
Bandera del TMR0. 0 = No se ha desbordado
Bit 1: INTF 1 = Ocurrió una interrupción externa
L/E 0
Bandera - RB0/INT 0 = No ha ocurrido interrupción externa
Bit 0: RBIF 1 = Al menos un pin cambio de estado
L/E x
Bandera - RB4:RB7 0 = Ningún pin ha cambiado de estado
TEMPORIZACIONES
REGISTRO OPTION
RBPU INTDEG T0CS T0SE PSA PS2 PS1 PS0
Retardo_FF
movlw 0xCF ; (1)
movwf Contador1 ; (1)
Repeticion1
movlw 0xF8 ; (1)
movwf Contador2 ; (1)
Repeticion2
decfsz Contador2; (1 si no sale, 2 si sale)
goto Repeticion2 ; (2)
decfsz Contador1; (1 si no sale, 2 si sale)
goto Repeticion1 ; (2)
return ; (2)
TEMPORIZADORES ANIDADO
Retardo_FF
movlw 0xCF ; (1) 207
movwf Contador1 ; (1)
Repeticion1
movlw 0xF8 ; (1) 248
movwf Contador2 ; (1)
Repeticion2
decfsz Contador2; (1 si no sale, 2 si sale)
goto Repeticion2 ; (2)
decfsz Contador1; (1 si no sale, 2 si sale)
goto Repeticion1 ; (2)
return ; (2)
Realizar un temporizador que tenga un segundo de
duración para un microcontrolador conectado a un
cristal de 4MHz
movlw b'00001010‘
movwf T_Enc_Led
Retardo movlw b'01010000'
movwf T_Conta2
movlw b'11111010'
movwf T_Conta1
nop
nop
decfsz T_Conta1
goto $-3
decfsz T_Conta2
goto $-7
decfsz T_Enc_Led
goto Retardo
Return
movlw b'00001010‘ 1
movwf T_Enc_Led 1
Retardo movlw b'01010000' 1
movwf T_Conta2 1
movlw b'11111010' 1
movwf T_Conta1 1
nop 1 1
nop 1 1
decfsz T_Conta1 1 1
goto $-3 2 2 1
decfsz T_Conta2 1
goto $-7 2
decfsz T_Enc_Led 1
goto Retardo 2
Return
movlw b'00001010‘ 1
movwf T_Enc_Led 1
Retardo movlw b'01010000' 1
movwf T_Conta2 1
movlw b'11111010' 1
movwf T_Conta1 1
nop 1 1
nop 1 1
decfsz T_Conta1 1 1
goto $-3 2 2 1
decfsz T_Conta2 1
goto $-7 2
decfsz T_Enc_Led 1
goto Retardo 2
Return