Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
INSTITUTO TECNOLÓGICO DE LA LAGUNA PRÁCTICA 8 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 8 Basándose 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. Como dispositivo de salida se utilizará un módulo LCD. 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 DE2 EQU 0X21 DE3 EQU 0X22 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 CLRF TRISC ; Limpiamos el Registro TRISC definiendo el puerto C 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 CLRF PORTC CALL INICIALIZAR CICLO ; Se declaran las secuencias de bits que deben de entrar en los puertos que posteriormente definirán la secuencia que terminará por ejecutarse BCF PORTC,0 MOVLW B'10000000'; FILA 0 COLUMNA 0 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW B'00' SUBWF PORTD,W BTFSC STATUS,Z GOTO E1 MOVLW B'01' SUBWF PORTD,W BTFSC STATUS,Z GOTO E2 MOVLW B'10' SUBWF PORTD,W BTFSC STATUS,Z GOTO E3 MOVLW B'11' SUBWF PORTD,W BTFSC STATUS,Z GOTO E4 GOTO CICLO INICIALIZAR ; Se establecen las configuracines propias del LCD display BCF PORTC,0 MOVLW B'00111001';ACTIVAR MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW B'00001100';CURSOR MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW B'00000100';DEZPLAZAMIENTO MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW B'00000001';LIMPIAR MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW B'10000000';FILA 0 COLUMNA 0 MOVWF PORTB 5 INSTITUTO TECNOLÓGICO DE LA LAGUNA BSF PORTC,1 CALL DELCD BCF PORTC,1 RETURN ;Se muestra el número de control E1 ; Se carga el caracter en el registro W y posteriormente se mueve a la salida en el puerto B para que el display lea su código ASCII BSF PORTC,0 MOVLW '1'; 1 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW '9'; 2 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW '1'; 3 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW '3'; 4 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW '1';5 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW '2'; 6 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW '0'; 7 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW '6'; 8 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW ' '; 9 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW ' '; 10 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW ' '; 11 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW ' '; 12 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW ' '; 13 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW ' '; 14 6 INSTITUTO TECNOLÓGICO DE LA LAGUNA MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW ' '; 15 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW ' '; 16 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 GOTO CICLO E2 ;Se muestra la fecha definida en el día 31/03/2022 BSF PORTC,0 MOVLW '3'; 1 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW '1'; 2 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW '-'; 3 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW '0'; 4 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW '3'; 5 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW '-'; 6 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW '2'; 7 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW '0'; 8 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW '2'; 9 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW '2'; 10 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW ' '; 11 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 7 INSTITUTO TECNOLÓGICO DE LA LAGUNA MOVLW ' '; 12 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW ' '; 13 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW ' '; 14 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW ' '; 15 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW ' '; 16 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 GOTO CICLO E3 ; Se muestra el semestre cursado BSF PORTC,0 MOVLW 'S'; 1 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW 'E'; 2 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW 'M'; 3 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW 'E'; 4 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW 'S'; 5 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW 'T'; 6 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW 'R'; 7 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW 'E'; 8 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW ' '; 9 MOVWF PORTB BSF PORTC,1 CALL DELCD BCFPORTC,1 8 INSTITUTO TECNOLÓGICO DE LA LAGUNA MOVLW '6'; 10 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW ' '; 11 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW ' '; 12 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW ' '; 13 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW ' '; 14 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW ' '; 15 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW ' '; 16 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 GOTO CICLO E4 ; Se muestran todos los indicadores encendidos BSF PORTC,0 MOVLW '*'; 1 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW '*'; 2 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW '*'; 3 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW '*'; 4 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW '*'; 5 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW '*'; 6 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW '*'; 7 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 9 INSTITUTO TECNOLÓGICO DE LA LAGUNA MOVLW '*'; 8 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW '*'; 9 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW '*'; 10 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW '*'; 11 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW '*'; 12 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW '*'; 13 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW '*'; 14 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW '*'; 15 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 MOVLW '*'; 16 MOVWF PORTB BSF PORTC,1 CALL DELCD BCF PORTC,1 GOTO CICLO ; En este caso es necesario definir algunos retardos para el funcionamiento del display ; Debido a que el display no enciende de manera instantánea y es necesario "emparejar" los datos con el display DELAY MOVLW 0X07 MOVWF DE3 DELAY3 MOVLW 0X64 MOVWF DE2 DELAY2 MOVLW 0X64 MOVWF DE1 DELAY1 DECFSZ DE1,1 GOTO DELAY1 DECFSZ DE2,1 GOTO DELAY2 DECFSZ DE3,1 GOTO DELAY3 RETURN DELCD MOVLW 0X64 MOVWF DE2 D2 MOVLW 0X64 10 INSTITUTO TECNOLÓGICO DE LA LAGUNA MOVWF DE1 D1 DECFSZ DE1,1 GOTO D1 DECFSZ DE2,1 GOTO D2 RETURN END
Compartir