Académique Documents
Professionnel Documents
Culture Documents
Carrera
Electrnica
Materia
Microcontroladores
No Prctica
Prctica # 1
Definicin de pines en el Pic C
JONNY GARCA
Objetivo
Crear un programa en el que se coloquen nombres a cada uno de los pines
o en su defecto se coloquen nombres a los puertos para realizar la programacin
de manera que el cdigo se vuelva ms simple de procesar, utilizando el
encabezado (#define) en el Pic 18F4550.
Marco Terico
Definicin de funcin
El formato de funcin es como sigue:
[Clasifica] ID Vista opcional
[Tipo especfico] ID Cero o ms comas separadas (Ver tipos de datos).
[stmt] Cero o ms puntos y comas separados
Void
Type-specifier
#separate
#inline
#int_..
PRCTICA DE LABORATORIO
JONNY GARCA
Ejemplo:
void lcd_putc(char c ) {
...
}
lcd_putc ("Hi There.");
#define
Sintaxis
#define id text
or
# define id(x,y) text
PRCTICA DE LABORATORIO
JONNY GARCA
Propsito
Ejemplo:
#define BITS 8
a=a+BITS; //same as
PRCTICA DE LABORATORIO
a=a+8;
JONNY GARCA
#define hi(x)
(x<<4)
a=hi(a);
//same as a=(a<<4);
#define isequal(a,b)
(primary_##a[b]==backup_##a[b])
// usage iseaqual(names,5) is the same as
// (primary_names[5]==backup_names[5])
#define str(s) #s
#define part(device) #include str(device##.h)
// usage part(16F887) is the same as
// #include "16F887.h"
#define DBG(...)
fprintf(debug,__VA_ARGS__)
Material utilizado
Desarrollo
PRCTICA DE LABORATORIO
JONNY GARCA
led_verde
led_amarillo
led_rojo
push_button
pin_b2
pin_b3
pin_b4
pin_a4
light_one_led(int led)
{
output_high(led_verde);
output_high(led_amarillo);
output_high(led_rojo);
switch(led)
{
case 0: output_low(led_verde);
break;
case 1: output_low(led_amarillo); break;
case 2: output_low(led_rojo);
break;
}
}
wait_for_one_press()
{
while(input(push_button));
while(!input(push_button));
}
void main()
{
while(true)
{
light_one_led(0);
PRCTICA DE LABORATORIO
JONNY GARCA
wait_for_one_press();
light_one_led(1);
wait_for_one_press();
light_one_led(2);
wait_for_one_press();
}
}
R2
1k
U1
X1
1
2
CRYSTAL
D1
D2
2
3
4
5
6
7
14
13
33
34
35
36
37
38
39
40
RA0/AN0
RC0/T1OSO/T1CKI
RA1/AN1
RC1/T1OSI/CCP2/UOE
RA2/AN2/VREF-/CVREF
RC2/CCP1/P1A
RA3/AN3/VREF+
RC4/D-/VM
RA4/T0CKI/C1OUT/RCV
RC5/D+/VP
RA5/AN4/SS/LVDIN/C2OUT
RC6/TX/CK
RA6/OSC2/CLKO
RC7/RX/DT/SDO
OSC1/CLKI
RB0/AN12/INT0/FLT0/SDI/SDA
RD0/SPP0
RB1/AN10/INT1/SCK/SCL
RD1/SPP1
RB2/AN8/INT2/VMO
RD2/SPP2
RB3/AN9/CCP2/VPO
RD3/SPP3
RB4/AN11/KBI0/CSSPP
RD4/SPP4
RB5/KBI1/PGM
RD5/SPP5/P1B
RB6/KBI2/PGC
RD6/SPP6/P1C
RB7/KBI3/PGD
RD7/SPP7/P1D
D3
LED-YELLOW
LED-YELLOW
LED-YELLOW
18
R3
R4
220
220
220
220
VUSB
PIC18F4550
RE0/AN5/CK1SPP
RE1/AN6/CK2SPP
RE2/AN7/OESPP
RE3/MCLR/VPP
15
16
17
23
24
25
26
19
20
21
22
27
28
29
30
8
9
10
1
R1
1K
PRCTICA DE LABORATORIO
JONNY GARCA
Observaciones
La funcin #define te facilita la programacin.
Conclusiones
La funcin #define es de gran ayuda para realizar una tarea especfica y
despus llamarla en cualquier momento para facilitar la programacin
PRCTICA DE LABORATORIO
JONNY GARCA
Bibliografa
CCS C Compiler Manual, CCS Manual , # define pag. 86, Funcition definition
pag 43, Custom Computer Service, Inc. 2015
PRCTICA DE LABORATORIO
JONNY GARCA