原创 基于SP1010-LPC213X-ARM实验板的可调正弦幅度实验

2010-10-19 18:31 2374 6 6 分类: MCU/ 嵌入式

来 源:西谱电子(www.supermcu.com)


/*
      实验目的:掌握LPC213X的D/A转换器的使用和编程,掌握正弦波产生的原理
      实验内容:利用LPC213X的D/A模块实现幅度数字可调,步进为20mV,由LPC213X的P0.25引脚的AOUT功能引脚输出
      实验平台:SP1010-LPC213X-ARM实验开发板1台,示波器1台,FOSC=12MHZ,CCLK=60MHZ,PCLK=CCLK/4
      更多内容:www.supermcu.com (西谱电子)
*/
#include <LPC213X.H>


#include <SinTab.H>


#define CCLK 60000000


#define KEY1 16
#define KEY2 14


#define VREF 3280



int main(void)
{
  long i;
  long amp;
  long KeyFlag1 = 0,KeyFlag2 = 0;


  PINSEL1 = (PINSEL1 & ~(0x03 << 18)) | (0x02 << 18);


  amp = VREF / 2;


  while(1)
    {
      for(i=0;i<360;i++)DACR = (amp * SINTAB /VREF) << 6;


      if(0 == (IO0PIN & (1 << KEY1)))
        {
          if(0 == KeyFlag1)
            {
              for(i=0;i<10000;i++);
              if(0 == (IO0PIN & (1 << KEY1)))
                {
                  KeyFlag1 = 1;
                  amp += 20;
                  if(amp > VREF)amp = VREF;
                }
            }
        }
        else KeyFlag1 = 0;

      if(0 == (IO0PIN & (1 << KEY2)))
        {
          if(0 == KeyFlag2)
            {
              for(i=0;i<10000;i++);
              if(0 == (IO0PIN & (1 << KEY2)))
                {
                  KeyFlag2 = 1;
                  amp -= 20;
                  if(amp < 20)amp = 100;
                }
            }
        }
        else KeyFlag2 = 0;
    }
}
/*
      更多内容:www.supermcu.com (西谱电子)
*/
PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
6
关闭 站长推荐上一条 /3 下一条