You are on page 1of 7

UNIVERSIDAD TECNICA DE ORURO FACULTAD NACIONAL DE INGENIERIA CARRERA: INGENIERIA ELECTRICA ELECTRONICA LABORATORIO DE MICROPROCESADORES (ELT 3912) _____________________________________________________________________________

LABORATORIO N 4 USO DE TABLAS CON EL PIC 16F84 1.- Objetivo a) Introducir al alumno en el estudio, programacin y el diseo de circuitos

electrnicos mediante tablas 2.- Fundamento terico

Tablas con la instruccin RETLW Es muy comn utilizar la instruccin RETLW para la creacin de tablas de valores. Esta instruccin devuelve un valor en el acumulador al retornar de una subrutina, la usaremos conjuntamente con el registro PCL La creacin de la tabla se har de la siguiente forma: TABLA VALORES MOVWF RETLW RETLW RETLW RETLW .... Donde VALOR0, VALOR1, VALOR2... etc. son los valores que queremos almacenar en la tabla. La estrategia a seguir para consultar algn valor de la tabla es cargar en el acumulador la direccin de memoria de programa donde se encunetra el valor que quieres leer y despus llamar a la subrutina TABLA (con un CALL).El PCL VALOR0 VALOR1 VALOR2 VALOR3

UNIVERSIDAD TECNICA DE ORURO FACULTAD NACIONAL DE INGENIERIA CARRERA: INGENIERIA ELECTRICA ELECTRONICA LABORATORIO DE MICROPROCESADORES (ELT 3912) _____________________________________________________________________________

VALOR0 est en la direccin VALORES, el VALOR1 est en la direccin VALORES+1, VALOR2 est en la direccin VALORES+2... etc. El siguiente ejemplo cuenta las veces que se acciona un pulsador conectado en RA0 y muestra el valor del conteo en un display de 7 segmentos de nodo comn conectado al puerto B. La tabla contiene los valores necesarios para iluminar el display con cada nmero del 0 al 9. A continuacin se muestran el esquema y el programa:

UNIVERSIDAD TECNICA DE ORURO FACULTAD NACIONAL DE INGENIERIA CARRERA: INGENIERIA ELECTRICA ELECTRONICA LABORATORIO DE MICROPROCESADORES (ELT 3912) _____________________________________________________________________________

;**************************** ;* El siguiente programa cuenta las * ;* veces que se acciona un pulsador * ;* conectado a RA0 y muestra el * ;* resultado de la cuenta en un * ;* display de 7 segmentos de nodo * ;* comn conectado en el puerto B * ;**************************** PCL STATUS TRISA PORTA TRISB PORTB EQU EQU EQU EQU EQU EQU 02H 03H 05H 05H 06H 06H ;Registro donde contaremos ;Registro para el retardo 1 0

CUENTA EQU 0CH RETARDO EQU 0DH F w #DEFINE #DEFINE ORG GOTO EQU EQU

BANCO0 BCF STATUS,5 BANCO1 BSF STATUS,5 00H INICIO

;Dejamos sitio a continuacin para escribir ;nuestra tabla PCL ;cargamos el valor del acumulador en el registro ;PCL. Cuando se ejecute esta instruccin el pic ;saltar inmediatamente a la direccin de programa ;que le hayamos metido. ;en esta tabla almacenaremos los valores que hay ;que sacar por el puerto para que se muestren en ;el display los nmeros del 0 al 9: ;Para mostrar el 0 ;Para mostrar el 1 ;Para mostrar el 2 ;Para mostrar el 3 ;Para mostrar el 4 ;Para mostrar el 5 ;Para mostrar el 6 ;Para mostrar el 7 ;Para mostrar el 8

TABLA

MOVWF

DISP RETLW RETLW 79H RETLW 24H RETLW 30H RETLW 19H RETLW 12H RETLW 02H RETLW 78H RETLW 00H

40H

UNIVERSIDAD TECNICA DE ORURO FACULTAD NACIONAL DE INGENIERIA CARRERA: INGENIERIA ELECTRICA ELECTRONICA LABORATORIO DE MICROPROCESADORES (ELT 3912) _____________________________________________________________________________

RETLW 10H INICIO BANCO1 BSF TRISA,0 CLRF TRISB BANCO0 CLRF CUENTA MUESTRA MOVLW DISP ADDLW CUENTA CALL TABLA

;Para mostrar el 9 ;Pasamos al banco 1 ;Configuramos RA0 como Entrada ;Configuramos el puerto B como salidas ;Volvemos al banco 0 ;Pone a cero la cuenta ;Carga en el acumulador la direccin donde ;se encuentra el primer valor de la tabla ;Le suma el valor de la cuenta para obtener ;la direccin del valor que nos interesa ;Llama a la subrutina TABLA que nos devolver ;el valor correspondiente de la tabla ;en el acumulador. ;Saca dicho valor por el puerto B que har que se ;muestre en el display el nmero correspondiente ;si RA0 es "1" salta la siguiente ;instruccin (si no se acciona el pulsador) ;Llama a la subrutina SUMA1 (porque RB0 es ;por lo tanto, se ha accionado el pulsador)

MOVWF PORTB

BTFSS PORTA,0 CALL SUMA1 "0" y, GOTO MUESTRA

;================================================ ; SUMA1: Subrutina que suma uno al registro ; CUENTA. Solo cuenta pulsaciones entre ; 0 y 9 (ya que no se pueden mostrar mas ; nmeros en un display de 7 segmentos). ; Despus espera a que se suelte el pulsador ; conectado a RA0 SUMA1 INCF CUENTA,F ;Incrementa el registro CUENTA ;a continuacin se mira si el registro ;CUENTA ha llegado a 0AH, en tal caso se ;pone a cero para comenzar de nuevo. MOVLW 0AH SUBWF CUENTA,W BTFSC STATUS,2 CLRF CUENTA ;Carga 0AH en el acumulador ;Le resta CUENTA al acumulador ;mira si el resultado ha sido ;cero (de serlo CUENTA sera igual a 0AH) ;si CUENTA es 0AH la pone a cero

UNIVERSIDAD TECNICA DE ORURO FACULTAD NACIONAL DE INGENIERIA CARRERA: INGENIERIA ELECTRICA ELECTRONICA LABORATORIO DE MICROPROCESADORES (ELT 3912) _____________________________________________________________________________

;A continuacin espera a que se suelte el pulsador ;(previene los rebotes) CALL REBOTE ESPERA BTFSS PORTA,0 GOTO ESPERA RETURN ;/ ;Llama a la subrutina que previene los rebotes ;\ ; Espera a que se suelte el pulsador para retornar

; Fin de SUMA1 ;================================================ ;================================================ ; REBOTE: Subrutina que hace una pequea ; temporizacin para prevenir ; los rebotes REBOTE MOVLW 0FFH MOVWF RETARDO RETARDO REBO DECFSZ RETARDO,F GOTO REBO RETURN ;/ ;Carga el acumulador con 0FFh ;Mueve el contenido del acumulador a ;\ ; }No retorna hasta que RETARDO llega a cero

; Fin de REBOTE ;=================================================

END

;Indica final del programa

3. Practica en laboratorio a) Realizar un programa para desplegar una brujita en una matriz de leds de 7 x 5, la brujita debe aparecer cada 3 segundos y permanecer desplegada por 4 segundos. b) Realizar un programa para visualizar en una matriz de leds de 7 x 5 todo el abecedario en letras mayusculas. c) Realizar un programa para visualizar en una matriz de leds de 7 x 5 su nombre completo d) Realizar un programa para visualizar en una matriz de leds de 7 x 5 el alfabeto griego.

UNIVERSIDAD TECNICA DE ORURO FACULTAD NACIONAL DE INGENIERIA CARRERA: INGENIERIA ELECTRICA ELECTRONICA LABORATORIO DE MICROPROCESADORES (ELT 3912) _____________________________________________________________________________

e) Realizar un programa para visualizar en una matriz de leds de 7 x 5 la fecha de su nacimiento y los aos que tiene. f) Realizar un programa para visualizar en un LCD un cronometro de 8 digitos, en la cual indique la hora, minutos, segundos y milsimas de segundo. g) Realizar un programa para visualizar la entrada de un teclado en formato octal y desplegar en un LCD los numeros impares del 1 al 97 h) Realizar un programa para una maquina expendedora de chocolates Baton, en el cual se debe introducir el numero de chocolates que se desea comprar, sabiendo que cada chocolate cuesta 1 Bs. La pantalla de LCD debe desplegar la cantidad de dinero que se introduce y los chocolates que la maquina esta vendiendo. i) Realizar un programa para visualizar en un LCD, el Himno a la bandera j) Realizar un programa para visualizar en un LCD la lectura de una seal analogica conectada al microcontrolador mediante un Conversor Analogo Digital ADC 0804.

Grupo Miercoles Hrs. 10:30 12:00


a) Realizar un programa para desplegar un gato en una matriz de leds de 7 x 5, el

gato debe aparecer cada 2 segundos y permanecer desplegada por 5 segundos. b) Realizar un programa para visualizar en una matriz de leds de 7 x 5 todo el abecedario en letras minusculas. c) Realizar un programa para visualizar en una matriz de leds de 7 x 5 su nombre completo. d) Realizar un programa para visualizar en una matriz de leds de 7 x 5 los signos zodiacales. e) Realizar un programa para visualizar en una matriz de leds de 7 x 5 la fecha de su nacimiento y el signo al que pertenece.. f) Realizar un programa para visualizar en un LCD reloj digital, en la cual indique la hora, minutos, segundos y en la parte inferior la fecha actual. g) Realizar un programa para visualizar la entrada de un teclado en formato decimal y desplegar en un LCD los numeros primos del 100 al 999.

UNIVERSIDAD TECNICA DE ORURO FACULTAD NACIONAL DE INGENIERIA CARRERA: INGENIERIA ELECTRICA ELECTRONICA LABORATORIO DE MICROPROCESADORES (ELT 3912) _____________________________________________________________________________

h) Realizar un programa para una maquina expendedora de chiclets Adams, en el cual se debe introducir el numero de chicles que se desea comprar, sabiendo que cada chicle cuesta 0.50 Bs. La pantalla de LCD debe desplegar la cantidad de dinero que se introduce y los chiclets que la maquina esta vendiendo. i) Realizar un programa para visualizar en un LCD, Salve Oh Patria! j) Realizar un programa para visualizar en un LCD la lectura de una seal analogica conectada al microcontrolador mediante un Conversor Digital Analogo DAC 0800.

You might also like