Vous êtes sur la page 1sur 9

APUNTES

CURSO PROGRAMACIÓN DE
MICROCONTROLADORES

CONEXIÓN BÁSICA DE UN MICROCONTROLADOR PIC 18F4550. .................................................. 2


PROYECTO 1. ENCENDIDO DE UN LED. ......................................................................................... 2
PROYECTO 2. SECUENCIA DE LEDS. ............................................................................................... 4
PROYECTO 3. MOTOR DC. ............................................................................................................. 6
PROYECTO 4. SERVOMOTOR. ........................................................................................................ 7

1
CONEXIÓN BÁSICA DE UN
MICROCONTROLADOR PIC 18F4550.

PROYECTO 1. ENCENDIDO DE UN LED.

//PROGRAMA
#include <xc.h>

2
#include <p18f4550.h>
#define _XTAL_FREQ 4000000
#include <plib/delays.h>
#include "retardos.h"
#include "fusibles.h"

void main(void) {
TRISDbits.RD0=0; //BITS PUERTO D COMO SALIDA
while(1)
{
LATDbits.LATD0=1; // ENCENDER UN LED
delay100ms(1000); // RETARDO 100ms
LATDbits.LATD0=0;
delay100ms(1000);
}
}

3
PROYECTO 2. SECUENCIA DE LEDS.

// PROGRAMA
#include <xc.h>
#include <p18f4550.h>
#define _XTAL_FREQ 4000000
#include <plib/delays.h>
#include "retardos.h"
#include "fusibles.h"

void main(void) {
TRISDbits.RD0=0;//BITS PUERTO D COMO SALIDA
TRISDbits.RD1=0;
TRISDbits.RD2=0;
while(1)

4
{
LATDbits.LATD0=1; // ENCENDER UN LED
delay100ms(300); // RETARDO 100ms
LATDbits.LATD0=0;
delay100ms(300);
LATDbits.LATD1=1; // ENCENDER UN LED
delay100ms(300); // RETARDO 100ms
LATDbits.LATD1=0;
delay100ms(300);
LATDbits.LATD2=1; // ENCENDER UN LED
delay100ms(300); // RETARDO 100ms
LATDbits.LATD2=0;
delay100ms(300);
}
}

5
PROYECTO 3. MOTOR DC.

#include <xc.h>
#include <p18f4550.h>
#define _XTAL_FREQ 4000000
#include <plib/delays.h>
#include "retardos.h"
#include "fusibles.h"

void main(void) {
TRISDbits.RD0=0;//BITS PUERTO D COMO SALIDA
TRISDbits.RD1=0;
while(1)
{
LATDbits.LATD0=1; // GIRO HORARIO
6
LATDbits.LATD1=0;
delay100ms(3000);
LATDbits.LATD0=0; // GIRO HORARIO
LATDbits.LATD1=0; // ENCENDER UN LED
delay100ms(2000); // RETARDO 100ms
LATDbits.LATD0=0;
LATDbits.LATD1=1;
delay100ms(3000);
}
}

PROYECTO 4. SERVOMOTOR.

//PROGRAMA

7
#include <xc.h>
#include <p18f4550.h>
#define _XTAL_FREQ 4000000
#include <plib/delays.h>
#include "retardos.h"
#include "fusibles.h"

void main(void) {
TRISDbits.RD5=0;//BITS PUERTO D COMO SALIDA

int i;
int j;

while(1)
{
for(j=1;j<=3;j++)
{
for(i=1;i<=50;i++)
{
LATDbits.LATD5=1; // GIRO 90 GRADOS
delay1ms(2);

8
LATDbits.LATD5=0;
delay1ms(18);
}
}

for(j=1;j<=3;j++)
{
for(i=1;i<=50;i++)
{
LATDbits.LATD5=1; // GIRO 90 GRADOS
delay1ms(1);
LATDbits.LATD5=0;
delay1ms(19);
}
}
}
}