#include"reg51.h"
#include "math.h"
sbit start=P3^0;
sbit eoc=P3^1;
sbit oe=P3^2;
sbit RS=P3^3;
sbit RW=P3^4;
sbit E=P3^5;
unsigned int vol=0;
unsigned char t[]={"0123456789"};
void delay(unsigned int n)
{
unsigned int i=0,j=0;
for(i=0;i<n;i++)
for(j=0;j<120;j++);
}
void adc()
{
start=0;
start=1;
delay(5);
start=0;
while(eoc!=1);
oe=1;
vol=P2;
oe=0;
}
void Lcd1602_WriteCom(unsigned char com)
{
RS=0;
RW=0;
E=0;
P1=com;
delay(5);
E=1;
E=0;
}
void Lcd1602_WriteData(unsigned char dat)
{
RS=1;
RW=0;
E=0;
P1=dat;
delay(5);
E=1;
E=0;
}
void Lcd1602_init()
{
Lcd1602_WriteCom(0x38);
Lcd1602_WriteCom(0x0c);
Lcd1602_WriteCom(0x06);
Lcd1602_WriteCom(0x01);
}
void display()
{
unsigned char temp0=0,temp1=0,temp2=0,vol0=0,vol1=0,vol2=0;
float temp;
unsigned int voll,T;
voll=vol*100/51;
vol0=voll/100;
vol1=(voll%100)/10;
vol2=voll%10;
temp=145.94*vol*5/255-3.4528;
T=(unsigned int)temp;
temp0=T/100;
temp1=(T%100)/10;
temp2=T%10;
Lcd1602_WriteCom(0x80);
delay(5);
Lcd1602_WriteData('W');
delay(5);
Lcd1602_WriteData('L');
delay(5);
Lcd1602_WriteData(t[2]);
delay(5);
Lcd1602_WriteData(t[0]);
delay(5);
Lcd1602_WriteData(t[1]);
delay(5);
Lcd1602_WriteData(' ');
delay(5);
Lcd1602_WriteData(t[2]);
delay(5);
Lcd1602_WriteData(t[3]);
delay(5);
Lcd1602_WriteData(' ');
delay(5);
Lcd1602_WriteData(t[3]);
delay(5);
Lcd1602_WriteData(t[3]);
delay(5);
Lcd1602_WriteCom(0xc0);
delay(5);
Lcd1602_WriteData(t[temp0]);
delay(5);
Lcd1602_WriteData(t[temp1]);
delay(5);
Lcd1602_WriteData(t[temp2]);
delay(5);
Lcd1602_WriteData(0xdf);
delay(5);
Lcd1602_WriteData('C');
delay(5);
}
void main()
{
Lcd1602_init();
while(1)
{
adc();
display();
}
}