rufino - biblioteca digital de la universidad de los andes

16
xl 4.6.8.- PIC16F877

Upload: others

Post on 16-Nov-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

xl

4.6.8.- PIC16F877

xli

4.6.9.- PIC 16F84

xlii

4.7.- ANEXO3

4.7.1.- El Microcontrolador PIC16F84:

Este microcontrolador es un Circuito Integrado Programable o PIC por sus

siglas en Inglés: (Programmable Integrated Circuit), es el nombre comercial

con el que la compañía Microchip ha designado a sus microcontroladores.

Por sus características y costo, estos dispositivos son ideales para realizar

casi cualquier proyecto de control. Su principal característica al igual que

cualquier otro microcontrolador, es que todos los elementos requeridos para

realizar su trabajo ya vienen incorporados dentro del propio encapsulado.

De tal suerte, lo único que tenemos que hacer, es programarlo, conectar

sus terminales a las entradas o la salida de la señal que deseamos. En el

proyecto se utiliza como transmisor en forma serial de todas las señales a

procesar en forma digital (0 y 1). La figura 4.7.1 muestra su estructura

externa:

Figura 4.7.1.- Circuito Integrado PIC16F84 y sus pines

xliii

4.7.1.1.- Descripción y funcionamiento de los Pines .-

•• VSS y VDD: (pines 5 y 14) son respectivamente las patillas de masa y

alimentación. Está comprendida entre 2V y 6V.

•• OSC1/CLKIN y OSC2/CLKOUT : (pines15 y 16) son los pines de la

entrada de cristal/ fuente externa de reloj y salida de oscilador a cristal

respectivamente.

Los distintos elementos de la familia 16X84X, dependiendo de la

nomenclatura que utilizan tienen distintas características de:

* Frecuencia máxima de funcionamiento

* Tipo de oscilador utilizado para generar frecuencias de reloj

* Margen de la tensión de alimentación.

Los microcontroladores PIC, permiten cuatro tipos de osciladores externos

para aplicarles la frecuencia de funcionamiento. Durante el proceso de

grabación, antes de introducir el programa en memoria, debe indicarse el tipo

de oscilador empleado en los bits FSOC1 y FSOC2 de la Palabra de

Configuración. Los tipos de osciladores que utiliza el microcontrolador son:

* Oscilador de cristal o resonador de alta velocidad "HS"(High Speed

Crytal/Resonator): Es un oscilador de frecuencia comprendida entre 4MHz y

20MHz.

* Oscilador o resonador cerámico "XT" (Crystal/Resonator): Se trata de un

oscilador estándar que permite una frecuencia de reloj comprendidas entre

100KHz y 4 MHz.

xliv

* Oscilador de cristal de cuarzo o resonador cerámico de baja potencia "LP"

(Low Power Crystal): Se trata de un oscilador de bajo consumo con un cristal

o resonador diseñado para trabajar con frecuencias comprendidas entre

32KHz y 200KHz.

* MLCR /Vpp: (pin 4) Entrada de Reset si está a nivel bajo y entrada de la

tensión de programación cuando se está programando el dispositivo. Más

adelante veremos como se realiza el reset del microcontrolador y que formas

hay de hacerlo.

* RA0-RA4/TOCK1 : (Pines 17,18,1,2 y 3 respectivamente) Corresponden a

cuatro líneas bidireccionales de E/S del PORTA. Es capaz de entregar

niveles TTL cuando la tensión de alimentación aplicada en VDD es de 5V ±

5%. El pin RA4, si se programa como salida es de colector abierto.

Como entrada puede programarse en funcionamiento normal o como

entrada del contador/temporizador TMR0.

* RB0-RB7: (Pines 6,7,8,9,10,11,12 y 13 respectivamente) Corresponden a

ocho líneas bidireccionales de E/S del PORTB. Es capaz de entregar niveles

TTL cuando la tensión de alimentación aplicada en VDD es de 5V ± 5%. RB0

puede programarse además como entrada de interrupciones externas INT.

Los pines RB4 a RB7 pueden programarse para responder a interrupciones

por cambio de estado. La patilla RB6 y RB7 corresponden con las líneas de

entrada de reloj y entrada de datos respectivamente, cuando está en modo

programación.

xlv

4.7.2.- El Microcontrolador PIC16F77:

Este microcontrolador es mucho más versátil que el Pic16F84 utilizado

para transmitir los datos. Es usado como receptor, ya que puede manejar

tablas de datos; muy eficiente cuando de procesos que no son del todo

lineales se trata. Además cuenta con mas puertas E/S, que de algún modo

facilitará el manejo de presentación de datos tanto en display’s como

encendido y apagado de leds indicadores de eventos, que son

aproximadamente 16, y son totalmente independientes. Sumado a esto

activación de alarma a través de un zumbador, y pulsador que es usado

para desactivar dicho zumbador cuando el operador o persona que esté en

frente del panel final, así lo requiera. La figura 4.7.2 presenta el circuito

externo:

Figura 4.7.2.- Circuito Integrado PIC16F877 y sus pines

xlvi

CARACTERÍSTICAS PRINCIPALES 4.7.2.1.- Características Principales Pertenece a la familia de microcontroladores RISC de 8bits con memoria

FLASH que combinan el voltaje de funcionamiento más bajo con un

convertidor A/D de 10bits. Este microcontrolador dispone de 8Kx14bits de

memoria FLASH mejorada, 256 bytes de memoria de datos EEPROM y el

voltaje de funcionamiento más bajo de la industria desde 2,0V a 5,5V. Es

ideal para aplicaciones programables o alimentadas por baterías,

aplicaciones como controladores del cuerpo humano, controles de maquinas

programables, mantenimiento de redes, teléfonos alta gama, dispositivos y

sensores actualizables en campo.

Los dispositivos también proporcionan de 5 a 8 canales de convertidores

A/D de 10bits, USART para aplicaciones de adquisición de datos multipunto

con detección de direccionamiento, hasta 5MIPS a 20MHz, permite la

comunicación I2C o SPI para la expansión de periféricos, dos

temporizadores de 8 bits y uno de 16 bits. La precisión de los temporizadores

es de 16bits en captura y comparación, con 12,5ns y 200ns respectivamente

y modulación de anchura de pulso de 20KHz con 10 bits de resolución. La

tecnología Enhanced Flash de Microchip ofrece con 1.000.000 de ciclos de

borrado escritura, la mayor durabilidad de la industria. Los

microcontroladores también ofrecen la programación serie y en circuito,

permitiendo la grabación después de soldarse en la placa.

Se puede realizar también la depuración en circuito y tiempo real mediante

el modo "Background Debugger" de los PIC16F877, con tan sólo un sencillo

interfaz de 5 hilos.

xlvii

RESUMEN:

• CPU RISC de arquitectura paralela, o lo que es lo mismo, que tiene

diferente memoria para los datos y el programa.

• Tiene 35 instrucciones en ensamblador, que se ejecutan en un ciclo

de maquina, excepto las de salto que lo hacen en 2 ciclos de máquina.

• Velocidad máxima de operación 20 MHz à ciclo máquina 200 nseg.

• 8 K palabras(14 bits) de memoria flash de programas

• 368 bytes de memoria de datos (RAM)

• 256 byrtes de memoria de datos (EEPROM)

• 1 Watchdog

• 2 Timer/Contador de 8 bits

• 1 Timer/ Contador de 16 bits

• 2 canales de PWM para controlar motores

• 8 canales de conversión analógico-digitales de 10 bits

• Puerto serie síncrono con SPI

• Puerto paralelo esclavo PSP de 8 bits

• I2C

• USART

xlviii

4.7.2.2.- Descripción de las Puertas de entrada / salida.-

Patitas de Propósito General:

v OSC1/CLKIN(9): Entrada de cristal de cuarzo o del oscilador

externo.

v OSC2/CLKOUT(10): Salida del cristal de cuarzo.

v VSS(8-9): conexión a tierra.

v VDD(20): entrada de la alimentación positiva.

v MCLR#/VPP/THV(1): entrada de reset o entrada de voltaje de

programación o voltaje alto en el modo set.

Puertas:

puerta A:

v RA0/AN0(2): puede actuar como línea digital de E/S o como entrada

analógica al conversor AD(canal 0).

v RA1/AN1(3): igual que la RA0/AN0.

v RA2/AN2/VREF-(4): puede ser línea digital de E/S, entrada analógica

o entrada de voltaje negativo de referencia.

v RA3/AN3/VREF+(5): puede ser línea digital de E/S, entrada analógica

o entrada de voltaje positivo de referencia.

v RA4/TOCKI(6): Línea digital de E/S o entradas del reloj del Timer0.

salida con colector abierto.

v RA5/SS#/AN4(7): Línea digital de E/S, entrada analógica o selección

como esclavo de la puerta serie síncrona.

xlix

puerta B:

v RB0/INT(21): línea digital de E/S o entrada de petición de

interrupción externa.

v RB1(22): línea digital de E/S.

v RB2(23): línea digital de E/S.

v RB3/PGM(24): línea digital de E/S o entrada del voltaje bajo para

programación.

v RB4(25): línea digital de E/S.

v RB5(26): línea digital de E/S.

v RB6/PGC(27): línea digital de E/S. En la programación serie recibe

las señales de reloj.

v RB7/PGD(28): línea digital de E/S. En la programación serie actua

como entrada de datos.

puerta C:

v RC0/T1OSO/T1CKI(11): línea digital de E/S o salida del oscilador del

Timer1 o como entrada de reloj del Timer1.

v RC1/T1OSI/CCP2(12): línea digital de E/S o entrada al oscilador del

Timer1 o entrada al módulo captura2/salida comparación2/ salida de

PWM2.

v RC2/CCP!(13): línea digital de E/S. También puede actuar como

entrada captura1/salida comparación1/salida de PWM1.

v RC3/SCK/SCL(14): línea digital de E/S o entrada de relojserie

sincronía/salida de los modos SPI e I2C.

l

v RC4/SDI/SDA(15): línea digital de E/S o entrada de datos SPI o I/O

datos en modo SPI e I2C.

v RC5/SDO(16): línea digital de E/S o salida de datos en modo SPI.

v RC6/TX/CK(17): línea digital de E/S o patita del transmisor USART

asíncrono o como reloj del síncrono.

v RC7/RX/DT(18): línea digital de E/S o receptor del USART

asíncrono o como datos en el síncrono.

puerta D:

v RD0/PSP0-RD7/PSP7: Pueden actuar como E/S digital o como

lineas para la transferencia de información en la comunicación de la

puerta paralela esclava. Sólo disponible en los PIC16F874/7.

puerta E:

v RE0/RD#/AN5: E/S digital o señal de lectura para la puerta paralela

esclava o entrada analógica(canal 5).

v RE1/WR#/AN6: E/S digital o señal de escritura en la puerta paralela

esclava o entrada analógica al conversor A/D(canal 6).

v RE2/CS#/AN7: E/S digital o activación/desactivación de la puerta

paralela o entrada analógica (canal 7).

li

4.7.3.- Diferencias y semejanzas entre la familia PIC16F877 y 16F84

Las diferencias son un tanto considerables, en cuanto que el pic16F877

maneja mas puertos entrada / salida y además internamente contiene un

convertidor analógico / digital con características similares al ADC0808. El

pic16F84 tiene memoria flash, pero con una capacidad de 1k palabras, sólo

tiene un Timer y 13 líneas de entradas / salidas(E/S) digitales y el modelo

normal soporta una frecuencia de 10 MHz, aunque el “A” llega a los 20 MHz.

Es un microcontrolador pobre pero resultón, por su sencillez y precio unidos

a la imaginación del proyectista.

Los nuevos pic16F877 se pueden considerar como una combinación de

las virtudes del pic16F84 con la inclusión de los recursos de los pic16C73 y

74. Incorporan la memoria flash, con una capacidad de 4k y 8k palabras de

14 bits, sin cambiar la estructura interna del procesador y conservando el

mismo repertorio de instrucciones. Observe la tabla N° 4.7.1 que detalla

mejor las diferencias - semejanzas, y características relevantes entre ambos

microcontroladores:

lii

Tabla 4.7.1.- Características relevantes del Pic16F877 junto a las del Pic16F84A.

MODELO PIC16F84A PIC16F877 MEMORIA

Bytes 1792 14336

PROG.(FLASH) Palabras 1024 x 14 8192 x 14 MEMORIA Bytes EEPROM 64 256 DATOS Bytes RAM 68 368

CONVERTIDOR (ADC)

NO 8(10 BITS)

BOD(detección de baja tensión)

NO SÍ

Líneas E/S

13 33

Comunicación Serie

NO USART / MSSP

CCP

NO 2

TEMPORIZADORES

1-8 bit, 1-WDT

FRECUENCIA MAX. en MHz

20 20

ICSP(Programación Serie en circuito) SÍ SÍ

ENCAPSULADOS

18P,18SO,20SS 40P,44L,44PQ,44PT

FUENTES DE INTERRUPCIÓN

4 14

COMUNICACIÓN PARALELO NO Sí

La memoria RAM de datos de los PIC16F877 posee una

capacidad de 368 bytes. Aunque superan ampliamente los 68

bytes del PIC16F84, mantienen la misma estructura, basada

en 4 bancos de 128 bytes cada uno; seleccionables con los

bits RP0 yRP1 del registro Estado. La memoria de datos no

liii

volátil de 64 bytes tipo EEPROM que tenía el PIC16F84, en

los nuevos PIC16F877 de 40 patitas sube hasta 256 bytes.

En los PIC16F877 se manejan hasta 14 posibles fuentes de

interrupción y 3 Timer, frente a las fuentes y 1 Timer del

PIC16F84. El número de puertas también se ve aumentado

sustancialmente con 5 puertas.

Los PIC16F877 incorporan recursos inexistentes en los PIC16F84:

n Módulos CCP: Capturan y comparan impulsos.

n Comunicación serie: USART ( comunicación entre subsistemas o

máquinas(RS-232)), y MSSP(comunicación entre circuitos integrados)

n Comunicación Paralelo: Protocolo PSP mas rápido que la

comunicación serie, pero hipoteca muchas entradas / salidas.

n Conversor A/D: Conversor analógico – Digital de 10 bits, con 8

canales de entradas.

Tanto los PIC16F84 / 16F877 responden a una serie de instrucciones o

códigos que se deben grabar en su memoria de programa. En total son 35

instrucciones ó nemónicos manejadas por estos microcontroladores. Las

instrucciones se dividen en tres(3) grupos diferentes: Orientadas a los

registros, orientadas a los bits, y los registros de control. Todas las

instrucciones se ejecutan en un ciclo de instrucción, es decir, en un

microsegundo cuando se tiene un cristal de 4 MHz, excepto las instrucciones

de salto que ocupan dos(2) ciclos de instrucción.

ANEXO4

liv

4.8.1.- Este circuito representa “la salida” del SENSOR DE

CORRIENTE, como se puede observar no necesitará pasar

por un convertidor analógico – digital (ADC); sino que va

directamente al puerto B del PIC16F84; transmisor de serial

de datos.

OR EXCLUSIVA: Entradas diferentes è SALIDA Alto COMPARADOR: V(+) > V(-) è Alto........[Vref = V(-)]

Figura 4.8.1.- Digitalización directa entrada analógica del sensor de

corriente (0 a 5V)

lv

4.8.2.- Circuito Monoestable del 555.-

Figura N° 4.8.2.- Configuración y temporización del monoestable 555