⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 freq.c

📁 单片机使用IIC总线的完整源码
💻 C
字号:
#include "reg52.h"
#include "Zlg7290.h"				//Zlg7290库
#include "viic_c51.h"				//iic库

unsigned char scount,pcount;

void counter1_int() interrupt 3
{	
	TR1=0;				//关闭定时器
	TR0=0;
	pcount++;			//计算溢出的次数
	TF1=0;				//清除溢出标志
	TR1=1;				//开定时器
	TR0=1;
}

void timer0_int() interrupt 1
{
	TR0=0;					//关闭定时器
	//TR1=0;
	TH0=0x4C;				//重装定时器
	TL0=0x19;
	TF0=0;					//清除溢出标志
	scount--;
	if(scount>0)			//到1s了吗?
	{
		TR0=1;				//没到,开定时器
		//TR1=1;
	}	
	else
		TR1=0;				//到了,停止T1的计数
}

main()
{
	unsigned char a[8];
	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
	PT1=1;							//定时器1高优先级
	ET1=1;							//使能定时器中断
	ET0=1;
	EA=1;
	TR0=1;							//启动定时器和计数器
	TR1=1;

	for (i=0;i<8;++i)
		a[i]=0;
	ZLG7290_SendBuf(a,5);
	while(1)
	{
		if(!scount)					//1s时间到
		{
			//TR1=0;
			//TR0=0;
			resh=TH1;				//取出计数值
			resl=TL1;
			i=pcount;
			pcount=0;
			TH1=0;					//计数值清零
			TL1=0;
			TH0=0x4C;				//重装定时器0
			TL0=0x19;
			scount=20;				//定时1S
			TR0=1;					//启动定时器和计数器
			TR1=1;
			freq=65535*i+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)%10;
			a[5]=freq/100000;
			ZLG7290_SendBuf(a,6);				//送ZLG7290显示
			//delayNS(100);*/
		}  
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -