lunes, 3 de febrero de 2014

Práctica 2: Uso de los puertos I/O 3ª Parte

A continuación se expondrá la última parte de la práctica


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.
 


Diagrama de flujo





 
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.                                                     
                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
                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.

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

 

No hay comentarios:

Publicar un comentario

Todos tus comentarios y aportaciones son bienvenidas en este sitio.