#include <STC15F2K60S2.H>
#include<iic.h>
#define uchar unsigned char
code uchar seg0[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};
code uchar seg1[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};
void disp1(uchar yi,uchar er);
void disp2(uchar san,uchar si);
void disp3(uchar wu,uchar liu);
void disp4(uchar qi,uchar ba);
uchar yi=10,er,san=5,si,wu,liu,qi,ba,t,wu1,liu1,qi1,ba1;
uchar AD;
double sum;
void close_set();
void open_jdq();
void close_jdq();
void keyscan();
unsigned char AD_Read(unsigned char add);
uchar keynum,hang,lie;
void Timer0Init(void);
void main()
{
close_set();
Timer0Init();
while(1)
{
AD=AD_Read(0x01);
if(AD>1.25) led_disp(0xff);
if(AD<1.25) led_disp(0xfe);
keyscan();
if(keynum==5|| keynum==0)
{
if(keynum==5) open_jdq();
if(keynum==5) TR0=1;
disp1(yi,er);
disp2(san,si);
disp3(wu,liu);
disp4(qi,ba);
sum=0;
//led_disp(0xfe);
wu1=wu;
liu1=liu;
qi1=qi;
ba1=ba;
}
sum=(wu1*10+liu1+qi1*0.1+ba1*0.01)*0.5;
if(keynum==9)
{
close_jdq();
TR0=0;
disp1(yi,er);
disp2(san,si);
disp3(((int)sum)/10,((int)sum)%10);
disp4(((int)sum*10)%10,((int)sum*100)%10);
wu=0;liu=0;qi=0;ba=0;
}
}
}
unsigned char AD_Read(unsigned char add)
{
unsigned char temp;
IIC_Start();
IIC_SendByte(0x90);
IIC_WaitAck();
IIC_SendByte(add);//
IIC_WaitAck();
IIC_Stop();
IIC_Start();
IIC_SendByte(0x91);
IIC_WaitAck();
temp=IIC_RecByte();
IIC_Stop();
return temp;
}
void Timer0Init(void) //5??@11.0592MHz
{
AUXR |= 0x80; //?????1T??
TMOD &= 0xF0; //???????
TL0 = 0x00; //???????
TH0 = 0x28; //???????
TF0 = 0; //??TF0??
TR0 = 0; //???0????
EA=1;
ET0=1;
}
void tim0_init() interrupt 1
{
t++;
//led_disp(0x7f);
if(t==20)
{
ba++;
if(ba==10)
{
ba=0;
qi++;
}
if(qi==10)
{
qi=0;
liu++;
if(liu==10)
{
liu=0;
wu++;
}
}
}
if(wu==9&&liu==9&&qi==9&&ba==9)
{
close_jdq();
TR0=0;
}
if(t==20) t=0;
}
}``