Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ejercicio 1
A. Planteamiento del problema
se desea configurar el encendido intermitente en forma intercalada de 6 led (2 grupos de tres
leds) de tal forma que si el grupo 1 esta encendido el grupo 2 está apagado y así sucesivamente
de forma automática utilizando el PIC 16F887
C. Diagrama de flujo
Inicio
RETARDO
CONTADOR2= 0x21
CONTADOR1 = 0x64
Enviar 1 a las salidas CONTADOR0 = 0x64
RBO, RB1, RB2
Enviar 0 a las salidas
Decrementar
RB5, RB6,RB7
CONTADOR0
NO
Llamada RETARDO
Decrementar
CONTADOR 0
Contador 0
NO
Llamada RETARDO SI
Decrementar
CONTADOR0
FIN
Contador 0 NO
SI
D. Programa RETORNO
#include "p16f887.inc"
List p=16f887
; CONFIG1
; __config 0xEFF1
__CONFIG _CONFIG1, _FOSC_XT & _WDTE_OFF & _PWRTE_OFF & _MCLRE_ON &
_CP_OFF & _CPD_OFF & _BOREN_ON & _IESO_ON & _FCMEN_ON & _LVP_OFF
; CONFIG2
; __config 0xFFFF
__CONFIG _CONFIG2, _BOR4V_BOR40V & _WRT_OFF
;** INICIALIZACION DE REGISTROS PARA LOS CONTADORES **************
CONTADOR0 EQU 0X22
CONTADOR1 EQU 0X21
CONTADOR2 EQU 0X20
;************************ INICIO DE PROGRAMA ************************
org 0x00 ; Direccion de la Primera Instruccion
goto PRINCIPAL ; Ir a "PRINCIPAL"
;****************** PROGRAMA PRINCIPAL ******************************
PRINCIPAL ; inicio del programa principal
BSF STATUS,RP0
CLRF TRISB ;configuracion del puerto B
BCF STATUS, RP0
SECUENCIA ; inicio de la secuencia de encendido y apagado
;DIVIDIMOS LOS BITS EN DOS GRUPOS DE 4 YA QUE SON 8
movlw B'11100000' ;la mitad de los bits esta iniciandose encendido y el otro
apagado
movwf PORTB
call RETARDO ;hace un llamado a la subrutina
movlw B'00000111' ;es lo contrario al anterior
movwf PORTB
call RETARDO ;hace un llamado a la subrutina
goto SECUENCIA ;Da comienzo al bucle
goto RETA1
decfsz CONTADOR2, 1
goto RETA2
return ; regresa al programa principal
end ; fin de lA programación
E. Simulación:
EJERCICIO 3
A. Planteamiento del problema
se desea configurar la programación de dos semáforos en un cruce de dos vías (semáforo para
autos y semáforos para peatones) tal que para el semáforo de autos tal que para el semáforo de
autos: La luz roja debe durar 10 segundos, verde 8 segundos y verde-ámbar 2 segundos. de
forma inversa para el otro semáforo de autos y equivalente para el semáforo de personas.
01 RA3 ENTRADA
C. Diagrama de flujo
Inicio
Sí No
Semáforo=verde
Tiempo = + 2
Semáforo 1 = Rojo
Semáforo 2 = Rojo
Tiempo = 0
Tiempo = + 2
Semáforo 1 = Rojo
Semáforo 2 = Amarillo
Tiempo = + 2
Semáforo 1 = Rojo
Semáforo 2 = Verde
Tiempo = + 8
Semáforo 1 = Rojo
Semáforo 2 = Amarillo
Tiempo = + 2
Semáforo 1 = Rojo
Semáforo 2 = Rojo
Tiempo = 0
Tiempo = + 2
Tiempo = + 2
Semáforo 1 = Rojo
Semáforo 2 = Rojo
D. Programa
__CONFIG _CONFIG1, _LVP_OFF & _FCMEN_OFF & _IESO_OFF & _BOREN_OFF &
_CPD_OFF & _CP_OFF & _MCLRE_OFF & _PWRTE_ON & _WDTE_OFF &
_FOSC_INTRC_NOCLKOUT
__CONFIG _CONFIG2, _WRT_OFF;
LIST P=16F887
INCLUDE "P16F887.INC"
;ASIGNACION DE VARIABLES--------------------------
CONTADOR1 EQU 0X0C ; Registro auxiliar
CONTADOR2 EQU 0X0D
CONTADOR3 EQU 0X0F
;INICIO DEL PROGRAMA ---------------------------
ORG 0x00
GOTO INICIO
;SETEO DE PUERTOS ------------------------------------
INICIO
CLRF CONTADOR1
CLRF CONTADOR2
CLRF CONTADOR3
BANKSEL PORTA ;
CLRF PORTA ;
BANKSEL ANSEL ;
CLRF ANSEL ; DIGITAL I/O
BANKSEL TRISA ;
MOVLW b'11111111' ; PORT A ENTRAD
MOVWF TRISA ;
BANKSEL PORTC
CLRF PORTC ; Puerta C como salida
BANKSEL TRISC ;
MOVLW b'00000000' ;
MOVWF TRISC ; CLRF TRISC
BANKSEL PORTD
CLRF PORTD ; Puerta D como salida
BANKSEL TRISD ; Configuro el Puerto D como salida
MOVLW b'00000000' ;
MOVWF TRISD ;
; PARTE PRINCIPAL DEL PROGRAMA ------------------------
ONOFF
BANKSEL PORTA
BTFSC PORTA,5 ;PREGUNTO POR BOTON PREGUNTO SI RA5 ==0 ES CERO
GOTO ONOFF ; FALSO NO ES CERO RA3==1
SWITCH
BANKSEL PORTA
BTFSS PORTA,3 ; RA3==1 PREGUNTO POR ON/OF
GOTO MODO_DIA ; VERDAD RA3==1
MODO_DIA
BSF PORTC,1 ; ROJO PRINCIPAL
BSF PORTC,5 ;PASO PEATON PRINCIPAL
BSF PORTD,2 ;VERDE SECUNDARIA
BSF PORTD,3 ;ALTO PEATON SECUNDARIA
CALL RETARDO_400MS
CALL RETARDO_400MS
CALL RETARDO_400MS
CALL RETARDO_400MS
BCF PORTC,1
CLRF PORTC ;PRINCIPAL
CLRF PORTD ;SECUNDARIA
BSF PORTC,1 ;ROJO
BSF PORTC,5 ;PASO PEATON PRINCIPAL
BSF PORTC,2 ;AMARILLO
BSF PORTC,5 ;PASO PEATON PRINCIPAL
BSF PORTD,3 ;ALTO PEATON SECUNDARIA
BSF PORTD,1 ;AMARILLO SECUNDARIA
BSF PORTD,3 ;ALTO PEATON SECUNDARIA
CALL RETARDO_400MS
CALL RETARDO_400MS
CALL RETARDO_400MS
CALL RETARDO_400MS
BCF PORTC,1
CLRF PORTC
CLRF PORTD
BSF PORTC,3 ;VERDE
BSF PORTC,4 ;ALTO PEATON PRINCIPAL
BSF PORTD,0 ;ROJO
BSF PORTD,4 ;PASO PEATON SECUNDARIA
BSF PORTC,4 ;ALTO PEATON PRINCIPAL
CALL RETARDO_400MS
CALL RETARDO_400MS
CALL RETARDO_400MS
CALL RETARDO_400MS
BCF PORTC,1
CLRF PORTC
CLRF PORTD
BSF PORTC,2 ;AMARILLO PRINCIPAL
BSF PORTC,4 ;ALTO PEATON PRINCIPAL
BSF PORTD,4 ;PASO PEATON SECUNDARIA
BSF PORTD,0 ;ROJO SECUNDARIA
BSF PORTD,1 ;AMARILLO SECUNDARIA
BSF PORTD,4 ;PASO PEATON SECUNDARIA
BSF PORTC,4 ;ALTO PEATON PRINCIPAL
CALL RETARDO_400MS
CALL RETARDO_400MS
CALL RETARDO_400MS
CALL RETARDO_400MS
BCF PORTC,1
CLRF PORTC
CLRF PORTD
GOTO SWITCH
RETARDO_400MS
MOVLW 0X0
MOVWF CONTADOR1
MOVLW 0X08
MOVWF CONTADOR2
MOVLW 0X08
MOVWF CONTADOR3
RETARDO1
DECFSZ CONTADOR1,F
GOTO RETARDO1
DECFSZ CONTADOR2,F
GOTO RETARDO1
DECFSZ CONTADOR3,F
GOTO RETARDO1
RETURN
END
E. Simulación