Documentos de Académico
Documentos de Profesional
Documentos de Cultura
MPLAB
http://clrueda.docentes.upbbga.edu.co
MPLAB
Se recomienda el
uso de una carpeta
en la raz del disco y
no en mis
documentos
http://clrueda.docentes.upbbga.edu.co
12/09/2008
MPLAB
http://clrueda.docentes.upbbga.edu.co
MPLAB
http://clrueda.docentes.upbbga.edu.co
12/09/2008
MPLAB
http://clrueda.docentes.upbbga.edu.co
http://clrueda.docentes.upbbga.edu.co
12/09/2008
Guardar como
Se debe guardar
como *.C
http://clrueda.docentes.upbbga.edu.co
Agregar el proyecto
http://clrueda.docentes.upbbga.edu.co
12/09/2008
Programacin
http://clrueda.docentes.upbbga.edu.co
Libreras Incorporadas
#use delay (clock=4000000)
Indica la frecuencia del procesador
procesador, esto se coloca
en Hz, y al usar esta se puede usar las funciones
delay_ms() y delay_us ( )
Tambin se usa para reiniciar el WDT en el retardo
http://clrueda.docentes.upbbga.edu.co
12/09/2008
#use delay
#use delay (clock=speed)
#use delay (clock=speed, restart_wdt)
#use delay (clock=speed, type)
#use delay (clock=speed
(clock=speed, type=speed)
#use delay (type=speed)
puede
d usarse con
comas. Tambin soporta las denominaciones M
MHZ, K, KHZ
http://clrueda.docentes.upbbga.edu.co
#use delay
#use delay (clock=speed)
#use delay (clock=speed, restart_wdt)
#use delay (clock=speed, type)
#use delay (clock=speed
(clock=speed, type=speed)
#use delay (type=speed)
http://clrueda.docentes.upbbga.edu.co
12/09/2008
Ejemplos
Para 20 MHZ
http://clrueda.docentes.upbbga.edu.co
Programacin
http://clrueda.docentes.upbbga.edu.co
12/09/2008
Programacin
Recordar siempre ;
http://clrueda.docentes.upbbga.edu.co
Programacin
Acciones u
O
Operaciones
i
Do
{
..
}While;
Condicin se Cumple
Si TRUE
No FALSE
http://clrueda.docentes.upbbga.edu.co
12/09/2008
Programacin
Trabajo sobre los Bits individualmente
como ya se haban configurado anteriormente
de salida.
Si es => output_low (PIN_XX);
coloca a 0 Cualquiera de los bits
configurados como salida
Si es => output_hign (PIN_XX);
coloca a 1 Cualquiera de los bits
configurados como salida
http://clrueda.docentes.upbbga.edu.co
Salida en un Puerto
output_bit (pin, value)
output_X(value)
t t hi h (pin)
( i )
output_high
output_low (pin)
output_toggle(pin)
http://clrueda.docentes.upbbga.edu.co
12/09/2008
Salida en un Puerto
http://clrueda.docentes.upbbga.edu.co
Salida en un Puerto
output_X(value)
output_toggle(pin)
output_toggle(PIN_B4);
http://clrueda.docentes.upbbga.edu.co
10
12/09/2008
Programacin
http://clrueda.docentes.upbbga.edu.co
delay_ms (time)
delay_us (time)
http://clrueda.docentes.upbbga.edu.co
11
12/09/2008
http://clrueda.docentes.upbbga.edu.co
http://clrueda.docentes.upbbga.edu.co
12
12/09/2008
Requerimiento, Definicin de
parmetros, variables etc.
Definicin del
Microcontrolador a Usar
http://clrueda.docentes.upbbga.edu.co
Programacin en C, con
libreras, generacin de
proyecto, cdigo etc.
http://clrueda.docentes.upbbga.edu.co
13
12/09/2008
2
Simulacin En el MPLAB, con
eso se Logra localizar
cualquier error de Lgica
3
4
http://clrueda.docentes.upbbga.edu.co
2
Implementacin en el Circuito
o en Simulador de Circuitos
http://clrueda.docentes.upbbga.edu.co
4
Claudia Leonor Rueda Guzmn
14
12/09/2008
Simulacin
http://clrueda.docentes.upbbga.edu.co
http://clrueda.docentes.upbbga.edu.co
15
12/09/2008
Ensamblar
F10
F6
Reset
F7
F8
F9
F5
Detener ejecucin
http://clrueda.docentes.upbbga.edu.co
Diseo de la Tarjeta
Entradasdigitales
Reset
RA11
RF1
RF6
DSPIC
Entradas Anlogas
Rb0
Rb1
Rb2
Rb3
Rb4
Rb7
Rb6
Rb5
30F4013
RF2 RX
RF3 TX
LCD2x16
Db4 = RD8
Db5 = RF0
Db6 = RD1
Db7 = RD0
RS = RD3
E = RD2
RW = GND
MAX232
RF4 RX2
RF5 TX2
Rb8
Rc13
Rc14
http://clrueda.docentes.upbbga.edu.co
LEDS
5V
GND
Rb9
Rb10
Rb11
Rb12
GND
16
12/09/2008
Circuito
I/O AN0
I/O AN1
CONECTOR
U1
I/O AN2
I/O AN3
CONECTOR
VDD
VDD
VDD
Vss
Vss
VSS
1k
INT0/RA11
SW1
R1
RESET
CRY STAL
4MHZ
1
13
14
39
40
C1RX/RF0
C1TX/RF1
U1RX/SDI1/SDA/RF2
EMUD3/U1TX/SDO1/SCL/RF3
MCLR/Vpp
U2RX/CN17/RF4
OSC1/CLKIN
U2RX/SDI1/SDA/RF5
OSC2/CLKOUT/RC15
EMUC3/SCK1/RF6
EMUC2/0C1/RD0
EMUD2/OC2/RD1
OC3/RD2
AVSS
OC4/RD3
AVDD
IC1/INT1/RD8
IC2/INT2/RD9
24
34
33
22
19
23
18
F3
F4
C1
C2
C3
1K x3
330 x 4
5V
17
30
29
26
25
28
27
con2
1Kx3
LCD 2 x16
SW2
1
2
3
Con1
6
5
4
SW DIP-3
2
10K
5V
EMUD1/SOSCI/T2CK/U1ATX/CN1/RC13
EMUC1/SOSCO/T1CK/U1ARX/CNO/RC14
21
32
11
12
31
20
5V
2
3
4
5
6
7
8
9
10
38
37
36
35
F2
D7 - 14
D6 - 13
D5 - 12
D4 - 11
D3 - 10
D2 - 9
D1 - 8
D0 - 7
E-6
RW - 5
RS - 4
V0-3
VDD-2
VSS-1
AN0/VRF+/CN2/RB0
AN1/VRF-/CN3/RB1
AN2/SS1/LVDIN/CN4/RB2
AN3/CN5/RB3
AN4/IC7/CN6/RB4
AN5/IC8/CN7/RB5
PGC/EMUC/AN6/0CFA/RB6
PGD/EMUD/AN7/RB7
AN8/RB8
AN9/CSCK/RB9
AN10/CSDI/RB10
AN11/CSDO/RB11
AN12/COFS/RB12
F1
15
16
con2
Al PIC USB TX
AL PIC USB RX
DSPIC30F4013
CONECTOR
2
4
I/O AVSS
1
Con1
TX_en_PC pin3 db9
I/O AVDD
5V
2
4
CONECTOR
5v
5V
GND
0.1 uf
0,1uf
0.1uf
0.1uf
U2
13
8
11
10
1
3
4
5
2
6
R1IN
R2IN
T1IN
T2IN
C+
C1C2+
C2V+
VMAX232
http://clrueda.docentes.upbbga.edu.co
R1OUT
R2OUT
T1OUT
T2OUT
12
9
14
7
Title
DISEO DE ENTRENADOR DE DSPIC U.P.B.
Size
A
Date:
Document Number
Claudia Rueda Guzmn
Rev
<Rev Cod
Claudia Leonor
Rueda
Sheet
1
1
ofGuzmn
Vista de la tarjeta
http://clrueda.docentes.upbbga.edu.co
17
12/09/2008
Quemador In circuit
U1
GND
21
32
11
12
31
20
5V
AN0/VRF+/CN2/RB0
AN1/VRF-/CN3/RB1
AN2/SS1/LVDIN/CN4/RB2
AN3/CN5/RB3
AN4/IC7/CN6/RB4
AN5/IC8/CN7/RB5
PGC/EMUC/AN6/0CFA/RB6
PGD/EMUD/AN7/RB7
AN8/RB8
AN9/CSCK/RB9
AN10/CSDI/RB10
AN11/CSDO/RB11
AN12/COFS/RB12
VDD
VDD
VDD
Vss
Vss
VSS
1k
INT0/RA11
D1
SW1
1
13
14
RESET
VPP
39
40
C1RX/RF0
C1TX/RF1
U1RX/SDI1/SDA/RF2
EMUD3/U1TX/SDO1/SCL/RF3
MCLR/Vpp
U2RX/CN17/RF4
OSC1/CLKIN
U2RX/SDI1/SDA/RF5
OSC2/CLKOUT/RC15
EMUC3/SCK1/RF6
EMUC2/0C1/RD0
EMUD2/OC2/RD1
OC3/RD2
AVSS
OC4/RD3
AVDD
IC1/INT1/RD8
IC2/INT2/RD9
EMUD1/SOSCI/T2CK/U1ATX/CN1/RC13
EMUC1/SOSCO/T1CK/U1ARX/CNO/RC14
2
3
4
5
6
7
8
9
10
38
37
36
35
1k
CLOCK
DATA
1k
17
30
29
26
25
28
27
24
34
33
22
19
23
18
VPP
CLOCK
DATA
GND
Al
quemador
15
16
DSPIC30F4013
http://clrueda.docentes.upbbga.edu.co
http://clrueda.docentes.upbbga.edu.co
18
12/09/2008
Busca Driver
http://clrueda.docentes.upbbga.edu.co
http://clrueda.docentes.upbbga.edu.co
19
12/09/2008
http://clrueda.docentes.upbbga.edu.co
http://clrueda.docentes.upbbga.edu.co
20
12/09/2008
http://clrueda.docentes.upbbga.edu.co
http://clrueda.docentes.upbbga.edu.co
21
12/09/2008
WINPIC800
http://clrueda.docentes.upbbga.edu.co/winpic.rar
http://clrueda.docentes.upbbga.edu.co
http://clrueda.docentes.upbbga.edu.co
22
12/09/2008
http://clrueda.docentes.upbbga.edu.co
http://clrueda.docentes.upbbga.edu.co
23
12/09/2008
http://clrueda.docentes.upbbga.edu.co
http://clrueda.docentes.upbbga.edu.co
24
12/09/2008
http://clrueda.docentes.upbbga.edu.co
http://clrueda.docentes.upbbga.edu.co
25
12/09/2008
http://clrueda.docentes.upbbga.edu.co
Aplicacin Simple
Rotacin cada 300 ms.
Reset
DSPIC
30F4013
Rb9
Rb10
Rb11
Rb12
LEDS
http://clrueda.docentes.upbbga.edu.co
26
12/09/2008
Aplicacin Simple
Rotacin cada 300 ms.
Reset
DSPIC
30F4013
Rb9
Rb10
Rb11
Rb12
LEDS
http://clrueda.docentes.upbbga.edu.co
Aplicacin Simple
Rotacin cada 300 ms.
Reset
DSPIC
30F4013
Rb9
Rb10
Rb11
Rb12
LEDS
http://clrueda.docentes.upbbga.edu.co
27
12/09/2008
Aplicacin Simple
Rotacin cada 300 ms.
Reset
DSPIC
30F4013
Rb9
Rb10
Rb11
Rb12
LEDS
http://clrueda.docentes.upbbga.edu.co
http://clrueda.docentes.upbbga.edu.co
28
12/09/2008
Solucin
http://clrueda.docentes.upbbga.edu.co
Instrucciones de Rotacin
SOLO BYTE
http://clrueda.docentes.upbbga.edu.co
29
12/09/2008
http://clrueda.docentes.upbbga.edu.co
value = input_x()
Value= input(PIN_A0)
value = input_state(pin)
data = input_b();
level = input_state(pin_A3);
printf("level: %d",level);
if( input(PIN_A0) )
printf("A0 is now high\r\n");
http://clrueda.docentes.upbbga.edu.co
30
12/09/2008
ASIGNACION
RA11
RF1
RF6
Reset
DSPIC
30F4013
Rb9
Rb10
Rb11
Rb12
LEDS
http://clrueda.docentes.upbbga.edu.co
Funciones
http://clrueda.docentes.upbbga.edu.co
31
12/09/2008
if (expr)
{
Acciones
Acciones
}
else
else if (expr)
{
Acciones
Acciones
}
else if (expr)
{
Acciones
FALSE
EVALUACIN
Accin Si es False
}
else
{
TRUE
Acciones
}
Accin Si es true
http://clrueda.docentes.upbbga.edu.co
http://clrueda.docentes.upbbga.edu.co
32
12/09/2008
http://clrueda.docentes.upbbga.edu.co
SWITCH Case
switch (expr) {
case const1: stmt sequence;
break;
...
[default:stmt]
}
switch (datos)
{
case 0X00: output_b(0); break;
p _b(1);
( ); break;;
case 0X01 : output
case 0X02: output_b(2); break;
case 0X04: output_b(3); break;
case 0X08: output_b(4); break;
default:output_b(0); break;
}
http://clrueda.docentes.upbbga.edu.co
33
12/09/2008
Aplicacin Simple
Se tiene 3 sensores, cada uno de ellos es ptico y permite sensar la
presencia o no en una banda trasportadora de unas cajas que pasan por
ella.
Se desea mostrar en el Primer led cuando no hayy ninguna
g
caja
j en el
sistema. Los otros tres mostraran el tamao de cada una de las cajas.
Debe tomar en cuenta que la Caja No.1 es cuando se tapa uno de los 3
sensores( cualquiera de ellos). La caja tipo 2 Es cuando se tapan dos de
ellos, y la caja tipo 3 cuando se tapan los tres sensores. El tipo de caja se
mostrara en los siguientes dos leds indicando el numero 1, 2 o 3 en
binario
Se debe tener en cuenta que no hay cajas Huecas en el sistema.
S se llega a presentar este problema, el ultimo led titilara por un periodo
Si
de 200 Ms
http://clrueda.docentes.upbbga.edu.co
http://clrueda.docentes.upbbga.edu.co
34
12/09/2008
Modos de Trabajo
Modos
de trabajo
Conexion de 4
bits
http://clrueda.docentes.upbbga.edu.co
Conexion de 8
bits
http://clrueda.docentes.upbbga.edu.co
35
12/09/2008
http://clrueda.docentes.upbbga.edu.co
Conexiones
http://clrueda.docentes.upbbga.edu.co
36
12/09/2008
Diseo de la Tarjeta
Entradasdigitales
Reset
RA11
RF1
RF6
DSPIC
LCD2x16
30F4013
Db4 = RD8
Db5 = RF0
Db6 = RD1
Db7 = RD0
RS = RD3
E = RD2
RW = GND
LEDS
http://clrueda.docentes.upbbga.edu.co
LCD_INICIO
LCD_ENCIENDE
LCD_SHIFT
LCD_RETORNO
LCD_LINEA1
DATO -> WO
LCD_DATO
LCD_CLEAR
CICLO
1
http://clrueda.docentes.upbbga.edu.co
37
12/09/2008
INFORMACION
CONTROL
DATOS
http://clrueda.docentes.upbbga.edu.co
http://clrueda.docentes.upbbga.edu.co
38
12/09/2008
Librera
http://clrueda.docentes.upbbga.edu.co
Librera Configuracin
http://clrueda.docentes.upbbga.edu.co
39
12/09/2008
http://clrueda.docentes.upbbga.edu.co
http://clrueda.docentes.upbbga.edu.co
40
12/09/2008
http://clrueda.docentes.upbbga.edu.co
http://clrueda.docentes.upbbga.edu.co
41
12/09/2008
http://clrueda.docentes.upbbga.edu.co
http://clrueda.docentes.upbbga.edu.co
42
12/09/2008
http://clrueda.docentes.upbbga.edu.co
Programa
http://clrueda.docentes.upbbga.edu.co
43
12/09/2008
MATRIS
F1
F2
F3
F4
C1
C2
C3
http://clrueda.docentes.upbbga.edu.co
FUNCIONAMIENTO
1
0
F1
F2
F3
F4
RESISTOR 1K
C1
0
http://clrueda.docentes.upbbga.edu.co
C2
C3
0
Claudia Leonor Rueda Guzmn
44
12/09/2008
FUNCIONAMIENTO
0
1
F1
F2
F3
F4
RESISTOR 1K
C1
C2
C3
0
Claudia Leonor Rueda Guzmn
http://clrueda.docentes.upbbga.edu.co
FUNCIONAMIENTO
0
0
F1
F2
F3
F4
RESISTOR 1K
C1
0
http://clrueda.docentes.upbbga.edu.co
C2
C3
0
Claudia Leonor Rueda Guzmn
45
12/09/2008
FUNCIONAMIENTO
0
0
F1
F2
F3
F4
RESISTOR 1K
C1
C2
C3
0
Claudia Leonor Rueda Guzmn
http://clrueda.docentes.upbbga.edu.co
FUNCIONAMIENTO
1
0
F1
F2
F3
F4
RESISTOR 1K
C1
1
http://clrueda.docentes.upbbga.edu.co
C2
NMERO
PRESIONADO 1
C3
0
Claudia Leonor Rueda Guzmn
46
12/09/2008
FUNCIONAMIENTO
1
0
F1
F2
F3
F4
RESISTOR 1K
C1
C2
NMERO
PRESIONADO 2
C3
0
Claudia Leonor Rueda Guzmn
http://clrueda.docentes.upbbga.edu.co
FUNCIONAMIENTO
1
0
F1
F2
F3
F4
RESISTOR 1K
C1
0
http://clrueda.docentes.upbbga.edu.co
C2
NMERO
PRESIONADO 3
C3
1
Claudia Leonor Rueda Guzmn
47
12/09/2008
FUNCIONAMIENTO
1
0
F1
F2
F3
F4
RESISTOR 1K
C1
C2
C3
NMERO
PRESIONADO 4
PERO COMO SE
EST
SELECCIONADOLA
LA FILA 1
NO PASA NADA
0
Claudia Leonor Rueda Guzmn
http://clrueda.docentes.upbbga.edu.co
FUNCIONAMIENTO
0
1
F1
F2
F3
F4
RESISTOR 1K
C1
1
http://clrueda.docentes.upbbga.edu.co
C2
C3
NMERO
PRESIONADO 4
PERO COMO SE
EST
SELECCIONADOLA
LA FILA 1
NO PASA NADA
0
Claudia Leonor Rueda Guzmn
48
12/09/2008
CIRCUITO DE TRABAJO
LCD
C
http://clrueda.docentes.upbbga.edu.co
SI SE PRESIONA UN NUMERO
CUALQUIERA SE VERA
REFLEJADO
EN LCD ESE NUMERO
Rutinas Antirebote
http://clrueda.docentes.upbbga.edu.co
49
12/09/2008
http://clrueda.docentes.upbbga.edu.co
50