亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

標題: 51單片機控制PCF8591輸出4種波形周期可調 [打印本頁]

作者: 20151107    時間: 2015-11-15 13:01
標題: 51單片機控制PCF8591輸出4種波形周期可調
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit  SCL=P2^6;
sbit  SDA=P2^7;
sbit  key1=P3^6;
sbit  key2=P3^7;
uint n=0;                 
uchar code  Sinwave[]={    //正弦波波表
127, 152, 176, 198, 217, 233, 245, 252,
255, 252, 245, 233, 217, 198,176, 152,
127, 102, 78,  56,  37,  21,  9,   2,
0,   2,   9,  21,  37,  56,  78, 102
};
uchar code Triwave[] = {   //三角波波表
0,  16,  32,  48,  64,  80,  96, 112,
128, 144, 160, 176, 192, 208,224, 240,
255, 240, 224, 208, 192, 176, 160, 144,
128, 112,  96,  80,  64,  48,  32,  16
};
uchar code Sawwave[] = {   //鋸齒波表
0, 8, 16, 24, 32, 40,  48,  56,
64,72,80,  88,  96, 104, 112,120,
128, 136, 144, 152, 160, 168, 176,184,
192, 200, 208, 216, 224,232, 240, 248,
};
uchar code Squwave[]={   //方波波表
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
255,255,255,255,255,255,255,255,
255,255,255,255,255,255,255,255
};
uint f=30;
void delay()
{ ; ; ;}

void  delay10()
{ uint i,j;
  for(i=0;i<10;i++)
    for(j=0;j<250;j++);
}
  void  delay11()
{ uint i,j;
  for(i=0;i<f;i++)
    for(j=0;j<250;j++);
}
void init()
{  SCL=1;
   delay();
   SDA=1;
   delay();
}

void start()
{   init();
        SDA=0;
        delay();
}
void write(uchar date)
{         uchar i,temp;
     temp=date;
         for(i=0;i<8;i++)
          { temp=temp<<1;
            SCL=0;
            delay();
            SDA=CY;
            delay();
            SCL=1;
            delay();
          }
         SCL=0;
         delay();
         SDA=1;
         delay();
}

void respons()
{         uchar i;
     SCL=1;
         delay();
         while((SDA==1)&&(i<250))
           i++;
         SCL=0;
         delay();
}

void stop()
{
        SDA=0;
        delay();
        SCL=1;
        delay();
        SDA=1;
        delay();
}
  void writewave(uchar xc)
{  
      init();       
      start();
             write(0x90);
          respons();
          write(0x40);
          respons();
          write(xc);
          respons();
          stop();           
}
void keyscan()
{ if(key1==0)
   {
            delay10();
         if(key1==0)
         { f+=10;
           while(!key1);
         }
   }
   if(key2==0)
   {
            delay10();
         if(key2==0)
         { f-=10;
         if(f<=20) f=20;
           while(!key2);
         }
   }  
}
void  main()
{
   while(1)
   {  keyscan();
   for(n=0;n<32;n++)
        { writewave(Sinwave[n]);
     delay11();        }
    for(n=0;n<32;n++)
     { writewave(Triwave[n]);
       delay11();  }
        for(n=0;n<32;n++)
     { writewave(Sawwave[n]);
        delay11();}
         for(n=0;n<32;n++)
   { writewave(Squwave[n]);
      delay11(); }

    }
}







歡迎光臨 (http://www.denmoz.com/bbs/) Powered by Discuz! X3.1