打印

无碳纤车

[复制链接]
994|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
想做李白|  楼主 | 2016-9-16 10:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
AD, dc, ADC, FAST, ST
#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)
        }
}

相关帖子

沙发
dirtwillfly| | 2016-9-18 08:46 | 只看该作者
感谢分享。

使用特权

评论回复
板凳
gaoyang9992006| | 2016-9-21 16:56 | 只看该作者
一堆代码什么鬼。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

3

帖子

1

粉丝