这个简易的频谱仪其实工作原理很简单,就用到了定时中断和计数器的功能。原理是根据采集到的方波信号,计数器计数,当定时器中断到后产生定时中断信号中断计数,将计数的结果通过七段译码显示出来。
频率计计算程序:
#include# define uchar unsigned char# define uint unsigned intsbit dout=P3^0;unsigned char num;void init(){ EA=1; TMOD=0x01; TR0=1; ET0=1; dout=0; num=0;} void time() interrupt 1{ TH0=(65535-200)/256; TL0=(65535-200) %6; dout=~dout; } void main(){ init(); while(1) ; } 产生方波信号程序:#include# define uchar unsigned char# define uint unsigned intsbit dout=P3^0;unsigned char num;void init(){ EA=1; TMOD=0x01; TR0=1; ET0=1; dout=0; num=0;} void time() interrupt 1{ TH0=(65535-200)/256; TL0=(65535-200) %6; dout=~dout; } void main(){ init(); while(1) ; }