久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3327|回復: 8
打印 上一主題 下一主題
收起左側

求助超聲波測量問題,萬分感謝

[復制鏈接]
跳轉到指定樓層
樓主
ID:232280 發表于 2017-10-18 22:47 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
看了很多別人的程序,也了解了一下原理,感覺別人寫的太復雜了,所以就自己寫了一個,但是不管用,距離亂顯示,而且刷新時間長。麻煩大神幫我看看哪出問題了,不要給別人的程序,我有太多。只想知道這個程序問題在哪,謝謝。
  1. #include<reg52.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
  5.                                                         0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,
  6.                                                         0x79,0x71};
  7. sbit tring=P2^0;
  8. sbit echo=P2^1;
  9. sbit DLA=P2^2;                //位顯數碼管
  10. sbit DLB=P2^3;
  11. sbit DLC=P2^4;
  12. bit flag=0;                        //測量超聲波是否成功標志
  13. uint S;                                //長度
  14. void delay20us(void)   //誤差 0us
  15. {
  16.     unsigned char a,b;
  17.     for(b=1;b>0;b--)
  18.         for(a=7;a>0;a--);
  19. }

  20. void conduct()
  21. {
  22.         uint time;
  23.         time=TH0;                          //讀取時間長度
  24.         time<<=8;
  25.         time=time|TL0;
  26.         TH0=0;TL0=0;
  27.         S=time*0.017;                 //轉化為距離,單位CM;time*340*100/(2*1000000)
  28. }
  29. void init()
  30. {
  31.         TMOD=0x11;
  32.         EA=1;ET0=1;ET1=1;
  33.         TH1=0xB1;TL1=0xE0;//周期為20MS;
  34.         TH0=0;TL0=0;
  35.         TR1=1;
  36. }
  37. void timer0() interrupt 1          //若溢出,則說明測量失敗
  38. {
  39.         flag=1;
  40. }
  41. void timer1() interrupt 3
  42. {
  43.         uchar a,b;       
  44.         TH1=0xB1;TL1=0xE0;
  45.         if((S>4000)|(flag==1))                 //數碼管顯示函數
  46.         {
  47.                 for(a=40;a>0;a--)
  48.                 {
  49.                         flag=0;
  50.                         DLA=0;DLB=0;DLC=0;P0=0x3f;delay20us();
  51.                         DLA=1;DLB=0;DLC=0;P0=0x50;delay20us();
  52.                         DLA=0;DLB=1;DLC=0;P0=0x50;delay20us();
  53.                         DLA=1;DLB=1;DLC=0;P0=0x79;delay20us();
  54.                 }       
  55.         }
  56.         else
  57.         {
  58.                 for(a=40;a>0;a--)
  59.                 {
  60.                         DLA=0;DLB=0;DLC=0;P0=table[S%10];delay20us();
  61.                         DLA=1;DLB=0;DLC=0;P0=table[S%100/10];delay20us();
  62.                         DLA=0;DLB=1;DLC=0;P0=table[S%1000/100];delay20us();
  63.                         DLA=1;DLB=1;DLC=0;P0=table[S/1000];delay20us();
  64.                 }       
  65.         }
  66.         b++;                                                //b為10即200ms測量一次;
  67.         if(b==10)
  68.         {
  69.                 b=0;
  70.                 tring=1;
  71.                 delay20us();
  72.                 tring=0;
  73.                
  74.         }       
  75. }
  76. void main()
  77. {
  78.         init();
  79.         while(1)
  80.         {
  81.                 while(echo==0);
  82.                 TR0=1;
  83.                 while(echo==1);
  84.                 TR0=0;
  85.                 conduct();
  86.         }
  87. }
復制代碼


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

使用道具 舉報

沙發
ID:240790 發表于 2017-10-18 23:14 | 只看該作者
看不出問題
回復

使用道具 舉報

板凳
ID:232280 發表于 2017-10-19 08:49 來自手機 | 只看該作者
tjsh 發表于 2017-10-18 23:14
看不出問題

是吧,我也認為是沒問題的,如果有問題,應該是執行時候的問題,可能有沖突,也有可能mcu忙
回復

使用道具 舉報

地板
ID:240356 發表于 2017-10-19 21:11 | 只看該作者
很多時候不是程序的問題,有可能是傳感器的問題,我以前也調過很長時間,最后整了整傳感器,然后就好了,你可以嘗試一下。
回復

使用道具 舉報

5#
ID:232280 發表于 2017-10-19 23:47 來自手機 | 只看該作者
xiehuanle 發表于 2017-10-19 21:11
很多時候不是程序的問題,有可能是傳感器的問題,我以前也調過很長時間,最后整了整傳感器,然后就好了,你 ...

不會的,因為我用別人寫的程序試過沒問題
回復

使用道具 舉報

6#
ID:239427 發表于 2017-10-20 00:00 | 只看該作者
幫看,我在我軟件試試
回復

使用道具 舉報

7#
ID:241144 發表于 2017-10-20 00:33 | 只看該作者
感覺沒有問題哎,執行時出現的是什么錯誤?
回復

使用道具 舉報

8#
ID:232280 發表于 2017-10-20 22:12 | 只看該作者
隨煬heart 發表于 2017-10-20 00:33
感覺沒有問題哎,執行時出現的是什么錯誤?

燒錄后距離不準確,是很離譜;而且久久不刷新
回復

使用道具 舉報

9#
ID:241465 發表于 2017-10-21 00:20 | 只看該作者
看不出來。。。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产9 9在线 | 中文 | 欧美激情va永久在线播放 | 久久免费精品 | 精品视频在线观看 | 成人精品免费视频 | 97精品国产97久久久久久免费 | 亚洲欧美一区二区三区视频 | 伊人精品久久久久77777 | 欧美精品一区三区 | 久久精品亚洲精品国产欧美 | 国产一区二区三区精品久久久 | 久久国产成人精品国产成人亚洲 | 国产精品久久二区 | 国产欧美精品一区二区三区 | 日本午夜在线视频 | 亚洲国产成人精品在线 | 免费黄色a级毛片 | 欧美一区二区三区在线观看视频 | 在线中文字幕日韩 | 欧美午夜精品理论片a级按摩 | 欧洲毛片 | 亚洲国产精品一区二区三区 | 女人一区 | 国产在线97 | 亚洲区一区二 | 三级视频网站 | 一a一片一级一片啪啪 | 欧美电影免费网站 | 欧美video| 一级无毛片 | 日本成人二区 | www.婷婷| 综合久久色 | 日韩综合在线 | 日韩视频在线免费观看 | 午夜看片 | 国产亚洲精品久久久久久豆腐 | 国产精品久久久久久久久久妞妞 | 欧美一区二区三区在线播放 | 三级成人在线 | 亚洲国产精品suv |