Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
INSTITUTO TECNOLÓGICO DE LA LAGUNA PRÁCTICA 7 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 7 Considerando la práctica 6, introduzca los retardos necesarios (deben ser calculados considerando un oscilador de cristal de 4 MHz), para que el programa sea ejecutado y nos permita visualizar adecuadamente la información solicitada. 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 RETARDO MOVLW B'01101111' ;para 9 MOVWF PORTB CALL RETARDO MOVLW B'00000110' ;para 1 MOVWF PORTB CALL RETARDO MOVLW B'01001111' ;para 3 MOVWF PORTB CALL RETARDO MOVLW B'00000110' ;para 1 MOVWF PORTB CALL RETARDO MOVLW B'01011011' ;para 2 MOVWF PORTB CALL RETARDO MOVLW B'00111111' ;para 0 MOVWF PORTB CALL RETARDO MOVLW B'01111101' ;para 6 MOVWF PORTB CALL RETARDO MOVLW B'01011011' ;para 2 MOVWF PORTB CALL RETARDO MOVLW B'01101111' ;para 9 MOVWF PORTB CALL RETARDO MOVLW B'001000000' ;para guión MOVWF PORTB CALL RETARDO MOVLW B'00111111' ;para 0 MOVWF PORTB CALL RETARDO MOVLW B'01011011' ;para 2 MOVWF PORTB CALL RETARDO MOVLW B'001000000' ;para guión MOVWF PORTB CALL RETARDO MOVLW B'01011011' ;para 2 MOVWF PORTB CALL RETARDO MOVLW B'00111111' ;para 0 MOVWF PORTB CALL RETARDO MOVLW B'01011011' ;para 2 MOVWF PORTB CALL RETARDO MOVLW B'01011011' ;para 2 MOVWF PORTB CALL RETARDO 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 ;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 ; En este caso la simulación debe ser animada con un periodo de 1 segundo por instrucción ; Por lo tanto, usando un ejemplo previamente visto configuramos el timer para calcular ese segundo INICIORET BSF STATUS, RP0 ; Vamos al puerto 1 para configurar el timer BCF STATUS, RP1 MOVLW B'11000110' ;Configuración del modulo TMR0 MOVWF OPTION_REG ;Preescaler en 128 BCF STATUS, RP0 ; Regresamos al puerto 0 para trabajar BCF STATUS, RP1 CLRF PORTC ; Limpiamos el puerto C para poder trabajar 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 RETARDO MOVLW B'01101111' ;para 9 MOVWF PORTB CALL RETARDO 5 INSTITUTO TECNOLÓGICO DE LA LAGUNA MOVLW B'00000110' ;para 1 MOVWF PORTB CALL RETARDO MOVLW B'01001111' ;para 3 MOVWF PORTB CALL RETARDO MOVLW B'00000110' ;para 1 MOVWF PORTB CALL RETARDO MOVLW B'01011011' ;para 2 MOVWF PORTB CALL RETARDO MOVLW B'00111111' ;para 0 MOVWF PORTB CALL RETARDO MOVLW B'01111101' ;para 6 MOVWF PORTB CALL RETARDO 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 RETARDO MOVLW B'01101111' ;para 9 MOVWF PORTB CALL RETARDO MOVLW B'001000000' ;para guión MOVWF PORTB CALL RETARDO MOVLW B'00111111' ;para 0 MOVWF PORTB CALL RETARDO MOVLW B'01011011' ;para 2 MOVWF PORTB CALL RETARDO MOVLW B'001000000' ;para guión MOVWF PORTB CALL RETARDO MOVLW B'01011011' ;para 2 MOVWF PORTB CALL RETARDO MOVLW B'00111111' ;para 0 MOVWF PORTB CALL RETARDO MOVLW B'01011011' ;para 2 MOVWF PORTB CALL RETARDO MOVLW B'01011011' ;para 2 MOVWF PORTB CALL RETARDO 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 ; A pesar de que se debe correr a pasos la simulación, necesita retardos para una buena ejecución RETARDO ; Con el preescalador en 128, por lo tanto (128)(255-134)(64) es aproximadamente igual a 1 segundo MOVLW D'64' MOVWF DE1 RETARDO1 6 INSTITUTO TECNOLÓGICO DE LA LAGUNA CLRF INTCON ;Deshabilitar interrupciones MOVLW D'134' MOVWF TMR0 RETARDO2 BTFSS INTCON,T0IF ;Esperar desborde del TMR0 GOTO RETARDO2 ;Decrementar el registro DE1 hasta cero DECFSZ DE1, F ;Si no es cero vuelve a RETARDO1 GOTO RETARDO1 RETURN END
Compartir