基于STC8的频率计
测频原理:计数法测频率。
实现方法:利用51单片机定时器可作为外部脉冲计数器的特点,可实现频率计数。具体使用两个定时器,本例中,使用定时器0作为外部脉冲计数器,用于对外部脉进行捕获(下降沿触发),定时器3产生1s定时,用于提取计数频率。
代码如下
//系统时钟频率 24MHz
#include "STC8.H"
bit send_flag = 0;
unsigned int freq = 0; //频率计数
unsigned long cont_freq = 0; //频率计数溢出
unsigned char res[6]; //频率转换结果
void TM0_Init();
void TM3_Init();
void UartSend(unsigned char dat);
void UartInit(void);
void UartSendStr(unsigned char *p);
void Num_Cut(unsigned long num);
void Uart_Send_Str(unsigned char str[],unsigned char len,bit mode);
void main ()
{
TM0_Init();
TM3_Init();
UartInit();
while(1)
{
if(send_flag)