#include<reg51.h>
#include<lcd12864.h>
#include<key.h>
#include<PWM.h>
#include<aDC.h rel='nofollow' onclick='return false;'>
#define uchar unsigned char
#define uint unsigned int
uchar keyvalue=16;
uchar pwm1;
uchar pwm2;
uchar code table0[]="输入1:";
uchar code table1[]="输入2:";
uchar code table2[]="初始化成功";
uchar code table3[]="输入完毕";
uchar code table4[]="开始输入";
uchar disdata1=0x00;
uchar disdata2=0x00;
void main()
{
float ADC_RES0,ADC_RES1,ADC_RESh,ADC_RESl;
int num0=0;
uchar flag=0;
init_LCD();
InitADC();
AUXR1&=~ADRJ;
while(1)
{
if(GetADCResult(0)==0)
{
ADC_RES=0;
ADC_LOW2=0;
}
ADC_LOW2=ADC_LOW2&0x03;
ADC_RESh=ADC_RES;
ADC_RESl=ADC_LOW2;
ADC_RESh=ADC_RESh/256*4.30;
ADC_RESl=ADC_RESl/1024*4.30;
ADC_RES0=ADC_RESh+ADC_RESl;
if(GetADCResult(1)==0)
{
ADC_RES=0;
ADC_LOW2=0;
}
ADC_LOW2=ADC_LOW2&0x03;
ADC_RESh=ADC_RES;
ADC_RESl=ADC_LOW2;
ADC_RESh=ADC_RESh/256*4.30;
ADC_RESl=ADC_RESl/1024*4.30;
ADC_RES1=ADC_RESh+ADC_RESl;
if(((ADC_RES0+ADC_RES1)<1.5)||((ADC_RES0+ADC_RES1)>3.5))
{
if((num0==0)||(num0==2))
{
show_char(0,0,"范围外");
show_char(1,0," ");
pwm1=pwm2=0x80;
setpwm();
}
num0=1;
}
else if(((ADC_RES0+ADC_RES1)>=1.5)&&((ADC_RES0+ADC_RES1)<=3.5))
{
if((num0==0)||(num0==1))
{
show_char(3,1,table4);
keydelay(300);
show_char(3,1," ");
show_char(0,0,table0);
show_char(1,0,table1);
num0=2;
}
keychange();
if(keyvalue==15)
{
show_char(3,1,table2);
keydelay(300);
show_char(3,1," ");
keyvalue=16;
flag=1;
}
while(flag)
{
keychange();
if(keyvalue<=2)
{
disdata1+=keyvalue;
write_LCD_command(0x83);
write_LCD_data('0'+keyvalue);
keyvalue=16;
break;
}
}
while(flag)
{
keychange();
if(keyvalue<=9)
{
if((disdata1==2)&&(keyvalue>5))
keyvalue=5;
disdata1=disdata1*10+keyvalue;
write_LCD_command(0x84);
write_LCD_data('0'+keyvalue);
keyvalue=16;
break;
}
}
while(flag)
{
keychange();
if(keyvalue<=9)
{
if((disdata1==25)&&keyvalue>5)
keyvalue=5;
disdata1=disdata1*10+keyvalue;
write_LCD_command(0x85);
write_LCD_data('0'+keyvalue);
keyvalue=16;
break;
}
}
/////////////////////////////
write_LCD_command(0x90);
while(flag)
{
keychange();
if(keyvalue<=2)
{
disdata2+=keyvalue;
write_LCD_command(0x93);
write_LCD_data('0'+keyvalue);
keyvalue=16;
break;
}
}
while(flag)
{
keychange();
if(keyvalue<=9)
{
if((disdata2==2)&&(keyvalue>5))
keyvalue=5;
disdata2=disdata2*10+keyvalue;
write_LCD_command(0x94);
write_LCD_data('0'+keyvalue);
keyvalue=16;
break;
}
}
while(flag)
{
keychange();
if(keyvalue<=9)
{
if((disdata2==25)&&keyvalue>5)
keyvalue=5;
disdata2=disdata2*10+keyvalue;
write_LCD_command(0x95);
write_LCD_data('0'+keyvalue);
keyvalue=16;
flag=2;
break;
}
}
if(flag==2)
{
show_char(3,1,table3);
keydelay(300);
show_char(3,1," ");
flag=0;
pwm1=0xff-disdata1;
pwm2=0xff-disdata2;
setpwm();
}
}
}
}