Académique Documents
Professionnel Documents
Culture Documents
Ciudad Hidalgo
Ingeniera Mecatrnica
356G
Jose Noel Dominguez Miralrio
Juan Manuel Maldonado
Cruz Erick Villegas
Gonzales Ernesto Martnez vila
Objetivo
Aplicar la teora que se vio en clase para programar un microcontrolador que
realice tres funciones, mediante tres puch button y a continuacin simularlo con
la ayuda del software de proteus.
Desarrollo
Primero lo que se realizo fue el diseo del circuito en proteus el cual quedo as:
Despus de haber diseado el circuito lo que se hizo fue la programacin de nuestro pick en el programa de MPLAB X IDE v2.15 , creamos un nuevo proyecto
#pragma cong FCMEN = OFF // Fail-Safe Clock Monitor Enable (FailSafe Clock Monitor is disabled)
// CONFIG2
#pragma cong WRT = OFF // Flash Memory Self-Write Protection (Write
protection o )
#pragma cong PLLEN = ON // PLL Enable (4x PLL enabled)
#pragma cong STVREN = ON // Stack Overow/Underow Reset Enable
(Stack Overow or Underow will cause a Reset)
#pragma cong BORV = LO // Brown-out Reset Voltage Selection (Brownout Reset Voltage (Vbor), low trip point selected.)
#pragma cong LVP = OFF // Low-Voltage Programming Enable (Highvoltage on MCLR/VPP must be used for programming)
int main(void) {
unsigned char i, j;
unsigned char buer1[20];
//conguracion del oscilador
OSCCONbits.SCS=0;
OSCCONbits.IRCF=0b1110;
ANSELB=0; //Puerto B como digital
ANSELA=0; //Puerto A como digital
//conguracion e inicializacion
/*/PORTA=0; //limpia puerto A
PORTB=0;//Limpia puerto B*/
ANSELA=0; //Congura como digital el puerto A
ANSELB=0; //Congura como digital el puerto B
TRISAbits.TRISA5=1;
TRISB=0b10010010;
/*TRISA=0b11111111; //Todo el puerto A como entrada
TRISB=0b10000000; //Todo el puerto B como salida excepto RB7
*/
OPTION_REGbits.nWPUEN=0;
WPUBbits.WPUB7=1;
WPUBbits.WPUB4=1;
WPUBbits.WPUB1=1;
Lcd_Init(); //inicializamos el lcd
Lcd_Cmd(LCD_CLEAR); //limpiamos lcd
Lcd_Cmd(LCD_CURSOR_OFF); //apagamos el cursor
while (PORTBbits.RB7*PORTBbits.RB4*PORTBbits.RB1==1){
Lcd_Out(1, 4, "Presione algun");
Lcd_Out(2, 1, "Boton");
__delay_ms(1000);
Lcd_Cmd(LCD_CLEAR);
}
while(PORTBbits.RB7==0){
Lcd_Out(1, 4, "A presionado");
Lcd_Out(2, 1, "El boton 1 :D");
10
__delay_ms(1000);
Lcd_Cmd(LCD_CLEAR);
}
while(PORTBbits.RB4==0){
Lcd_Out(1, 4, "A Presionado el ");
Lcd_Out(2, 1, "Boton 2:3");
__delay_ms(1000);
Lcd_Cmd(LCD_CLEAR);
}
while(PORTBbits.RB1==0){
Lcd_Out(1, 4, "A presionado el ");
Lcd_Out(2, 1, "boton 3 :p");
__delay_ms(1000);
Lcd_Cmd(LCD_CLEAR);
}
return 0;
}
Despues se cargo el programa a nuestro microcontrolador para comprobar
que realizara las indicaciones que le dimos mientras nuestro programa
11
Conclusiones
Jose Noel
Fue muy interesante la practica ya que solo haba trabajado en arduino es algo
similar , se me complico al momento de asignar puertos en el microcontrolador
y al decidir con que ciclo realizarlo ya que primero lo realizamos con un IF y no
funciono y nos tuvimos que ir al While .
Juan Manuel
Se me complico al intentar compilar marcaba un error en mi pc , pero al nal
logramos realizar el circuito se me hizo complicado al insertar la nueva librera
ya que no haba echo eso y tambin en la utilizacin del ciclo while .
Erick
En esta practica aprend cosas nuevas y aplique la teora que vi en clase se me
hizo algo difcil ya que nunca haba programado este tipo de herramientas y me
cost trabajo analizar lo que se quera hacer tambin como comprender el tipo
de lenguaje que maneja el software.
Ernesto
Se trabaj con un nuevo programa y conociendo diferentes cdigos se logr
programar un PIC y as simularlo en proteus la parte que ms se me hizo difcil
fue cuando utilizamos el ciclo while ya que eso no lo vimos en clase y fue necesario
investigar sobre el .
12