資源簡介
基于LPC213X/LPC214X的簡易信號發(fā)生器,可以實現(xiàn)發(fā)出正弦波、三角波、方波、階梯波。并可調(diào)幅值、頻率。

代碼片段和文件信息
#include?“l(fā)pc213x.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\ob
?????文件???????1247??2018-12-25?23:44??DAC\ob
?????文件??????24486??2018-12-25?23:44??DAC\ob
?????文件??????36692??2018-12-25?23:44??DAC\ob
?????文件????????274??2018-12-25?23:44??DAC\ob
?????文件????????479??2018-12-18?10:12??DAC\ob
?????文件????????767??2018-12-25?23:44??DAC\ob
?????文件??????18963??2018-12-25?23:44??DAC\ob
?????文件????????170??2018-12-25?23:44??DAC\ob
?????文件??????39760??2018-12-25?23:44??DAC\ob
?????文件?????????32??2018-12-19?15:07??DAC\ob
?????文件???????3344??2018-12-19?15:07??DAC\ob
?????文件??????14185??2018-12-19?00:24??DAC\ob
............此處省略11個文件信息
- 上一篇:紅綠燈自動識別代碼
- 下一篇:鏈接-提取碼.txt
評論
共有 條評論