这个简易的频谱仪其实工作原理很简单,就用到了定时中断和计数器的功能。原理是根据采集到的方波信号,计数器计数,当定时器中断到后产生定时中断信号中断计数,将计数的结果通过七段译码显示出来。
频率计计算程序:
#include
# define uchar unsigned char
# define uint unsigned int
sbit 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 int
sbit 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)
    ;  
}