📄 频率脉冲的测量周期法.c
字号:
/*-------------------------------------
测量周期法的基本原理:在被测信号T内,
对某一基准时间进行计数,基准时间与计数值
的乘积便是被测周期.
---------------------------------------*/
#include"at89x51.h"
#define uint unsigned int
uint count, period;
bit rflag = 0; //周期标志
void control(void)
{
TMOD = 0x09; //T/C0为方式1,INT0 为1是启动定时器
IT0 = 1; //脉冲方式(后沿负跳有效)进入中断
TH0 = 0;TL0 = 0;
P1_0 = 0; P1_0 = 1; 、//触发器清零
TR0 = 1; //启动T/C0
EX0 = 1; //只开外部中断1
EA = 1; //开总中断
}
void INT_0(void) interrupt 0 using 1 //INTO中断服务
{
EA = 0;
TR0 = 0;
count = TL0 + TH0 * 256;//取计数值
rflag = 1; //设标志
EA = 1;
}
main()
{
control();
while(rflag == 0); 、//等待一个周期
period = count * 2; //fosc = 6MHz,2us计数增1,周期值单位us
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -