voltimetro 5v programas en pic-c

download voltimetro 5v programas en pic-c

If you can't read please download the document

description

programa de un voltimetro 5v en pic-c visualizado en lcd

Transcript of voltimetro 5v programas en pic-c

/*/////////////////////////////////////////////////////////////////////////////////////////////////////////// II TAREA DE APLICACIONES DE MICROCONTROLADORES VOLTIMETRO 5v//Universidad Tecnica Nacional//Ing. Electronica// Realizado por Bryan Peralta V.// PROFESOR ING.GERMAN VASQUEZ ARAYA // III CUATRIMESTRE DEL AO 2015 *//////////////////////////////////////////////////////////////////////////////////////////////////////////#include "C:\Users\User\Documents\UTN\CURSOS UTN\microcontroladores\microcontroladores la 3era vez 2015\Tarea 2\Tarea # 2\voltimetro 5v.h"#include "LCD4_GERMAN.C"#include float valor=0; // se utilizan flota para numeros realesfloat voltaje=0; // se utilizan float para numeros realeschar texto[17];char num[5];char texto_lcd[17];FLOAT A; // variable para calcular el voltage del ADC//==================================================================================//====================================================================================void mostrar_valor(int dato,int reng1){ selec_RS(1); //Seleccion del registro de datos delay_ms(7); itoa(dato,10,num); strcpy (texto_lcd, " "); //Limpia registro texto strncpy(texto_lcd,num,4,); //Copia los 4 char de numero en texto posicion(reng1); //Selecciona renglo 2 del LCD write_lcd(texto_lcd,1,0); //Escribe en el LCD sin borrarlo por completo delay_ms(30); }/*=============================================================================*///SUBRUTINAS PARA LCD/*=============================================================================*/void SALUDO_INICIAL(void){ strcpy (texto," TAREA # II "); write_lcd(texto,0,0); //Escribe en lcd el texto, renglon 0 strcpy (texto," BRYAN P.V "); write_lcd(texto,1,0); }void VOLTAJE(void){ strcpy (texto," VOLTAJE "); //Escribe en lcd el texto, renglon 0 write_lcd(texto,0,0); //y borra todo antes}/*=============================================================================*//*=============================================================================*/void main(){ setup_adc_ports(AN0); setup_adc (ADC_CLOCK_INTERNAL) ; set_tris_a ( 0x01 ); //Se configura puerto a con 3 entradas set_tris_b ( 0x00 ); //Se configura puerto b con 8 salidas output_a ( 0x00 ); //Salidas inicialmente en cero output_b ( 0x00 ); delay_ms(300); init_lcd(); SALUDO_INICIAL(); //MENSAJE INICIAL delay_ms(1300); WHILE ( true ) { set_adc_channel ( 0 ); //Seleccionando entrada analogica 0 ( AN0 ) delay_ms ( 1 ); //Retardo necesario valor = read_adc ( ) ; //lectura canal 0 A = valor; // leemos el voltage del ADC. A = 5.0 * A / 1024; // Calculamos el voltaje apartir del ADC VOLTAJE (); // Mandamos a LCD mensaje voltaje al primer renglon mostrar_valor(A,1); //se muestra el voltaje calculado apartir del ADC en el segundo renglon delay_us(900); }}