Que tal compañeros pues no es tanto una pregunta si no que aqui les comparto un pequeño programa para mostrar en un LCD el resultado de una conversion A/D el programa fue elaborado en el MikroC pro for Pic v5.6.1
espero les sirva saludos"""
https://skydrive.live.com/redir?resid=53E437537C747178!171&authkey=!AAAQWPS3joQ3RzM
Código:
/*Proyecto sensor humedad
Pic utilizado 16f882
ultima fecha de modificacion 1 de nov 2012
elaborado por miguel angel miranda, juan carlos
Universidad Tecnologica de Queretaro
*/
// Modulo de concecciones Lcd
sbit LCD_RS at RB4_bit;
sbit LCD_EN at RB5_bit;
sbit LCD_D4 at RB0_bit;
sbit LCD_D5 at RB1_bit;
sbit LCD_D6 at RB2_bit;
sbit LCD_D7 at RB3_bit;
sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D4_Direction at TRISB0_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D7_Direction at TRISB3_bit;
// Termin modulo de conecciones de Lcd
const char character[] = {0,0,0,0,0,0,31,31};
const char character_1[] = {0,0,0,0,31,31,31,31};
const char character_2[] = {0,0,31,31,31,31,31,31};
const char character_3[] = {31,31,31,31,31,31,31,31};
const char character_cln[] = {0,0,0,0,0,0,0,0};
void CustomChar(char pos_row, char pos_char) {
char i;
Lcd_Cmd(64);
for (i = 0; i<=7; i++) Lcd_Chr_CP(character[i]);
Lcd_Cmd(_LCD_RETURN_HOME);
Lcd_Chr(pos_row, pos_char, 0);
}
void CustomChar_1(char pos_row, char pos_char) {
char l;
Lcd_Cmd(72);
for (l = 0; l<=7; l++) Lcd_Chr_CP(character_1[l]);
Lcd_Cmd(_LCD_RETURN_HOME);
Lcd_Chr(pos_row, pos_char, 1);
}
void CustomChar_2(char pos_row, char pos_char) {
char i;
Lcd_Cmd(80);
for (i = 0; i<=7; i++) Lcd_Chr_CP(character_2[i]);
Lcd_Cmd(_LCD_RETURN_HOME);
Lcd_Chr(pos_row, pos_char, 2);
}
void CustomChar_3(char pos_row, char pos_char) {
char i;
Lcd_Cmd(88);
for (i = 0; i<=7; i++) Lcd_Chr_CP(character_3[i]);
Lcd_Cmd(_LCD_RETURN_HOME);
Lcd_Chr(pos_row, pos_char, 3);
}
void CustomChar_cln(char pos_row, char pos_char) {
char i;
Lcd_Cmd(96);
for (i = 0; i<=7; i++) Lcd_Chr_CP(character_cln[i]);
Lcd_Cmd(_LCD_RETURN_HOME);
Lcd_Chr(pos_row, pos_char, 4);
}
//declaracion de funciones
void main(void);//funcion principal
void config(void);//funcion de configuracion del uc
//declaracion de funciones
//declaracion de variables
int x=0,ad=0,inc=0,cen=0,mas=0;
long result2=0,result=0,uni=0,y=0;
int LC[10]={'0','1','2','3','4','5','6','7','8','9'};
char txt1[] = "HR=";
///////////////////////////////////////
void interrupt (){//Funcion de interrupcion
if (PIR1.B6==1){//fue la interrupcion de A/D????????????
x=ADRESH;//Guarda el valor
PIR1.B6=0;//Habilita nuevamente la interrupcion del A/D
}
}//termina funcion interrupcion
void config(){// config function
PORTA=0X00;
PORTC=0X00;
C1ON_bit = 0;
C2ON_bit = 0;
ANSEL = 1;
ANSELH = 0;
TRISA=0X01;
ADCON0=0X81;//Escojer TAD, escojer que canal se va usar de entrada analogica,encender el modulo A/D,poner en standby la conversion A/D
ADCON1=0X10;//formato de resultado,
INTCON=0XC0;//Habilitar todas las interrupciones
PIE1=0X40;//Habilitaar interrupcion por A/D
PIR1=0X00;//Bandera de interrupcion por A/D en cero
Lcd_Init();
Lcd_Cmd(_LCD_CLEAR); // Clear display
Lcd_Cmd(_LCD_CURSOR_OFF); // Cursor off
Lcd_Out(1, 1, txt1);
Lcd_Out(1, 6, "%");
}//termina funcion configuracion
void main() {
config();
while(1){
Lcd_Chr(1, 4, lc[cen]);
Lcd_Chr(1, 5, lc[uni]);
Delay_ms(200);
ADCON0.B1=1;//COMIENZA CONVERSION
Delay_us(25); //Tiempo de conversion
y=x;
result=y*90;
result2=result/227;
cen=0;
uni=0;
if (result2>10){mas=1;CustomChar(2,7);}
if (result2>30){mas=2;CustomChar_1(2,8);}
if (result2>50){mas=3;CustomChar_2(2,9);}
if (result2>70){CustomChar_3(2,10);}
if (result2<70&&mas==3){CustomChar_cln(2,10);}
if (result2<50&&mas==2){CustomChar_cln(2,9);}
if (result2<30&&mas==1){CustomChar_cln(2,8);}
if (result2<10){CustomChar_cln(2,7);}
//BCD***************************************************************************
while(result2>=10){
cen++;
result2=result2-10;
}
while(result2>0){
uni++;
result2=result2-1;
}
}
}//termina funcion principal
espero les sirva saludos"""
https://skydrive.live.com/redir?resid=53E437537C747178!171&authkey=!AAAQWPS3joQ3RzM
Última edición: