You are on page 1of 18

mas

pe-

PROYECTO
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

INNOVACION PEDAGOGICA

Aplicaciones para
microcontroladores
Fecha: 06/06/2012

EL FUTURO , TU LO CREAS.

Organizacin
Nombre del trabajo
Direccin del trabajo principal
Lnea 2 de direccin
Lnea 3 de direccin

Pgina 2

Telfono: 555-555-5555
Fax: 555-555-5555
Correo: alguien@example.com

microcontrolador

ROBOTICA VISION

CONTENIDOS
PROGRAMAS Y HERRAMIENTAS AFINES 2
INDICE 3
PROTON IDE , QUE SON LOS MICROS? 4

Pgina 34

Pgina 3

EL FUTURO , TU LO CREAS.

EL FUTURO , TU LO CREAS.

PROTON IDE
QUE SON LOS MICROS?
Es un circuito integrado programable que acepta un listado de instrucciones y contiene todos los componentes de un computador. Se
utilizan para realizar determinadas tareas o para gobernar dispositivos, 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 determinada, sus lneas de entradas y salidas (I/O) permiten la conexin de
sensores, relay otros. Una vez programado y configurado el microcontrolador
solamente sirve para gobernar la tarea asignada

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 automtico de lazo cerrado.

D1
U1
9
OSC1/CLKIN
10
OSC2/CLKOUT
1
MCLR/Vpp/THV

PIC

Resistor

Los microcontroladores de Microchip (PICs) se programan mediante


un protocolo tipo serie. Se necesitan dos tensiones de alimentacin 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 indica al PIC que va a ser programado, para que el cambie la funcin
que realizan los pines I/O implicados en la programacin. Los pines 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 programadores que sirvan para mas de un

Resistor

SI ST EM AS D E PR O G R AM AC I O N

R1
10k

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 necesita el sistema operativo para funcionar. Normalmente se utilizan
los cargadores de arranque multietapas, en los que varios progra-

Pgina 4

RA0/AN0
RA1/AN1
RA2/AN2/VREFRA3/AN3/VREF+
RA4/T0CKI
RA5/AN4
RC0/T1OSO/T1CKI
RC1/T1OSI
RC2/CCP1
RC3
RC4
RC5
RC6/TX/CK
RC7/RX/DT
PIC16F870

El programador, ser el encargado


de transferir el programa que escribamos 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.

2
3
4
5
6
7

RB0/INT
RB1
RB2
RB3/PGM
RB4
RB5
RB6/PGC
RB7/PGD

21
22
23
24
25
26
27
28
11
12
13
14
15
16
17
18

LED

El circuito, se a
complementado
con
un pulsador, y una
resistencia,
enviaran un estado
lgico al PIC, en
este caso el pulsador enviara un 1
al
pulsar,
sin
pulsar la resistencia mantiene un
estado 0 por estar
a tierra, si no
esta la resistencia siempre existir un 1.

1 ACTIVANDO UN LED, por un pulsador, enviando un 1 (button)


Device 16F870
Xtal = 20
TRISA=1
TRISB=0
All_Digital= true
PORTB=0
E:
If PORTA.0 = 1 Then
PORTB.0=1
DelayMS 1000
PORTB.0=0
DelayMS 1000
EndIf
End

Pgina 33

'microcontrolador
'velocidad
'declaro que el puerto A es entrada
' DECLARO PUERTO B SALIDA
' todos los pines del micro son digitales
' ASEGURO EL PUERTO B LOW
'ETIQUETA
'el micro espera un 1 para activar
'ENVIO UN NIVEL ALTO AL PIN 7
' EL LED SE MANTIENE ACTIVO POR 1SEG
'ENVIO UN NIVEL BAJO AL PIN 7
' EL LED SE MANTIENE APAGADO POR 1SEG
' si es fin
'fin

Nombre del trabajo

microcontrolador

Ttulo principal
Ttulo secundario
El propsito de un catlogo es vender productos o servicios a un pblico determinado, 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.

Ttulo secundario
En primer lugar, determine el pblico al que va dirigido el catlogo. Puede
ser cualquiera que obtenga beneficios de los productos o servicios que contiene. 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 deben abrir completamente, funcionan mejor con una espiral de plstico a
travs de agujeros en las hojas, mientras que para las publicaciones de mayor tamao que se crean como si fuesen libros, es mejor utilizar hojas encoladas o una "encuadernacin perfecta".

Pgina 32

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 Microcontroladores 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 programa del PIC. Microchip ofrece, de tamao compacto, verstil,
autnomo, que ha sido diseado pensando en la necesidad de contar con un modulo que fcilmente pueda ser montado sobre un Protoboard y la ves se pueda tener un potente microcontrolador de
la gama serie 18 equipado con puerto de comunicaciones USB, Serie, I2C, Paralelo, Conversores A/D, mltiples puerto I/O, los
cuales estn disponibles para ser conectados a diferentes circuitos y configuraciones sin necesidad de retirar el PIC del
Protoboard para programarlo cada ves que sea necesario, modificar el programa grabado el
PIC o para una fcil depuracin del programa en proceso
de desarrollo.

El len
guaje
nativo
en el
de est
caso d
os mic
e la f
Pero e
rocont
amilia
l ASM
rolado

16F s
es un
res es
hardwa
olo po
lengua
el ASM
re que
see 35
j
e
, y
q
ue est
del pr
instru
cin q
a much
ograma
ccione
ue per
o
d
o
s.
m
r
m
s cer
, y gr
ite in
un mic
ca del
acias
corpor
rocont
a
a
r
l
r
a
cada v
olador
miniat
han su
ez ms
sin au
urizargido
memori
mentar
compil
ellos
a dent
p
a
rctic
dores
se enc
ro de
amente
de len
uentra
guajes
su cos
n vari
t
d
o,
e
os dia
alto n
lectos
ivel.
BASIC
E
n
tre
y C. E
l BASI
C

Pgina 5

EL FUTURO , TU LO CREAS.

EL FUTURO , TU LO CREAS.

PROTON IDE

LCD GRAFICO
Ttulo secundario
Una de las mejores formas de presentar informacin es sin

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 instrucciones 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 alimentacin 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 disposicin de sus pines es la siguiente

Pgina 6

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 funcionalidad el display LCD le da un toque de elegancia y versatilidad a nuestros proyectos.
En PROTON IDE es muy simple crear un programa para mane-

jar este dispositivo, con unas cuantas instrucciones tendremos lista la programacin para enviar informacin al
display lcd,entre los diversos formatos de estas pantallas se destaca el uso muy frecuente de los display conformato 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.

Pgina 31

microcontrolador

microcontrolador
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 de ahora en ms. 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 alimentacin. El 14 ir conectado a 5V
Como habrn notado, muchos de los pines tienen ms de una descripcin. 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 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 necesario 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

Pgina 30

Pgina 7

EL FUTURO , TU LO CREAS.

EL FUTURO , TU LO CREAS.

COMPONENTES

ACTIVIDADES

Pgina 8

Pgina 29

microcontrolador

EL FUTURO ,TU LO CREAS.

COMPONENTES

Pgina 28

Pgina 9

EL FUTURO , TU LO CREAS.

EL FUTURO , TU LO CREAS.

APLICACIONES CON uMICRO

ACTIVIDADES

La nica limitante de los Microcontroladores es su imagina-

SI UD PUSO ATENCION, ESTA CAPACITADO PARA DESARROLLAR LAS


SIGUIENTES ACTIVIDADES, CONFIGURE PARA HEX, BIN Y DEC.
PROGRAME , SIMULE Y ESQUEMATICE

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 algunos ejemplos de reas de aplicaciones:

Electrnica Industrial (Automatizaciones)


Comunicaciones e interfase con otros equipos (RS-232)

1. DESARROLLE UN SISTEMA PROGRAMADO QUE ACTIVE 8


LED EN EL PUERTO C DEL MICROCONTROLADOR 16F870,
CON UNA PAUSA DE Segundo EN FORMA INFINITA, CADA 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.

Interfase con otros Microcontroladores


Equipos de Mediciones
Equipos de Diagnsticos
Equipos de Adquisicin de Datos

3. DESARROLLE UN PENDULO INFINITO CON LOS PUERTOS


B Y C, CON PAUSAS DE 100 mseg.
CON EFECTO SEGUIDOR DE POSICION, los led se activaran, dejndo en posicin otro led.

Robtica (Servo mecanismos)


Proyectos musicales
Proyectos de Fsica

4. DESARROLLE UN PENDULO INFINITO CON LOS PUERTOS


B Y C,SOLO SE MUEVE UN LED APAGADO.

Proyectos donde se requiera automatizar procesos artsticos


Programacin de otros microcontroladores
Interfase con otros dispositivos de lgica TTL:

1. Teclado

DEC

2. Pantallas LCD
3. Protocolo de comunicacin: RS232, I2, SPI
4. Sensores
5. Memorias

$BIN

$HEX

6. Real Time Clock (RTC)


7. A/D, D/A, Potencimetros Digitales

Pgina 10

Pgina 27

microcontrolador

EL FUTURO , TU LO CREAS.

APLICACIONES
Smbolos y grficos
Un diagrama de flujo se construye con unos smbolos
grficos especiales que representan acciones, funciones, y equipamiento usado para lograr un resultado
especfico.

$HEX

U1
9
10
1
2
3
4
5
6
7

OSC1/CLKIN
OSC2/CLKOUT
MCLR/Vpp/THV

RB0/INT
RB1
RB2
RB3/PGM
RB4
RB5
RB6/PGC
RB7/PGD

RA0/AN0
RA1/AN1
RA2/AN2/VREFRA3/AN3/VREF+
RA4/T0CKI
RA5/AN4
RC0/T1OSO/T1CKI
RC1/T1OSI
RC2/CCP1
RC3
RC4
RC5
RC6/TX/CK
RC7/RX/DT

21
22
23
24
25
26
27
28
11
12
13
14
15
16
17
18

PIC16F870

D1

LED

$BIN

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.

Pgina 26

Pgina 11

microcontrolador

EL FUTURO , TU LO CREAS.

MI PRIMER PROGRAMA
USAREMOS CODIGOS DISTINTOS PARA EL MISMO EFECTO ANTERIOR.

6-ACTIVEMOS UN LED, cambiando de puerto, CODIGO HEXA


Device 16F870
Xtal = 20
TRISC=$0
PORTC=$0
E:
PORTC.5=$1
DelayMS 50
PORTC.5=$0
DelayMS 50
Goto E

'microcontrolador
'velocidad
' DECLARO PUERTO C SALIDA
' ASEGURO EL PUERTO C LOW
'ETIQUETA
'ENVIO UN NIVEL ALTO AL PIN 5
' EL LED SE MANTIENE ACTIVO POR 50mSEG
'ENVIO UN NIVEL BAJO AL PIN 5
' EL LED SE MANTIENE APAGADO POR 50mSEG
' IR AL COMIENZO DEL PROGRAMA

7-ACTIVEMOS UN LED, cambiando de puerto, CODIGO BIN


Device 16F870
Xtal = 20
TRISC=%00000000
PORTC=%00000000
E:
PORTC=%00100000
DelayMS 50
PORTC=%00000000
DelayMS 50
Goto E

'microcontrolador
'velocidad
' DECLARO PUERTO C SALIDA
' ASEGURO EL PUERTO C LOW
'ETIQUETA
'ENVIO UN NIVEL ALTO AL PIN 5
' EL LED SE MANTIENE ACTIVO POR 50mSEG
'ENVIO UN NIVEL BAJO AL PIN 5
' EL LED SE MANTIENE APAGADO POR 50mSEG
' IR AL COMIENZO DEL PROGRAMA

8-ACTIVEMOS UN LED, cambiando, CODIGOS DEC/HEX/BIN


Device 16F870
Xtal = 20
TRISC=%00000000
PORTC=$0
E:
PORTC.5=1
DelayMS 50
PORTC=%0
DelayMS 50
Goto E

Pgina 12

Pgina 25

'microcontrolador
'velocidad
' DECLARO PUERTO C SALIDA
' ASEGURO EL PUERTO C LOW
'ETIQUETA
'ENVIO UN NIVEL ALTO AL PIN 5
' EL LED SE MANTIENE ACTIVO POR 50mSEG
'ENVIO UN NIVEL BAJO AL PIN 5
' EL LED SE MANTIENE APAGADO POR 50mSEG
' IR AL COMIENZO DEL PROGRAMA

microcontrolador

EL FUTURO , TU LO CREAS.

CODIGOS
Dec

U1
9
10
1
2
3
4
5
6
7

OSC1/CLKIN
OSC2/CLKOUT
MCLR/Vpp/THV

RB0/INT
RB1
RB2
RB3/PGM
RB4
RB5
RB6/PGC
RB7/PGD

RA0/AN0
RA1/AN1
RA2/AN2/VREFRA3/AN3/VREF+
RA4/T0CKI
RA5/AN4
RC0/T1OSO/T1CKI
RC1/T1OSI
RC2/CCP1
RC3
RC4
RC5
RC6/TX/CK
RC7/RX/DT

21
22
23
24
25
26
27
28

D1

LED

PORTB.5

11
12
13
14
15
16
17
18

PIC16F870

U1
9
10
1
2
3
4
5
6
7

OSC1/CLKIN
OSC2/CLKOUT
MCLR/Vpp/THV

RB0/INT
RB1
RB2
RB3/PGM
RB4
RB5
RB6/PGC
RB7/PGD

RA0/AN0
RA1/AN1
RA2/AN2/VREFRA3/AN3/VREF+
RA4/T0CKI
RA5/AN4
RC0/T1OSO/T1CKI
RC1/T1OSI
RC2/CCP1
RC3
RC4
RC5
RC6/TX/CK
RC7/RX/DT

21
22
23
24
25
26
27
28
11
12
13
14
15
16
17
18

D1

PORTC.0

LED

PIC16F870

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.

Pgina 24

Hex

Oct

Bin

Dec

Hex

Oct

Bin

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

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

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

Dec

Hex

Oct

Bin

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

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

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

Dec

Hex

Oct

Bin

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

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

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

Pgina 13

microcontrolador

EL FUTURO , TU LO CREAS.

Dec

Hex

Oct

Bin

Dec

Hex

Oct

Bin

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

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

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

Dec

Hex

Oct

Bin

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

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

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

PROTON IDE SOPORTA LOS


DIFERENTES CODIGOS,
HEXADECIMAL, DECIMAL, Y
BINARIO

Pgina 14

MI PRIMER PROGRAMA

El proceso se desarrolla en diferentes fases sin comprobar que


el objetivo se ha alcanzado satisfactoriamente.
4-ACTIVEMOS UN LED, cambiando el pin
Device 16F870
Xtal = 20
TRISB=0
PORTB=0
E:
PORTB.5=1
DelayMS 100
PORTB.5=0
DelayMS 100
Goto E

'microcontrolador
'velocidad
' DECLARO PUERTO B SALIDA
' ASEGURO EL PUERTO B LOW
'ETIQUETA
'ENVIO UN NIVEL ALTO AL PIN 5
' EL LED SE MANTIENE ACTIVO POR 100mSEG
'ENVIO UN NIVEL BAJO AL PIN 5
' EL LED SE MANTIENE APAGADO POR 100mSEG
' IR AL COMIENZO DEL PROGRAMA

5-ACTIVEMOS UN LED, cambiando de puerto


Device 16F870
Xtal = 20
TRISC=0
PORTC=0
E:
PORTC.0=1
DelayMS 50
PORTC.0=0
DelayMS 50
Goto E

Pgina 23

'microcontrolador
'velocidad
' DECLARO PUERTO C SALIDA
' ASEGURO EL PUERTO C LOW
'ETIQUETA
'ENVIO UN NIVEL ALTO AL PIN 5
' EL LED SE MANTIENE ACTIVO POR 50mSEG
'ENVIO UN NIVEL BAJO AL PIN 5
' EL LED SE MANTIENE APAGADO POR 50mSEG
' IR AL COMIENZO DEL PROGRAMA

microcontrolador

EL FUTURO , TU LO CREAS.

CONFIGURACION SET/UP

ACTIVANDO

CONFIGURAR MICROCONTROLADOR
Device = 16F870
Device = 16F873A
Device = 16F877A
Device = 18F225

D1
U1
9
10
1
2
3
4
5
6
7

OSC1/CLKIN
OSC2/CLKOUT
MCLR/Vpp/THV

RB0/INT
RB1
RB2
RB3/PGM
RB4
RB5
RB6/PGC
RB7/PGD

RA0/AN0
RA1/AN1
RA2/AN2/VREFRA3/AN3/VREF+
RA4/T0CKI
RA5/AN4
RC0/T1OSO/T1CKI
RC1/T1OSI
RC2/CCP1
RC3
RC4
RC5
RC6/TX/CK
RC7/RX/DT

21
22
23
24
25
26
27
28
11
12
13
14
15
16
17
18

CONFIGURAR VELOCIDAD DEL MICRO EN Mhz


Xtal
Xtal
Xtal
Xtal

LED

4
10
20
40

CONFIGURAR PINES DIGITALES

DELAYMS

All_Digital= true

' PARA PUERTOS A Y E

Configurar una entrada analgica


Declare ADIN_RES
Declare ADIN_TAD
Declare ADIN_STIME
= %10000000
anlogo

10'resolucin
2'CLK opcion are 0, 1, 2, 3 (0-2 ciclos)
100 'tiempo de muestreo
' Setup Del registro ADCON1, AN1 / RA1 es

PIC16F870

CONFIGURAR UNA ENTRADA


Input PORTC.3
TRISA=1
TRISA.0=1
TRISA=%11111111
TRISA=$FF
TRISA=255

EL MICROCONTROLADOR.
EL CIRCUITO ES EL MISMO QUE EL ANTERIOR, PERO ESTAMOS
VARIANDO EL USO DE LA ETIQUETA, Y LOS TIEMPOS.

'declaro
'declaro
'declaro
'declaro
'declaro
'declaro

el
el
el
el
el
el

puerto
puerto
puerto
puerto
puerto
puerto

C
A
A
A
A
A

pin.3 es entrada
es entrada pero solo el pin.0
es entrada pero solo el pin.0
es entrada
es entrada
es entrada

el
el
el
el
el

puerto
puerto
puerto
puerto
puerto

C
A
A
A
A

pin.7 es salida
es salida
es salida pero solo el pin.0
es salida
es salida

CONFIGURAR UNA SALIDA


Output PORTC.7
TRISA=0
TRISA.0=0
TRISA=%00000000
TRISA=$0

Pgina 22
Pgina 15

'declaro
'declaro
'declaro
'declaro
'declaro

microcontrolador

EL FUTURO , TU LO CREAS.

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

MI PRIMER PROGRAMA

ACTIVAR PUERTO
High PIN
Low PIN
Low PORTB
High PORTB
PORTB=0
PORTB.0=0
PORTB=%00000000
PORTB=1
PORTB.0=1
PORTB=7
PORTB=$F
PORTB=%11111111

'el
'el
'el
'el
'el
'el
'el
'el
'el
'el

puerto
puerto
puerto
puerto
puerto
puerto
puerto
puerto
puerto
puerto

b
b
b
b
b
b
b
b
b
b

esta en nivel bajo (apagado)


esta en nivel ALTO (ACTIVO)
esta en nivel bajo (apagado)
solo el pin.0 con nivel bajo
esta con nivel bajo
solo el pin.0 con nivel alto (activado)
solo el pin.0 con nivel alto
reproduce el dato 00000111 dec
reproduce el dato 00001111 hex
esta con nivel alto
bin

ALIAS PARA PERIFERICOS


Symbol
Symbol
Symbol
Symbol

MOTOR
SW
SW4
SEN

=
=
=
=

PORTA.1
PORTA.2
PORTA.4
PORTE.0

motor conectado en el puerto A pin.1


pulsador conectado en el puerto A pin.2
pulsador conectado en el puerto A pin.4
SENSOR conectado en el puerto E pin.0

CONFIGURAR MEMORIA
BUS I2C ------SCL_Pin = PORTA.7
SDA_Pin = PORTA.6
CONFIGURAR

El proceso se desarrolla en diferentes fases sin comprobar que


el objetivo se ha alcanzado satisfactoriamente.
2-ACTIVEMOS UN LED, destello infinito
Device 16F870
Xtal = 20
TRISB=0
PORTB=0
E:
PORTB.0=1
DelayMS 1000
PORTB.0=0
DelayMS 1000
GoTo E

3-ACTIVEMOS UN LED, alterando la pausa

VARIABLES

Device 16F870
Xtal = 20
TRISB=0
PORTB=0
E:
PORTB.0=1
DelayMS 50
PORTB.0=0
DelayMS 50
Goto E

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

'microcontrolador
'velocidad
' DECLARO PUERTO B SALIDA
' ASEGURO EL PUERTO B LOW
'ETIQUETA
'ENVIO UN NIVEL ALTO AL PIN 0
' EL LED SE MANTIENE ACTIVO POR 1SEG
'ENVIO UN NIVEL BAJO AL PIN 0
' EL LED SE MANTIENE APAGADO POR 1SEG
'IR A ETIQUETA

' ABILITA PORTB pull-ups

Pgina 16

Pgina 21

'microcontrolador
'velocidad
' DECLARO PUERTO B SALIDA
' ASEGURO EL PUERTO B LOW
'ETIQUETA
'ENVIO UN NIVEL ALTO AL PIN 0
' EL LED SE MANTIENE ACTIVO POR 50mSEG
'ENVIO UN NIVEL BAJO AL PIN 0
' EL LED SE MANTIENE APAGADO POR 50mSEG
' IR AL COMIENZO DEL PROGRAMA

microcontrolador

EL FUTURO , TU LO CREAS.

CONFIGURACION SET/UP

ACTIVANDO

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

D1
U1
9
10
1
2
3
4
5
6
7

OSC1/CLKIN
OSC2/CLKOUT
MCLR/Vpp/THV

RB0/INT
RB1
RB2
RB3/PGM
RB4
RB5
RB6/PGC
RB7/PGD

RA0/AN0
RA1/AN1
RA2/AN2/VREFRA3/AN3/VREF+
RA4/T0CKI
RA5/AN4
RC0/T1OSO/T1CKI
RC1/T1OSI
RC2/CCP1
RC3
RC4
RC5
RC6/TX/CK
RC7/RX/DT

21
22
23
24
25
26
27
28

CONFIGURAR una constante


LED

Dim Mouse as 1
Dim Mice as Mouse * 400
Dim Mosue_PI as Mouse + 2.14

11
12
13
14
15
16
17
18

PIC16F870

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.

Pgina 20
Pgina 17

microcontrolador

EL FUTURO , TU LO CREAS.

Descripcin de programa tpico ...ejemplo


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.

Device
{
Declares
}
{
Incluir archivos
}
{
Constantes y Variables}
GoTo Main
{
Subrutinas
}
{
Main:
Cdigo del programa
principal

MI PRIMER PROGRAMA

El proceso se desarrolla en diferentes fases 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 sistema no puede rectificar automticamente. Esto se denomina 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

Pgina 18

Pgina 19

You might also like