微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 求大神们看一下,哪一段程序调波形,调脉宽,急啊!

求大神们看一下,哪一段程序调波形,调脉宽,急啊!

时间:10-02 整理:3721RD 点击:

#include <AT89X51.H>

unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66};//  0 1 2 3 4  

unsigned char time1;                              //////延时函数参数///////           

/////////////////////////////变量说明//////////////////////////////////////                              

unsigned char time2;

unsigned char time3;

unsigned char count;

unsigned char ms;

////////////////////////////////////////函数说明////////////////////////////////

void  initial(void);                                           ////初始化函数////

//void  initial_time0(void);                                      //////定时器0初始化///////

void  anjian(void);                                          ////////////按键函数////

void  delay(unsigned char time1,time2,time3);                  ////延时函数////

void  disp(unsigned char count);                              /////静态显示子函数/////

void  delay1(char ms);

void  fangbo(void);                                          //方波函数//

void  sanjiaobo(void);                                    //三角波函数//

void  juchibo(void);                                      //锯齿波函数//

void  tixingbo(void);                                 //正弦波函数//

void  main (void)

{

  initial();

  while(1)

  {

     anjian();

  }

}

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

//函数名称:void anjian(void)

//函数说明:按键函数

//函数功能:

//    注意:

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

void  anjian(void)

{

  if(P3_7==0)

   {delay(1,50,248);

    if(P3_7==0)

     {count=1;

      disp(count);

    fangbo();

     }

   }

   while(P3_7==0);

  count=0;

  disp(count);

  anjian();

}

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

//函数名称:void fangbo(void)

//函数说明:方波函数

//函数功能:

//    注意:

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

void  fangbo(void)

{

  while(1)

     {

     unsigned char fangbo_1;

         fangbo_1+=8;

         if(fangbo_1>128&fangbo_1<256)   {P0=0x00;}           

         if(fangbo_1<128)            {P0=0xff;}

  

       if(P3_7==0)

            {delay(1,50,248);

         if(P3_7==0)

             {  count=2;

                disp(count);

                    sanjiaobo();

            

             }

            }

            while(P3_7==0);

  }   

}

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

//函数名称:voidsanjiaobo(void)

//函数说明:三角波函数

//函数功能:

//    注意:

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

void  sanjiaobo(void)

{

  while(1)

  {

         unsignedchar sanjiaobo_2;

         if(sanjiaobo_2<=128)

         {P0=sanjiaobo_2;}

         else

         {P0=255-sanjiaobo_2;}

      sanjiaobo_2+=5;   

         if(sanjiaobo_2>=255)

         {sanjiaobo_2=0x00;}

         

          if(P3_7==0)

            {

            delay(1,50,248);

            if(P3_7==0)

             {count=3;

                disp(count);

                    juchibo();

               

              }

         }

            while(P3_7==0);

  }

}

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

//函数名称:voidjuchibo(void)

//函数说明:锯齿波函数

//函数功能:

//    注意:

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

void  juchibo(void)

{

  while(1)

  {

         unsignedchar juchibo_3;

         if(juchibo_3<180) {P0=juchibo_3;}   

         juchibo_3+=4;   

         if(juchibo_3>=180)   {juchibo_3=0x00;}

         if(P3_7==0)

         {

         delay(1,50,248);

         if(P3_7==0)

             {count=4;

                disp(count);

                    tixingbo();

            }

          }

        while(P3_7==0);

  }   

}

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

//函数名称:void tixingbo(void)

//函数说明:梯形波函数

//函数功能:

//    注意:

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

void tixingbo(void)

{

  while(1)

  {

     unsignedchar tixingbo_4;

         if(tixingbo_4<120)

         {P0=tixingbo_4;}

         elseif(tixingbo_4==120)

           delay1(1);

        elseif(tixingbo_4<240)

           {P0=240-tixingbo_4;}

          if(tixingbo_4==240)

           {delay1(1);}

  

     

         if(tixingbo_4>240)

         {

         tixingbo_4=0x00;

         

         }   

         

             tixingbo_4+=10;

         if(P3_7==0)

            {delay(1,50,248);

            if(P3_7==0)

             {  count=0;

                disp(count);

                    anjian();

            

              }

         }

           while(P3_7==0);

  }

}

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

//函数名称:voidinitial(void)

//函数说明:初始化函数

//函数功能:

//    注意:

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

void  initial(void)

      {

         P0=0xff;

         P1=0xff;

         P2=0xff;

         P3=0xff;

      }

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

//函数名称:delay(unsignedchar time1,time2,time3)

//函数说明:延时函数

//函数功能:

//入口参数:unsigned chartime1,time2,time3

//出口参数:

//    注意:延时时间的计算:(time1*time2*time3*8us)us   

            time1,time2,time3可以不进行变量说明  

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

void delay(unsigned char time1,time2,time3)

       {

         unsigned char i,j,k;

          for(i=time1;i>0;i--)

             { for(j=time2;j>0;j--)

                  {

                     for(k=time3;k>0;k--);

                  }

            }

        }

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

//函数名称:disp(unsignedchar count)

//函数说明:静态显示子函数

//函数功能:

//入口参数:unsigned charcount

//出口参数:

//    注意:

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

void  disp(unsigned char count)

      {  

         P2=table[count];

         delay(1,5,248);

      }

   void delay1(char ms)

{

char ti;

while(ms--)

{

  for(ti=0;ti<16;ti++){}

}

}


这个看不懂。

好像很难得样子,看不懂

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top