Sie sind auf Seite 1von 10

2.

RESULTADOS DE LABORATORIO:

2.1. Procedimiento parte 1


La siguiente figura muestra un display de 7 segmentos cátodo común y su correspondiente
conexión a un puerto del PIC.

- Copiar el siguiente programa, analizar, comentar, simular e implementar


;*******************************************************
******
;Programa que utiliza un display cátodo común
;Autor: Ing. César Ciriaco Martinez.
;*******************************************************
******
LIST P=16f877A
INCLUDE<P16f877A.INC> ;comentar: incluye elmodelo de PIC
INCLUDE<Macro16f877.INC>
__CONFIG 3F32
cblock 0x20 ;comentar: Crea variables de posicionamiento
cuenta
endc

ORG 0X00
;-------------------------------------------------
;Programa principal
banco 1 ;comentar: Designa el banco 1
clrf trisb ;comentar: Borra el registro trisb
banco 0 ;comentar: Designa el banco0
clrf cuenta ;comentar: Borra datos de registro
cuenta
movf cuenta,0 ;comentar: Mueve el registro cuenta a W
call DisplayCatodoComun ;comentar: Llama dicha
subrutina
movwf portb ;comentar:Carga Portb (literal) en W
TesteaUp
btfss portd,0 ;comentar: Analiza el bit y salta
si es 0
goto TesteaDown ;comentar: Redirige a TesteaDown
goto IncrementarCuenta ;comentar: Redirige a
IncrementarCuenta
TesteaDown
btfss portd,1 ;comentar: Analiza el bit y salta a…
goto TesteaUp ;comentar: Redirige a subrutina
TesteaUp
goto DecrementarCuenta ;comentar: Redirige a
subrutina DecrementarCuenta

IncrementarCuenta
incf cuenta ;comentar: Incrementa el registro
csi cuenta,.10,IniciaCero ;comentar:
movf cuenta,0 ;comentar: Mueve 0 al registro
call DisplayCatodoComun ;comentar: Llama subrutina
movwf portb ;comentar: Mueve de portb a registro w
delay_ms .250 ;comentar: Retardo
goto TesteaUp ;comentar: Redirige
DecrementarCuenta
decf cuenta ;comentar: Incrementa cuenta en 1
csi cuenta,.255,IniciaNueve ;comentar: R
movf cuenta,0 ;comentar: Mueve 0 a registro
call DisplayCatodoComun ;comentar: Llama subrutina
movwf portb ;comentar: Mueve al registro w
delay_ms .250 ;comentar: Retardo
goto TesteaDown ;comentar: Redirige a TesteaDown
IniciaCero
clrf cuenta ;comentar: Borra el registro
movf cuenta,0 ;comentar: Mueve el registro
call DisplayCatodoComun ;comentar: Llama a subrutina
movwf portb ;comentar: Mueve al registro w
delay_ms .250 ;comentar: Retardo
goto TesteaUp ;comentar: Redirige a Testea Up
IniciaNueve
movlw .9 ;comentar: Mueve el registro w
movwf cuenta ;comentar: Mueve el registro w
movf cuenta,0 ;comentar: Mueve el registro w
call DisplayCatodoComun ;comentar: Llama la subrutina
movwf portb ;comentar: Mueve el registro w
delay_ms .250 ;comentar: Retardo
goto TesteaDown ;comentar:
;------------------------------------------------
;Librerias
include<electronicpic16f877.asm> ;comentar:
end ;fin del programa
RESULTADOS DE PARTE I
Cuando pulsamos Down; la implementación empezará a
descontar hasta llegar a 0.

Cuando pulsamos Up; la implementación empezará a contar


hasta llegar a 9.

¿Qué encontramos en la librería electronicpic16f877.asm?


En la librería se encuentran rutinas de generación de retardo (segundos y
milisegundos), rutinas para display’s de siete segmentos y constantes para generar tiempos
en ms.
RETO EN CLASE
Realice en clase un conteo ascendente de un display anodo común que
incremente de 0 al 9 y luego decremente del 9 al 0 y viceversa, el intervalo de
tiempo debe de ser 500 mS.

2.2. Procedimiento parte 2

3. Observaciones
Se aplicaron todos los ejercicios al simulador del programa
4. Conclusiones
- Los microcontroladores tienen una gran importancia en la vida de las
personas y en el mundo de las industrias, sin embargo, a medida que
los años pasaron, se demostró la revolución que ocasionaron
mejorando los procesos y sistemas que se utilizan en el día a día.
- Hoy existen microcontroladores en todo lo que nos rodea; es por ello
que es importante conocer su funcionamiento y saber cómo
programarlos
- Se conocieron algunas características de forma teórica y eso nos
facilitará en el proceso de manejo de esta tecnología.

Aplicación de lo aprendido

- Copiar el siguiente programa, analizar, comentar, simular e implementar:


;*****************************************************
;Programa que utiliza una pantalla LCD 2x16
;Autor: Ing. César Ciriaco Martinez.
;*****************************************************
LIST P=16f877
INCLUDE<p16f877.INC> ;comentar: Incluye librería
de dicho PIC
INCLUDE<Macro16f877.INC>
__CONFIG _WDT_OFF&_CP_OFF&_PWRTE_ON&_HS_OSC

cblock 0x20 ;Comentar: Configura variable de


posicionamiento
endc ;Comentar: Finaliza configuracion

org 0000h
;--------------------------------------------------
;Programa principal

call Inicio_lcd ;Comentar: Llama subrutina


cursor off ;Comentar:
movlw 'C' ;Comentar: Mueve letra ‘c’ a registro
W
call EnviaCarLCD ;Comentar: Se envía la condición a
subrutina para que pueda proyectarse dicha letra en LCD
movlw 'U'
call EnviaCarLCD
movlw 'R'
call EnviaCarLCD
movlw 'S'
call EnviaCarLCD
movlw 'O'
call EnviaCarLCD
movlw ' '
call EnviaCarLCD
movlw 'P'
call EnviaCarLCD
movlw 'I'
call EnviaCarLCD
movlw 'C' ;Comentar: Mueve letra ‘c’ a registro
W
call EnviaCarLCD ;Comentar: Se envía la condición a
subrutina para que pueda proyectarse dicha letra en LCD
movlw '1'
call EnviaCarLCD
movlw '6'
call EnviaCarLCD
movlw 'F'
call EnviaCarLCD
movlw '8'
call EnviaCarLCD
movlw '7'
call EnviaCarLCD
movlw '7'
call EnviaCarLCD
movlw 'A'
call EnviaCarLCD
movlw ' '

goto $ ;Comentar: Deja estático el programa


;----------------------------------------------------
;Librerias
include<electronicpic16f877.asm>
include<lcd.asm>
end ;fin del programa
¿Qué encontramos en la librería electronicpic16f877.asm?
Rutinas para generación de retardos

¿En qué consiste el programa del ítem 1?


Mostrar dos textos en la pantalla

¿Qué encontramos en la librería lcd.asm?


Se encuentran instrucción hechas para simplificar la estructura
del programa.

;****************************************************
;Programa que utiliza una pantalla LCD 2x16
;****************************************************
__CONFIG _WDT_OFF&_CP_OFF&_PWRTE_ON&_HS_OSC
LIST P=16f877
INCLUDE<p16f877.INC> ;comentar:
INCLUDE<Macro16f877.INC>

cblock 0x20 ;Comentar:


endc ;Comentar: Finaliza configuración

org 0000h ;Comentar: Asigna la dirección a la


etiqueta.
;----------------------------------
;Programa principal
call Inicio_lcd ;Comentar: Llama la subrutina Inicio
lcd
cursor off ;Comentar:
repite
mensaje 1 ;Comentar: Envia el mensaje 1
enter ;Comentar: Ejecuta función enter
mensaje 2 ;Comentar: Ejecuta el mensaje 2
delay_ms .250 ;Comentar: Retardo
borralcd ;Comentar: Elimina todos los
registros y los segmentos del LCD se borra
delay_ms .250 ;Comentar: Retardo
goto repite ;Comentar: Redirige el programa a
repite
;-----------------------------------------
;Librerias
include<electronicpic16f877.asm>
include<mensaje.asm>
include<lcd.asm>
end ;fin del programa

¿En qué consiste el programa del ítem 5?


Mostrar dos textos en la pantalla lcd de manera intermitente

¿Qué encontramos en la librería mensaje.asm?


Diferentes textos que se pueden enviar y que se muestren en
la pantalla lcd.

¿Qué encontramos en la librería macro16f877.inc?


Se encuentran instrucción hechas para simplificar la
estructura del programa

APLICACIÓN
Realizar un circuito que al colocar 4 digitos, este se visualice en la pantalla LCD, pero con los
siguientes caracteres “****”, al tercer intento se bloquee el programa.

Código del programa


;****************************************************
;Programa que utiliza una pantalla LCD 2x16
;****************************************************
__CONFIG _WDT_OFF&_CP_OFF&_PWRTE_ON&_HS_OSC
LIST P=16f877
INCLUDE<p16f877.INC> ;comentar: Inclusión de
librerías
INCLUDE<Macro16f877.INC>

cblock 0x20 ;Comentar: Designa variables


clave1
clave2
clave3
clave4
cuentaerror
endc ;Comentar: Termina designación

org 0000h ;Comentar: Asigna dicha dirección a la etiqueta


;----------------------------------
;Programa principal
call Inicio_lcd ;Comentar: Llama función Inicio para que
proyecte la primera pantalla
call Inicio_Teclado4x4 ;Comentar: Llama al inicio del
teclado matricial
cursor off
mover cuentaerror,3

;repetir proceso por clave errada


;ingreso de clave por parte del usuario
repite
mensaje 1 ;Comentar: Inicia la variable
enter ;Comentar:

buscardigito
call Teclado4x4
movregistro clave1, NumeroTeclado4x4
movlw "*"
call EnviaCarLCD
call Teclado4x4
movregistro clave2, NumeroTeclado4x4
movlw "*"
call EnviaCarLCD
call Teclado4x4
movregistro clave3, NumeroTeclado4x4
movlw "*"
call EnviaCarLCD
call Teclado4x4
movregistro clave4, NumeroTeclado4x4
movlw "*"
call EnviaCarLCD

;Comparar digitos con clave


csni clave1,9,errorclave
csni clave2,6,errorclave
csni clave3,9,errorclave
csni clave4,6,errorclave

;clave correcta
claveok
borralcd
delay_ms .250
mensaje 2
delay_ms .250
goto claveok

;clave incorrecta
errorclave
borralcd
dcsi cuentaerror, 0, intentoerrados
mensaje 3
enter
mensaje 4
delay_ms .250
delay_ms .250
delay_ms .250
delay_ms .250
borralcd
goto repite
;intento errados
intentoerrados
borralcd
delay_ms .250
mensaje 6
enter
mensaje 7
delay_ms .250
goto intentoerrados
;Comentar:
;-----------------------------------------
;Librerias
include<electronicpic16f877.asm>
include<mensaje.asm>
include<lcd.asm>
INCLUDE <teclado.asm>
end ;fin del programa

IMPLEMENTACIÓN PROTEUS
1. Pantalla de inicio (mensaje 1)

2. Ingresa valores y los analiza


3. Analiza la clave y envía dicho mensaje si el mensaje no es correcto

4. Si en 4 ocasiones no ingresas el valor correcto el programa se bloquea y


envía el mensaje en LCD.

Das könnte Ihnen auch gefallen