写一个c51单片机测量脉冲频率的c语言程序
时间: 2023-06-02 08:05:36 浏览: 166
基于51单片机的频率计设计-c语言程序.pdf
这个问题可以回答。下面是一个简单的C语言程序,用于测量C51单片机的脉冲频率:
```
#include <REG51.h>
unsigned int count = 0; //计数器
unsigned int frequency = 0; //脉冲频率
void main(void)
{
TMOD = 0x09; //设置计数器0为方式1,计数器1为方式0
TH0 = 0; //计数器0高位清零
TL0 = 0; //计数器0低位清零
TR0 = 1; //启动计数器0
ET0 = 1; //开启计数器0中断
EA = 1; //开启总中断
while (1)
{
if (count >= 1000) //计数器计数到1000,表示1000个脉冲
{
frequency = 1000 / (TH1 * 256 + TL1); //计算脉冲频率
TH1 = 0; //计数器1高位清零
TL1 = 0; //计数器1低位清零
count = 0; //计数器清零,重新计数
printf("Current frequency is %d Hz\r\n", frequency); //输出脉冲频率
}
}
}
void Timer0_ISR() interrupt 1
{
count++; //计数器累加
}
```
在这个程序中,我们使用计数器0来计算脉冲信号的宽度,计数器1用于计算时间。在1000个脉冲之后,我们就可以计算出脉冲频率了。注意,此程序仅供参考,具体实现可能需要根据实际情况进行修改。
阅读全文