#include <iom16v.h>
#include <macros.h>
#define uchar unsigned char
#define uint unsigned int
#include"duoji.c"
#include"AD.c"
#include"USART.c"
#pragma interrupt_handler miao:5
uint flog=0;
table[]={0x3f,0x06,0x5B,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
uchar disbit[6] ={ 0x01, 0x02,0x04,0x08,0X10,0X20};
/***********************************/
uchar num=0,timer0=0,timer1=0;
uint numdata0,numdata1,fastnum0,fastnum1;
int adc_data0,adc_data1,adc_data2,adc_data3,adc_data4;
uchar key;
/***********************************/
void miao()
{
if(flog>=110) /********一秒是400***********/
{
timer0--;
num++;
flog=0;
if(num==60)
{
num=0;
}
}
flog++;
TCNT2=0x01;
}
void delay(uint ms)
{
uint i,j;
for(i=0;i<ms;i++)
for(j=0;j<1141;j++);
}
void lvbo(void)
{
uchar num;
numdata0=mega16_ad0();
numdata1=mega16_ad1();
for(num=50;num>0;num--)
{
adc_data0=mega16_ad0();
adc_data1=mega16_ad1();
adc_data2=mega16_ad2();
if((numdata0<adc_data0)||(numdata1<adc_data1))
{
numdata0=adc_data0;
numdata1=adc_data1;
}
delay(10);
}
fastnum0=81;
fastnum1=81;
//fastnum0=(int)(numdata0/4);
//fastnum1=(int)(numdata1/4);
timer0=2;
while(timer0)
{
PutNUM(numdata0);
PutNUM(222);
PutNUM(numdata1);
PutNUM(333);
PutNUM(adc_data2);
PutNUM(111);
PutNUM(fastnum1);
PutNUM(444);
PutNUM(fastnum0);
PutNUM(666);
}
}
void show(uchar i,uchar j)
{
//for(j=0;j<6;j++)
PORTC|=table[i];
PORTB|=disbit[j];
delay(10);
PORTB=0X00;
PORTC=0X00;
}
void main()
{
uchar sign=0;
DDRC=0XFF;
DDRB=0XFF;
PORTB=0xFF;
TCCR2=0X04;
TCNT2=0x04;
TIMSK|=BIT(6);
//TIMSK&=~BIT(6);
SREG|=BIT(7);
Uart_Init();
duoji();
lvbo();
while(1)
{
adc_data0=mega16_ad0();
adc_data1=mega16_ad1();
adc_data2=mega16_ad2();
/*PutNUM(adc_data0);
PutNUM(222);
PutNUM(adc_data1);
PutNUM(333);
PutNUM(adc_data2);
PutNUM(444);*/
show(num%10,0);
show(num/10,1);
OCR1A=44;
/*if(adc_data2<850) //12440 //6
{
OCR1A=44;
}
if(adc_data2>850)
{*/
if((numdata0+fastnum0*3)>adc_data0)
{OCR1A=47;}
if((numdata0+fastnum0*2)>adc_data0&&((numdata0+fastnum0*3)<adc_data0))
{OCR1A=46;}
if((numdata0+fastnum0*1)>adc_data0&&((numdata0+fastnum0)<adc_data0))
{OCR1A=45;}
if(((numdata0+fastnum0)>adc_data0))
{OCR1A=44;}
if((numdata1+fastnum1*3)>adc_data1)
{OCR1A=40;}
if((numdata1+fastnum1*2)>adc_data1&&((numdata0+fastnum1*3)<adc_data1))
{OCR1A=42;}
if((numdata1+fastnum1*1)>adc_data1&&((numdata1+fastnum1)<adc_data1))
{OCR1A=43;}
if(((numdata1+fastnum1)>adc_data1))
{OCR1A=44;}
while(adc_data0>500)
{
if((numdata0+fastnum0*10)<adc_data0)
{OCR1A=60;}
if((numdata0+fastnum0*10)>adc_data0&&((numdata0+fastnum0*9)<adc_data0))
{OCR1A=60;}
if(((numdata0+(fastnum0*9))>adc_data0)&&(numdata0+(fastnum0*8)<adc_data0))
{OCR1A=55;}
if(((numdata0+(fastnum0*8))>adc_data0)&&(numdata0+(fastnum0*7)<adc_data0))
{OCR1A=50;}
if(((numdata0+(fastnum0*6))>adc_data0)&&(numdata0+(fastnum0*5)<adc_data0))
{OCR1A=48;}
adc_data0=mega16_ad0();
adc_data1=mega16_ad1();
adc_data2=mega16_ad2();
sign=1;
}
while(adc_data1>450)
{
if((numdata1+fastnum1*(8.8))<adc_data1)
{OCR1A=25;}
if(((numdata1+fastnum1*7)>adc_data1)&&((numdata1+fastnum1*8)<adc_data1))
{OCR1A=30;}
if(((numdata1+fastnum1*7)>adc_data1)&&(numdata1+fastnum1*6<adc_data1))
{OCR1A=35;}
if(((numdata1+fastnum1*6)>adc_data1)&&(numdata1+fastnum1*5<adc_data1))
{OCR1A=40;}
if(((numdata1+fastnum1*5)>adc_data1)&&(numdata1+fastnum1*4<adc_data1))
{OCR1A=42;}
adc_data0=mega16_ad0();
adc_data1=mega16_ad1();
adc_data2=mega16_ad2();
sign=2;
}
/*}
if(sign==1)
{
for(OCR1A;OCR1A>45;OCR1A=OCR1A-3)
{
timer0=1;
while(timer0)
{
PutNUM(num);
PutNUM(505);
}
timer0=0;
}
for(OCR1A;OCR1A>30;OCR1A--)
{
timer0=1;
while(timer0)
{
PutNUM(num);
PutNUM(505);
}
timer0=0;
}
//OCR1A=44;
sign=0;
}*/
/*if(sign==2)
{
for(OCR1A;OCR1A<45;OCR1A=OCR1A+3)
{
timer0=1;
while(timer0)
{
PutNUM(num);
PutNUM(505);
}
timer0=0;
}
timer0=2;
while(timer0);
for(OCR1A;OCR1A<55;OCR1A++)
{
timer0=1;
while(timer0)
{
PutNUM(num);
PutNUM(505);
}
timer0=0;
}
//OCR1A=44;
sign=0;
}*/
//if(sign==1)
}
}
|