Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
INSTITUTO TECNOLÓGICO DE LA LAGUNA PRÁCTICA 6 MICROCONTROLADORES Ingeniería Mecatrónica Semestre 6 Alumno: Christian Enrique González Robles No. Control: 19131206 2 INSTITUTO TECNOLÓGICO DE LA LAGUNA Práctica 6 Basado en el microcontrolador PIC 16F877 hacer un programa para obtener lo siguiente: monitorear el valor que se presente en dos interruptores conectados a un puerto del microcontrolador, si el valor observado es “ 00 “ se muestra el número de control en la salida, en el caso de ser un “01” se debe mostrar la fecha con el formato ddmmaño, si se presenta un “10” se muestra el semestre cursado durante un segundo, y si la combinación es “11” se deben encender todos los indicadores de la salida. El dispositivo de salida será implementado con un display de 7 segmentos. Bit 1 Bit 2 Secuencia 0 0 1 0 1 2 1 0 3 1 1 4 3 INSTITUTO TECNOLÓGICO DE LA LAGUNA Diagrama de Flujo Inicio Qué bit hay en la primera entrada? Qué bit hay en la segunda entrada? Qué bit hay en la segunda entrada? Secuencia 1 Secuencia 2 Secuencia 4 Secuencia 3 MOVLW B'00000110' ;para 1 MOVWF PORTB CALL DELAY MOVLW B'01101111' ;para 9 MOVWF PORTB CALL DELAY MOVLW B'00000110' ;para 1 MOVWF PORTB CALL DELAY MOVLW B'01001111' ;para 3 MOVWF PORTB CALL DELAY MOVLW B'00000110' ;para 1 MOVWF PORTB CALL DELAY MOVLW B'01011011' ;para 2 MOVWF PORTB CALL DELAY MOVLW B'00111111' ;para 0 MOVWF PORTB CALL DELAY MOVLW B'01111101' ;para 6 MOVWF PORTB CALL DELAY MOVLW B'01011011' ;para 2 MOVWF PORTB CALL DELAY MOVLW B'01101111' ;para 9 MOVWF PORTB CALL DELAY MOVLW B'001000000' ;para guión MOVWF PORTB CALL DELAY MOVLW B'00111111' ;para 0 MOVWF PORTB CALL DELAY MOVLW B'01011011' ;para 2 MOVWF PORTB CALL DELAY MOVLW B'001000000' ;para guión MOVWF PORTB CALL DELAY MOVLW B'01011011' ;para 2 MOVWF PORTB CALL DELAY MOVLW B'00111111' ;para 0 MOVWF PORTB CALL DELAY MOVLW B'01011011' ;para 2 MOVWF PORTB CALL DELAY MOVLW B'01011011' ;para 2 MOVWF PORTB CALL DELAY MOVLW B'01111101' ;para el semestre 6 MOVWF PORTB MOVLW B'11111111' ;para todos los indicadores encendidos MOVWF PORTB 0 1 0 1 0 1 Fin 4 INSTITUTO TECNOLÓGICO DE LA LAGUNA Código Fuente LIST P=16F877A INCLUDE <p16F877a.inc> ; Incluimos la librería del PIC para no tener que definir de manera manual los registros DE1 EQU 0X20 DE2 EQU 0X21 DE3 EQU 0X22 ;B'00000110' para 1 ;B'01011011' para 2 ;B'01001111' para 3 ;B'01100110' para 4 ;B'01101010' para 5 ;B'01111101' para 6 ;B'00000111' para 7 ;B'01111111' para 8 ;B'01101111' para 9 ;B'00111111' para 0 ;B'001000000' para guión ORG 0 ; Se establece la configuración de los puertos BSF STATUS,5 ; Definimos el bit 5 del STATUS como uno para hacer referencia a que nos dirigiremos al banco 1 CLRF TRISB ; Limpiamos el Registro TRISB definiendo el puerto B como salidas MOVLW B'11' ; Asignamos el binario 11 al registro TRISD definiendo dos pines como entradas MOVWF TRISD BCF STATUS,5 ; Regresamos al banco 0 CLRF PORTB ;Limpiamos los puertos para asegurarnos de que no se afecten las señales de entrada por señales previas CLRF PORTD ENTRADAS ; Se declaran las secuencias de bits que deben de entrar en los puertos que posteriormente definirán la secuencia que terminará por ejecutarse MOVLW B'00' SUBWF PORTD,W BTFSC STATUS,Z GOTO ENTRADA1 MOVLW B'01' SUBWF PORTD,W BTFSC STATUS,Z GOTO ENTRADA2 MOVLW B'10' SUBWF PORTD,W BTFSC STATUS,Z GOTO ENTRADA3 MOVLW B'11' SUBWF PORTD,W BTFSC STATUS,Z GOTO ENTRADA4 GOTO ENTRADAS ;Se muestra el número de control ENTRADA1 ; Se carga cada binario para la secuencia visual de los leds en el registro W y posteriormente se mueve a la salida en el puerto B MOVLW B'00000110' ;para 1 MOVWF PORTB CALL DELAY ; La llamada a delay permite que los movimientos se ralentizen lo suficiente como para poder percibirlos de manera cómoda en los leds MOVLW B'01101111' ;para 9 MOVWF PORTB CALL DELAY MOVLW B'00000110' ;para 1 MOVWF PORTB CALL DELAY MOVLW B'01001111' ;para 3 MOVWF PORTB CALL DELAY MOVLW B'00000110' ;para 1 MOVWF PORTB CALL DELAY MOVLW B'01011011' ;para 2 MOVWF PORTB CALL DELAY 5 INSTITUTO TECNOLÓGICO DE LA LAGUNA MOVLW B'00111111' ;para 0 MOVWF PORTB CALL DELAY MOVLW B'01111101' ;para 6 MOVWF PORTB CALL DELAY GOTO ENTRADAS ; Una vez terminada la secuencia se realiza un regreso a leer nuevamente las entradas para verificar que secuencia se debe realizar después ; Este proceso se repite con las demás secuencias ENTRADA2 ;Se muestra la fecha definida en el día 29/02/2022 MOVLW B'01011011' ;para 2 MOVWF PORTB CALL DELAY MOVLW B'01101111' ;para 9 MOVWF PORTB CALL DELAY MOVLW B'001000000' ;para guión MOVWF PORTB CALL DELAY MOVLW B'00111111' ;para 0 MOVWF PORTB CALL DELAY MOVLW B'01011011' ;para 2 MOVWF PORTB CALL DELAY MOVLW B'001000000' ;para guión MOVWF PORTB CALL DELAY MOVLW B'01011011' ;para 2 MOVWF PORTB CALL DELAY MOVLW B'00111111' ;para 0 MOVWF PORTB CALL DELAY MOVLW B'01011011' ;para 2 MOVWF PORTB CALL DELAY MOVLW B'01011011' ;para 2 MOVWF PORTB CALL DELAY GOTO ENTRADAS ENTRADA3 ; Se muestra el semestre cursado MOVLW B'01111101' ;para el semestre 6 MOVWF PORTB GOTO ENTRADAS ENTRADA4 ; Se muestran todos los indicadores encendidos MOVLW B'11111111' ;para todos los indicadores encendidos MOVWF PORTB GOTO ENTRADAS ; Estos retardos y sub retardos están hechos para hacer una cuenta de (255)*(255)*(5) pulsos para que se visualicen de manera cómoda las secuencias DELAY ;A pesar de que se debe correr a pasos la simulación, necesita retardos para una buena ejecución MOVLW 3 MOVWF DE3 DELAY3 MOVLW 255 MOVWF DE2 DELAY2 MOVLW 255 MOVWF DE1 DELAY1 DECFSZ DE1,1 GOTO DELAY1 DECFSZ DE2,1 GOTO DELAY2 DECFSZ DE3,1 GOTO DELAY3 RETURN END
Compartir