Logo Studenta

Práctica 7 Microcontroladores

¡Estudia con miles de materiales!

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

Continuar navegando

Materiales relacionados

127 pag.
97 pag.
DocsTec-6501

ITESM

User badge image

Todo para Aprender