Pic16f877a

Páginas: 7 (1608 palabras) Publicado: 30 de marzo de 2012
Clase 03. Manejo de los puertos de I/O. 
 
En esta oportunidad vamos a aprender a trabajar con los puertos "digitales" que trae el PIC16F877A. El uso del puerto analógico se verá más adelante, cuando lleguemos al Conversor A/D.

Primero que nada se tiene que aclarar varios puntos:
1. Librería P16F877A.INC
En el problema 3 hicimos uso de la librería P16F877A.INC con el comandoINCLUDE<P16F877A>, por qué? bueno, en la Memoria de Datos se encuentran los Registros Especiales o SFR los cuales gobiernan al uC y sus recursos, solo hace falta configurarlos para poder hacer uso de ellos. Por tal motivo debemos conocer en que dirección se encuentra el registro que nos permite, por ejemplo, configurar los puertos como entradas o salidas, o que registro nos permite usar elperiférico PWM, etc. Cada registro posee una dirección establecida (ver Memoria de Datos) pero hay una manera más sencilla de utilizar estos registros y no tener que memorizar cada dirección, Microchip en el MPLAB nos facilita esta tarea con las librerías *.INC según el modelo del uC, en estas librerías encontraremos los nombres de los registros asignados a su dirección respectiva, por ejemplo:
STATUSEQU H'0003'
RP0 EQU H'0005'
2. bsf STATUS,RP0 ;el bit 5 del registro STATUS se pone a 1

es lo mismo que poner:

bsf .3,.5

solo que el primer ejemplo lo entendemos mejor, nos indica que estamos configurando el bit RP0 del Registro STATUS.

Estas librerías las encontramos en la carpeta Microchip/MPASM Suite por si queremos indagar más. EQU es un comando que sirve para relacionarun valor con un nombre, viene de la palabra "equal" que significa "igual", lo podemos usar no solo para relacionar direcciones sino también para crear constantes y variables, eso lo veremos en los ejemplos.
3. Qué es el Registro de Estado (STATUS)
El Registro de Estado se encuentra en los 4 bancos de la memoria RAM (pueden constatarlo en el artículo Memoria de Datos) es un Registro muy usadoporque, entre otras cosas, nos permite acceder a los registros de cualquier banco de memoria con solo configurar algunos bits, y para que necesitamos eso? pues los registros que hacen posible configurar los puertos como Entrada o Salida de datos pues están en el Banco 1 y por defecto nos encontramos en el Banco 0. El registro STATUS tienen la siguiente estructura:

-----| IRP | RP1 | RP0 | TO#| PD# | Z | DC | C |
Bit-----7-----6------5------4------3-----2---1-----0

Por ahora solo nos interesa conocer como cambiar de Banco, para esto se utilizan los bits RP1 y RP0.

RP1 y RP0: Nos permiten elegir el Banco de Memoria

| RP1|  RP0 |  Banco  |
|--0--|---0--| Banco 0 |
|--0--|---1--| Banco 1 |
|--1--|---0--| Banco 2 |
|--1--|---1--| Banco 3 |
4. Ejemplo: Estamos enel Banco 0 y queremos pasar a Banco 1

bsf STATUS,RP0 ;RP1=0 y RP0=1 con lo que estamos pasando al Banco 1 según la tabla anterior (RP1=0 por defecto luego de resetear el uC).

Bueno vamos aprovechar también para conocer para que sirven los bits Z y C.

Z: más conocido como señalizador de 0, se activa o pone en nivel alto "1" cuando el resultado de una operación es 0, por ejemplo:movlw .10
sublw  .10

esta operación da como resultado 0, en ese instante el bit Z del Registro STATUS cambia a "1".

C: más conocido como señalizador de acarreo, se pone en nivel alto "1" en las operaciones de suma cuando existe acarreo y se pone en nivel bajo "0" en las operaciones de resta cuando también existe acarreo por lo general cuando se resta un numero mayor de uno menor, porejemplo:

movlw .255
addwl  .1

la suma supera los 8 bits, por lo tanto se activa "1" el señalizador de acarreo indicando que se ha superado el límite de registro, es decir, hubo un desbordamiento y por consiguiente un acarreo.

movlw .5
sublw  .4

la resta da como resultado un número negativo, por lo tanto se pone a "0" el señalizador de acarreo.

movlw B'10000000'    
movwf...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • pic16f877a
  • pic16f877a
  • Curso De Pic16F877
  • Interrupciones PIC16F877A
  • Pic16f877a calculadora
  • Pic16f877a mikroc
  • Microcontrolador PIC16F877A
  • Practica pic16f877

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS