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

📄 text2.c

📁 用单片机C51语言写的等精度的频率计
💻 C
字号:
#include<reg51.h>
#include<stdio.h>
#include<lcd.c>
char count=0;
unsigned int period;
sbit  p32=P3^2;
char buff[30];
void Int0() interrupt 0
{
   TR0=0;             //停止计数
   period=TH0*255+TL0;//读结果
   TH0=0;
   TL0=0;//清定时器0
   TR0=1;//重新开始计数
}


main()
{
unsigned long freq;
init_LCD(); 
P1=0X00; 
TMOD=0X01; 
IT0=1;//边沿方式
EX0=1;
ET0=1;
EA=1;
P2=0X00;
freq=0;
while(1)
 {

   switch(P1)
  {
  case 0:
         {
         if(freq>1000.0)
	       P1=0X01;          
	      else{ lcdprintf(0,0,buff);
           sprintf(buff,"freq=%5.2fhz",974800.0/period);
           freq=1000000.0/period;}
		 } break;
  case 1:{if(freq>10000)		
		  P1=0X02;	 
 		 else{ lcdprintf(0,0,buff);
          sprintf(buff,"freq=%5.2fhz",9938000.0/period);
		freq=10000000.0/period;}
		 } break;
  case 2:{if(freq>100000)		
		 P1=0X03;		    
	    else{ lcdprintf(0,0,buff);
         sprintf(buff,"freq=%5.2fhz",  90000000.0/period);
		 freq=100000000.0/period;}
		 } break;
  case 3:{if(freq>1000000)
		 P1=0X04;				   
        else{ lcdprintf(0,0,buff);		
         sprintf(buff,"freq=%5.2fhz", 993800000.0/period);
		 freq=1000000000.0/period;}
		  } break;
  case 4:{
        if(freq>10000000)
		 P1=0X05;		 		  
        else{ lcdprintf(0,0,buff);		
         sprintf(buff,"freq=%5.2fhz",  10000000000.0/period);
		 freq=10000000000.0/period;}
		 } break;
  case 5:{if(freq>100000000)
		 P1=0X06;		 		   
         else{ lcdprintf(0,0,buff);		 
         sprintf(buff,"freq=%5.2fhz",  100000000000.0/period);
		 freq=100000000000.0/period;}
		 } break;
  case 6:{
        if(freq>1000000000)
		  P1=0X07;				  
         else{ lcdprintf(0,0,buff);		 
          sprintf(buff,"freq=%5.2fhz", 1000000000000.0/period);
		 freq=1000000000000.0/period;}
		  } break;
	   } 
   }
 }


⌨️ 快捷键说明

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