来 源:西谱电子(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;
文章评论(0条评论)
登录后参与讨论