Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Figura 2.7.1. Diagrama básico para conectar un PIC con un LED y un pulsador, noten que el
PIC no necesita oscilador externo ni tampoco resistencia pull-up conectado al MCLR o puerto
RA5 como lo necesitaba su antecesor el PIC16F84A.
Figura 2.6.1. Presentación más popular del PIC16F628A el PDIP y su diagrama de pines.
CARACTERÍSTICAS GENERALES.
Hasta aquí se puede resumir las características más relevantes del PIC16F628A, estas son:
NOTA: sus 2 puertos el A y el B entregan un total de 200mA cada uno, es decir 25 mA cada pin.
En modo sumidero pueden soportar cada uno de sus puertos 200mA. es decir 25 mA. cada pin.
NOTA: Los PAUSE que se puede utilizar es de 1 a 65535, es decir que PAUSE 65535, equivale
a más de 1 minuto y 5.5 segundos, y PAUSE 1 equivale a 0,001 segundo.
5. Cuando se necesite precisión en el trabajo del PIC (comunicación serial, tonos DTMF, etc.), se
recomienda utilizar un cristal oscilador externo de 4 MHZ en adelante, ya que el oscilador interno
RC que posee no tiene muy buena precisión. En un experimento realizado se conectó dos PIC
idénticos con el mismo programa el cual consistía en hacer parpadear un led con intervalos de 1
segundo, ambos PIC compartían la misma fuente y al momento de arrancar los dos parpadeos
eran iguales, al transcurso de unos minutos los leds se habían desigualado, esto demuestra que la
calibración interna no es igual en todos los micros, si utilizáramos cristales externos de 4 MHZ en
ambos PIC, no se desigualan nunca, esto debido a que los cristales son muy precisos en cuanto a
la frecuencia que entregan.
TONOS DTMF
NOTA: En el 16F628A si decide utilizar algún pin del puerto A, tome en cuenta que estos son análogos y podría
observar un funcionamiento defectuoso. Para solucionar esto agregue al principio del programa cmcon= 7, esto
convierte los pines del puerto A en digitales, un inconveniente también es el puerto A5 este es sólo de entrada, es
decir se puede utilizar para un pulsador pero no para encender un LED, otro inconveniente podría ser el puerto A4
este es de colector abierto, necesita conectarse a 5 voltios, como ilustra la siguiente figura.
Para los demás puertos A0, A1, A2, A3, A6, A7, estos funcionan normalmente como el puerto B tanto como para
entradas o salidas, siempre que incluya la línea cmcon=7.
NOTA: PBP reconoce bases numéricas en decimal, en binario usando el prefijo % y hexadecimal utilizando el
prefijo $ ejemplo: 12 es igual que %1100 y también es igual a $C
Debemos entender que declaraciones son cada una de las palabras que el compilador pbp 2.47 tiene
reservado para realizar una tarea específica, las más utilizadas son: HIGH, LOW, PAUSE, GOSUB, GOTO,
LCDOUT, SERIN, SEROUT, FOR, NEXT, IF, THEN, SOUND, END, un ejemplo:
HIGH portb.3
Esta instrucción HIGH es reconocida automáticamente por microcode, lo coloca en negrilla y mayúscula, y
sirve para que el compilador realice los ajustes necesarios para cambiarse al segundo banco de la RAM,
colocar como salida el puerto B en TRISB, y luego regrese al primer banco de la RAM y setea en 1 al Portb.3,
todo esto nos ahorramos gracias al pbp 2.47.
Peter VAR BIT ; crea una variable y asigna un tamaño de un bit es decir 0 o 1
Peter VAR BYTE ; crea una variable y asigna un tamaño de 8 bits es decir de 0 a 255
Peter VAR WORD ; crea una variable y asigna un tamaño de 2 bytes es decir de 0 a 65535
LEDS = LEDS << 1 equivale a multiplicar por 2 y se desplaza uno a uno, también podemos
LEDS = LEDS << 2 equivale a multiplicar por 4 y se desplaza de dos en dos
LEDS = LEDS >> 1 equivale a dividir por 2 y se desplaza uno a uno hacia la derecha.
PULSADORES
Existe otra manera de hacer un pulsador o entrada con más voltaje del que el PIC soporta, y es
haciendo un divisor de voltaje, esto es muy utilizado para indicar si una batería de 12 voltios por
ejemplo, se encuentra cargada o descargada.
IF repe > 35 THEN iniciar ;si la variable rep es mayor que 35 ejecuta iniciar, además se
;puede utilizar los demás operadores: =, ¡= (NO ES IGUAL), <, >, <=, >=.
IF porta.1=0 AND porta.2=0 THEN prog ;si porta.1 y porta.2 son igual a cero ejecuta prog,
asimismo soporta los demás operadores como: OR, XOR, NOT AND, NOT OR, NOT XOR