找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

Proteus超聲波測距仿真電路圖+單片機源程序

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
#
ID:236171 發(fā)表于 2020-4-1 00:25 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
大多數(shù)人感覺超聲波測距proteus仿真是無法實現(xiàn)的,雖然proteus自帶的庫有GUR03和SRF04兩種模型,但是卻與實際傳感器使用方法相差甚遠,即使求助度娘也很難找到簡單易懂的教程。



之前很多人想做超聲波測距仿真但都沒有找到很好的辦法去實現(xiàn),在軟件里沒有這樣的元件,有人用一個按鍵開關(guān)去模擬仿真,這樣仿真出來的效果,非常不好。還有人用555時基電路產(chǎn)生一個延時信號(555電路作為超聲波仿真的內(nèi)部元件),來模擬超聲波頭發(fā)送后遇到回波返射回來的這階段時間,來對單片機超聲波測距單片機系統(tǒng)進行模擬,能完成對超聲波測距模塊大致仿真,但需要繁雜的設(shè)計。

下面是一個超聲波測距模塊的proteus模型,能直接用于proteus仿真,且使用方法與實際傳感器幾乎一致,模型如下圖。樓主千辛萬苦終于完成了仿真,分享交流一下,請大家不嗇賜教!

(library文件見附件)

下面是仿真效果:


單片機程序代碼:
  1. #include <reg51.h>
  2. #include <intrins.h>
  3. #include <LCDcmd.h>

  4. #define Delay4us(){_nop_();_nop_();_nop_();_nop_();}

  5. sbit LEDRed=P2^4;        //測距指示燈,亮表示正在測距,滅表示測距完成
  6. sbit Trig=P1^7;                //HC-SR04觸發(fā)信號輸入
  7. sbit Echo=P1^6;                //HC-SR04回響信號輸出

  8. float DistanceValue=0.0;        //測量的距離值
  9. float SPEEDSOUND;                                //聲速

  10. //延時函數(shù) 20微秒 @12.000MHz
  11. void Delay20us()
  12. {
  13.         uchar i;
  14.         _nop_();
  15.         i = 7;
  16.         while (--i);
  17. }


  18. //測量距離
  19. float MeasuringDistance()
  20. {
  21.         //最大定時時間約65ms
  22.         TH0=0;
  23.         TL0=0;
  24.         
  25.         //生成20us的脈沖寬度的觸發(fā)信號
  26.         Trig=1;                                
  27.         Delay20us();
  28.         Trig=0;

  29.         //等待回響信號變高電平
  30.         while(!Echo);        
  31.         TR0=1;                //啟動定時器0

  32.         //等待回響信號變低電平
  33.         while(Echo);               
  34.         TR0=0;                //關(guān)閉定時器0

  35.         //返回距離值(mm)
  36.         return (SPEEDSOUND*(TH0*256.0+TL0))/2000;
  37. }

  38. //HCSR04初始化
  39. void HCSR04_Initialize()
  40. {

  41.         SPEEDSOUND=334.1+25*0.61;                                
  42.         Trig=0;        
  43.         Echo=0;
  44.         TMOD=0x01;
  45. }

  46. //測距的數(shù)值排序求平均
  47. float DistanceStatistics()
  48. {
  49.         uchar i;
  50.         float disData;
  51.         for(i=0;i<7;i++)          //連續(xù)測距
  52.         {
  53.                 disData+=MeasuringDistance();        
  54.                 delay(1);        
  55.         }
  56.         return disData/7.0;
  57. }

  58. void main()
  59. {

  60.         LcdInitiate();//1602初始化
  61.         HCSR04_Initialize();//HC-SR04初始化
  62.         while(1)
  63.         {
  64.                 DistanceValue= DistanceStatistics()        ;
  65.                 display_val((int)DistanceValue,0x45);//顯示距離值
  66.                 delay(1000);
  67.                 LEDRed=~LEDRed;                //測距系統(tǒng)工作指示燈
  68.                
  69.         }
  70. }

復(fù)制代碼

全部文件已打包,請自行下載(2個文件內(nèi)容一樣,推薦下載7z的):
7z: 7z壓縮版.7z (96.58 KB, 下載次數(shù): 269)
winrar: 超聲波測距(仿真原理圖+源程序).rar (102.08 KB, 下載次數(shù): 1255)


評分

參與人數(shù) 3黑幣 +72 收起 理由
15961840023 + 12 很給力!
Jeff_BlindCat + 10 共享資料的黑幣獎勵!
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

78#
ID:1006117 發(fā)表于 2022-2-21 21:07 | 只看該作者
高級的設(shè)計
回復(fù)

使用道具 舉報

77#
ID:1005758 發(fā)表于 2022-2-18 22:02 | 只看該作者
午夜蹦迪丶 發(fā)表于 2020-4-1 10:16
我用的軟件版本是proteus 8.8 SP1,低于此版本的軟件可能會打不開,現(xiàn)在將我的軟件安裝包和原理圖單獨發(fā)出 ...

非常感謝你的分享,讓還屬于小白的我能學(xué)到挺感興趣的東西
回復(fù)

使用道具 舉報

76#
ID:995633 發(fā)表于 2021-12-22 13:45 | 只看該作者
真的牛呀,大佬做的很全
回復(fù)

使用道具 舉報

75#
ID:974642 發(fā)表于 2021-10-24 21:22 | 只看該作者
怎么實現(xiàn)距離呢
回復(fù)

使用道具 舉報

74#
ID:944175 發(fā)表于 2021-6-24 19:58 來自手機 | 只看該作者
樓主能講一下仿真的使用方法嗎?
回復(fù)

使用道具 舉報

73#
ID:940324 發(fā)表于 2021-6-22 08:49 | 只看該作者
樓主,那個超聲波的元器件是怎么找到的?
回復(fù)

使用道具 舉報

72#
ID:913669 發(fā)表于 2021-5-26 23:19 | 只看該作者
yilun123 發(fā)表于 2020-4-17 15:41
樓主你好,我想問一下你:在你這個超聲波模塊仿真中,我們怎么才能看出他已經(jīng)測到前面地距離了,因為我從新 ...

我也是
回復(fù)

使用道具 舉報

71#
ID:913669 發(fā)表于 2021-5-19 21:42 | 只看該作者
Gflgfl 發(fā)表于 2020-5-15 23:46
問一下樓主這個超聲波器件怎么仿真,滑動變阻器啥用處,還有怎么知道超聲波測得距離(好檢驗看看顯示的對不 ...

我也想知道,同問
回復(fù)

使用道具 舉報

70#
ID:922592 發(fā)表于 2021-5-18 16:29 來自手機 | 只看該作者
第一次打開里面有波形圖,第二次打開沒有了,然后在仿真非運行狀態(tài)下點擊菜單欄的debug,找到
回復(fù)

使用道具 舉報

69#
ID:922592 發(fā)表于 2021-5-18 15:48 來自手機 | 只看該作者
感謝樓主分享資料,用proteus8 白菜直接版運行沒有閃退現(xiàn)象,打開直接自動調(diào)用7z壓縮版里面的程序了,有波形圖,很nice
回復(fù)

使用道具 舉報

68#
ID:920364 發(fā)表于 2021-5-12 23:34 | 只看該作者
優(yōu)秀,正在嘗試。請問SONAR2這個元件,元件庫里自帶嗎
回復(fù)

使用道具 舉報

67#
ID:913669 發(fā)表于 2021-5-7 18:51 | 只看該作者
博主大神,proteus沒有stc15f2k60s2怎么仿真
回復(fù)

使用道具 舉報

66#
ID:916982 發(fā)表于 2021-5-7 15:10 | 只看該作者
感謝樓主的分享,學(xué)到了,學(xué)到了
回復(fù)

使用道具 舉報

65#
ID:582255 發(fā)表于 2021-4-30 14:58 | 只看該作者
proteus7.的文件用8可以打開嗎
回復(fù)

使用道具 舉報

64#
ID:328014 發(fā)表于 2021-4-28 19:41 | 只看該作者
yynb 發(fā)表于 2021-4-28 17:46
請問這是怎么仿真的 程序下進去之后怎么出波形圖

要先安裝Proteus8.8白菜直裝版,然后載入單片機的hwcj.hex和超聲波的UltraSonicTEP.HEX,然后運行仿真打開debug里面的示波器就可以看到波形了

超聲波測距(仿真原理圖 源程序).7z

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

回復(fù)

使用道具 舉報

63#
ID:906711 發(fā)表于 2021-4-28 17:46 | 只看該作者
請問這是怎么仿真的 程序下進去之后怎么出波形圖
回復(fù)

使用道具 舉報

62#
ID:374456 發(fā)表于 2021-4-19 17:53 | 只看該作者
想問一下怎么創(chuàng)建這個超聲波的元件
回復(fù)

使用道具 舉報

61#
ID:899092 發(fā)表于 2021-4-18 15:15 | 只看該作者
lcd只亮不顯示字符,p0.7一直是高電平
回復(fù)

使用道具 舉報

60#
ID:902063 發(fā)表于 2021-4-11 09:26 | 只看該作者
感謝,終于看著評論解決了問題
回復(fù)

使用道具 舉報

59#
ID:345393 發(fā)表于 2021-4-9 15:42 | 只看該作者
報錯  不能用
回復(fù)

使用道具 舉報

58#
ID:830448 發(fā)表于 2021-3-18 18:35 來自手機 | 只看該作者
午夜蹦迪丶 發(fā)表于 2020-4-5 16:27
你好,請直接提出你的問題,我會盡力提供幫助

設(shè)計添加一個接收模塊可以嗎
回復(fù)

使用道具 舉報

57#
ID:522191 發(fā)表于 2021-1-4 16:08 | 只看該作者
請問啥版本的Proteus
回復(fù)

使用道具 舉報

56#
ID:838572 發(fā)表于 2020-11-23 09:37 | 只看該作者
感謝樓主奉獻;好資料,51黑有你更精彩!!!
回復(fù)

使用道具 舉報

55#
ID:566202 發(fā)表于 2020-11-21 16:55 來自手機 | 只看該作者
請問這個超聲波測距的量程和測量誤差是多少?
回復(fù)

使用道具 舉報

54#
ID:845951 發(fā)表于 2020-11-20 10:28 | 只看該作者
根據(jù)這個原理圖進行實物焊接可以嗎?
回復(fù)

使用道具 舉報

53#
ID:845951 發(fā)表于 2020-11-19 15:15 | 只看該作者
可以試試用信號發(fā)生器來模擬超聲波發(fā)射和接收信號
回復(fù)

使用道具 舉報

52#
ID:840378 發(fā)表于 2020-11-7 23:06 | 只看該作者
我遇到了這個問題,請問這個怎么解決
Internal Exception: access violation in module 'PIC16EX.DLL' [000686CA].
回復(fù)

使用道具 舉報

51#
ID:831209 發(fā)表于 2020-10-18 15:09 來自手機 | 只看該作者
仿真出現(xiàn)問題
回復(fù)

使用道具 舉報

50#
ID:495287 發(fā)表于 2020-7-17 22:25 | 只看該作者
樓主奉獻助眾人,
耐心解答責任心;
電路源碼皆呈現(xiàn),
小小十分表吾心。
回復(fù)

使用道具 舉報

49#
ID:511084 發(fā)表于 2020-7-16 18:49 | 只看該作者
樓主你好,里面的一個壓縮包怎么損壞了
回復(fù)

使用道具 舉報

48#
ID:511084 發(fā)表于 2020-7-16 18:41 | 只看該作者
有個壓縮包損壞了。沒法用
回復(fù)

使用道具 舉報

47#
ID:800738 發(fā)表于 2020-7-12 12:17 | 只看該作者
仿真時,HEX文件打不開是怎么回事???
回復(fù)

使用道具 舉報

46#
ID:797980 發(fā)表于 2020-7-5 19:59 | 只看該作者
可以設(shè)置最低值嗎?
回復(fù)

使用道具 舉報

45#
ID:495287 發(fā)表于 2020-6-27 13:41 | 只看該作者
馬克,感謝樓主分享,學(xué)習。
回復(fù)

使用道具 舉報

44#
ID:769826 發(fā)表于 2020-6-25 19:33 | 只看該作者
請問怎么設(shè)置距離啊
回復(fù)

使用道具 舉報

43#
ID:764615 發(fā)表于 2020-6-7 01:31 | 只看該作者
大神您好,我按照您的圖連得電路,換了trig和echo的連接引腳,刪除了led,程序里也改了,但是仿真時lcd沒有數(shù)字,是怎么回事啊
回復(fù)

使用道具 舉報

42#
ID:750980 發(fā)表于 2020-6-4 15:11 | 只看該作者
樓主想問一下,能不能說一下整個仿真的大致思路啊
回復(fù)

使用道具 舉報

41#
ID:764124 發(fā)表于 2020-5-29 14:24 來自手機 | 只看該作者
大佬,這咋辦呀

1590733447068..jpg (1.27 MB, 下載次數(shù): 628)

1590733447068..jpg
回復(fù)

使用道具 舉報

40#
ID:727764 發(fā)表于 2020-5-24 12:29 來自手機 | 只看該作者
就是說傳感器發(fā)出的超聲波碰到啥才返回的
回復(fù)

使用道具 舉報

39#
ID:727764 發(fā)表于 2020-5-24 12:28 來自手機 | 只看該作者
請問,那個仿真的話,障礙物是怎么實現(xiàn)的
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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