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

2019-07-15 17:09发布

#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++){} }}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。