• 大小: 227KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-02
  • 语言: 其他
  • 标签: LPC213X  

资源简介

基于LPC213X/LPC214X的简易信号发生器,可以实现发出正弦波、三角波、方波、阶梯波。并可调幅值、频率。

资源截图

代码片段和文件信息

#include “lpc213x.h“
#include “main.h“
#include “math.h“

void  DelayNS(uint16  dly)
{
   uint16 i;
   for(; dly>0; dly--)
    for(i=0; i<50000; i++);
}

/*
三角波
*/
void sj()
{
uint16 i;
for(i=0;i<512;i++)
{
table[i]=i*2;
}
for(i=512;i<1024;i++)
{
table[i]=(1023-i)*2;
}
}

/*
正弦波
*/
void zx()
{
double  T = (2 * 3.1415926)/1024;
uint16 i;
for(i=0;i<1024;i++)  
{
table[i] = 512+511*sin(T*i);
}
}

/*
方波
*/
void fb()
{
uint16 i;
for(i=0;i<1024;i++)
{
if(i<512)
{ table[i]=1023;}
else
{ table[i]=0;}
}

}

/*
阶梯波
*/
void jt()
{
uint16 im;
m=0;
  for(i=0;i<1024;i++)
  {
if(i%128==0)
{
m=i;
}
table[i]=m;
  }
}

void change()
{
switch(key)
{
case 0:zx();break;
case 1:fb();break;
case 2:sj();break;
case 3:jt();break;
default: break;
}
}
void time()
{
T0TC=0;
T0PR=0;
T0MCR=0x03;
T0MR0=Fpclk/100*fc/100;
T0TCR=0x01;
/*
VICIntSelect=VICIntSelect & (~(1<<4));
VICIntEnable =(1<<4);
VICVectCntl1=0x20|4;
VICVectAddr1=(uint32)IRQ_Timer0;
*/

}

void  KeyScan(void)
{      
if(!K0)
  { DelayNS(10); //延时去抖动
if(!K0)
{
 key++;
 if(key>3) key=0;
 
change();
}
while(!K0);    //等待键松开
  }

 if(!K1)
  { 
DelayNS(10); //延时去抖动
if(!K1)
{
if(h<26)
h=h+1;
}
while(!K1);    //等待键松开
  }
 if(!K2)
  { 
DelayNS(10); //延时去抖动
if(!K2)
{
if(h>0)
h=h-1;
}
while(!K2);    //等待键松开
  }

 if(!K3)
  { DelayNS(10); //延时去抖动
if(!K3)
{
if(fc<100)
fc=fc+4;
time();
}
while(!K3);    //等待键松开
}
  if(!K4)
  { DelayNS(10); //延时去抖动
if(!K4)
{
if(fc>4)
fc=fc-4;
time();
}
while(!K4);    //等待键松开
}
}

/*
void __irq  IRQ_Timer0(void)
{
if(t>1024)
{
t=0;
}
DACR=((table[t]*h/26)<<6)|(1<<16);

//for (j=0; j<0x20; j++); 
t++;
while((T0IR&0x01) == 0 );
T0IR = 0x01;
  VICVectAddr = 0x00;
}
*/

int main(void){
PINSEL0 = 0x00000000;
PINSEL1 = (PINSEL1&(~(0x03<<18))) | (0x02<<18); // P0.25 连接Aout
zx();
time();

while(1)
{
KeyScan();
if(t>1024)
{
t=0;
}
DACR=((table[t]*h/26)<<6)|(1<<16);
t++;
while((T0IR&0x01) == 0 );     // 等待定时时间到
T0IR = 0x01; // 清除中断标志 

}
}


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2092  2011-09-28 01:34  DAC\Config.h

     文件       3702  2018-12-25 23:35  DAC\DAC.PWI

     文件     204215  2018-12-25 23:34  DAC\DAC_1.DSN

     文件       3534  2018-12-25 23:50  DAC\DAC_1.PWI

     文件     178610  2018-12-19 01:06  DAC\ks.DSN

     文件       3836  2018-12-25 23:42  DAC\ks.PWI

    .......     85483  2018-12-25 23:50  DAC\ks.uvgui.13156

     文件      85478  2018-12-19 16:21  DAC\ks.uvgui.new

     文件       5705  2018-12-19 01:06  DAC\ks.uvopt

     文件      15745  2018-12-18 10:52  DAC\ks.uvproj

     文件     169050  2018-12-25 23:21  DAC\Last Loaded DAC.DBK

     文件     204215  2018-12-25 23:31  DAC\Last Loaded DAC_1.DBK

     文件     172773  2018-12-18 17:43  DAC\Last Loaded ks.DBK

     文件      79950  2018-12-25 23:44  DAC\Listings\ks.map

     文件      44621  2018-12-19 15:07  DAC\Listings\startup.lst

     文件       2412  2018-12-25 23:50  DAC\main.c

     文件        396  2018-12-25 23:16  DAC\main.h

     文件      30756  2018-12-25 23:44  DAC\objects\ks.axf

     文件       1247  2018-12-25 23:44  DAC\objects\ks.build_log.htm

     文件      24486  2018-12-25 23:44  DAC\objects\ks.hex

     文件      36692  2018-12-25 23:44  DAC\objects\ks.htm

     文件        274  2018-12-25 23:44  DAC\objects\ks.lnp

     文件        479  2018-12-18 10:12  DAC\objects\ks.sct

     文件        767  2018-12-25 23:44  DAC\objects\ks_Target 1.dep

     文件      18963  2018-12-25 23:44  DAC\objects\main.crf

     文件        170  2018-12-25 23:44  DAC\objects\main.d

     文件      39760  2018-12-25 23:44  DAC\objects\main.o

     文件         32  2018-12-19 15:07  DAC\objects\startup.d

     文件       3344  2018-12-19 15:07  DAC\objects\startup.o

     文件      14185  2018-12-19 00:24  DAC\objects\target.crf

............此处省略11个文件信息

评论

共有 条评论