找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2792|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

超聲波測距程序下載 帶1602液晶屏顯示

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:94991 發(fā)表于 2016-3-22 17:59 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include<reg52.h>
#include<intrins.h>
#include"1602.h"
#include"delay.h"
sbit trig = P2^0;        //        產(chǎn)生脈沖引腳   tx
sbit echo = P2^1;     //         回波引腳         rx
unsigned char flag;
unsigned int s,s1,s2,s3,time;




unsigned char code dofly_code[]={'0','1','2','3','4','5','6','7','8','9'};//轉(zhuǎn)換成液晶顯示的字符



void Conut(void)
        {
         time=TH0*256+TL0;
         TH0=0;
         TL0=0;
         //s=(time*1.56672)/100;    //晶振11.0592算出來是CM  
         s=(time*1.9)/100;//用的時(shí)候根據(jù)實(shí)際反求的
          s1=dofly_code[s/100];
         s2=dofly_code[(s%100)/10];
         s3=dofly_code[(s%100)%10];
         //S=(time*1.7)/100;     //晶振12M算出來是CM
         if((s>=700)||flag==1) //超出測量范圍顯示“
         {         
          flag=0;
          LCD_Write_String(1,2,"   S:--- CM  XX ");         
          delay(500);
          LCD_Write_String(1,2,"   S:    CM     ");
          }
         else
         {
          LCD_Write_String(1,2,"   S:    CM  OK ");         
          LCD_Write_Char(6,2,s1) ;   
          LCD_Write_Char(7,2,s2) ;      
             LCD_Write_Char(8,2,s3) ;      
         // LCD_Write_Char(6,2,s1) ;      
         }      
        }




void zd0() interrupt 1                  //T0中斷用來計(jì)數(shù)器溢出,超過測距范圍
  {
    flag=1;                                                         //中斷溢出標(biāo)志
  }



    void  StartModule()                          //啟動(dòng)模塊
  {
          trig=1;                                             //啟動(dòng)一次模塊
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          trig=0;
  }





void main(void)
{


        LCD_Init() ;
        LCD_Write_String(1,1," Csheng bo test ");
        LCD_Write_String(1,2,"   S:    CM  OK ");               
        while(1)
        {
         TMOD=0x01;                   //設(shè)T0為方式1,GATE=1;
         TH0=0;
         TL0=0;         
         ET0=1;             //允許T0中斷
         EA=1;                           //開啟總中斷                       
        while(1)
          {
             StartModule();
             while(!echo);                //當(dāng)Echo為零時(shí)為真
             TR0=1;                            //開啟計(jì)數(shù)
             while(echo);                //當(dāng)Echo為1為真
             TR0=0;                                //關(guān)閉計(jì)數(shù)
         Conut();                        //計(jì)算
                 delay(80);                //80MS         
          }
        }
}





這上面是主函數(shù),1602函數(shù)和延時(shí)函數(shù)放在附件里面吧

俠歌無畏.zip

19.91 KB, 下載次數(shù): 12, 下載積分: 黑幣 -5

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表