Microcontrolador pic16f877a

Solo disponible en BuenasTareas
  • Páginas : 13 (3060 palabras )
  • Descarga(s) : 0
  • Publicado : 12 de febrero de 2012
Leer documento completo
Vista previa del texto
MICROCONTROLADOR PIC16F877A

Caraterísticas: Memoria de Programa tipo Flash 8Kx14 Memoria Datos 368 bytes EEPROM 256 bytes 33 pines de Entrada/Salida Encapsulado: 40 pines DIP, 44 pines PLCC y 44 pines TQFP Soporta Xtal 20MHz Voltaje de Operación: 2.0 hasta 5.5VDC

Periféricos: 1 Conversor A/D de 10-bits (8 canales) 2 Módulos CCP (Captura, Comparador, PWM) 1 Modulo I2C 1 USART (Puerto Serie)2 Timers de 8 bits 1 Timer 16 bits

Acceso y almacenamiento de datos en la memoria.

Problema 1. Resolver: 50+15-8 ;primer programa: 50+15-8 list org movlw sublw addlw goto end p=16f877A 0000H .8 .15 .50 $ ;Indica al compilador que PIC estoy usando

;dirección de inicio del código en la memoria de programa ;cargo en el registro de trabajo W el valor decimal 8 (W=8) ;resto 15-W y elresultado se guarda en W (W=15-8) ;sumo 50+W y el resultado se guarda en W (W=50+(15-8)) ;bucle infinito ;fin de programa

Problema 2. Más que un problema, es un ejemplo de como se accede a la memoria de datos. ;Acceso a la memoria de datos list p=16f877A org incf decf movlw addwf 0000H 20H,1 21H,1 52H 22H,1

subwf 23H,0 movlw iorwf swapf rlf goto $ end 13H 24H,1 24H,1 24H,0

;Incremento en 1 eldato almacenado en la dirección 20H ;Decremento en 1 el dato almacenado en la direccion 21H ;Almaceno en W el dato hexadecimal 52H (W=52H) ;Sumo al dato almacenado en 22H el dato almacenado en W y el resultado lo almaceno ;en la dirección 22H ;Resto al dato almacenado en la dirección 23H el dato almacenado en W y el resultado ; lo almaceno en W ;Almaceno el dato 13H en W ;El dato almacenado en 24Hhace un OR con W y el resultado se almacena en 24H ;Intercambio de posición el dato almacenado en 24H, el dato AB ahora será BA ;Desplazo un bit a la derecha del dato almacenado en 24H y el resultado lo almaceno ;en W ;Bucle infinito ;Fin de programa

Problema 3. Almacenar datos en la memoria de datos. ;Almacenar datos en memoria LIST p=16F877A INCLUDE

;Librería del PIC16F877A donde se definenconfiguraciones, registros y ;otros bits de informacion

ORG 0000H ;Indica el origen, inicio, posición del código en la memoria de programa movlw .5 ;W=5 no se puede enviar un dato directamente a memoria de datos, primero debe ;pasar por W movwf 20H ;20H=5 luego de W se envía recién a la posición de memoria deseada. movlw .6 ;W=6 movwf 21H ;21H=6 movlw .7 ;W=7 movwf ;22H=7 ;se grabaron losdatos 5,6 y 7 en las posiciones de memoria 20H,21H y 22H bsf movlw movwf movlw movwf movlw movwf goto end STATUS,RP0 ;Cambiando de banco de memoria, ahora estamos en el banco 1 .8 ;W=8 20H ;20H=8 .9 ;W=9 21H ;21H=9 .10 ;W=10 22H ;22H=10 $ ;Bucle infinito ;Fin del programa.

Manejo de los puertos de I/O. En esta oportunidad vamos a aprender a trabajar con los puertos "digitales" que trae elPIC16F877A. 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 comando INCLUDE, 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 faltaconfigurarlos 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 el perifé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 memorizarcada 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: STATUS EQU H'0003' RP0 EQU H'0005' 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,...
tracking img