Vous êtes sur la page 1sur 12

Instituto Tecnolgico Superior de

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

Para la realizacin de esta practica necesitamos:

Proteus 7.9 (Software).


MPLAB X IDE v2.15 (Software).

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

Despues le damos click en Next y seleccionamos el pic que vamos a trabajar


en este caso fue el PIC16F1827

Despues damos en next Selecionamos ICD 3

Despues Damos click en Next y seleccionamos nuestro programador XC8

Damos click en next y escojemos el nombe a nuestro proyecto y el origen.

Despues copiamos el archivo ex_lcd a nuestra carpeta de origen ya que si


no lo hacemos no podremos cargar la libreria a nuestro programa

Agregamos el archivo ex_lcd a nuestra cabezara del programa

Este es el codigo que realizamos


#include <xc.h>
#include <stdio.h>
#dene _XTAL_FREQ 32000000 //linea para uso de delays
#include "ex_lcd.h"
// CONFIG1
#pragma cong FOSC = INTOSC // Oscillator Selection (INTOSC oscillator: I/O function on CLKIN pin)
#pragma cong WDTE = OFF // Watchdog Timer Enable (WDT disabled)
#pragma cong PWRTE = ON // Power-up Timer Enable (PWRT enabled)
#pragma cong MCLRE = ON // MCLR Pin Function Select (MCLR/VPP
pin function is MCLR)
#pragma cong CP = OFF // Flash Program Memory Code Protection
(Program memory code protection is disabled)
#pragma cong CPD = OFF // Data Memory Code Protection (Data memory code protection is disabled)
#pragma cong BOREN = ON // Brown-out Reset Enable (Brown-out
Reset enabled)
#pragma cong CLKOUTEN = OFF // Clock Out Enable (CLKOUT function is disabled. I/O or oscillator function on the CLKOUT pin)
#pragma cong IESO = OFF // Internal/External Switchover (Internal/External
Switchover mode is disabled)

#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

Vous aimerez peut-être aussi