Logo Studenta

MIRCOCOMPUTADORAS PRACTICA PIC18F2550

¡Estudia con miles de materiales!

Vista previa del material en texto

Universidad Nacional 
Autónoma de México 
 
Facultad de Ingeniería 
 
Ingeniería en Computación 
 
Alumnos: Morelos Alquezada Mario David 
Medina Mena Annibal 
 Ríos Salazar Luis Francisco 
 Salazar Santiago Juan Carlos 
Guzmán Esquivel Raúl 
 
Grupo: 3 
 
Materia: Microcomputadoras 
 
Profesor: Arredondo Garza José Antonio de Jesús M.I. 
OBJETIVO. 
El alumno se relacionará con el microcontrolador PIC18F2550 mediante la 
programación en lenguaje C, además verificará el funcionamiento de este mediante 
una prueba con un programa y con una PCB ya armada. 
 
INTRODUCCION. 
En esta práctica verificamos el funcionamiento de la PCB ya ensamblada la cual 
contiene al microcontrolador PIC18F2550 y mediante un programa en lenguaje C 
podremos observar como encienden y apagan ciertos LEDS, todo esto se cargará 
mediante un bootloader proporcionado por el profesor, esto con el objetivo de 
verificar el correcto funcionamiento de la PCB. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
PROGRAMA. 
#include <p18f2550.h> // Header propio del PIC18F4550. 
#include <delays.h> // Header de las rutinas de retardo. 
/////////////////////////////////////// 
// FUNCIÓN PROTOTIPO DE INTERRUPCIÓN // 
/////////////////////////////////////// 
void HighPriorityISRCode(); //interrupt function prototype 
void LowPriorityISRCode(); 
extern void _startup (void); // directorio del compilador C18 
#pragma code REMAPPED_RESET_VECTOR = 0x1000 // Remapeo del 
RESET a la dirección 0x1000 
void _reset (void) 
{ _asm goto _startup _endasm 
} 
#pragma code REMAPPED_HIGH_INTERRUPT_VECTOR = 0x1008 
void Remapped_High_ISR (void) 
{ 
 _asm goto HighPriorityISRCode _endasm 
} 
#pragma code REMAPPED_LOW_INTERRUPT_VECTOR = 0x1018 
void Remapped_Low_ISR (void) 
{_asm goto LowPriorityISRCode _endasm } 
#pragma code 
 
 
void main(void) 
{ 
 ADCON1 = 0x07; // Modo Digital el Puerto B. 
 TRISBbits.TRISB0 = 0; // Pin RB0 como salida. 
 TRISBbits.TRISB1 = 0; // Pin RB1 como salida. 
 TRISBbits.TRISB2 = 0; // Pin RB2 como salida. 
 TRISBbits.TRISB3 = 0; // Pin RB3 como salida. 
 while(1) 
 { 
 PORTBbits.RB0 = 0; 
 PORTBbits.RB1 = 0; 
 PORTBbits.RB2 = 1; 
 PORTBbits.RB3 = 1; 
 Delay10KTCYx(255); 
 PORTBbits.RB0 = 1; 
 PORTBbits.RB1 = 1; 
 PORTBbits.RB2 = 0; 
 PORTBbits.RB3 = 0; 
 Delay10KTCYx(255); 
 } 
 
} 
 
 
 
//*****************************************************************// 
// El retorno de esta función será un "retfie" rápido, ya que esta // 
// sección está en un "#pragma interrupt" // 
//*****************************************************************// 
 
#pragma interrupt HighPriorityISRCode 
void HighPriorityISRCode() 
{ 
} 
 
//**********************************************************// 
// El retorno de esta función será un "retfie", ya que esta // 
// sección está en "#pragma interruplow" // 
//**********************************************************// 
 
#pragma interruptlow LowPriorityISRCode 
void LowPriorityISRCode() 
{ 
 
} 
 
 
 
 
 
 
 
 
 
 
 
 
CONCLUSIONES. 
Salazar Santiago Juan Carlos. 
En esta práctica tuvimos varios inconvenientes porque la PCB tenían algunos fallos 
además de que los primeros bootloaders no funcionan bien, pero al final con la 
versión 5.0 de la PCB proporcionada por el profesor junto con el bootloader 
logramos comprender el funcionamiento físico y lógico del PIC18F2550 además de 
sus características físicas así como el entendimiento de ciertos programas en 
lenguaje C especiales para este PIC. 
Raúl Guzmán Esquivel: 
Aunque en esta práctica tuvimos algunas complicaciones más que nada con la 
tarjeta debido a que no funcionaba de manera correcta, al final pudimos conectar 
adecuadamente los elementos de la práctica, así como el PIC. Además, aprendimos 
físicamente el funcionamiento de este microcontrolador PIC18, así como sus 
múltiples usos. Este microcontrolador fabricado por Microchip se programa con el 
entorno de desarrollo llamado MPLAB y este incluye un simulador y un 
ensamblador. 
Ríos Salazar Luis Francisco 
Con el desarrollo de los proyectos con la tarjeta el mayor inconveniente que tuvimos 
fue justamente con la tarjeta, pero a pesar de ello pudimos aprender sobre todas las 
características del PIC, así como la forma en la que esta trabaja. Sin duda todo lo 
visto durante el semestre es muy valioso ya que poder programar en una PIC 
requiere buenos conocimientos en lenguaje ensamblador y si los tienes, programar 
en lenguajes de alto nivel no sería un reto. 
Medina Mena Aníbal 
Al manejar la tarjeta, y usar los códigos de esta podemos concluir que se cumplió el 
objetivo de aprender a manejar la picf18. 
Morelos Alquezada Mario David 
El proyecto trato de cumplir plenamente el conocer la tarjeta y poder armarla dado 
que conocíamos el datasheet y basándonos en ese documento podíamos hacer una 
nueva forma de poder correr los programas conociendo el ensamblador, utilizando 
toda una metodología de uso. Lo cual se cumplió por que conocimos cómo 
funcionaba una tarjeta como se podía hacer más el uso de esta en la aplicación de 
correr el ensamblador en la tarjeta y se carga. 
 
De las cosas que más se complicaron fueron el hecho de que la tarjeta fallaba en el 
diseño y por lo tanto no se podía correr ningún programa y esto afectaba al 
funcionamiento, dado que hubo 3 tarjetas se logró que corriera más fácil este 
programa. Al final se logró hacer que todo funcionará y seguir con los demás.

Continuar navegando