有个时序图,大伙看看

2020-01-23 14:26发布

1、这个时序图没看明白,请指点。
疑问:每个时钟后跟一位数据,还是在时钟后将8位数据全部发完?用C怎么描述?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
10条回答
yuanyuxingqu
2020-01-24 06:36
本帖最后由 yuanyuxingqu 于 2014-3-20 01:40 编辑

用下面的程序试验了下,好像不能产生不规则周期的方波。不知道为什么?还是51单片机无法实现?请赐教!


#include <reg51.h>

#define uchar unsigned char
#define uint  unsigned int
uchar data count;

sbit output_wave=P1^1;


void initial_timer0()
{
   TMOD=0x01;
   //TH0=-(5000/256);//0x3c;
   //TL0=-(5000%256);//0xb0;
   TH0=0x3c;
   TL0=0xb0;
   ET0=1;
   TR0=1;
   EA=1;
}

/*void delay(uint k)
{
  uint i,j;
  for(i=0;i<k;i++)
   {
     for(j=0;j<121;j++)
         {;}
        }
}*/

void timer0() interrupt 1
{
   TH0=0x3c;
   TL0=0xb0;
   //TH0=-(5000/256);//0x3c;
   //TL0=-(5000%256);
   count++;
/***********************************************************/
/***  下面产生不同周期的脉冲                                      ***/
/**********************************************************/
   if(count<=120)
     output_wave=0;
   else if((count>120)&&(count<=530))
           output_wave=1;
                 else if((count>530)&&(count<=730))
                         output_wave=0;
                           else
                             output_wave=1;
   if(count>=730)
     count=0;
/*************************************************************/
   /*if(count<=2)
     output_wave=0;
        else
         output_wave=1;
   if(count>=20)
     count=0;*/
}

void main()
{
  initial_timer0();
  while(1)
  {
    //delay(3000);
    ;
  }
}

一周热门 更多>