×
单片机 > 单片机程序设计 > 详情

ADC0832实现输出频率为50HZ的正弦波

发布时间:2020-05-28 发布时间:
|
//-----------------------------
功能: ADC0832实现输出频率为50HZ的正弦波
1、P0口送数据,
 2、P2。0口作为片选信号
    P21是DAC启动信号;

#include
#define uint unsigned int 
#define uchar unsigned char
uchar code table[]={ //正弦波的数据       
       128,130,132,135,137,139,141,144,146,148,150,152,155,157,159,161
       163,165,168,170,172,174,176,178,180,182,184,186,188,190,192,194
       196,198,200,201,203,205,207,209,210,212,214,215,217,219,220,222
       223,225,226,227,229,230,232,233,234,235,237,238,239,240,241,242
       243,244,245,246,247,247,248,249,250,250,251,252,252,253,253,254
       254,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255
       255,255,255,254,254,254,253,253,252,252,251,250,250,249,248,247
       247,246,245,244,243,242,241,240,239,238,237,235,234,233,232,230
       229,227,226,225,223,222,220,219,217,215,214,212,210,209,207,205
       203,201,200,198,196,194,192,190,188,186,184,182,180,178,176,174
       172,170,168,165,163,161,159,157,155,152,150,148,146,144,141,139
       137,135,132,130,128,126,124,121,119,117,115,112,110,108,106,104
       101,99,97,95,93,91,88,86,84,82,80,78,76,74,72,70,68,66,64,62,60,58
       56,55,53,51,49,47,46,44,42,41,39,37,36,34,33,31,30,29,27,26,24,23,22
       21,19,18,17,16,15,14,13,12,11,10,9,9,8,7,6,6,5,4,4,3,3,2,2,2,1,1
       1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,2,2,2,3,3,4,4,5,6,6,7,8,9,9,10,11,12
       13,14,15,16,17,18,19,21,22,23,24,26,27,29,30,31,33,34,36,37,39,41,42
       44,46,47,49,51,53,55,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86
       88,91,93,95,97,99,101,104,106,108,110,112,115,117,119,121,124,126,128
  };
sbit cs=P2^0;
sbit dac=P2^1;
uchar num1,num2,num3,flag;
uchar aa,bb;
void delay();
void ad0832();
void main()
{
 TMOD=0x01;
 TH0=(65536-20000)/256;
    TL0=(65536-20000)%256;
    ET0=1;
 EA=1;
 TR0=1;
 
   while(1)
    {   
  if(flag==1)
    {   i++;
           if(table[i]=='\0')
             i=0;
    ad0832();
   flag=0;        
  }
      
 }
    
 
}
//===================
void delay(uint z)
{
   uint x;
   uchar y;
 for(x=0;x  for(y=0;y<100;y++);
}
//-------------------------
void ad0809()
{
  cs=0;
  dac=1;
  delay(1);
  P0=table[i];
  dac=0;
  delay(10);
        
 
}
//=======================
void timer0()  interrupt 1
{
 TH0=(65536-20000)/256;
    TL0=(65536-20000)%256;
      
  flag=1; 
  
}
关键字:ADC0832  输出频率  50HZ  正弦波 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
ARM 汇编的必知必会