#includereg52.h//°üÀ¨Ò»¸ö52±ê×¼Äں˵ÄÍ·Îļþ#defineucharunsignedchar//¶¨ÒåһϷ½±ãʹÓÃ#defineuintunsignedint#defineulongunsignedlong#defineLCD_dataP0sbitLCD_RS=P3^5;sbitLCD_RW=P3^6;sbitLCD_EN=P3^4;sbitLCD_PSB=P3^7;sbitbj=P1^7;sbitbeep=P1^0;sbitTrig=P1^1;//²úÉúÂö³åÒý½ÅsbitEcho=P3^2;//»Ø²¨Òý½Åsbitled=P1^2;//²âÊÔÓÃÒý½Åbitflag;//²âÁ¿³É¹¦±êÖ¾ucharoutcomeL,outcomeH;uintdistance_data;ucharcodedis1[]={³¬Éù²¨²â¾à};ucharcodedis2[]={ÀíÂÛ·¶Î§4mm-4m};ucharcodedis3[]={¾àÀë:};ucharcodedis4[]={µ¥Î»:mm};ucharcodedis5[]={ΣÏÕ!!};ucharcodedis6[]={°²È«};voiddelay(uintz){uchari,j;for(i=z;i0;i--)for(j=110;j0;j--);}voidwrite_cmd(ucharcmd){LCD_RS=0;LCD_RW=0;LCD_EN=0;P0=cmd;delay(1);LCD_EN=1;delay(1);LCD_EN=0;}voidwrite_dat(uchardat){LCD_RS=1;LCD_RW=0;LCD_EN=0;P0=dat;delay(1);LCD_EN=1;delay(1);LCD_EN=0;}voidlcd_init()//Òº¾§³õʼ»¯{LCD_PSB=1;write_cmd(0x30);delay(1);write_cmd(0x30);delay(1);write_cmd(0x0c);delay(1);write_cmd(0x01);delay(1);}//ÍⲿÖжÏ0£¬ÓÃ×öÅжϻز¨µçƽINTO_()interrupt0//ÍⲿÖжÏÊÇ0ºÅ{outcomeH=TH1;//È¡³ö¶¨Ê±Æ÷µÄÖµoutcomeL=TL1;//È¡³ö¶¨Ê±Æ÷µÄÖµflag=1;//ÖÁ³É¹¦²âÁ¿µÄ±êÖ¾EX0=0;//¹Ø±ÕÍⲿÖжÏ}//¶¨Ê±Æ÷1ÖжÏ,ÓÃ×ö³¬Éù²¨²â¾à¼ÆÊ±timer1()interrupt3//¶¨Ê±Æ÷0ÖжÏÊÇ1ºÅ{TH1=0;TL1=0;}voiddisplay(){uchara;write_cmd(0x80);for(a=0;a12;a++){write_dat(dis1[a]);}write_cmd(0x90);for(a=0;a15;a++){write_dat(dis2[a]);}write_cmd(0x88);for(a=0;a6;a++){write_dat(dis3[a]);}write_cmd(0x98);for(a=0;a8;a++){write_dat(dis4[a]);}}voidmain(){uchara;lcd_init();Trig=0;//Ê×ÏÈÀµÍÂö³åÊäÈëÒý½ÅTMOD=0x10;//¶¨Ê±Æ÷0£¬¶¨Ê±Æ÷1£¬16λ¹¤×÷·½Ê½IT0=0;//ÓÉ¸ßµçÆ½±äµÍµçƽ£¬´¥·¢ÍⲿÖжÏEX0=0;//¹Ø±ÕÍⲿÖжÏwhile(1){display();EA=0;Trig=1;delay(10);Trig=0;//²úÉúÒ»¸ö20usµÄÂö³å£¬ÔÚTrigÒý½Åwhile(Echo==0);//µÈ´ýEcho»Ø²¨Òý½Å±ä¸ßµçƽflag=0;//Çå²âÁ¿³É¹¦±êÖ¾EX0=1;//´ò¿ªÍⲿÖжÏTH1=0;//¶¨Ê±Æ÷1ÇåÁãTL1=0;//¶¨Ê±Æ÷1ÇåÁãTF1=0;//¶¨Ê±Æ÷1±ê־λÇåÁãTR1=1;//Æô¶¯¶¨Ê±Æ÷1EA=1;while(TH130);//µÈ´ý²âÁ¿µÄ½á¹û£¬ÖÜÆÚ65.535ºÁÃ루¿ÉÓÃÖжÏʵÏÖ£©TR1=0;//¹Ø±Õ¶¨Ê±Æ÷1EX0=0;//¹Ø±ÕÍⲿÖжÏif(flag==1){led=0;//????delay(10);distance_data=outcomeH;//²âÁ¿½á¹ûµÄ¸ß8λdistance_data=8;//·ÅÈë16λµÄ¸ß8λdistance_data=distance_data|outcomeL;//ÓëµÍ8λºÏ²¢³ÉΪ16λ½á¹ûÊý¾Ýdistance_data*=0.17;//12;//????//ÒòΪ¶¨Ê±Æ÷ĬÈÏΪ12·ÖƵ//distance_data=distance_data/58;//΢ÃëµÄµ¥Î»³ýÒÔ58µÈÓÚºÁÃ×//Ϊʲô³ýÒÔ58µÈÓÚºÁÃ×£¬//YÃ×=£¨XÃë*344£©/2XÃë=£¨2*YÃ×£©/344//==¡·XÃë=0.0058s*YÃ×==¡·ºÁÃ×=΢Ãë/58write_cmd(0x8b);write_dat(0x30+distance_data/1000);write_dat(0x30+distance_data/100%10);write_cmd(0x8c);write_dat(0x30+distance_data%100/10);write_dat(0x30+distance_data%10);if((distance_data)=40){bj=0;beep=0;delay(500);bj=1;beep=1;write_cmd(0x8d);for(a=0;a6;a++)write_dat(dis5[a]);}else{write_cmd(0x8d);for(a=0;a4;a++)write_dat(dis6[a]);}}if(flag==0){led=1;delay(200);//²âÊԵƱ仯}}}