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

📄 samp6-4.c

📁 四位液晶显示的频率计,可最大测大65KHZ
💻 C
字号:
#include <REG52.H>
#include <at89x52.h>
//#include"LED2.H"
//#include"24C02.h"
#include "lcd1602.h"
#define uchar unsigned char 
uchar disp[8];
uchar T0count,T1count;
//uchar code dispcode[]={0x11,0Xd7,0x32,0X92,0XD4,0X98,0X18,0XD3,0X10,0X90};
//void calc()
 uchar flag=0,flag2=0;
uchar display_code[] = {0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39};
uchar dispbuf[5]; //显示缓冲区

void delayxm(uchar x)
{	 uchar i,j;
  	 while(x--)
	  {
	    for(i=0;i<250;i++)
		for(j=0;j<132;j++);
		
	
	   }
} 

void calc()  
{
  uchar i;
  long frequency;
  frequency=(T0count*256+TH0)*256+TL0;
  for (i=4;i>0;i--)
    {
	disp[i]=frequency%10;
	 // disp[]=frequency%10;
	  frequency=frequency/10;
	 }
  disp[0]=frequency;
 // display_code[0]=frequency;
}
  display()
  {
  lcd_strwdat( 0,"Ping Lu Ji (KHz)" );// 
	   lcd_pos(0x42);
	// if(dispbuf[0]!=0)
	// {					   //如果上一百度则百数才显示
     //	lcd_write(1,display_code[disp[3]]);
	//	lcd_write(1,display_code[disp[2]]);
	//	lcd_write(1,display_code[disp[1]]);
//		lcd_write(1,display_code[disp[0]]);
	//	}
	//	lcd_write(1,display_code[4]);
	//	lcd_write(1,display_code[5]);
	//	lcd_write(1,display_code[6]);
	//	lcd_write(1,display_code[7]);
	//	lcd_write(1,display_code[8]);
	//	lcd_write(1,display_code[9]);
	//	lcd_write(1,display_code[0]);
	//	lcd_write(1,display_code[1]);
	//	lcd_write(1,display_code[1]);
	//	lcd_write(1,display_code[1]);
	//	lcd_write(1,display_code[1]);
	//	lcd_write(1,display_code[1]);
	}	 
void init()
{
   T0count=0;
   T1count=0;
   TH0=0;
   TL0=0;
}
void main()
{
  uchar i,CON;
  init();
  TMOD=0X15;
  TH1=(65536-50000)/256;
  TL1=(65536-50000)%256;
  ET1=1;
  ET0=1;
  EA=1;
  TR1=1;
  TR0=1;
  T2MOD=0X02;
  RCAP2H=245;
  RCAP2L=74;
  TR2=1;

  lcd_init(); 			  //初始化lcd
  for(i=0;i<4;i++)		  //显示缓冲区置0
  dispbuf[i] = 0;
  while(1)
    {
  	   display();		  //显示 
		CON++;
		if(CON==300)	 //写时刷屏
		lcd_init();
 //   }
//	while(1)
//	{
	lcd_write(1,display_code[disp[0]]);
	
		lcd_write(1,display_code[disp[1]]);
		lcd_write(1,0x2e);
		lcd_write(1,display_code[disp[2]]);	
		lcd_write(1,display_code[disp[3]]);
		lcd_write(1,display_code[disp[4]]);
			 delayxm(2);
		}
 /* while(1)
   {
     display(dispcode[disp[3]]);
	 display(dispcode[disp[2]]);
	 display(dispcode[disp[1]]);
	 display(dispcode[disp[0]]);
	 display(dispcode[0xff]);
     display(dispcode[0xff]);
     display(dispcode[0xff]);
     display(dispcode[0xff]);
	 delayxms(10);
	} */
}	
void time0() interrupt 1
{
  T0count++;
}
void time1() interrupt 3
{ // uchar contuer;
   TH1=(65536-50000)/256;
   TL1=(65536-50000)%256;
   if(T1count==19)
     {
	   calc();
	   init();
	  }
	else T1count++;
//	contuer++;
  // if(contuer==7)					//当到0.35s改变 flag
 //  {
 // contuer=0;
 // flag=~flag;
 // }
}			 

⌨️ 快捷键说明

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