main.c
#include <stc15f2k60s2.h>
#include <juzhen.h>
#include "ds1302.h"
#include "iic.h"
extern bit cha;
extern bit pin;
extern char wei_ad;
extern char wei;
extern unsigned char xian,dian;
extern unsigned char display[];
extern unsigned char key;
unsigned char display[]={
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};
unsigned char smg[]={
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsigned int ad;
unsigned int high=2000,low=1000;
unsigned char flag;
unsigned char type;
char t_time[3];
unsigned int fre,qi;
void bijiao();
void Timer1Init();
void timer0();
void main()
{
DS_init();
Timer1Init();EA=1;ET1=1;
P2=P2&0X1F|0XA0;P0=0X00;P2&=0X1f;
while(1)
{
timer0();
bijiao();
anjian();
xianshi();
if(flag==1)
{
flag=0;
TR0=0;
fre=TH0*256+TL0;
TL0=0;
TH0=0;
TR0=1;
}
}
}
void bijiao()
{
unsigned char i;
if(ad>high)
{
type=1;
for(i=0;i<=3;i++)
{
t_time[i]=TIME[i];
}
}
if(ad<low)
{
type=0;
for(i=0;i<=3;i++)
{
t_time[i]=TIME[i];
}
}
}
void xianshi()
{
float zhou;
if(key==0)
{
display[0]=0xff;
display[1]=0xff;
display[2]=0xff;
display[3]=0xff;
display[4]=0xff;
display[5]=0xff;
display[6]=0xff;
display[7]=0xff;
}
if(key==1)
{
if(xian==0)
{
DS_get();
display[0]=smg[TIME[2]/16];
display[1]=smg[TIME[2]%16];
display[2]=0xbf;
display[3]=smg[TIME[1]/16];
display[4]=smg[TIME[1]%16];
display[5]=0xbf;
display[6]=smg[TIME[0]/16];
display[7]=smg[TIME[0]%16];
}
}
if(key==2)
{
if(dian==0)
{
ad=AD_read(0x03);
ad=ad*1.961*10;
display[0]=0xbf;
display[1]=smg[1];
display[2]=0xbf;
display[3]=0xff;
display[4]=smg[ad%10000/1000];
display[5]=smg[ad%1000/100];
display[6]=smg[ad%100/10];
display[7]=smg[ad%10];
}
}
if(key==3)
{
if(pin==0)
{
display[0]=0xbf;
display[1]=smg[2];
display[2]=0xbf;
display[3]=smg[fre%100000/10000];
display[4]=smg[fre%10000/1000];
display[5]=smg[fre%1000/100];
display[6]=smg[fre%100/10];
display[7]=smg[fre%10];
}
else
{
zhou=fre;
zhou=1