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

📄 ultrasonic2.c

📁 LCD液晶驱动程序代码
💻 C
字号:
#include<P89V51.H>
#include<LCD.C>
sbit P1_6 =P1^6;
sbit P1_7 =P1^7;
sbit P3_3 =P3^3;
unsigned char a,b;
unsigned int c;
void DisplayInt(Uchar X,Uchar Y,Uint f);
void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData);

void Delay(unsigned char c,unsigned char d,unsigned char e)
{
 unsigned char i,j,k;
 for(i=0;i<=c;i++)
 {
   for(j=0;j<=d;j++)
    for(k=0;k<=e;k++);
 }
}

void RigourTimer(unsigned char m)
    {	
    	unsigned char i;
		
    	for(i=0;i<m;i++)
    	{	
		    TMOD=0x00;
    		TH0=0xff30/256;
    		TL0=0xff30%256;
			TR0=1;
			EX1=1;
            do{}
			while(!TF0);
    		TF0=0;
    	}
    	TR0=0;
		EX1=0;
    }

void counter(void) interrupt 0 	using 3 //测出往返时间
	{

		EX0=0;
		P1_7=!P1_7;
		
		EA=1;
		TR1=0;	   
		a=TL1;
		b=TH1;
    }


////////////////////////////////////////////////////////////

void timer1(void) interrupt 3 using 2
	{
		
	  TR1=0;	

	}

/////////////////////////////////////////////////////////////

main()
{	   



	    PSB=1;
        RST=0;
	    Delay(10,1,1);
	    RST=1;
        Delay(1,10,1);
        Delay(10,1,1);
        LCMInit();
        Delay(10,1,1);
	    EA=1;
		EX0=0;
		
	while(1)
	{

	    
		//IE0=0;
		EX0=0;
		EA=1;
	    P1_6=1;
		RigourTimer(2);		 //P1.6控制超声波的发射,发射250us
		P1_6=0;
		RigourTimer(20);	 //避开盲区,以检测回波

		TMOD=0x10;			 
	    TH1=0;
		TL1=0;
		TR1=1;				 //开定时器
		 					
						     //开外部中断1,关闭定时器1,测量回波返回时间
	    EA=1;
		IT0=1;
		EX0=1;
		
	    //Delay(20,1,50);	 //延时

        c=((unsigned int)b<<8)+a;
        DisplayInt(0,0,c);	 //LCD输出定时器1寄存器的值
		Delay(20,10,50);
		WriteCommandLCM(0x02,1); //光标重新定位
        Delay(1,10,50);
		}


}




⌨️ 快捷键说明

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