Laboratroio Espe
Laboratroio Espe
Laboratroio Espe
Práctica 3.1
10 Total
28-01-2019 Sangolquí
DEPARTAMENTO DE ELECTRICA Y ELECTRONICA
UNIDAD Nº3
Informe de práctica No. 3.1
3. Objetivos:
3.1.Objetivo General.
Programar microcontroladores en lenguaje C
3.2.Objetivos Específicos.
Aplicar los conocimientos aprendidos en clase sobre la programación en C
en los emuladores MpLabX y Pic C compiler añadiedno los conocimientos
previamente aprendidos sobre la descripción general del Pic 16f877a y
16f268a.
5. Procedimiento
En base al Pic 16F877A, diseñar un voltímetro digital, en donde la variación de tensión que
ingresa por el canal 0 del ADC, pueda ser visualizada en un LCD hasta con dos décimas de
resolución.
NOTA:
Se presenta los siguientes requerimientos para la implementación:
- La programación será en lenguaje C.
6. Contenido
6.1.Fundamento teórico
6.1.1. Pic
Ilustración 1 (Imagen tomada del pdf 2DESCRIPCION GENERAL DEL PIC 16F877=
6.1.2. Lenguaje C
6.1.4. LCD
Es bastante aconsejable tener cerca el manual del LCD para ver los
comandos de control, ya que son muy útiles. Estos comandos permiten
apagar y encender la pantalla, mostrar el cursor, llevar el cursor a una
determinada posición, limpiar la pantalla, etc. Es importante que los
conmutadores de la placa EduMIC que sirven para elegir Analógico o
Digital estén en su posición central (LIBRE) de esta manera los per
6.2.Diagrama de bloques
7 DISPLAY
Voltaje 16F877A
LCD
6.5.Diagrama de flujo
CONFIG PIC16F788A
Setup_ADCCLOCK INTER
Setup_ADC PORTS(A0)
LCD_FNIT
RETURN
CONFIG PIC16F788A
CONFIGPIC
LCD_PUTC”VOLTIMETRO”
DELAY_ms
Voltaje=(s*valorADC)/1023
LCD_PUTCVoltaje
6.6.Programa
#include <16f877a.h>
#device ADC = 10
#fuses
NOCPD,NOWDT,BROWNOUT,PUT,XT,NOWRT,NOLVP,NODEBUG,N
OPROTECT
#use delay(clock=4M)
#define lcd_data_port getenv("sfr:portd")
#define lcd_enable_pin pin_d2
#define lcd_rs_pin pin_d0
#define lcd_rw_pin pin_d1
#include <lcd.c>
int16 valor_adc;
float voltaje;
void main(){
SETUP_ADC(ADC_CLOCK_internal);
SETUP_ADC_PORTS(ALL_ANALOG);
SET_ADC_CHANNEL(0);
lcd_init();
lcd_putc("\f VOLTIMETRO");
WHILE(TRUE){
delay_ms(100);
valor_adc=READ_ADC();
voltaje=5.0*valor_adc/1023.0;
lcd_gotoxy(3,2);
printf(lcd_putc,"VALOR= %fV",voltaje);
}
}
7. Diagrama electrónico
8. Conclusiones
El uso del convertidor análogo digital nos proporciona como su nombre
nos dice una conversión de un dato analógico a digital, pero hay que
tomar en cuenta la cantidad de bits que usamos al tomar las muestras de
la señal análoga, ya que, mientras más muestras, más precisa será nuestra
medición, en este caso como diseñamos un multímetro, necesitamos la
máxima cantidad de muestras por lo cual se configuro como el adc de 10
bits.
El cálculo necesario que se realiza para la conversión de los datos que
muestra el ADC, ayudara a la visualización de nuestro dato
correctamente, una variación o mal cálculo de este, provocaría un fallo a
la salida ya que nos muestra datos erróneos.
9. Bibliografía