C語言——NE555頻率檢測

#include "STC15F2K60S2.h"
#include "SMG.h"           //見我之前的博客

void timer0_init();
void Timer1Init();
void all_init();

unsigned int count1s;
unsigned char temp,flag1s;
unsigned int frequency;


void main()
{
	EA=1;
	ET1=1;
	ET0=1;
	
	timer0_init();
	Timer1Init();
	all_init();
	
	while(1)
	{
		if(flag1s)
		{				
      flag1s=0;			
			frequency=frequency+(TH0*256)+TL0;
			
			SMGBit[7]=frequency%10;
			SMGBit[6]=frequency/10%10;
			SMGBit[5]=frequency/100%10;
			SMGBit[4]=frequency/1000%10;
			SMGBit[3]=frequency/10000;	
			SMGBit[2]=10;
				
			frequency=0;
			TH0=0;TL0=0;
		}
			SMGBit[1]=temp;
			SMGBit[0]=10;
		
	}
}


void timer0_config()   interrupt 1
{
	frequency=frequency+65536;                 //如果溢出
}

void timer1_config()   interrupt 3
{	
	SMG_display();	
	if(++count1s==500)
	{
		count1s=0;
		flag1s=1;
		temp++;
		if(temp==10)
			temp=0;
	}
}

void timer0_init()
{
	TL0=0X00;
	TH0=0X00;
	TR0=1;
}

void Timer1Init(void)		//2毫秒@11.0592MHz
{
	AUXR |= 0x40;		//定時器時鐘1T模式
	TMOD = 0x05;		//設置定時器模式
	TL1 = 0x9A;		//設置定時初值
	TH1 = 0xA9;		//設置定時初值
	TF1 = 0;		//清除TF1標誌
	TR1 = 1;		//定時器1開始計時
}

void all_init()
{
	P2=0xe0;P0=0XFF;
	P2=0XA0;P0=0X00;
	P2=0X80;P0=0XFF;
	P2=0XC0;P0=0XFF;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章