欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2813|回復: 2
收起左側

51單片機超聲波測距-SR04_12864顯示

[復制鏈接]
ID:820502 發表于 2020-9-18 21:49 | 顯示全部樓層 |閱讀模式
51單片機;超聲波探頭用的SR04;顯示用的12864;
各個子程序都寫成了單獨的文件;可用通用;

單片機源程序如下:
  1. #include <reg52.h>
  2. #include <delay.h>
  3. sbit trig=P1^6;
  4. sbit echo=P1^7;
  5. float const Tcy=12/11.0592;//us
  6. float const V0=349.5;//m/s or mm/ms tempreture=30
  7. unsigned int mesure_val,N;
  8. unsigned char mesure_over;
  9. void ini_mesure()
  10. {
  11.         float tmax=4000*2/V0;//最大距離4000mm;ms
  12.         N=(int)(tmax/Tcy*1000);
  13.         TMOD=0x01;
  14.         //TH0=(65536-N)/256;
  15.         //TL0=(65536-N)%256;
  16.         TH0=0;TL0=0;
  17.         ET0=1;EA=1;
  18.         trig=0;echo=1;//initialize P1
  19.         mesure_val=0;
  20. }

  21. void mesure()
  22. {
  23.         unsigned int th=0,tl=0;
  24.         float time;
  25.         trig=1;        delay(10);trig=0;//start SR04
  26.         while(echo==0);//wait echo high level
  27.         TR0=1; //start T0
  28.         while(echo==1);//echo high level end
  29.         TR0=0;
  30.         th=TH0;tl=TL0;
  31.         //TH0=(65536-N)/256;
  32.         //TL0=(65536-N)%256;//for next
  33.         TH0=0;TL0=0;
  34.         //time=((th*256+tl)-(65536-N))*Tcy/1000;//ms
  35.         time=(th*256+tl)*Tcy/1000;
  36.         mesure_val=(int)(time*V0/2);//mm
  37.                
  38. }

  39. void timer0() interrupt 1//超過最大距離處理
  40. {
  41.         //TH0=(65536-N)/256;
  42.         //TL0=(65536-N)%256;
  43.         TH0=0;TL0=0;
  44.         TR0=0;
  45.         mesure_over=1;
  46. }
復制代碼

所有資料51hei提供下載:
SR04.7z (13.2 KB, 下載次數: 72)

回復

使用道具 舉報

ID:246635 發表于 2020-9-19 09:10 | 顯示全部樓層
有沒有實際做過驗證一下?
回復

使用道具 舉報

ID:820502 發表于 2020-9-19 14:48 | 顯示全部樓層
是實際使用的程序
回復

使用道具 舉報

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

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表