數碼管超聲波c語言黑51,51單片機開發板-超聲波測距-數碼管顯示

《51單片機開發板-超聲波測距-數碼管顯示》由會員分享,可在線閱讀,更多相關《51單片機開發板-超聲波測距-數碼管顯示(16頁珍藏版)》請在人人文庫網上搜索。

1、計算機技術系項目工作報告課程名稱單片機開發板設計與制作實訓班級學號姓名項目名稱超聲波測距,數碼管顯示實訓日期/時間2015.6.23-2015.7.5地點指導教師同組成員儀器設備(參考資料)計算機、Keil uVision2、Proteus ISIS 電烙鐵、開發板、HC-SR04超聲波模塊實訓內容(任務安排)1焊接開發板2自選課題3開發與調試4項目匯報與總結一、 項目名稱與要求項目名稱:超聲波測距,數碼管顯示功能描述:采用HC-SR04超聲波模塊,STC89C52單片機以及數碼管顯示設計的一種超聲波測距顯示器,可以實現測量物體到儀器距離以及顯示等功能,可以測量范圍為2cm 450cm ,精確。

2、度為1cm。是一種結構簡單、性能穩定、使用方便、價格低廉的超聲波距離測量器,具有一定的實用價值。2、 項目設計思路 1、 硬件資源單片機開發板(攜帶數碼管);HC-SR04超聲波模塊;STC89C52芯片;2、 軟件設計思路軟件設計采用C語言編程,運用模塊化程序設計思想,對不同功能模塊的程序進行分別編程,以便移植或調用,這樣使軟件層次結構清晰,有利于軟件的調試修改。 軟件設計思路是:系統初始化、發射脈沖串、計時、接收輸入脈沖,接收串口輸入速度值、計算距離、顯示距離值、重復。超聲波測距算法設計如下:超聲波發生器T在某一時刻發出一個超聲波信號,當這個超聲波遇到被測物體后反射回來,就會被超聲波接收器。

3、R接收到。這樣,只要計算出從發出超聲波信號到接收到返回信號所用的時間,就可算出超聲波發生器于反射物體的距離。該距離的計算公式如下: d=s/2(vt)/2 其中:d為被測物于測距器的距離;s為聲波的來回路程;v為聲速;t為聲波來回所用的時間。超聲波測距原理圖如下:3、 項目涉及的知識點說明HC-SR04超聲波模塊簡介:實物圖:正面:背面:HC-SR04 超聲波測距模塊可提供 2cm-400cm 的非接觸式距離感測功能, 測距精度可達高到 1cm;模塊包括超聲波發射器、接收器與控制電路。 1、基本工作原理: (1)采用 IO 口 TRIG 觸發測距,給至少 10us 的高電平信號; (2)模塊自。

4、動發送 8 個 40khz 的方波,自動檢測是否有信號返回;(3)有信號返回,通過 IO 口 ECHO 輸出一個高電平,高電平持續的時間就是超聲波從發射到返回的時間。2、主要技術參數:(1)使用電壓:DC-5V(2)靜態電流:小于2mA(3)電平輸出:高5V(4)電平輸出:底0V(5)感應角度:不大于15度(6)探測距離:2cm-450cm(7)高精確度:1cm 三、 硬件設計1、 電路原理圖HC-SR04超聲波模塊電路圖:2、 元器件或模塊清單主要元器件單片機開發板STC89C52芯片共陽極四位數碼管0.36英寸(3641B)外圍模塊HC-SR04超聲波模塊四、軟件設計1、程序流程圖開始初始。

5、化發送脈沖延遲等待距離為零判斷接受情況否是計算距離顯示距離結束2.程序清單#include reg51.h#include /常變量定義:code unsigned char table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf;/表:共陽數碼管 0-9 -unsigned int time=0;unsigned int timer=0;unsigned long S=0;bit flag =0;unsigned char l_disbuff4= 0xff,0,0,0,;/顯示緩沖unsigned char l_posit=1。

6、;/位選擇/引腳定義:sbit SMG_q = P10;/定義數碼管陽級控制腳(千位)本例程只用到三位數碼管sbit SMG_b = P11;/定義數碼管陽級控制腳(百位)sbit SMG_s = P12;/定義數碼管陽級控制腳(十位)sbit SMG_g = P13;/定義數碼管陽級控制腳(個位)sbit RX = P21;/模塊引腳sbit TX = P20;/*/顯示函數,參數為顯示內容void display()P0=0XFF;/switch(l_posit)case 0:/選擇千位數碼管,關閉其它位SMG_q=0;SMG_b=1;SMG_s=1;SMG_g=1;P0=0xff;/ta。

7、blel_disbuff0;/此位不顯示break;case 1:/選擇百位數碼管,關閉其它位SMG_q=1;SMG_b=0;SMG_s=1;SMG_g=1;P0=tablel_disbuff1&0x7f;/加入小數點break;case 2:/選擇十位數碼管,關閉其它位SMG_q=1;SMG_b=1;SMG_s=0;SMG_g=1;P0=tablel_disbuff2;break;case 3:/選擇個位數碼管,關閉其它位SMG_q=1;SMG_b=1;SMG_s=1;SMG_g=0;P0=tablel_disbuff3;break;l_posit+;if(l_posit3)l_posit=。

8、0;/*/void Conut(void)time=TH0*256+TL0;TH0=0;TL0=0;S=(time*1.7)/100; /算出來是CMif(S=700)|flag=1) /超出測量范圍顯示“-” flag=0;l_disbuff1=10; /“-”l_disbuff2=10; /“-”l_disbuff3=10; /“-”elsel_disbuff1=S%1000/100;l_disbuff2=S%1000%100/10;l_disbuff3=S%1000%10 %10;/*/void zd0() interrupt 1 /T0中斷用來計數器溢出,超過測距范圍flag=1;/中。

9、斷溢出標志/*/void zd3() interrupt 3 /T1中斷用來掃描數碼管和計800MS啟動模塊TH1=0xf8;TL1=0x30;display();timer+;if(timer=400)timer=0;TX=1; /800MS 啟動一次模塊_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();_nop_(); _nop_(); _。

10、nop_(); _nop_();TX=0; /*/void main( void ) TMOD=0x11; /設T0,T1為方式1TH0=0;TL0=0; TH1=0xf8; /2MS定時TL1=0x30;ET0=1; /允許T0中斷ET1=1; /允許T1中斷TR1=1; /開啟定時器EA=1; /開啟總中斷while(1)while(!RX);/當RX為零時等待TR0=1; /開啟計數while(RX);/當RX為1計數并等待TR0=0;/關閉計數Conut();/計算五、系統調試過程與演示1.電路板焊接2.載入程序調試3.調試結果演示如下:A4紙規格:長:29.7 cm寬:21 cmA4。

11、長度測量:A4寬度測量:六、項目總結單片機課是一門實踐性很強的課程,僅有課堂上理論知識的學習,對運用好單片機是完全不夠的,必須親自做實驗,從實驗中吸取教訓,總結經驗,增加實戰經驗,加深對單片機的理解,更好的運用單片機。單片機實驗課的目的就是為學生提供做實驗的機會,讓學生能夠從幾個簡單的實驗中學會單片機開發的過程和單片機的實際運用。通過這次單片機實習,我不僅加深了對單片機理論的理解,將理論很好地應用到實際當中去,而且我還學會了如何去培養我們的創新精神,從而不斷地戰勝自己,超越自己。創新可以是在原有的基礎上進行改進,使之功能不斷完善,成為真己的東西。經過幾個星期的實訓設計,我要感謝我的指導教師張勁。

12、老師在實訓設計中對我給予的悉心指導和幫助,也謝謝同學對我的的幫助。在此次實訓中,對Keil uVision2軟件的使用有了明顯的提高,比以前更加的熟悉了用該軟件菜單的各項調試工具和窗口,再結合硬件和軟件,進行整體調試。我深刻的認識到了理論知識和實踐操作必須是相結合的,也許在實訓時會有很多各種軟、硬件等故障。總之,親自動手是課堂學習的延續,電子領域隨時隨地都在發生著翻天覆地的變化,現有的知識儲備總是落后于科技的發展腳步,我們只有不斷學習新知識,才能做到面對新課題時游刃有余。通過為期一周的單片機實訓,使我們對這門課有了許多新的了解,彌補了在課堂上學習的不足。并且,這次實訓是真正意義上的學以致用。讓。

13、我們對單片機有了更加清晰的了解更深刻的認識。所以,在這里我得感謝我們的實訓老師!首先,在這次試訓中我被單片機強大的功能所震撼,以前在課堂上完全沒有能理解可編程單片機的優越性。這次通過實體仿真軟件等輔助軟件的共同效果,是這次試訓有了鮮明的活力。換是我們認識到這次試訓不僅僅是一個軟件的應用,更多的是使我們認識到學習到很多在課堂上無法得到的東西。單片機作為一種最簡單的軟件,與我們的日常生活息息相關,了解一些單片機程序的簡單錄入是費城必要的。如:LED顯示器、鍵盤和顯示器的應用和原理。在這次實訓中,我們組做的事超聲波測距。從單片機開發版的焊接到程序的寫入運行,最后讓測距儀可以使用。這使我們深深地體會到。

14、了單片機在現實生活中的小小應用,既增強了我們的好奇心,又鞏固了我們的理論知識。更讓我們體會到了單片機手動的開始平臺的完善與成熟。只要你有想法,單片機就有可能讓他成為現實。在這次試訓中不僅只對單片機編程有了新的認識,還對整個單片機的開發平臺都有了一定的了解,真是受益頗多。通過這幾天的試訓,使我的感觸很深,解決一個問題有很多辦法的,要達到目的,不同的人就有不同的方法。然后,我也深深體會到要注重團退合作,同學們的幫助會起到很大作用。在編程中“簡”字貫穿于整個程序設計中,越簡單越好,畢竟單片機留給用戶的資源是有限的,所以我們要充分利用這些資源,達到更好的效果,這些是我們在以后的學習生活中應值得注意的地方。這次實訓真的受益匪淺!以前對單片機只是紙上談兵,經過這次實訓,我們才是真正的自己動手去應用單片機,摸索單片機蘊藏的知識。最后,我得在此感謝我們的實訓老師的諄諄教誨和悉心教導。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/542393.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/542393.shtml
英文地址,請注明出處:http://en.pswp.cn/news/542393.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

java 方法 示例_Java ArrayDeque帶有示例的removeFirstOccurrence()方法

java 方法 示例ArrayDeque類removeFirstOccurrence()方法 (ArrayDeque Class removeFirstOccurrence() method) removeFirstOccurrence() method is available in java.lang package. removeFirstOccurrence()方法在java.lang包中可用。 removeFirstOccurrence() method is use…

社交應用動態九宮格圖片的規則

這里主要以微信和QQ空間為作為研究對象,得到的結論如下。 QQ空間里的動態 iOS設備,以iPhone6為分界 iPhone6及以上分辨率的設備: 當寬且高同時 > 512px時,判斷 寬/高的比例值:大于 2時,以高度為基準&…

c語言實現鏈表結構6,用c語言實現的鏈表結構--數據結構實驗

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓#include"stdio.h"//使用new指針來將臨時變量重新初始化#include"stdio.h"typedef int ElemType;typedef struct LNode{ElemType data;struct LNode *next;}LNode,*LinkList;void InitList(LinkList &L)//…

splunk中 如何隱藏input_翻糖制作中,如何避免裂縫,如何隱藏裂縫,如何防粘?...

翻糖蛋糕 因精致的樣子和栩栩如生的各種造型深得人們的喜愛,它不僅滿足了人們對蛋糕口味及裝飾日益多樣化的需求,同時也在動手制作的過程中,享受到美食與生活的無窮樂趣。不過裂縫,不平整,干燥對翻糖作品來說無疑是噩夢…

Java DataInputStream readUnsignedByte()方法(帶示例)

DataInputStream類readUnsignedByte()方法 (DataInputStream Class readUnsignedByte() method) readUnsignedByte() method is available in java.io package. readUnsignedByte()方法在java.io包中可用。 readUnsignedByte() method is used to read 1 byte (i.e. 8 bit) of …

wpf中groupbox有什么用_展示設計中的標攤是什么 用的什么材料

經常聽從事展示設計的工作人員說起標攤,那什么是標攤呢?顧名思義,標攤就是通用標準的國際展會攤位的縮寫。但是不少人看到干巴巴的詞語還是不能理解。那么這篇文章從用途、材料等方面來詳細介紹標攤究竟是什么。 標攤的主要材質是什么一般來說…

Java BigInteger類| nextProbablePrime()方法與示例

BigInteger類nextProbablePrime()方法 (BigInteger Class nextProbablePrime() method) nextProbablePrime() method is available in java.math package. nextProbablePrime()方法在java.math包中可用。 nextProbablePrime() method is used to get the next probable prime n…

SQL 行轉列的兩種做法

if object_id(tb)is not null drop table tbGocreate table tb(姓名 varchar(10),課程 varchar(10),分數 int)insert into tb values(張三,語文,74)insert into tb values(張三,數學,83)insert into tb values(張三,物理,93)insert into tb values(李四,語文,74)insert into tb…

android一個工程的xml怎么引用另外一個工程的xml,如何在Android中使用XML引用庫中另一個包的字符串?...

Androiddocumentation告訴我,我可以使用“包名”訪問另一個包中的字符串,無論這意味著什么:[:]/所以在我的清單中,我想訪問一個字符串,我已將其放在一個單獨的庫項目中,在com.globalmentor.android包中 – 畢竟我的R類就是這樣:android:label"com.g…

kotlin 類和對象_Kotlin程序| 類和對象的示例(帶有學生數據)

kotlin 類和對象In the below program, we are creating a student class to input and print the student data like name, age. It is a simple example of creating class in Kotlin. 在下面的程序中,我們將創建一個學生班級,以輸入和打印學生數據&am…

python 復數數組_python的數組運算及推導式的運用

運行方式:縮進 TAb(四格)或者space(1格)注釋:#可以在程序后注釋文字 或者 ... ,""" ... """ 可以多行注釋 中間全為注釋數值輸出 print(...)圖形輸出 import matplotlib as pltplt.show()列表 list[] #字符串…

ActiveX: 如何用.inf和.ocx文件生成cab文件

ActiveX: 如何用.inf和.ocx文件生成cab文件 轉載于:https://www.cnblogs.com/time-is-life/p/5977962.html

Android工具里沒有Android,android – AppCompat工具欄沒有顯示

在主題中聲明.NoActionBar之后,以及將工具欄放在布局中,我的工具欄不會顯示.我最終得到的正是你在宣布沒有動作欄時所期望的 – 沒有動作欄.這是布局:activity_home.xml:layout"layout/app_bar_home"android:layout_width"match_parent&q…

操作系統中的處理機調度調度_操作系統中的多處理器調度

操作系統中的處理機調度調度多處理器操作系統 (Multiprocessor Operating system) A multiprocessor system consists of several processors which share memory. In the multiprocessor, there is more than one processor in the system. The reason we use multiprocessor …

轉:Delphi2010新發現-類的構造和析構函數功能

Delphi2010發布了. 雖然憑著對Delphi的熱愛第一時間就安裝了,但是現在可能是年紀大了,對新事物缺乏興趣了.一直都沒有仔細研究. 今天有點時間試了一下新功能. 本來C#和Delphi.NET是支持類的構造函數/析構函數的(注意不是實例的構造和析構).也就是在模塊初始化/卸載的時候會調用…

sed 替換_sed命令批量替換文件內容

“ 開發人員有時會大批量替換文件內容,sed命令是一個很好用的工具。”01—暴力替換方式近期有個臨時任務,將系統中所有"帳"替換為"賬",那"帳"和"賬"有啥區別呢;1、賬的部首是貝;帳的部首是巾。2、賬是關于貨幣、…

android 模仿uc標簽頁,模仿UCweb菜單 - 白羽雕弓 - 博客園

UCWeb的菜單看起來不錯,自己想模仿做一個,苦惱一直沒有思路google了幾天,終于找到一個帖子 http://www.eoeandroid.com/viewthread.php?tid28824按照上面提供的思路實現了1、保留menu按鍵作用2、用popupwindow作為菜單顯示容器3、用GridVie…

ipv6路由協議配置_IPV6尋址,標頭和路由協議

ipv6路由協議配置The IPV6 address is 128 bits. Whereas IPV4 is represented by 4 groups of decimal numbers, same IPV6 is represented by 8 groups of hexadecimal numbers. The example of IPV6 address is 2001:0db8:85a3:0000:0000:8a2e:0370:7334. IPV6地址是128位。…

rpc框架

Motan,dubbo轉載于:https://www.cnblogs.com/zhangshiwen/p/5980886.html

android webview 監聽js,Android webview與js的數據交互

項目要用到Webview和js交互,查了查以前的項目感覺還是有必要整理下的。簡單描述下項目中用到的地方,比如說在web頁需要用到登錄的地方點擊登錄跳轉到APP原生登錄界面去登錄,點擊web頁的撥打電話彈出原生dialog詢問是否撥打,點擊we…