Está en la página 1de 4

Reporte de práctica 1.

1 Grupo:
357X

Carga de un programa en el microcontrolador PIC.

Integrantes del equipo:


Gabriel Casarrubias Guerrero
Gabriel Casarrubias Guerrero
Gabriel Casarrubias Guerrero

Objetivo de la práctica:
Aprender las conexiones mínimas de funcionamiento del microcontrolador, así como las
conexiones necesarias para la programación de las aplicaciones sobre el circuito integrado.
Materiales:
 1 x PIC16F188XX
 1 x Resistencia 10 KΩ
 1 x Resistencia 330 Ω
 2 x Push Button
 1 x Capacitor 0.1 µF
 1 x LED

Procedimiento realizado:
Descripción de lo que hicieron en forma de lista.

 Primero hicimos esto


 Luego esto
 Incluir imágenes si es necesario

Diagrama esquemático:
Aquí van a describir de manera breve su esquemático y agregarlo como imagen.

También hay que poner evidencia de su circuito armado y describir

Diagrama de flujo de funcionamiento:


Describir el funcionamiento y el diagrama de flujo utilizado para programar su práctica

Resultados:
Describir sus resultados y agregar imágenes

Observaciones:
Inconvenientes o puntos que no habían considerado para realizar la práctica
Conclusiones:
Las conclusiones son con respecto al cumplimiento de los objetivos

Referencias:
Referencias en formato APA

Anexar el código realizado no importa lo largo que sea.


/* File: ma8in.c
* Author: Gabriel Casarrubias*/
#include <xc.h>
#include "config.h"//archivo con bits de configuraci󮍊
#define _XTAL_FREQ 32000000 //Definici󮠰ara poder usar retardos

//protipo de funciones
void nada(void);
void Dar_Cambio(void);
void Dar_Lata(void);

//estructura para FSM


struct state{
void (*FuntionPt)(void);//variable de funci󮍊 unsigned int Time;//Tiempo
unsigned char next[3];//posibles Estados siguientes
};
typedef struct state Styp;
//estados
#define P0 0
#define E5 1
#define P5 2
#define E10 3
#define P10 4
#define E15 5
#define P15 6
#define E20 7
#define P20 8

//Definimos FSM
Styp FSM[]={
{&nada,20,{P0,E5,E10}},//P0
{&nada,20,{P5,E5,E10}},//E5
{&nada,20,{P5,E10,E15}},//P5
{&nada,20,{P10,E10,E10}},//E10
{&nada,20,{P10,E15,E20}},//P10
{&nada,20,{P15,E15,E15}},//E15
{&Dar_Lata,20,{P0,P0,P0}},//P15
{&nada,20,{P20,E20,E20}},//E20
{&Dar_Cambio,20,{P15,P15,P15}}};//P20

unsigned char actual;//guarda el estado actual


unsigned char input;//guarda la entrada

//Funci󮠰ara configurar el oscilador y puertos del microcontrolador


void Init_FSM(void){
//oscilador 32MHz
OSCCONbits.IRCF=0b1110;
OSCCONbits.SCS=0;

//Puertos
ANSELA=0;//Puerto A como digital
TRISA=255;//Puerto A como entradas
TRISC=0;//Puerto C como salidas
ANSELB=0;
TRISB=0;
LATC=3;
}

void main(void) {
int x;
Init_FSM();
//estado inicial
actual=P0;
while(1){
//Motor de la maquina de estados
(FSM[actual].FuntionPt)();
for(x=0;x<FSM[actual].Time;x++)
__delay_ms(1);
input=PORTA;
actual=FSM[actual].next[input];
LATB=actual;
}

return;
}

void Dar_Lata(void){
LATC=1;//0b00000001
__delay_ms(2000);
LATC=3;//0b00000011
}
void Dar_Cambio(void){
LATC=2;//0b00000010
__delay_ms(2000);
LATC=3;
}

void nada(void){
}

También podría gustarte