⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jiujing.c

📁 刚刚开始编写C的时候得一个程序
💻 C
字号:

#include<reg51.h>
#include<math.h>
#include<absacc.h>
#include"jiujing.h"

/*********************************************************************************************************/
void  main ()
{
    init();
    CLRDOG=!CLRDOG;
    EA = 1;
    IT1 = 1;
    EX0 = 1;
    while(TIME_counter<=2000)

    while(1)
    {
       Sampling_DC();
       delay_time(10);
       CLRDOG=!CLRDOG;
       switch (LED)
        {
             case 0:
                {
                    P1 = 0Xff;
                    LED9 = 1;
                    LED10 = 1;
                }break;
             case 1:
               {
                    P1 =0Xfe;
                    LED9 = 1;
                    LED10 = 1;
                    delay_time(200);
                    P1 = 0Xff;
               }break;
             case 2:
               {
                    P1 =0Xfc;
                    LED9 = 1;
                    LED10 = 1;
                    delay_time(200);
                    P1 = 0Xff;
                }break;
             case 3:
                {
                    P1 =0Xf8;
                    LED9 = 1;
                    LED10 = 1;
                    delay_time(200);
                    P1 = 0Xff;
                }break;
             case 4:
                {
                    P1 =0Xf0;
                    LED9 = 1;
                    LED10 = 1;
                    delay_time(200);
                    P1 = 0Xff;
                }
             case 5:
                {
                    P1 =0Xe0;
                    LED9 = 1;
                    LED10 = 1;
                    delay_time(200);
                    P1 = 0Xff;
                }break;
             case 6:
                {
                    P1 =0Xc0;
                    LED9 = 1;
                    LED10 = 1;
                    delay_time(200);
                    P1 = 0Xff;
                }break;
             case 7:
                {
                    P1 =0X80;
                    LED9 = 1;
                    LED10 = 1;
                    delay_time(200);
                    P1 = 0Xff;
                }break;
             case 8:
                 {
                    P1 =0X00;
                    LED9 = 1;
                    LED10 = 1;
                    delay_time(200);
                    P1 = 0Xff;
                 }break;
             case 9:
                 {
                    P1 =0X00;
                    LED9 = 0;
                    LED10 = 1;
                    delay_time(200);
                    P1 = 0Xff;
                    LED9 = 1;
                 }break;
             case 10:
                 {
                    P1 =0X00;
                    LED9 = 0;
                    LED10 = 0;
                    delay_time(200);
                    P1 = 0Xff;
                    LED9 = 1;
                    LED10 = 1;
                 }break;
             default:break;
        }
       if(RXD_REDAY==1)
        {
             if(TIME_counter>255)
              {
                  send(0x1b);
                  send(23);
                  RXD_REDAY = 0;
              }
             send_comm();
             RXD_REDAY = 0;
        }
    }
}

/****************************************************************************************************/

void init()
{
    P0 = 0Xff;
    P1 = 0Xff;
    P2 = 0Xff;

    init_comm();

    TH0 = 0Xfb;
    TL0 = 0X80;

    ET0=1;
    PX0=1;
    return;


}
/**************************************************************************************************/

void Int0() interrupt 0 using 0
{
    EX0 = 0;
    END = 1;
    EX0 = 1;
    return;
}
/*************************************************************************************************/

void Timer0() interrupt 1 using 1
{
    TH0 = 0X15;
    CLRDOG=!CLRDOG;
    TL0 = 0xa0;
    TIME_counter++;
    return;
}

/******************************************************************************************************/
uint Ad574(void)
{
    uint ad;
    uint  Adh,Adl;
    END =0;
    STARTAD574 = 0;
    //while(!END);

    Adh = AD574H;
    Adl = AD574L;
    Adh<<=4;
    Adl<<=4;
    ad = Adh|Adl;
    return(ad);
}

/***************************************************************************************************/
void  delay_time(uint k)
{
    uchar m,n;
    for( m=0;m<k;m++)
     {
          for(n=0;n<255;n++)
           {
           }
     }
}
/******************************************************************************************************/
void init_comm()
{
     TMOD = 0X21;
     TH1 = 0Xfd;
     TL1 = 0Xfd;
     PCON = PCON&0X7f;
     SCON =0X40;
     REN =1;
     TR1 = 1;
     ES = 1;
     return;
}
/*************************************************************************************************/
void serial() interrupt 4 using 3
{
    uchar RXD_buf;
    ES =0;
    RXD_buf = SBUF;
    switch (RXD_number)
     {
         case 0: if(RXD_buf == 0X1b)
                   {
                       RXD_REDAY =1;
                       RXD_number++;
                   }
                 else
                   {
                        RXD_number = 0;
                   }break;

          case 1: if((RXD_buf >= 1)&&(RXD_buf<=255))
                    {
                        TIME_counter = RXD_buf;
                        RXD_number = 0;
                    }
                   else
                    {
                        RXD_number = 0;
                        TIME_counter = 200;
                    }break;
          default:break;
     }
    RI = 0;
    ES = 1;
    return;
}
/****************************************************************************************************/

void send(uchar i)
{
    SBUF =i;
    while(!TI);
    TI = 0;
    return;
}
/***************************************************************************************************/
void  send_comm()
{
    uchar message;
    message = 0X1b;
    send(message);
    message = LED;
    send(message);
    return;
}


/******************************************************************************************************/
void  Sampling_DC(void)
{
    uchar i;
    int value, r,big[2] = 0,sml = 4096;
    DC_END= 0;
    while(!DC_END)
     {
         for(i=0;i<2;i++)
          {
             r=Ad574();
             if( r >= big[i]){ big[i] = r;}
             if( r >= sml)
              {
                 DC_END=1;
                 big[0] = big[1];
              }
             delay_time(10);
          }
         if(big[1]<=big[0])
          {
              DC_END = 1;
          }
     }
    value = big[0];
    if((value>0)&&(value<=409))
     {
        LED=1;
     }

    if((value>409)&&(value<=818))
     {
        LED=2;
     }

    if((value>818)&&(value<=1227))
     {
        LED=3;
     }

    if((value>1227)&&(value<=1636))
     {
        LED=4;
     }

    if((value>1636)&&(value<=2045))
     {
        LED=5;
     }

    if((value>2045)&&(value<=2454))
     {
        LED=6;
     }

    if((value>2454)&&(value<=2863))
     {
        LED=7;
     }

    if((value>2863)&&(value<=3272))
     {
        LED=8;
     }

    if((value>3272)&&(value<=3681))
     {
        LED=9;
     }

    if((value>3681)&&(value<=4096))
     {
        LED=10;
     }
    else
     {
        LED =0;
     }
    return;
}















⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -