Documentos de Académico
Documentos de Profesional
Documentos de Cultura
PIC (Peripheral Interface Controller). Es un circuito integrado que posee toda la arquitectura
de un computador.
Oscilador:
Figura X
Notas importantes:
780
7803 7805 7808 7809 7810 7812 7815 7818 7824
6
Temperatura de 0- 0- 0- 0- 0-
operación 125 °C 125 °C 125 °C 125 °C 125 °C
Imax de salida 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A
La tensión de alimentación debe ser un poco más de 2 volts superior a la tensión que entrega
el regulador y menor a 35 volts
La electrónica ha evolucionado mucho. Casi todo lo que hasta hace unos años se hacia
mediante un grupo (a veces muy numeroso) de circuitos integrados conectados entre si,
hoy se puede realizar utilizando un microcontrolador y unos pocos componentes
adicionales.
Lenguaje Humano
………….
………….
3F83….. Hexadecimal
Lenguaje Máquina
Los pines del PIC se dedican casi en su totalidad a los puertos que mencionábamos
anteriormente. El resto (2 o mas) son los encargados de proporcionar la alimentación al
chip, y a veces, un sistema de RESET. Desde BASIC es posible saber si un pin esta en
“estado alto” (conectado a 5V o a un “1” lógico) o en “estado bajo” (puesto a 0V o a un
“0” lógico”). También se puede poner un pin de un puerto a “1” o “0”. De esta manera, y
mediante un rele, por ejemplo, se puede encender o apagar una luz, motor, maquina,
etc.
Uno de los microcontroladores más famosos de todos los tiempos ha sido, sin duda, el
16F84A, que ya es considerado obsoleto. Un buen reemplazo es el 16F628A, y es el que
utilizaremos en la mayoría de los ejemplos y proyectos que veamos. La disposición de
sus pines es la siguiente:
Función de los pines del 16F628A
Como podemos ver, los pines 1, 2, 3, 4, 15, 16, 17 y 18 tienen el nombre de RAx. Esos
pines conforman el puerto A, “PORTA” . Los pines 6 al 13 forman parte del puerto B
(“PORTB”). El pin 5 es el que se conectara al negativo de la fuente de alimentación. El
14 irá conectado a 5V.(toma de energía para el pic)
Muchos de los pines tienen más de una descripción. Esto se debe a que pueden
utilizarse de varias maneras diferentes, seleccionables por programa. Por ejemplo, el
pin 4 sirve como parte del PORTA, como RESET (MCLR = Master Clear) y como
tensión de programación (Vpp)
Ahora bien ¿Cómo colocamos el programa dentro del PIC? Para ello necesitamos
algunas herramientas. Por un lado, es necesario un “quemador” de PICs, Además,
necesitaremos un software que envíe el programa al PIC. Y también vamos a necesitar
un compilador, para “traducir” nuestro programa en BASIC al ASM /HEX que es capaz
de entender el PIC. Existe una versión de prueba que se puede bajar gratuitamente
desde aquí.
El GTP USB+, un excelente programador de micros y
memorias.
En primer lugar, vamos a aprovechar el oscilador interno del 16F628A y nos evitaremos
el cristal y condensadores asociados. El puerto B3 del micro tiene su pin 9 conectado a
un LED mediante una resistencia de 220ohms, que tienen como función limitar la
corriente que circula por el LED. Esta será nuestra "salida".
Ejemplo:
Figura X Es un negador
FOCO INTERMITENTE:
TRISB = trisb
Esta sentencia permite trabajar todo el puerto B como salidas, se debe poner al inicio del
programa:
trisb = 0 ó trisb = %0
Ejemplo:
FIGURA X
Si se desea realizar el proyecto con focos de 120V se utiliza salida a transistor y relé.
Tarea:
INSTRUCCIÓN FOR-NEXT
Esta instrucción sirve para ejecutar o repetir un número n de veces líneas de programa.
X VAR BYTE
Led1 VAR portb.0
programa:
FOR X=1 TO 5
HIGH Led1
PAUSE 500
LOW Led1
PAUSE 500
NEXT
PAUSE 2000
FOR X=1 TO 3
HIGH Led1
PAUSE 500
LOW Led1
PAUSE 500
NEXT
PAUSE 3000
GOTO programa
END
Desplazamientos
Los desplazamientos no son más que recorrer un lugar a la izquierda o derecha de los puertos.
Ejemplo:
FOR X=1 TO 7
LEDS=LEDS>>1
PAUSE 200
NEXT
GOTO PGRM
END
PULSADORES
Existen 2 tipos:
Figura X
Si se tiene una fuente de voltaje mayor a 5V (en el PiC solo 5 – 3V) se debe diseñar un divisor
de voltaje de tal manera que al PIC ingrese máximo 5V.
Ejemplo:
VT V PIC VT V1 V2
= = =
R 1 + R2 6.8 ← R 1 + R2 R1 R2
12 24
∗6. 8=V PIC ∗2.4=V PIC
16.8 12.4
12 24
i= =0.71 mA i= =1. 93 mA
16 . 8 k 12. 4 k
Figura X
cmcon=7
trisb=0
boton VAR porta.1
num VAR BYTE
num=0
Pulsar:
portb=num
IF boton=0 THEN contar
GOTO pulsar
Contar:
num=num+1
GOTO Pulsar
END
Nota: Cuando pulsa P y hasta saltarlo el PIC ya sumo muchas veces, es decir, no suma por cada
pulsada un número.
cmcon=7
trisb=0
boton VAR porta.1
num VAR BYTE
num=0
Pulsar:
portb=num
IF boton=0 THEN contar
GOTO pulsar
Contar:
IF boton=0 THEN contar
PAUSE 200
num=num+1
GOTO Pulsar
END
DECLARACIÓN IF … THEN
Sirve de condicionante, si es verdad ejecuta la operación que sigue al THEN, si es falsa sigue
con la operación de la línea siguiente. Tiene algunas formas de aplicación.
ELSE
______________
______________ ; Si es falsa ejecuta todas estas operaciones
______________
END IF
Con esta sentencia se pueden utilizar operadores como: =, ≠, ¡=, >, <, <=, >= o
también OR, XOR, NOT AND, NOT OR, NOT XOR.
Figura X
MANEJO DE DISPLAY
Los display son utilizados para visualizar datos sean estos numéricos o alfanuméricos.
Figura X
trisb=%
numero VAR BYTE
encerar:
numero=0
display:
portb=numero
PAUSE 500
IF numero=9 THEN encerar ; 9 = 1011
numero=numero+1
GOTO display
END
MODULOS LCD
Figura X
DECLARACION LCDOUT
Ej:
COMANDO OPERACIÓN
$FE, 1 Limpia la pantalla
$FE, 2 Vuelve al inicio
$FE, $0C Apaga el cursor
$FE, $0E Subrado del cursor
$FE, $0F Parpadeo del cursor
$FE, $10 Mueve una posición a la izquierda
$FE, $14 Mueve una posición a la derecha
$FE, $80 Cursor al inicio primero línea
$FE, $C0 Cursor al inicio segunda línea
$FE, $94 Cursor al inicio tercera línea
$FE, $D4 Cursor al inicio cuarta línea
Menor tiempo
Figura X
iniciar
HIGH Portb.4
PAUSE 200
LOW Portb.4
PAUSE 200
GOTO iniciar
END
X VAR BYTE
P CON $FE ; Asigna P a la constante $FE
PANTALLA:
PAUSE 2000
LCDOUT P,1 ; Limpia la pantalla
PAUSE 2000
LCDOUT P,$OF ; Muestra el cursor
PAUSE 2000
LCDOUT P,$14 ; Cursor una casilla a la derecha
PAUSE 2000
FOR X=1 TO 3
LCDOUT P,$10 ; Cursor una casilla a la izquierda
PAUSE 1000
NEXT
PAUSE 2000
LCDOUT P,1
LCDOUT “POLITECNICA”
PAUSE 2000
Figura X
DECLARACION LOOKUP
PAUSE 200
X VAR BYTE
Y VAR BYTE
CARACTER:
LCDOUT $FE,1
FOR X=0 TO 10
LOOKUP X, [“POLITECNICA”], Y
LCDOUT, Y
PAUSE 400
NEXT
PAUSE 2000
GOTO CARACTER
END
VISIBLES 16 40
LCD
16 24
PAUSE 200
X VAR BYTE
Y VAR BYTE
LCDOUT $FE, $7 ; Configura para desplazamiento hacia la izquierda
LCDOUT $FE, 1
INICIO:
LCDOUT $FE, $90 ; Ubica el cursor en la casilla 17.
FOR X=0 TO 23
LOOKUP X, [“MICROCONTROLADORES – PIC – ”], Y
LCDOUT, Y
PAUSE 400
NEXT
GOTO INICIO
END
DECLARACION COUNT
COUNT PORTB.0,1000,Y
Y = y lo almacena en Y