Upload
koky-hs
View
217
Download
0
Embed Size (px)
Citation preview
mas
pe-
queos se suman los unos a los otros, hasta que el ltimo de ellos
carga el sistema operativo.
En los ordenadores modernos, el proceso de arranque comienza con
PROYECTO
Aplicaciones para
microcontroladores
Fecha: 06/06/2012
INNOVACION PEDAGOGICA
EL FUTURO , TU LO CREAS.
Pgina 2
Telfono: 555-555-5555
Fax: 555-555-5555
Correo: [email protected]
Direccin del trabajo principal
Lnea 2 de direccin
Lnea 3 de direccin
Nom br e de l t r aba jo
Organizacin
microcontrolador
Pgina 34
ROBOTICA VISION
Pgina 3
CONTENIDOS
PROGRAMAS Y HERRAMIENTAS AFINES 2
INDICE 3
PROTON IDE , QUE SON LOS MICROS? 4
EL FUTURO , TU LO CREAS.
Pgina 4
PROTON IDE
Q U E SO N L O S M I C RO S? Es un circuito integrado programable que acepta un listado de ins-
trucciones y contiene todos los componentes de un computador. Se
utilizan para realizar determinadas tareas o para gobernar dispo-
sitivos, debido a su reducido tamao, suele ir incorporado en el
propio dispositivo que gobierna.
El microcontrolador es un dispositivo dedicado. En su memoria solo
reside un programa destinado a gobernar una aplicacin determina-
da, sus lneas de entradas y salidas (I/O) permiten la conexin de
sensores, relay otros. Una vez programado y configurado el micro-
controlador solamente sirve para gobernar la tarea asignada SI ST EM AS D E PR O G R AM AC I O N Los microcontroladores de Microchip (PICs) se programan mediante
un protocolo tipo serie. Se necesitan dos tensiones de alimenta-
cin para poder llevar a cabo la programacin: una de 4.5v a 5.5v
(VDD) y otra comprendida entre 12v y 14v (VPP), que es la que in-
dica al PIC que va a ser programado, para que el cambie la funcin
que realizan los pines I/O implicados en la programacin. Los pi-
nes implicados en la programacin varan de un microcontrolador a
otro, pero en general, los de un
mismo numero de pines (8, 18,
etc.) tienen las mismas patitas
asignadas a la programacin, lo
que nos permite construir progra-
madores que sirvan para mas de un
PIC .
El programador, ser el encargado
de transferir el programa que es-
cribamos en la PC a la memoria
FLASH del PIC. Esta es una memoria no voltil, de bajo consumo,
que se puede escribir y borrar en el circuito integrado (al igual
que las EEPROM). Microchip comercializa dos microcontroladores
prcticamente iguales que slo se diferencian en que la memoria de
programa de uno de ellos es tipo EEPROM y la del otro tipo Flash.
Se trata del PIC16C84 y el PIC16F84, respectivamente .
BOOTLOADER
Un bootloader (cargador de arranque ) es un programa sencillo
que no tiene la totalidad de las funcionalidades de un sistema
operativo, diseado exclusivamente para preparar todo lo que nece-
sita el sistema operativo para funcionar. Normalmente se utilizan
los cargadores de arranque multietapas, en los que varios progra-
EL FUTURO , TU LO CREAS.
Pgina 33
El circuito, se a
complementado con
un pulsador, y una
resistencia, en-
viaran un estado
lgico al PIC, en
este caso el pul-
sador enviara un 1
al pulsar, sin
pulsar la resis-
tencia mantiene un
estado 0 por estar
a tierra, si no
esta la resisten-
cia siempre exis-
tir un 1.
1 ACTIVANDO UN LED, por un pulsador, enviando un 1 (button)
Device 16F870 'microcontrolador
Xtal = 20 'velocidad
TRISA=1 'declaro que el puerto A es entrada
TRISB=0 ' DECLARO PUERTO B SALIDA
All_Digital= true ' todos los pines del micro son digitales
PORTB=0 ' ASEGURO EL PUERTO B LOW
E: 'ETIQUETA
If PORTA.0 = 1 Then 'el micro espera un 1 para activar
PORTB.0=1 'ENVIO UN NIVEL ALTO AL PIN 7
DelayMS 1000 ' EL LED SE MANTIENE ACTIVO POR 1SEG
PORTB.0=0 'ENVIO UN NIVEL BAJO AL PIN 7
DelayMS 1000 ' EL LED SE MANTIENE APAGADO POR 1SEG
EndIf ' si es fin
End 'fin
Si la seal que queremos
controlar debe alcanzar
un valor determinado, es
habitual que el sistema
la mida constantemente y
acte para alcanzar ese valor deseado. En este caso el
sistema es realimentado, y hablamos de un sistema auto-
mtico de lazo cerrado.
RA0/AN02
RA1/AN13
RA2/AN2/VREF-4
RA4/T0CKI6
RA5/AN47
OSC1/CLKIN9
OSC2/CLKOUT10
RC1/T1OSI12
RC2/CCP113
RC314
RB7/PGD28
RB6/PGC27
RB526
RB425
RB3/PGM24
RB223
RB122
RB0/INT21
RC7/RX/DT18
RC6/TX/CK17
RC516
RC415
RA3/AN3/VREF+5
RC0/T1OSO/T1CKI11
MCLR/Vpp/THV1
U1
PIC16F870
Resistor
Resistor R1
10k
D1
LED
Nombre del trabajo
Pgina 32
Ttulo principal
T t u l o s e c u n d a r i o
El propsito de un catlogo es vender productos o servicios a un pblico de-
terminado, as como anunciar novedades o prximos eventos. Los catlogos
son una manera excelente de lanzar al mercado sus productos o servicios y
de afianzar la imagen de su organizacin.
T t u l o s e c u n d a r i o
En primer lugar, determine el pblico al que va dirigido el catlogo. Puede
ser cualquiera que obtenga beneficios de los productos o servicios que contie-
ne. A continuacin, calcule el tiempo y el dinero que puede invertir en el
catlogo. Estos factores permitirn determinar la extensin del mismo y la
frecuencia con la que lo publicar. Se recomienda que publique el catlogo al
menos trimestralmente para que pueda considerarse una fuente constante
de informacin.
Adems, tenga en cuenta cmo desea imprimir el catlogo. Puede imprimirlo
en una impresora de escritorio, en un centro de copiado o en una imprenta.
Adems del presupuesto, la complejidad de la publicacin, incluyendo si se
imprime en blanco y negro o en color, permitir determinar el mejor mtodo
de imprimir la publicacin.
Para imprimir su catlogo, piense cmo desea unir las pginas. Piense en el
nmero de pginas, en cmo lo utilizar el lector y si lo enviar por correo.
Por ejemplo, si tiene pocas pginas y es para conservarlo, podra doblar las
hojas y graparlas por el lomo. Los catlogos un poco ms grandes que se de-
ben abrir completamente, funcionan mejor con una espiral de plstico a
travs de agujeros en las hojas, mientras que para las publicaciones de ma-
yor tamao que se crean como si fuesen libros, es mejor utilizar hojas encola-
das o una "encuadernacin perfecta".
microcontrolador
Pgina 5
la CPU ejecutando los programas contenidos en la memoria ROM en
una direccin predefinida y se configura la CPU para ejecutar
este programa, sin ayuda externa, al encender el ordenador.
Bootloader es un pequeo programa de arranque, residente en las
primeras 0x800 bytes de la memoria de programa de un Microcon-
troladores PIC. El bootloader funciona en el momento del cargado
de programa (justo cuando el PIC es reseteado) y es capaz de
cargar un completo programa de aplicacin en la memoria de pro-
grama del PIC. Microchip ofrece, de tamao compacto, verstil,
autnomo, que ha sido diseado pensando en la necesidad de con-
tar con un modulo que fcilmente pueda ser montado sobre un Pro-
toboard y la ves se pueda tener un potente microcontrolador de
la gama serie 18 equipado con puerto de comunicaciones USB, Se-
rie, I2C, Paralelo, Conversores A/D, mltiples puerto I/O, los
cuales estn disponibles para ser conectados a diferentes cir-
cuitos y configuraciones sin necesidad de retirar el PIC del
Protoboard para programarlo cada ves que sea necesario, modifi-
car el programa grabado el
PIC o para una fcil depura-
cin del programa en proceso
de desarrollo.
El lenguaje nativo de estos microcontroladores es el ASM, y
en el caso de la familia 16F solo posee 35 instrucciones.
Pero el ASM es un lenguaje que esta mucho ms cerca del
hardware que del programador, y gracias a la miniaturiza-
cin que permite incorporar cada vez ms memoria dentro de
un microcontrolador sin aumentar prcticamente su costo,
han surgido compiladores de lenguajes de alto nivel. Entre
ellos se encuentran varios dialectos BASIC y C. El BASIC
EL FUTURO , TU LO CREAS.
Pgina 6
PROTON IDE
En general, por cada cuatro ciclos de reloj del microcontrolador
se ejecuta una instruccin ASM (una instruccin BASIC consta
generalmente de ms de una instruccin ASM). Esto significa que
un PIC funcionando a 20MHz puede ejecutar 5 millones de instruc-
ciones por segundo.
Los pines del PIC se dedican casi en su totalidad a los puertos.
El resto (2 o mas) son los encargados de proporcionar la alimen-
tacin 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 lgico) o en estado bajo (puesto a 0V o a un 0
lgico). Tambin 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 ms famosos de todos los tiempos
ha sido, sin duda, el PIC16F84A, que ya es considerado obsoleto.
Un buen reemplazo es el PIC16F628A, y es el que utilizaremos en
la mayora de los ejemplos y proyectos que veamos. La disposi-
cin de sus pines es la siguiente
EL FUTURO , TU LO CREAS.
Pgina 31
LCD GRAFICO
T t u l o s e c u n d a r i o
Una de las mejores formas de presentar informacin es sin
lugar a dudas la pantalla o display LCD, este dispositivo
que se presenta en varios formatos es ideal al momento de
utilizar un microcontrolador pic, aparte de la funciona-
lidad el display LCD le da un toque de elegancia y versa-
tilidad a nuestros proyectos.
En PROTON IDE es muy simple crear un programa para mane-
jar este dispositivo, con unas cuantas instrucciones ten-
dremos lista la programacin para enviar informacin al
display lcd,entre los diversos formatos de estas panta-
llas se destaca el uso muy frecuente de los display con-
formato 16X2, esto quiere decir que este tipo de display
LCD puede mostrar 16 caracteres por cada lnea, lo cual
nos da un total de 32 caracteres disponibles y que hacen
parte del cdigoASCII, veamos a continuacin un ejemplo
de cmo configurar un programa para display lcd enPROTON
IDE.
microcontrolador
Pgina 30
microcontrolador
Pgina 7
Como habrn notado, muchos de los pines tienen ms de una des-
cripcin. Esto se debe a que pueden utilizarse de varias mane-
ras diferentes, seleccionables por programa. Por ejemplo, el
pin 4 sirve como parte del PORTA, como RESET (MCLR = Master
Clear) y como tensin de programacin (Vpp)
No es mala idea descargar desde la web de Microchip la hoja de
datos de este microcontrolador (en ingls) para tenerla siempre
a mano.
Ahora bien Cmo colocamos el programa dentro del PIC? Para
ello necesitamos algunas herramientas. Por un lado, es necesa-
rio un quemador de PICs. Uno que me gusta particularmente es
el k150, ya que al funcionar conectado al puerto USB. Adems,
necesitaremos un software que enve el programa al PIC. Para
ello usaremos el WinPIC800, que es un excelente soft gratuito.
Y tambin vamos a necesitar un compilador, para traducir
nuestro programa en BASIC al ASM que es capaz de entender el
PIC. Despus de mirar varios candidatos, en este momento parece
una buena eleccin el PROTON IDE, que no solo es un excelente
compilador de BASIC
Como podemos ver, los pines 1, 2, 3, 4, 15, 16, 17 y 18 tie-
nen el nombre de RAx. Esos pines conforman el puerto A,
PORTA de ahora en ms. Los pines 6 al 13 forman parte del
puerto B (PORTB). El pin 5 es el que se conectara al nega-
tivo de la fuente de alimentacin. El 14 ir conectado a 5V
EL FUTURO , TU LO CREAS.
Pgina 8
COMPONENTES
EL FUTURO , TU LO CREAS.
Pgina 29
ACTIVIDADES
microcontrolador
Pgina 28
EL FUTURO ,TU LO CREAS.
Pgina 9
COMPONENTES
EL FUTURO , TU LO CREAS.
Pgina 10
APLICACIONES CON uMICRO
La nica limitante de los Microcontroladores es su imagina-
cin. La facilidad de un puerto abierto de (entrada / salida),
la capacidad de evaluacin de seales para luego decidir una
accin y poder controlar dispositivos externos. Hacen que el
microcontrolador sea el cerebro de los equipos. Estos son al-
gunos ejemplos de reas de aplicaciones:
Electrnica Industrial (Automatizaciones)
Comunicaciones e interfase con otros equipos (RS-232)
Interfase con otros Microcontroladores
Equipos de Mediciones
Equipos de Diagnsticos
Equipos de Adquisicin de Datos
Robtica (Servo mecanismos)
Proyectos musicales
Proyectos de Fsica
Proyectos donde se requiera automatizar procesos artsticos
Programacin de otros microcontroladores
Interfase con otros dispositivos de lgica TTL:
1. Teclado
2. Pantallas LCD
3. Protocolo de comunicacin: RS232, I2, SPI
4. Sensores
5. Memorias
6. Real Time Clock (RTC)
7. A/D, D/A, Potencimetros Digitales
EL FUTURO , TU LO CREAS.
Pgina 27
ACTIVIDADES
1. DESARROLLE UN SISTEMA PROGRAMADO QUE ACTIVE 8
LED EN EL PUERTO C DEL MICROCONTROLADOR 16F870,
CON UNA PAUSA DE Segundo EN FORMA INFINITA, CA-
DA UN0 DE LOS LED ACTUARAN EN ESCALERA.
2. DESARROLLE UN SISTEMA PROGRAMADO QUE ACTIVE 8
LED EN EL PUERTO C DEL MICROCONTROLADOR 16F870,
CON UNA PAUSA DE Segundo EN FORMA INFINITA, LOS
LED ACTUARAN EN PENDULO.
3. DESARROLLE UN PENDULO INFINITO CON LOS PUERTOS
B Y C, CON PAUSAS DE 100 mseg.
CON EFECTO SEGUIDOR DE POSICION, los led se acti-
varan, dejndo en posicin otro led.
4. DESARROLLE UN PENDULO INFINITO CON LOS PUERTOS
B Y C,SOLO SE MUEVE UN LED APAGADO.
SI UD PUSO ATENCION, ESTA CAPACITADO PARA DESARROLLAR LAS
SIGUIENTES ACTIVIDADES, CONFIGURE PARA HEX, BIN Y DEC.
PROGRAME , SIMULE Y ESQUEMATICE
$HEX
$BIN
DEC
microcontrolador
Pgina 26
EL MICROCONTROLADOR. EL CIRCUITO NOS MUESTRA , UN LED CONECTADO EN EL PUERTO B , PARA SER ACTIVADO CON UN 1 LOGICO. EN LA PRACTICA ESTE LED DEBE TENER UNA RESITENCIA EN SERIE A TIERRA.
$HEX
RA0/AN02
RA1/AN13
RA2/AN2/VREF-4
RA4/T0CKI6
RA5/AN47
OSC1/CLKIN9
OSC2/CLKOUT10
RC1/T1OSI12
RC2/CCP113
RC314
RB7/PGD28
RB6/PGC27
RB526
RB425
RB3/PGM24
RB223
RB122
RB0/INT21
RC7/RX/DT18
RC6/TX/CK17
RC516
RC415
RA3/AN3/VREF+5
RC0/T1OSO/T1CKI11
MCLR/Vpp/THV1
U1
PIC16F870
D1
LED
$BIN
EL FUTURO , TU LO CREAS.
Pgina 11
APLICACIONES
Smbolos y grficos
Un diagrama de flujo se construye con unos smbolos
grficos especiales que representan acciones, funcio-
nes, y equipamiento usado para lograr un resultado
especfico.
microcontrolador
Pgina 12
EL FUTURO , TU LO CREAS.
Pgina 25
MI PRIMER PROGRAMA
6-ACTIVEMOS UN LED, cambiando de puerto, CODIGO HEXA
Device 16F870 'microcontrolador
Xtal = 20 'velocidad
TRISC=$0 ' DECLARO PUERTO C SALIDA
PORTC=$0 ' ASEGURO EL PUERTO C LOW
E: 'ETIQUETA
PORTC.5=$1 'ENVIO UN NIVEL ALTO AL PIN 5
DelayMS 50 ' EL LED SE MANTIENE ACTIVO POR 50mSEG
PORTC.5=$0 'ENVIO UN NIVEL BAJO AL PIN 5
DelayMS 50 ' EL LED SE MANTIENE APAGADO POR 50mSEG
Goto E ' IR AL COMIENZO DEL PROGRAMA
7-ACTIVEMOS UN LED, cambiando de puerto, CODIGO BIN
Device 16F870 'microcontrolador
Xtal = 20 'velocidad
TRISC=%00000000 ' DECLARO PUERTO C SALIDA
PORTC=%00000000 ' ASEGURO EL PUERTO C LOW
E: 'ETIQUETA
PORTC=%00100000 'ENVIO UN NIVEL ALTO AL PIN 5
DelayMS 50 ' EL LED SE MANTIENE ACTIVO POR 50mSEG
PORTC=%00000000 'ENVIO UN NIVEL BAJO AL PIN 5
DelayMS 50 ' EL LED SE MANTIENE APAGADO POR 50mSEG
Goto E ' IR AL COMIENZO DEL PROGRAMA
8-ACTIVEMOS UN LED, cambiando, CODIGOS DEC/HEX/BIN
Device 16F870 'microcontrolador
Xtal = 20 'velocidad
TRISC=%00000000 ' DECLARO PUERTO C SALIDA
PORTC=$0 ' ASEGURO EL PUERTO C LOW
E: 'ETIQUETA
PORTC.5=1 'ENVIO UN NIVEL ALTO AL PIN 5
DelayMS 50 ' EL LED SE MANTIENE ACTIVO POR 50mSEG
PORTC=%0 'ENVIO UN NIVEL BAJO AL PIN 5
DelayMS 50 ' EL LED SE MANTIENE APAGADO POR 50mSEG
Goto E ' IR AL COMIENZO DEL PROGRAMA
USAREMOS CODIGOS DISTINTOS PARA EL MISMO EFECTO ANTERIOR.
microcontrolador
Pgina 24
EL MICROCONTROLADOR. EL CIRCUITO NOS MUESTRA , UN LED CONECTADO EN EL PUERTO B , PARA SER ACTIVADO CON UN 1 LOGICO. EN LA PRACTICA ESTE LED DEBE TENER UNA RESITENCIA EN SERIE A TIERRA.
PORTB.5
RA0/AN02
RA1/AN13
RA2/AN2/VREF-4
RA4/T0CKI6
RA5/AN47
OSC1/CLKIN9
OSC2/CLKOUT10
RC1/T1OSI12
RC2/CCP113
RC314
RB7/PGD28
RB6/PGC27
RB526
RB425
RB3/PGM24
RB223
RB122
RB0/INT21
RC7/RX/DT18
RC6/TX/CK17
RC516
RC415
RA3/AN3/VREF+5
RC0/T1OSO/T1CKI11
MCLR/Vpp/THV1
U1
PIC16F870
D1
LED
RA0/AN02
RA1/AN13
RA2/AN2/VREF-4
RA4/T0CKI6
RA5/AN47
OSC1/CLKIN9
OSC2/CLKOUT10
RC1/T1OSI12
RC2/CCP113
RC314
RB7/PGD28
RB6/PGC27
RB526
RB425
RB3/PGM24
RB223
RB122
RB0/INT21
RC7/RX/DT18
RC6/TX/CK17
RC516
RC415
RA3/AN3/VREF+5
RC0/T1OSO/T1CKI11
MCLR/Vpp/THV1
U1
PIC16F870
D1
LED
PORTC.0
EL FUTURO , TU LO CREAS.
Pgina 13
CODIGOS Dec
Hex
Oct
Bin
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 1 2 3 4 5 6 7 8 9 A B C D E F
000 001 002 003 004 005 006 007 010 011 012 013 014 015 016 017
00000000 00000001 00000010 00000011 00000100 00000101 00000110 00000111 00001000 00001001 00001010 00001011 00001100 00001101 00001110 00001111
Dec
Hex
Oct
Bin
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
020 021 022 023 024 025 026 027 030 031 032 033 034 035 036 037
00010000 00010001 00010010 00010011 00010100 00010101 00010110 00010111 00011000 00011001 00011010 00011011 00011100 00011101 00011110 00011111
Dec
Hex
Oct
Bin
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
040 041 042 043 044 045 046 047 050 051 052 053 054 055 056 057
00100000 00100001 00100010 00100011 00100100 00100101 00100110 00100111 00101000 00101001 00101010 00101011 00101100 00101101 00101110 00101111
Dec
Hex
Oct
Bin
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
060 061 062 063 064 065 066 067 070 071 072 073 074 075 076 077
00110000 00110001 00110010 00110011 00110100 00110101 00110110 00110111 00111000 00111001 00111010 00111011 00111100 00111101 00111110 00111111
Dec
Hex
Oct
Bin
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F
100 101 102 103 104 105 106 107 110 111 112 113 114 115 116 117
01000000 01000001 01000010 01000011 01000100 01000101 01000110 01000111 01001000 01001001 01001010 01001011 01001100 01001101 01001110 01001111
Dec
Hex
Oct
Bin
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F
120 121 122 123 124 125 126 127 130 131 132 133 134 135 136 137
01010000 01010001 01010010 01010011 01010100 01010101 01010110 01010111 01011000 01011001 01011010 01011011 01011100 01011101 01011110 01011111
Dec
Hex
Oct
Bin
96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F
140 141 142 143 144 145 146 147 150 151 152 153 154 155 156 157
01100000 01100001 01100010 01100011 01100100 01100101 01100110 01100111 01101000 01101001 01101010 01101011 01101100 01101101 01101110 01101111
Dec
Hex
Oct
Bin
112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F
160 161 162 163 164 165 166 167 170 171 172 173 174 175 176 177
01110000 01110001 01110010 01110011 01110100 01110101 01110110 01110111 01111000 01111001 01111010 01111011 01111100 01111101 01111110 01111111
Dec
Hex
Oct
Bin
128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143
80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F
200 201 202 203 204 205 206 207 210 211 212 213 214 215 216 217
10000000 10000001 10000010 10000011 10000100 10000101 10000110 10000111 10001000 10001001 10001010 10001011 10001100 10001101 10001110 10001111
microcontrolador
Pgina 14
PROTON IDE SOPORTA LOS DIFERENTES CODIGOS, HEXADECIMAL, DECIMAL, Y BINARIO
Dec
Hex
Oct
Bin
144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159
90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F
220 221 222 223 224 225 226 227 230 231 232 233 234 235 236 237
10010000 10010001 10010010 10010011 10010100 10010101 10010110 10010111 10011000 10011001 10011010 10011011 10011100 10011101 10011110 10011111
Dec
Hex
Oct
Bin
160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF
240 241 242 243 244 245 246 247 250 251 252 253 254 255 256 257
10100000 10100001 10100010 10100011 10100100 10100101 10100110 10100111 10101000 10101001 10101010 10101011 10101100 10101101 10101110 10101111
Dec
Hex
Oct
Bin
176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191
B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF
260 261 262 263 264 265 266 267 270 271 272 273 274 275 276 277
10110000 10110001 10110010 10110011 10110100 10110101 10110110 10110111 10111000 10111001 10111010 10111011 10111100 10111101 10111110 10111111
Dec
Hex
Oct
Bin
192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207
C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF
300 301 302 303 304 305 306 307 310 311 312 313 314 315 316 317
11000000 11000001 11000010 11000011 11000100 11000101 11000110 11000111 11001000 11001001 11001010 11001011 11001100 11001101 11001110 11001111
Dec
Hex
Oct
Bin
208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223
D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF
320 321 322 323 324 325 326 327 330 331 332 333 334 335 336 337
11010000 11010001 11010010 11010011 11010100 11010101 11010110 11010111 11011000 11011001 11011010 11011011 11011100 11011101 11011110 11011111
Dec
Hex
Oct
Bin
224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239
E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF
340 341 342 343 344 345 346 347 350 351 352 353 354 355 356 357
11100000 11100001 11100010 11100011 11100100 11100101 11100110 11100111 11101000 11101001 11101010 11101011 11101100 11101101 11101110 11101111
Dec
Hex
Oct
Bin
240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF
360 361 362 363 364 365 366 367 370 371 372 373 374 375 376 377
11110000 11110001 11110010 11110011 11110100 11110101 11110110 11110111 11111000 11111001 11111010 11111011 11111100 11111101 11111110 11111111
EL FUTURO , TU LO CREAS.
Pgina 23
MI PRIMER PROGRAMA
El proceso se desarro-
lla en diferentes fa-
ses sin comprobar que
el objetivo se ha al-
canzado satisfactoria-
mente.
4-ACTIVEMOS UN LED, cambiando el pin
Device 16F870 'microcontrolador Xtal = 20 'velocidad
TRISB=0 ' DECLARO PUERTO B SALIDA
PORTB=0 ' ASEGURO EL PUERTO B LOW
E: 'ETIQUETA
PORTB.5=1 'ENVIO UN NIVEL ALTO AL PIN 5
DelayMS 100 ' EL LED SE MANTIENE ACTIVO POR 100mSEG
PORTB.5=0 'ENVIO UN NIVEL BAJO AL PIN 5
DelayMS 100 ' EL LED SE MANTIENE APAGADO POR 100mSEG
Goto E ' IR AL COMIENZO DEL PROGRAMA
5-ACTIVEMOS UN LED, cambiando de puerto
Device 16F870 'microcontrolador
Xtal = 20 'velocidad
TRISC=0 ' DECLARO PUERTO C SALIDA
PORTC=0 ' ASEGURO EL PUERTO C LOW
E: 'ETIQUETA
PORTC.0=1 'ENVIO UN NIVEL ALTO AL PIN 5
DelayMS 50 ' EL LED SE MANTIENE ACTIVO POR 50mSEG
PORTC.0=0 'ENVIO UN NIVEL BAJO AL PIN 5
DelayMS 50 ' EL LED SE MANTIENE APAGADO POR 50mSEG
Goto E ' IR AL COMIENZO DEL PROGRAMA
microcontrolador
Pgina 22
EL MICROCONTROLADOR. EL CIRCUITO ES EL MISMO QUE EL ANTERIOR, PERO ESTAMOS VARIANDO EL USO DE LA ETIQUETA, Y LOS TIEMPOS.
ACTIVANDO
RA0/AN02
RA1/AN13
RA2/AN2/VREF-4
RA4/T0CKI6
RA5/AN47
OSC1/CLKIN9
OSC2/CLKOUT10
RC1/T1OSI12
RC2/CCP113
RC314
RB7/PGD28
RB6/PGC27
RB526
RB425
RB3/PGM24
RB223
RB122
RB0/INT21
RC7/RX/DT18
RC6/TX/CK17
RC516
RC415
RA3/AN3/VREF+5
RC0/T1OSO/T1CKI11
MCLR/Vpp/THV1
U1
PIC16F870
D1
LED
DELAYMS
EL FUTURO , TU LO CREAS.
Pgina 15
CONFIGURACION SET/UP
CONFIGURAR MICROCONTROLADOR
Device = 16F870
Device = 16F873A
Device = 16F877A
Device = 18F225
CONFIGURAR VELOCIDAD DEL MICRO EN Mhz
Xtal 4
Xtal 10
Xtal 20
Xtal 40
CONFIGURAR PINES DIGITALES
All_Digital= true ' PARA PUERTOS A Y E
Configurar una entrada analgica
Declare ADIN_RES 10'resolucin
Declare ADIN_TAD 2'CLK opcion are 0, 1, 2, 3 (0-2 ciclos)
Declare ADIN_STIME 100 'tiempo de muestreo
= %10000000 ' Setup Del registro ADCON1, AN1 / RA1 es
anlogo
CONFIGURAR UNA ENTRADA
Input PORTC.3 'declaro el puerto C pin.3 es entrada
TRISA=1 'declaro el puerto A es entrada pero solo el pin.0
TRISA.0=1 'declaro el puerto A es entrada pero solo el pin.0
TRISA=%11111111 'declaro el puerto A es entrada
TRISA=$FF 'declaro el puerto A es entrada
TRISA=255 'declaro el puerto A es entrada
CONFIGURAR UNA SALIDA
Output PORTC.7 'declaro el puerto C pin.7 es salida
TRISA=0 'declaro el puerto A es salida
TRISA.0=0 'declaro el puerto A es salida pero solo el pin.0
TRISA=%00000000 'declaro el puerto A es salida
TRISA=$0 'declaro el puerto A es salida
microcontrolador
Pgina 16
CONFIGURACION COMBINADA
TRISA=%00001111'declaro puerto A: entrada 0,1,2,3 y salida 4,5,6,7
TRISA=$F 'declaro puerto A: entrada 0,1,2,3 y salida 4,5,6,7
TRISA=15 'declaro puerto A: entrada 0,1,2,3 y salida 4,5,6,7
ACTIVAR PUERTO
High PIN
Low PIN
Low PORTB 'el puerto b esta en nivel bajo (apagado)
High PORTB 'el puerto b esta en nivel ALTO (ACTIVO)
PORTB=0 'el puerto b esta en nivel bajo (apagado)
PORTB.0=0 'el puerto b solo el pin.0 con nivel bajo
PORTB=%00000000 'el puerto b esta con nivel bajo
PORTB=1 'el puerto b solo el pin.0 con nivel alto (activado)
PORTB.0=1 'el puerto b solo el pin.0 con nivel alto
PORTB=7 'el puerto b reproduce el dato 00000111 dec
PORTB=$F 'el puerto b reproduce el dato 00001111 hex
PORTB=%11111111 'el puerto b esta con nivel alto bin
ALIAS PARA PERIFERICOS
Symbol MOTOR = PORTA.1 motor conectado en el puerto A pin.1
Symbol SW = PORTA.2 pulsador conectado en el puerto A pin.2
Symbol SW4 = PORTA.4 pulsador conectado en el puerto A pin.4
Symbol SEN = PORTE.0 SENSOR conectado en el puerto E pin.0
CONFIGURAR MEMORIA
BUS I2C -------
SCL_Pin = PORTA.7
SDA_Pin = PORTA.6
CONFIGURAR VARIABLES
Tecla var Byte ' no se recomienda
Dim tecla As Byte
Dim cont2 As WORD
Dim cont1 As DWORD
CONFIGURAR TECLADO
Keypad_Port = PORTB
CONFIGURAR RECISTENCIAS DEL PUERTO B
PortB_Pullups = On ' ABILITA PORTB pull-ups
EL FUTURO , TU LO CREAS.
Pgina 21
MI PRIMER PROGRAMA
El proceso se desarro-
lla en diferentes fa-
ses sin comprobar que
el objetivo se ha alcanzado satisfactoriamente.
2-ACTIVEMOS UN LED, destello infinito
Device 16F870 'microcontrolador
Xtal = 20 'velocidad
TRISB=0 ' DECLARO PUERTO B SALIDA
PORTB=0 ' ASEGURO EL PUERTO B LOW
E: 'ETIQUETA
PORTB.0=1 'ENVIO UN NIVEL ALTO AL PIN 0
DelayMS 1000 ' EL LED SE MANTIENE ACTIVO POR 1SEG
PORTB.0=0 'ENVIO UN NIVEL BAJO AL PIN 0
DelayMS 1000 ' EL LED SE MANTIENE APAGADO POR 1SEG
GoTo E 'IR A ETIQUETA
3-ACTIVEMOS UN LED, alterando la pausa
Device 16F870 'microcontrolador
Xtal = 20 'velocidad
TRISB=0 ' DECLARO PUERTO B SALIDA
PORTB=0 ' ASEGURO EL PUERTO B LOW
E: 'ETIQUETA
PORTB.0=1 'ENVIO UN NIVEL ALTO AL PIN 0
DelayMS 50 ' EL LED SE MANTIENE ACTIVO POR 50mSEG
PORTB.0=0 'ENVIO UN NIVEL BAJO AL PIN 0
DelayMS 50 ' EL LED SE MANTIENE APAGADO POR 50mSEG
Goto E ' IR AL COMIENZO DEL PROGRAMA
microcontrolador
Pgina 20
EL MICROCONTROLADOR. EL CIRCUITO NOS MUESTRA , UN LED CONECTADO EN EL PUERTO B , PARA SER ACTIVADO EL PIN 0. EN LA PRACTICA ESTE LED DEBE TENER UNA RESITENCIA EN SERIE A TIERRA.
ACTIVANDO
RA0/AN02
RA1/AN13
RA2/AN2/VREF-4
RA4/T0CKI6
RA5/AN47
OSC1/CLKIN9
OSC2/CLKOUT10
RC1/T1OSI12
RC2/CCP113
RC314
RB7/PGD28
RB6/PGC27
RB526
RB425
RB3/PGM24
RB223
RB122
RB0/INT21
RC7/RX/DT18
RC6/TX/CK17
RC516
RC415
RA3/AN3/VREF+5
RC0/T1OSO/T1CKI11
MCLR/Vpp/THV1
U1
PIC16F870
D1
LED
EL FUTURO , TU LO CREAS.
Pgina 17
CONFIGURACION SET/UP
CONFIGURAR COMUNICACIN SERIAL
Serial_Baud = 9600
Rsout_Pin = PORTC.6
Rsout_Mode = TRUE
Rsout_Pace = 1
Rsin_Pin = PORTC.7
Rsin_Mode = TRUE
Hserial_Baud = 9600 ' velocidad baudios 9600
Hserial_RCSTA = %10010000 'Abilitar serial rx
Hserial_TXSTA = %00100100 'abilitar serial tx
Hserial_Clear = On 'clearing on received characters
Dim Mouse as 1
Dim Mice as Mouse * 400
Dim Mosue_PI as Mouse + 2.14
CONFIGURAR una constante
microcontrolador
Pgina 18
Descripcin de programa tpico ...ejemplo
Device
{
Declares
}
{
Incluir archivos
}
{
Constantes y Variables}
GoTo Main {
Subrutinas
}
{
Main:
Cdigo del programa
principal
Device = 18F25K20
'-------------------------------
Declare Xtal = 20
Declare Hserial_Baud = 9600
'-------------------------------
' cargar ADC incluir archivo
Include "ADC.inc"
'-------------------------------
' Define Variables
Dim WordVar as Word
'-------------------------------
' Define Constante
Symbol Valor = 10
'-------------------------------
GoTo ini ' Saltar por encima de
la subrutina / s (si existe)
'------------------------------
' Simple Subrutina
AddIt:
WordVar = WordVar + Valor
Return ' Return
'------------------------------
' programa principal
ini:
WordVar = 10
GoSub AddIt 'ir a subrutina
Hrsout Dec WordVar, 13 'imprimir
display.
EL FUTURO , TU LO CREAS.
Pgina 19
MI PRIMER PROGRAMA
El proceso se desarro-
lla en diferentes fa-
ses sin comprobar que
el objetivo se ha alcanzado satisfactoriamente.
En el ejemplo de una lavadora, la seal de salida (que
sera la ropa lavada) no se introduce en el sistema en
ningn momento para poder dar el proceso por terminado.
Es posible que la ropa no est bien lavada pero el sis-
tema no puede rectificar automticamente. Esto se deno-
mina laso abierto.
1-ACTIVEMOS UN LED, pero con un destello
Device 16F870 'microcontrolador
Xtal = 20 'velocidad
TRISB=0 ' DECLARO PUERTO B SALIDA
PORTB=0 ' ASEGURO EL PUERTO B LOW
E: 'ETIQUETA
PORTB.0=1 'ENVIO UN NIVEL ALTO AL PIN 0
DelayMS 1000 'SE MANTIENE ACTIVO POR 1SEG
PORTB.0=0 'ENVIO UN NIVEL BAJO AL PIN 0
DelayMS 1000 'SE APAGA POR 1SEG
End 'FIN DE LA RUTINA