Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Apuntes de Microcontroladores
Apuntes de Microcontroladores
CURSO PROGRAMACIÓN DE
MICROCONTROLADORES
1
CONEXIÓN BÁSICA DE UN
MICROCONTROLADOR PIC 18F4550.
//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);
}
}
}
}