A continuación se expondrá la última parte de la práctica
Tabla 2.3: Descripción de pines de PORTB
Por otra parte una vez realizada
la práctica el lector no puede pasar por alto el hecho de la limitación del
programa, es decir la salida que se deseé activar solo permanecerá así mientras
se mantenga oprimido su correspondiente push button. Sería deseable tener más
control sobre cuando y como activar o desactivar un puerto de I/O. En la
práctica 3 se abarcará el estudio de instrucciones para tal propósito.
Puedes descargar los archivos .asm y .hex de la práctica en el siguiente enlace: https://drive.google.com/folderview?id=0BxhGk5EaSqr-WHUwa3k2Z0NEQkk&usp=sharing
Tabla 2.3: Descripción de pines de PORTB
Tabla 2.4: Sumario de registros
asociados a PORTB
Práctica
Una vez hecha esta extensa cobertura de la teoría
implícita en el funcionamiento de PORTA y PORTB, es hora de revisar el
enunciado de la práctica.
Se requiere implementar un dispositivo que active o
desactive cuatro LED’s de forma individual.
Lista de
materiales
1 microcontrolador PIC 16F628A.
4 Resistencias de 680 Ω.
5 Resistencias de 10 kΩ.
4 LED’s.
5 Push button normalmente abiertos.
1 Fuente de voltaje de 5 V.
1 Protoboard.
Varios: Segmentos de alambre de diferentes
longitudes y colores.
Esquemático
Programa
;************Práctica 2: Puertos I/O ***********
;********* Autor: ESAU SANABRIA SANCHEZ************
;* Mediante esta práctica se ilustrará la
configuración y uso de los puertos de I/O*
;* como entradas y salidas digitales.*
;
;***************ZONA DE DATOS**********************
__CONFIG
_CP_OFF & _WDT_OFF & _BODEN_ON & _PWRTE_ON & _LVP_OFF
& _INTRC_OSC_NOCLKOUT & _MCLRE_ON ;DIRECTIVA DE CONFIGURACIÓN.
#include <P16F628.inc> ;Definición de operandos utilizados.
LIST P=16F628A ;Modelo de microcontrolador usado.
RADIX HEX
;Se trabajará con números base hexadecimal.
;***************ZONA DE PROGRAMA******************
ORG 0X00 ;Inicio
del programa en la dirección cero de la memoria
;de programa.
;de programa.
goto INICIO ;Salto
a la primera instrucción de programa.
ORG 0X05
INICIO clrf PORTA
;Limpia PORTA
movlw 0x07 ;Deshabilita los
comparadores,
movwf CMCON ;para dejar PORTA como entradas digitales
bsf STATUS,RP0 ;Accede
al banco 1.
movlw b'11111111' ;Carga a W el valor 0x01h
movwf TRISA
;PORTA queda configurado como entrada.
movlw b'00000000' ;Carga a W
el valor 0x00h
movwf TRISB
;PORTB queda configurado como salida.
bcf PCON,3 ;Configura el reloj interno a 48KHz.
bcf STATUS,RP0 ;Sale del banco 1.
clrf PORTB
CICLO movf PORTA,W ;Se lee el contenido de PORTA. Si se oprime.
;algún push button, se encenderá el
;algún push button, se encenderá el
movwf PORTB ;LED correspondiente en PORTB. Este
ciclo ;de lectura y escritura se actualizará
goto CICLO ;
indefinidamente.
END ;Fin de programa.
Observaciones
Esta práctica aunque bastante sencilla, muestra uno de los
recursos más potentes de los microcontroladores: el control de periféricos a
través de software y puertos de entrada y salida.
Las líneas de instrucción:
movlw 0x07
movwf CMCON
Son fundamentales para utilizar PORTA como entradas
digitales y deshabilitar la función de entradas de comparador, omitirlas
producirá funcionamiento erróneo del programa.
En este punto pido al lector no dar importancia a las
instrucciones que manejan bits como son bsf
y bcf y la instrucción de salto
incondicional goto ya que en
posteriores prácticas se cubrirán explicaciones detalladas de las mismas.
Puedes descargar los archivos .asm y .hex de la práctica en el siguiente enlace: https://drive.google.com/folderview?id=0BxhGk5EaSqr-WHUwa3k2Z0NEQkk&usp=sharing



No hay comentarios:
Publicar un comentario
Todos tus comentarios y aportaciones son bienvenidas en este sitio.