Sunteți pe pagina 1din 5

Universidad de Guanajuato

Microcontroladores. Profesor:
M.I. Ortiz Lpez Carlos Armando Equipo #11:

- Lara Gonzlez Jess Eduardo - Huichapa Robles Prudencio.

Prctica#2

Objetivo: Implementar el sistema bsico para operar los microcontroladores PIC18F4550. Utilizar el entorno grfico MPLAB X IDE y el programador de Pics. Programar el microcontrolador para que realiza la conversin de una seal analgica a digital. Material: 1 Microcontrolador PICF184550 8 resistores de 220 k 8 Leds 1 cristal de 20 MHz 1 resistor de 5 a 10 k 2 capacitores de 22 pF 1 potencimetro de 5K

Introduccin: Los microcontroladores son dispositivos verstiles que tienen una infinidad de aplicaciones. En este curso se utilizar el microcontrolador PIC18F4550 de Microchip Technology, una de las empresas lderes en el mercado de los microcontroladores. El diagrama de los pines para los PIC18F4550

Equipo: 1 Fuente de +5V 1 Punta lgica 1 Multmetro 1 Plantilla 1 Computadora (software MPLAB X IDE y Proteus) 1 Programador de PIC

El microcontrolador PIC18F450 tiene cinco canales analgicos de entrada para el dispositivo de 28 pines y ocho canales para el de 40 pines. Todos estos canales dirigen una seal a un convertidor analgico-digital de 10 bits de resolucin.

Desarrollo: Para poder llevar acabo la realizacin de esta prctica se llev a cabo el procedimiento que se menciona en la prctica anterior desde crear el proyecto, as como la configuracin de algunos pines para generar el XXXX.h y despus hacer nuestro XXXX.asm que ser nuestro archivo fuente, y seguir cada paso que se mencion en la prctica #1. A continuacin con ayuda de la hoja de datos procederemos a configurar el PIC para usar el mdulo de convertidor A/D interno de nuestro PIC.
Este mdulo permite la conversin de una seal de entrada anloga a un nmero correspondiente digital de 10 bits. Este mdulo tiene 5registros: . A/D Registro de resultado Alto (ADRESH) . A/D Registro de resultado Bajo (ADRESL) . A/D Registro de Control 0 (ADCON0) . A/D Registro de Control 1 (ADCON1) . A/D Registro de Control 2 (ADCON2) El registro ADCON0 controla la operacin del mdulo A/D. El registro ADCON1 configura las funciones de los puertos de los pins. El registro ADCON2 configura el reloj fuente del A/D.

{ setup_ports(); ADCON2bits.ADFM=0; ADCON1bits.VCFG=0; ADCON1bits.PCFG=1; ADCON0bits.CHS=0; ADCON0bits.ADON=1; //Linea para configurar clock ADCON2bits.ADCS=5; ADCON2bits.ADCS2=1; ADCON2bits.ADCS1=0; ADCON2bits.ADCS0=1; //linea para configurar el TAD ADCON2bits.ACQT=1; //para que tome la opcion 1 en la tabla de la pagina 269 ADCON2bits.ACQT2=0; ADCON2bits.ACQT1=0; ADCON2bits.ACQT0=1;

while(1){ ADCON0bits.CHS=0; __delay_ms(10); ADCON0bits.GODONE=1; while(ADCON0bits.GODONE==1){} // PORTB=ADRESH; salida por el puerto B para el ADC if (ADRESH<0x1D) //Aqui los led's estan apagados hasta antes de 0.6V { PORTB=0x00; } //despues se enciende un led en 0.6V else { if (ADRESH<0x3B) //aqui un led esta encendido despues de 0.6 V { PORTB=0x01; } //hasta antes de 1.2V else { if (ADRESH<0x5B) //aqui dos led's estan encendidos despues de 1.2V { PORTB=0x03; } //hasta antes de 1.8V else{ if (ADRESH<0x79) //aqui tres led's estan encendidos despues de 1.8V

#include<stdio.h> #include<stdlib.h> #include"Conf_ADC.h" #define _XTAL_FREQ 20000000 void Delay1Second(void); void setup_ports (void) { TRISA=0xFF; TRISB=0x00; } main()

{ PORTB=0x07; } //hasta antes de 2.4V else { if (ADRESH<0x98) //aqui 4 led's estan encendidos despues de 2.4V { PORTB=0x0F; } //hasta antes de 3.0V else { if (ADRESH<0xB7) //aqui 5 led's estan encendidos despues de 3.0 { PORTB=0x1F; } //hasta antes de 3.6V else { if (ADRESH<0xD5) //aqui 6 led's estan encendidos despues de 3.6V { PORTB=0x3F; } //hasta antes de 4.2V else { if (ADRESH<0xF5) //aqui 7 led's estan encendidos despues de 4.2V { PORTB=0x7F; } //hasta antes de 4.8V else { PORTB=0xFF; //aqui todos los led's se encienden en 4.8V } } } } } } } } } } void Delay1Second(void) { int i; for (i=0; i<100; i++) __delay_ms(10); }

RESULTADOS: En la simulacin de Proteus que se realiz despus de haber implementado nuestro cdigo, podemos observar que en cada uno de las siguientes figuras que se muestran conforme se va variando la corriente en el potencimetro empiezan a encender cada uno de nuestros leds cuando tenemos un voltaje de 0.8 V, 1.6 V para el segundo y as sucesivamente hasta llegar a 4.8 donde todos estarn encendidos:

Figura 1. Para 0.55V

Figura 2. Para 0.6V

Despus de haber realizado la simulacin en Proteus se program el pics para poder llevar a cabo la implementacin fsica y comprobar que nuestra salida sea la deseada:

Figura 3. Para 1.20V

Figura 6. Se muestra un voltaje 1.2 V

Figura 4. Para 3 V

Figura 7. Se muestra un voltaje de 4.8 V.

Figura 5. Para 4.8 V

Conclusin: Jess Eduardo Lara Gonzlez Esta prctica nos sirvi para irnos familiarizando un poco ms con los microcontroladores, ms en especfico el PIC 18F4550. En esta prctica trabajamos con el modulo del convertidor A/D de PIC. En clase vimos cmo se configuraba adecuadamente el modulo y pusimos en prctica ese conocimiento con una ligera modificacin al mostrar la salida de los bits, nuestro cdigo muestra el encendido de un led o la salida de un bit cada 0.6V que vaya entrando en el puerto AN0. Conforme varibamos el potencimetro iban encendiendo ms bits hasta quedar todos totalmente encendidos en 4.8V.

Prudencio Huichapa Robles Por medio de esta prctica fue posible hacer uso de un convertido ADC por lo para poder llevar a su realizacin tuvimos que manipular la corriente que esta llega al PIC para poder dar un valor y que en ese momento el led cambiara a una posicin mas, de a cuerdo con lo la direccin que especificaba nuestro cdigo, ya que nuestro voltaje iba variando en 0.6V para que este cambiara, hasta que llegara a 4.8 V, esto lo hicimos porque nuestro potencimetro es de 5K por lo tanto encendan todos en la misma mencionada.

S-ar putea să vă placă și