📄 freqlow.c
字号:
#include "reg52.h"
#include "Zlg7290.h" //Zlg7290库
#include "viic_c51.h" //iic库
unsigned char scount;
void timer0_int() interrupt 1
{
TR0=0; //关闭定时器
TH0=0x4C; //重装定时器
TL0=0x19;
TF0=0; //清除溢出标志
scount--;
if(scount>0) //到1s了吗?
TR0=1; //没到,开定时器
else
TR1=0; //到了,停止T1的计数
}
main()
{
unsigned char a[5];
unsigned char i,resh,resl;
unsigned long int freq;
TMOD=0xD1; //定时器0工作在定时方式1,定时器1工作在计数方式1
TH0=0x4C; //定时50ms
TL0=0x19;
TH1=0; //计数值清0
TL1=0;
scount=20; //定时1s
ET0=1; //开定时器0中断
EA=1; //开总中断
TR0=1; //启动定时器和计数器
TR1=1;
for (i=0;i<5;++i)
a[i]=0;
ZLG7290_SendBuf(a,5); //在LED上显示5位0。
while(1)
{
if(!scount) //1s时间到
{
resh=TH1; //取出计数值
resl=TL1;
TH1=0; //计数值清零
TL1=0;
TH0=0x4C; //重装定时器0
TL0=0x19;
scount=20; //定时1S
TR0=1; //启动定时器和计数器
TR1=1;
freq=resh*256+resl; //计算频率值
a[0]=freq%10; //将各位分离显示
a[1]=(freq/10)%10;
a[2]=(freq/100)%10;
a[3]=(freq/1000)%10;
a[4]=freq/10000;
ZLG7290_SendBuf(a,5); //送ZLG7290显示
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -