#include<reg52.h>
#define
uchar
unsigned
char
#define
uint
unsigned
int
sbit
wave
=
P0^1
//设P0.1接受外部脉冲
uint
count
=
0
uint
f
void
inti()
//初始化
{
TMOD
=
0x21
//选T1工作方式2定时,计数器T0工作方式1计数
ET1
=
1
//开T1定扰森瞎时器中断
TH1
=
-250
//装初值
TL1
=
-250
TH0
=
0
TL0
=
0
TR1
=
1
//开定时器
TR0
=
1
//开计数器
EA
=
1
//开总中断
}
void
main()
{
inti()
//定时器初始化
while(1)
}
void
timeer()
interrupt
3
//定时器T1中断
{
if
(count
++==
4000)
//定时1s,1s采集刷新一缓空次数据
{
f
=
TH0*256
+
TL0
//外部信号频春樱率计算(即一秒内收到的脉冲数)
}
}
至于显示函数就不写了,很简单自己加到主函数里就行啦
/* 这个STC-ISP带这个工具手乱耐的*//* 定时器0是不能做陪纳波特率发生器的,下面定时器2晶毕春振11.059200MHz时,供参考*/
void UartInit(void) //[email protected]
{
SCON = 0x50 //8位数据,可变波特率
AUXR |= 0x01 //串口1选择定时器2为波特率发生器
AUXR |= 0x04 //定时器2时钟为Fosc,即1T
T2L = 0xE0 //设定定时初值
T2H = 0xFE //设定定时初值
AUXR |= 0x10 //启动定时器2
}
void init(void){
RCAP2H=0x1F// T2定时器初值
RCAP2L=0x00
ET2=1 //饥答 允许T2定时器中断
TR2=1// 启动T2定时器
EA=1 // 开总中陆慎断烂悉慧
}
/***T2***中***断***函***数***/
void Timer2_Server(void) interrupt 5
{
TF2=0
...........
..........
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)