Está en la página 1de 8

Tutorial: Microcontroladores y el PIC16F84

Juan Pablo Caram

4 de octubre de 2003

Resumen C. Lista de Componentes para los Ejemplos 8

El objetivo de este documento es introducir al lec- D. Configuracion del Prog84 8


tor en el tema de los microcontroladores, y llevarlo
rápida y económicamente a desarrollar prototipos uti-
lizando el microcontrolador PIC16F84, sin depender de 1. Microcontroladores
compleja instrumentación de laboratorio, y con com-
ponentes disponibles en cualquier local comercial del 1.1. Introducción
rubro. Además las herramientas de trabajo y el software Estos dispositivos son, en un solo chip, un pequeño
aquí expuesto son de libre distribución. computador, ya que cuentan con memoria para un pro-
grama, una CPU, memoria de datos y almacenamiento,
Índice y puertas de entrada y salida, que les permite funcionar
como el cerebro de dispositivos electronicos mas com-
1. Microcontroladores 1 plejos. Su comportamiento puede ser fácilmente descrito
1.1. Introducción . . . . . . . . . . . . . . . 1 por un programa escrito en distintos posibles lenguajes.
1.2. Características . . . . . . . . . . . . . . 1 Las aplicaciones de estos dispositivos son tantas co-
1.3. Proceso de Desarrollo . . . . . . . . . . 2 mo lo permita la imaginación, y están en mas lugares
de los que se cree. Por nombrar algunos, se encuentran
2. El PIC16F84 2 en casi todos los automobiles, hornos microondas, tele-
2.1. Introducción . . . . . . . . . . . . . . . 2 fonos celulares, etc.
2.2. Desarollo de Software . . . . . . . . . . 3
2.3. Programación . . . . . . . . . . . . . . 4
1.2. Características
2.4. Circuito Base . . . . . . . . . . . . . . 4
Los microcontroladores, o µC de ahora en adelante,
3. Ejemplo 1 5 son dispositivos digitales que pueden interactuar con el
3.1. Descripción . . . . . . . . . . . . . . . 5 resto de un circuito a travez de sus pines o líneas de
3.2. Programa . . . . . . . . . . . . . . . . 5 datos, que pueden configurarse como entradas o salidas.
3.3. Circuito . . . . . . . . . . . . . . . . . 5 Cuando son entradas, pueden adquirir datos, interpretan-
do si en ellos existe un valor lógico 1 o 0, mientras que
4. Ejemplo 2 6
cuando son salidas, pueden controlar su valor lógico. En-
4.1. Descripción . . . . . . . . . . . . . . . 6
tonces su trabajo es básicamente interpretar los valores
4.2. Programa . . . . . . . . . . . . . . . . 6
en sus pines de entrada y realizar alguna acción según
4.3. Circuito . . . . . . . . . . . . . . . . . 7
estos, mediante los pines de salida.
5. Más allá de este documento 7 Para responder a eventos, como el cambio de estado
en un pin de entrada por ejemplo, los µCs cuentan con
A. Recursos en Internet y Bibliografia 8 un recurso conocido como interrupciones. Estos son los
eventos para los que se detiene la ejecución del programa
B. Lista de Componentes del Programador 8 y se ejecuta una parte específica de éste como respuesta.

1
Un caso típico es el de un botón pulsador conectado a
Figura 2: Programación
un pin, y se desea realizar alguna acción determinada al
pulsarlo. Las interrupciones pueden no solo ser el cam-
bio de estado de un pin y dependera de las características archivo.hex Software
Programador
del µC en cuestión.
Características mas sofisticadas disponibles en al- Puerto
gunos µCs, entre otras, son: serial, USB,
u otro.

Convertidor análogo digital: Convierte un volta- Microcontrolador


Hardware
Programador
je presente en una línea de entrada en un valor
numérico manipulable por el programa.

Modulador por ancho de pulso, o PWM: Gener-


ador de onda cuadrada de frecuencia fija pero con El último paso es ensamblar el programa en Assem-
ancho de pulso controlable. bler, procedimiento que lo convierte en codigo bi-
nario específico para cada µC. El programa que en-
Comunicación serial por hardware: Permite en- sambla es denominado obviamente ensamblador.
viar y recibir datos serialmente en forma síncrona y
asíncrona. 2. Programación. Este proceso corresponde a utilizar
un programa en el PC que toma el código ensam-
blado (.hex) para el µC específico, y lo envia me-
1.3. Proceso de Desarrollo diante algún puerto (serial, paralelo, USB, etc.) a
1. Desarrollo del software. Una vez determinada la un dispositivo que lo escribe en la memoria del
funcionalidad del µC en un circuito, se debe es- µC. Se acostumbra denominar ”programador” tan-
cribir el programa que regirá su funcionamiento. to al sofware como al hardware involucrados de
Generalmente, los µCs se programan en leguaje este propósito, por separado, lo que puede llevar a
Assembler, sin embargo, existen compiladores para confusión.
leguajes de alto nivel, como C y C++, que pueden
resultar de utilidad cuando se desea minimizar el
3. Prueba real y corección de errores. Una vez pro-
tiempo de desarrollo. Es importante considerar que
gramado el µC, se puede instalar en el circuito final
el codigo Assembler (.asm o .s) generado por los
para comprobar su adecuado funcionamiento. Exis-
compiladores es generalmente mas largo e inefi-
ten heramientas de software que permiten simular
ciente que aquel concebido originalmente en As-
el comportamiento de un µC, muy utiles cuando el
sembler.
programa alcanza cierta complejidad. Para resolver
problemas en un circuito real, el instrumento mas
utilizado es el analizador lógico.
Figura 1: Desarrollo de Software

Usuario archivo.c
2. El PIC16F84
2.1. Introducción
archivo.asm Compilador El microcontrolador PIC16F84 de Microchip
(www.microchip.com) es uno de los microcontroladores
mas utilizados en proyectos electrónicos pequeños. A
Ensamblador archivo.hex diferencia de versiones mas avanzadas como el igual-
mente popular PIC16F87X, este carece de convertidor
A/D, PWM, comunicación serial por hardware y a la

2
vez tiene menos memoria y puertos (conjuntos de lineas Afortunadamente el compilador de JAL compila y en-
de datos) disponibles. Sin embargo, su fácil uso, bajo sambla a la vez, entregando el archivo .hex listo para
precio y altísima difusión, lo hacen el µC favorito en un programar.
gran rango de aplicaciones. De todos modos, muchas Con cualquier editor de texto puede escribir su código
de las características que este µC no posee pueden ser y grabarlo en un archivo .jal, para luego compilar desde
implementadas por software. la carpeta de JAL con el comando

./bin/jal -slib archivo.jal


Figura 3: Pines en el PIC16F84
RA2 1 18 RA1 donde archivo.jal es el archivo donde reside su codigo.
RA3 2 17 RA0 El parametro -slib indica al compilador que debe buscar
las librerías utilizadas en la carpeta lib.
PIC16F84

RA4/T0CKl 3 16 OSC1/CLKIN
MCLR 4 15 OSC2/CLKOUT JAL generara los archivos archivo.asm y archivo.hex,
Vss 5 14 Vdd
que corresponden al código en Assembler y ensamblado
respectivamente.
RB0/INT 6 13 RB7
RB1 7 12 RB6
RB2 8 11 RB5 C y PIC LITE
RB3 9 10 RB4
Este compilador de C, desarrollado por Hitech
(www.htsoft.com) es la versión gratuita de un compi-
lador de características profesionales. La disponibilidad
Este dispositivo tiene 13 líneas de entrada/salida, con
de PIC LITE en el futuro no está asegurada, pero existen
tecnología TTL/CMOS, es decir, 5V para un estado lógi-
otros compiladores disponibles grauitamente con carac-
co 1 y 0v para el estado 0. Requiere un oscilador externo
terísticas similares.
de hasta 20MHz, se programa mediante un juego de 37
El uso de C puede ser muy conveniente para aquellos
instrucciones en Assembler, que manejan datos de 8 bits,
que ya estan familiarizados con este lenguaje y quieren
cuenta con un timer, un watchdog timer y responde a in-
minimizar la curva de aprendizaje y desarrollo con µCs.
terrupciones ante cambios de estado en las líneas de la
puerta B, RB4 hasta RB7, al flanco de subida o bajada El compilador tiene numerosas opciones que deben
en la línea RB0/INT, y al overflow1 del timer. ser consideradas y todo está adecuadamente documen-
tado. Éste también genera automáticamente el archivo
.hex.
2.2. Desarollo de Software
El proceso de desarrollo de aplicaciones para el PIC es
ASSEMBLER
equivalente a lo descrito en la figura 1. Aquí se describen
algunos lenguajes de programación disponibles, con sus Los programas concebidos originalmente en Assem-
respectivos compiladores. bler son los mas eficientes, sin embargo el proceso de
desarrollo es tedioso y requiere de un aprendizaje mas
JAL largo que con lenguajes de mas alto nivel. Para seguir
esta via, se recomienda leer la hoja de datos, que per-
Este lenguaje fue desarrollado específicamente para mite familiarizarse con el conjunto de instrucciones.
µCs PIC, lo que hace muy intuitivo trabajar con el. Su
A la hora de ensamblar las opciones son varias, pero
estructura es muy similar a la de Pascal, y cuenta con
se recomienda utilizar las soluciones mas probadas. En
librerías para realizar múltiples tareas comunes.
el caso de Linux, gpasm es el ensablador del conjunto
1
Evento que ocurre al incrementar un registro por sobre su valor de aplicaciones gputils. En Windows, MPLAB de Mi-
maximo. crochip provee el ensablador por defecto para los PICs.

3
2.3. Programación este circuito es muy simple, y se suguiere construirlo di-
rectamente en una PCB, lo que lo hará mas confiable y
Existen, en internet, numerosas duplas soft- duradero.
ware/hardware para programar µCs PIC disponibles en
forma gratuita para diferentes sistemas operativos. Es
Figura 5: Programador Terminado
importante considerar que, por lo general estas duplas
hardware/software son interdependientes; lo que a veces Reg. 7805 C=100uF
dificulta encontrar una combinación que cumpla las
espectativas del desarrollador. Base DIP18
(para PIC16F84)
Aquí se presenta una dupla con la que se pretende lo-
grar los objetivos de simplicidad, bajo costo y disponi-
bilidad tanto para Linux como para Windows.
Para que el PIC16F84 entre en modo de programación
se debe forzar un estado lógico 0 en RB7 (pin 13) y RB6
(pin 12), mientras que M CLR (pin 4) se lleva a 0 para DB9 Hembra R1, R2, R3 y D1
(Puerto Serial)
resetear, y, finalmente se lleva y mantiene durante toda
la programación a un voltaje de 12 a 14V. Una vez que
se ha entrado en el modo de programación, se utiliza
RB7 para ingresar serialmente la información, y RB6 Las resistencias pueden ser de baja potencia (1/4W),
se utiliza como señal de reloj para aceptar cada bit en el diodo D1 es un diodo rectificador cualquiera, aunque
RB7. Los detalles que se refieren al protocolo de pro- se recomienda el 1N4148, y el condensador C1 es elec-
gramación pueden encontrarse en la documentación del trolítico. El 7805 es un regulador de voltaje que entrega
fabricante. 5V (out) cuando tiene una entrada (in) mayor.
El diseño minimalista de este circuito requiere que el
El circuito denominado COM84 logra estas especi-
puerto serial del PC entregue los niveles de voltaje y po-
ficaciones en forma muy minimalista, e incluso toma
tencia adecuados. Por esta razón el programador puede
poder del puerto serial, por lo que no requiere de ali-
(y así ha resultado en ciertos casos) no funcionar en
mentación externa.
Notebooks. De todos modos, segun la especificación de
programación ya descrita, este circuito puede ser modi-
Figura 4: Programador Serial Minimalista (COM84) ficado para utilizar una fuente de alimentación externa.
7805
D1
TXD (3) in out
PIC16F84 PROG84
1 18
C1
R1
100u
2 17
Este software programador puede ser utilizado con
10k
3 16
este y otros circuitos programadores. La configuración
4 15
del tipo de hardware y puerto serial se realiza mediante
MCLR

GND (5)
un archivo de configuración. Ver anexo con un archivo
5 VSS VDD 14

6 13
de configuracion de ejemplo.
RB7
RTS (7)
7 12
Una vez configurado y conectado el hardware ade-
RB6
R2 4.7k
DTR (4) 8 11
cuadamente, la programación se lleva a cabo con el sigu-
R3 4.7k
9 10
iente comando
CTS (8)

prog84 -x archivo.hex

2.4. Circuito Base


Al lado izquierdo de la figura 4 se observan las en- En el circuito final, el PIC16F84 requiere ciertos com-
tradas del puerto serial, con sus respectivos numeros de ponentes basicos, iguales para cualquier configuracion:
pin en el conector típico DB9. La implementación de un cristal y condensadores, que proveen la señal de reloj,

4
y las lineas de alimentación, Vdd, y tierra, Vss. M CLR este se cambia el estado del pin/led. En la linea 17, y en
es el reset, por lo que debe mantenerse en estado lógico la linea 19 se llama a una función que detiene la ejecu-
1 durante su funcionamiento. Esto se puede observar en cion durante 250ms.
la figura del ejemplo 1. La función delay_1ms() ejecuta un retardo de 1ms
multiplicado por el parámetro. Su funcionamiento se
3. Ejemplo 1 basa en el hecho de que una instrucción (en Assembler)
tarda 4 tiempos de reloj, por lo que se ejecuta un loop el
3.1. Descripción número de veces que tome el tiempo requerido según la
velocidad del reloj. Esto se encuentra especificado en el
La forma mas demostrativa y simple posible de inicia- programa dado que se incluyó la versión de 4MHz (linea
rse con un µC es hacer parpadear un LED. Para esto, se 4) de las funciones específicas de este PIC.
debe implementar un programa que continuamente cam-
bie el estado de un pin y espere cierto tiempo antes de
repetir.
En este ejemplo utilizaremos JAL como lenguaje de 3.3. Circuito
programación del PIC.

3.2. Programa Figura 6: Circuito Ejemplo 1


1: -- Ejemplo 1
PIC16F84
2: +5V
3: -- Inclusiones +5V 1 18 X1
4MHz
4: include 16f84_4 2 17
5: include jlib R1
10k 3 OSC1 16
6:
7: -- Configuracion 4 MCLR OSC2 15
C2,C3
8: pin_b7_direction = output 5 VSS VDD 14 22p
9: C1
6 RB7 13
10: -- Variables 4.7u
11: var bit led is pin_b7 7 12
12: led = high 8 11 LED
13:
14: -- Loop Principal 9 10 R2
470
15: forever loop
16: -- Cambio de estado del pin
17: led = ! led
18: -- Retardo
19: delay_1ms(250)
20: end loop
En la figura se observa la circuitería mínima del PIC
El alto nivel de JAL parmite que el código sea autoex- con excepción de aquella conectada al pin 13 que corre-
plicativo, y además se incluyen comentarios (con el pre- sponde a la aplicación específica descrita en este ejemp-
fijo –). Los archivos incluidos, en las líneas 4 y 5 con- lo.
tienen definiciones específicas del PIC16F84, como las En este caso, cuando RB7 está en estado 1 tiene 5V y
correspondientes posiciones de memoria para pin_b7 y encederá el LED. Debe limitarse la corriente que pasara
pin_b7_direction, y las funciones que generan el retardo. por el LED con una resistencia (R2), para no dañarlo o
En la línea 8 se define la dirección del pin RB7, como dañar el puerto del PIC. Una configuración alternativa es
salida en este caso. En las líneas 11 y 12 se define la conectar el par LED/resistencia a Vdd (5V) y a RB7, lo
variable led, se le asigna a RB7 y se asigna su estado que causará que el LED se encienda cuando RB7 tenga
inicial activo. un estado lógico 0. Estos conceptos deben mantenerse
Finalmente, entre las líneas 15 y 20 se encuentra el en mente al considerar cuanta corriente puede un pin en-
loop del programa, que se ejecuta indefinidamente. En tregar o recibir como máximo.

5
4. Ejemplo 2 ficas para los PIC, y para retardos (función delayUs()).
El PIC específico y la velocidad de reloj se especifican
4.1. Descripción al momento de compilar. La definición en la línea 4 sim-
plemente permite indicar la dirección de memoria para
Este ejemplo es una extensión del ejemplo anterior,
un bit específico de un byte.
para ilustrar la implementación de respuesta a estímulos
Las variables han sido definidas como volatile, que es
externos, mediante interrupciones.
un requisito para pines y variables que son modificadas
Utilizando el lenguaje C para el compilador PICLITE,
desde la función interrupción. La variable led se refiere
implementamos un programa que permite encender y
al estado de RB7, y presionado indica si el pulsador ha
apagar un led al presionar un boton pulsador.
sido presionado.
La función isr() entre las líneas 13 y 25 está definida
4.2. Programa como la función interrupción con el indicador interrupt.
1: #include ”pic.h” El nombre de la función no tiene importancia. Esta es
2: #include ”delay.h” ejecutada cuando ocurre cualquiera de las posibles in-
3: terrupciones, pero la variable INTF se torna verdadera si
4: #define PORTBIT(adr, bit)
la interrupción fue producida por el pin RB0. Si es así,
5: ((unsigned)(&adr)*8+(bit))
6: desactivamos las interrupciones por INT, marcamos ver-
7: // Variables globales dadero presionado y reseteamos la variable INTF para
8: static volatile bit poder detectar este tipo de interrupción posteriormente.
9: led @ PORTBIT(PORTB,7);
10: static volatile bit presionado = 0;
La desactivación de la interrupción por INT, se hace
11: para evitar nuevas interrupciones por el rebote del botón
12: // Funcion interrupcion pulsador. Al hacer contacto un interruptor mecánico se
13: void interrupt isr() producen rápidas oscilaciones antes de asentarse en su
14: {
valor final, como se muestra en la figura. Esto se conove
15: if(INTF){
16: /* Ocurrio Interrupcion por INT como rebote.
17: * --> Deshabilitamos interrup.
18: * por INT y al final restauramos
19: * en indicador de interrupcion.
Figura 7: Rebote de Boton
20: */
21: INTE = 0; Voltaje
22: presionado = 1;
23: INTF = 1;
24: }
5V
25: }
26:
27: // Rutina principal
28: void main()
29: { 0V
30: ie(); /* Habilitada Ints. */
31:
32: /* Loop permanente */
33: for(;;){ Boton Tiempo
34: if(presionado){ Presionado

35: presionado = 0;
36: led = !led;
37: DelayUs(10); La función main() contiene el programa ejecutable.
38: INTE = 1;
39: }
En este habilitamos las interrupciones en la línea 30, y
40: } en el loop permanente, al detectar que el botón ha sido
41:} presionado, reseteamos la variable presionado, cambi-
amos el estado del led, esperamos 10us para asegurarnos
Las líneas 1 y 2 incluyen librerías de funciones especí- que se halla asentado el rebote del botón, y habilitamos

6
nuevamente las interrupciones por INT, en la linea 38. 5. Más allá de este documento
Las variables INTE e INTF son bits del registro INT-
CON. Este byte de configuración del PIC contiene in- La variedad de microcontroladores y sus aplicaciones
formación y configuración de las interrupciones, que son mucho mayor que lo propuesto es este documento.
permiten activarlas o desactivarlas según fuente (como Sin embargo el medio para abordar nuevos temas en este
INTE) e indican si ha ocurrido cada tipo de interrup- rubro puede ser algo confuso por lo que se sugieren al-
ción (como INTF). Todos los registro de información y gunos caminos a proseguir.
configuración se encuentran documentados en la hoja de La hoja de datos del PIC16F84 provee los detalles téc-
datos del PIC. nicos de su funcionamiento. La correcta interpretación y
Para compilar el programa en archivo.c para el comprensión de este documento es el camino para dom-
PIC16F84, con un cristal de 10MHz utilizamos el co- inar en totalidad este µC.
mando Microchip provee tambien documentos denominados
Application Notes, que describen aplicaciones y técni-
cas específicas a cada versión de PIC. Estos son muy
picl -16c84 -O -DXTAL_FREQ=10MHz programa.c ilustrativos y son una forma mas dinámica de aprender
al respecto, manteniendo el profesionalismo de los fab-
ricantes.
El parametro -O indica optimización de código, nece- Por otro lado, la literatura disponible para este PIC es
saria para la presición de las funciones delayUs() y re- extensa, al igual que los recursos disponibles en Internet.
duce el tamaño total del código generado. Las aplicaciones posibles del PIC16F84 solo están
limitadas por la imaginación. En Internet pueden encon-
trarse aplicaciones sorprendentemente creativas y otras
4.3. Circuito
con las que se obtienen desempeño inesperado con este
PIC.
Figura 8: Circuito Ejemplo 2
PIC16F87X
PIC16F84
+5V
+5V +5V 1 18 X1
Este PIC es el mas popular para aplicaciones de nivel
2 17
4MHz intermedio y avanzado, y es una excelente opción para
B1
R1
3
tener en mente cuando se requieren mas lineas de E/S,
10k OSC1 16

4
convertidores A/D, PWM, comunicación serial por hard-
MCLR OSC2 15
C2,C3 ware, entre otros. Existen versiones con distintas carac-
5 VSS VDD 14 22p
C1 terísticas como el tamaño de la memoria y numero de
6 RB0/INT RB7 13
4.7u pines.
7 12
Una vez que se ha dominado adecuadamente el
R3 8 11 LED
10k PIC16F84, adquirir los conocimientos para utilizar este
9 10 R2
470
nuevo PIC es considerablemente mas facil.
El costo de la versión PIC16F877, la mas poderosa,
tiene un costo de aproximadamente el doble del
PIC16F84.

Como se observa en la figura, la única modificacion


MOTOROLA HC08
al circuito del ejemplo anterior es la del pulsador B1
entre RB0/INT y +5V, con resistencia ”Pull-Down”. R3 Otros fabricantes pueden tener productos consider-
mantiene el puerto en LOW (0), y al presionar, sube a ablemente diferentes, tanto en su funcionamiento, in-
HIGH (1), por lo tanto, la interrupción se produce al strucciones de CPU o método de programación, sin em-
presionar. Si se desea que la interrupción se produzca bargo, los µC de nivel de entrada (entry-level) tienen
al soltar el pulsador, solo basta intercambiarlo con R3. mucho en común.

7
Este es el caso la nueva línea Q de µCs Motorola. 1 Regulador de Voltaje 7805.
Han sido introducidos al mercado para competir con
Microchip por este sector. A pesar de que todavía la 1 Diodo 1N4148 u otro diodo rectificador de
disponibilidad de herramientas de software hoy es es- senal.
casa, esta familia de dispositivos tiene ciertos atractivos, 1 Condensador Electrolitico de 100µF.
como lo son su precio, inferior al del PIC16F84 en to-
dos sus modelos, convertidores A/D en casi todos ellos, 1 Conector DB9 Hembra para PCB en 90o .
PWM, oscilador interno, y la disponibilidad gratuita del
popular entorno de desarrollo Code Warrior. Ademas es- 1 Base DIP18.
tan disponibles en encapsulados de 8 y 16 pines.
C. Lista de Componentes para los
A. Recursos en Internet y Bibliografia Ejemplos
WWW.MICROCHIP.COM 1 Cristal para mictrocontrolador de 4MHz.

Sitio del fabricante de los PIC. Aqui encontrara las 2 Condensadores de 22pF.
hojas de datos y application notes para todos los mod-
1 Condensador de 4.7µF (Valor no critico).
elos de PIC disponibles.
2 Resistencia de 10kΩ (Valor no critico).
WWW.HTSOFT.COM
1 Resistencia de 470Ω (Valor no critico).
Hitech produce el compilador PIC LITE para C.
1 Boton pulsador ”siempre abierto”.
Este puede bajarse gratuitamente de su sitio web. La
versión completa de este producto es uno de los com-
piladores mas poderosos existentes para microcontro- D. Configuracion del Prog84
ladores PIC.
Este programa requiere un archivo de configuracion
JAL.SOURCEFORGE.NET que indique el puerto serial a utilizar, y el tipo de hard-
ware programador. Para el hardware expuesto en este
Sitio de la comunidad de desarrollo de JAL. Aqui documento, solo debe modificar este archivo para el
puede bajar JAL para Linux, Windows o MacOS X, ba- puerto serial que desea utilizar (lineas 4 a 7).
jar la documentacion y acceder a numerosos ejemplos.
1: port serial
2:
WWW.GNUPIC.ORG 3: ### for serial port:
4: base= 0x3f8 # com1, ttyS0
Recopilacion de recursos para el manejo y desarrol- 5: #base= 0x2f8 # com2, ttyS1
lo de aplicaciones con PICs para Linux. Incluye links 6: #base= 0x3e8 # com3, ttyS2
a ensambladores, desensambladores, compiladores, sim- 7: #base= 0x2e8 # com4, ttyS3
8:
uladores, programadores y mas. En la seccion progra- 9: # settings for UniprogIV / BR870
madores encontrara un link para bajar el Prog84. 10: # and similar seriel PIC programmers.
11: no_power_C4C8 = 0
12:
B. Lista de Componentes del Progra- 13: power: TxD
14: mclr: TxD
mador 15: data: DTR
16: data_f: CTS
2 Resistencias de 4.7kΩ (Valor no critico). 17: clock: RTS

1 Resistencia de 10kΩ (Valor no critico).

También podría gustarte