Tutorial PIC16F877A Algunas Mejoras
Tutorial PIC16F877A Algunas Mejoras
Tutorial PIC16F877A Algunas Mejoras
Enseguida describiré algunos aspectos básicos que tienen que ver con
todos lo microcontroladores PIC de Microchip para su utilización.
En su interior posee un microprocesador, una memoria RAM (volátil)
donde guardaremos las variables, una memoria EEPROM (no volátil)
donde guardaremos nuestro Programa, un Timer o contador que nos
facilitará algunas tareas, y algunas otras cosas más que irán variando
dependiendo de que PIC utilicemos.
Número de pines 40
Interrupciones 15
Timers 3
Módulos CCP 2
Arquitectura Harvard
CPU Risc
Módulos Comparador/comparador/Pwm 2
EL ENCAPSULADO.
DIAGRAMA DE BLOQUES DE SU ARQUITECTURA INTERNA.
Aquí muestro una tabla en la cual describo cada Pin o patilla del
Microcontrolador.
TIPO
NOMBRE DEL PI TIPO DE DESCRIPCIÓN
PIN N BUFFER
OSC1/CLKIN 13 I ST/MOS Oscilador de cristal entrada /
Entrada de señal de reloj externa
OSC2/CLKOUT 14 O - Oscilador de cristal salida / Salida
de señal de reloj externo.
MCLR/Vpp. 1 I/P ST Master Clear (entrada) ó Voltaje
de programación (salida).
Master Clear (reset) entrada.
Este pin activa el reset vuando
esta en bajo (0v.)
Entrada del voltaje de
programación.
PORTA es un puerto I/O
RA0/AN0 2 TTL bidireccional
RA0 I/O RAO: Digital I/O
AN0 I Entrada Analógica 0
3
RA1/AN1 I/O TTL RA1: Digital I/O
RA1 I Entrada Analógica 1
AN1
RBO/INT 33 TTL/ST
RBO I/O RB0: Digital I/O
INT I Interrupción externa.
RB6/PGC 39 TTL/ST
RB6 I/O RB6: Digital I/O
PGC I In circuit debugger y Reloj de
programación serial ICSP
RB7/PGD 40
RB7 I/O RB7: Digital I/O
PGD I/O In circuit debugger y Dato de
programación serial ICSP
RC1/T1OS1/CCP 16
2
RC1 I/O RC1: Digital I/O
T1OS1 I Entrada del oscilador timer1
CCP2 I/O Salida PWM 2, Captura2 entrada,
Comparador2 salida
RC2/CCP1 17 ST
RC2 I/O RC2: Digital I/O
CCP1 I/O Captura1 entrada, Comparador1
salida, PWM1 salida
RC3/SCK/SCL 18 ST
RC3 I/O RC3: Digital I/O
SCK I/O Entrada o salida serial de reloj
síncrono para modo SPI.
SCL I/O Entrada o salida serial de reloj
síncrono para modo SPI e IC
RC4/SD1/SDA 23 ST
RC4 I/O RC4: Digital I/O
SD1 I entrada de datos SPI
SDA I/O ST IC I/O datos
RC5/SD0 24 ST
RC5 I/O RC5: Digital I/O
SD0 O salida de datos SPI
RC6/Tx/CK 25 ST
RC6 I/O RC6: Digital I/O
Tx O Transmisor asíncrono USART
CK I/O Reloj síncrono USART1.
RC7/RX/DT 26 ST
RC7 I/O RC7: Digital I/O
RX I Receptor asíncrono USART
DT I/O Datos USART síncronos
PORTD es un puerto bidireccional
paralelo
RD0/PSP0
RD0 19 I/O ST/TTL RD0: Digital I/O
PSP0 I/O Dato de Puerto paralelo esclavo
RD1/PSP1 20 ST/TTL
RD1 RD1: Digital I/O
PSP1 Dato de Puerto paralelo esclavo
RD2/PSP2 21 ST/TTL
RD2 I/O RD2: Digital I/O
PSP2 I/O Dato de Puerto paralelo esclavo
RD3/PSP3 22 ST/TTL
RD3 I/O RD3: Digital I/O
PSP3 I/O Dato de Puerto paralelo esclavo
RD4/PSP4 27 ST/TTL
RD4 I/O RD4: Digital I/O
PSP4 I/O Dato de Puerto paralelo esclavo.
RD5/PSP5 28 ST/TTL
RD5 I/O RD5: Digital I/O
PSP5 I/O Dato de Puerto paralelo esclavo.
RD6/PSP6 29 ST/TTL
RD6 I/O RD6: Digital I/O
PSP6 I/O Dato de Puerto paralelo esclavo.
RD7/PSP7 30 ST/TTL
RD7 I/O RD7: Digital I/O
PSP7 I/O Dato de Puerto paralelo esclavo.
Puerto B:
Dispositivos periféricos:
Timer0: Temporizador-contador de 8 bits con preescaler de 8 bits
Timer1: Temporizador-contador de 16 bits con preescaler que puede
incrementarse en modo sleep de forma externa por un cristal/clock.
Timer2: Temporizador-contador de 8 bits con preescaler y
postescaler.
Dos módulos de Captura, Comparación, PWM (Modulación de
Anchura de pulsos).
Conversor A/D de 10 bits.
Puerto Serie Síncrono Master (MSSP) con SPI e I2C (Master/Slave).
USART/SCI (Universal Synchronous Asynchronous Receiver
Transmitter) con 9 bit.
Puerta Paralela Esclava (PSP) solo en encapsulados con 40 pines.
Organización de la memoria.
"PC" y los "Stack Level" son empleado por el pic y nosotros no tenemos
acceso
a ellos.
Llegó el momento de ver como configurar los puertos del PIC. Para poder
Hacerlo es necesario conocer la tabla de registros de la memoria de datos,
la cual como dijimos, está dividida en el BANCO 0, BANCO 1, BANCO 2,
BANCO 3.
Por ejemplo si TRISE es igual a 110 todos sus pines serán entradas salvo
RE0 que esta como salida.
SI TRISB es igual a 00000001 todos sus pines serán salidas salvo RB0
que esta como entrada.
PORTA (Puerto A), Dirección 05h: Con este registro se puede ver o modificar
el estado de los pines del puerto A (RA0 – RA7). Si un bit de este registro está a
"1" también lo estará el pin correspondiente a ese bit. El que un pin esté a "1"
quiere decir que su tensión es de 5V, si está a "0" su tensión es 0V.
RLF f,d Rota el registro f hacia la izquierda a través del bit CARRY
(todos los bits se mueven un lugar hacia la izquierda, el bit 7 de f
pasa al CARRY y el bit CARRY pasa al bit 0 de f). Resultado según d.
SWAPF f,d intercambia los 4 primeros bit de f por los otros cuatro.
Resultado según d.
BIBLIOGRAFIA:
1. Hoja de datos del PIC16F87xA de Microchip.
2. Programación del PIC16F84. por Carlos Díaz www.electron.es.vg
3. Club Saber electrónica “curso de pics para estudiantes y aficionados” N0 20.
4. Ed Quark Ing. Horacio D. Vallejo
5. Club Saber electrónica “microcontroladores PIC Programación y desarrollo”
N0 24. Ed Quark Ing. Horacio D. Vallejo
6. EL PIC16F877 por Marco Antonio Márquez Suárez