基于單片機(jī)的自行車?yán)锍逃?jì)系統(tǒng)畢業(yè)設(shè)計(jì)_第1頁
基于單片機(jī)的自行車?yán)锍逃?jì)系統(tǒng)畢業(yè)設(shè)計(jì)_第2頁
基于單片機(jī)的自行車?yán)锍逃?jì)系統(tǒng)畢業(yè)設(shè)計(jì)_第3頁
基于單片機(jī)的自行車?yán)锍逃?jì)系統(tǒng)畢業(yè)設(shè)計(jì)_第4頁
基于單片機(jī)的自行車?yán)锍逃?jì)系統(tǒng)畢業(yè)設(shè)計(jì)_第5頁
已閱讀5頁,還剩25頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、 PAGE29 / NUMPAGES30題目:基于單片機(jī)的自行車?yán)锍逃?jì)系統(tǒng)設(shè)計(jì)設(shè)計(jì)容設(shè)計(jì)制作和調(diào)試一個(gè)由8052MCU組成的自行車?yán)锍逃?jì)系統(tǒng)。通過這個(gè)過程學(xué)習(xí)熟悉單片機(jī)的外圍擴(kuò)展、鍵盤控制和七段數(shù)碼管的使用,掌握51系列單片機(jī)控制和測試方法。設(shè)計(jì)以STC89C51單片機(jī)為核心,以霍爾傳感器做為輸入、使用獨(dú)立鍵盤控制顯示停止/開始、清零,以LED為顯示方式的自行車?yán)锍逃?jì),完成基本要求。1)數(shù)碼管顯示:自行車?yán)锍蹋?)鍵盤控制里程計(jì)的開始、停止和清零;設(shè)計(jì)步驟總體方案設(shè)計(jì)其中,采用51系列MCU構(gòu)成典型電路。選用適當(dāng)?shù)幕魻杺鞲衅髌骷_x擇獨(dú)立鍵盤和4位共陰極數(shù)碼管。二、硬件選型工作三、硬件的設(shè)計(jì)和

2、實(shí)現(xiàn)1. 選擇計(jì)算機(jī)機(jī)型(采用51核的單片機(jī));2. 設(shè)計(jì)支持計(jì)算機(jī)工作的外圍電路(EPROM、RAM、I/O端口、鍵盤、顯示接口電路等);3. 接口電路;4. 其它相關(guān)電路的設(shè)計(jì)或方案(電源、通信等)四、軟件設(shè)計(jì) 分配系統(tǒng)資源,編寫系統(tǒng)初始化和主程序模塊; 編寫相關(guān)子程序;3. 其它程序模塊(顯示與鍵盤等處理程序)。五、編寫課程設(shè)計(jì)說明書,繪制完整的系統(tǒng)電路圖(A3幅面)。課程設(shè)計(jì)說明書要求1. 課程設(shè)計(jì)說明書應(yīng)采用學(xué)院統(tǒng)一印制的課程設(shè)計(jì)(論文)說明書封面,書寫應(yīng)認(rèn)真,字跡工整,論文格式參考國家正式出版的書籍和論文編排。2. 論理正確、邏輯性強(qiáng)、文理通顧、層次分明、表達(dá)確切,并提出自己的見解

3、和觀點(diǎn)。3. 課程設(shè)計(jì)說明書應(yīng)有目錄、摘要、序言、主干容(按章節(jié)編寫)、主要結(jié)論和參考書,附錄應(yīng)包括程序清單、系統(tǒng)方框圖和電路原理圖。4. 課程設(shè)計(jì)說明書應(yīng)包括按上述設(shè)計(jì)步驟進(jìn)行設(shè)計(jì)的分析和思考容和引用的相關(guān)知識。5. 要求打印B5紙,排版要求請向指導(dǎo)教師索取。6. 每組單獨(dú)一個(gè)題目,每組上限5人。時(shí)間安排課程設(shè)計(jì)計(jì)劃時(shí)間4周。課程設(shè)計(jì)題目于15周下發(fā)。課程設(shè)計(jì)完成后于18周四下午下班前送交電子信息辦公室(實(shí)驗(yàn)樓三樓),屆時(shí)指導(dǎo)教師安排短暫答辯。輔導(dǎo)時(shí)間和地點(diǎn)答疑請直接與指導(dǎo)教師聯(lián)系。目 錄一、設(shè)計(jì)任務(wù)和要求 2二、設(shè)計(jì)目的2三、設(shè)計(jì)的具體實(shí)現(xiàn) 3 1.系統(tǒng)概述 3 2.STC單片機(jī)的原理與應(yīng)

4、用4 3.霍爾傳感器電路設(shè)計(jì) 7 4.USB供電電路設(shè)計(jì) 9 5.按鍵電路設(shè)計(jì)10 6.顯示電路設(shè)計(jì)10 7.復(fù)位電路設(shè)計(jì)11 8.晶振電路設(shè)計(jì)129.總電路原理圖13 10.軟件程序設(shè)計(jì) 14四、系統(tǒng)調(diào)試與仿真 23五、心得體會和建議24 六、附錄26 七、參考文獻(xiàn)27 基于單片機(jī)的自行車?yán)锍逃?jì)系統(tǒng)設(shè)計(jì)報(bào)告一、設(shè)計(jì)要求1.設(shè)計(jì)背景我國是自行車大國,隨著人們生活水平的逐漸提高,人們對于生活質(zhì)量的要求也日益增加,尤其是對健身的要求。自行車在中國普遍作為代步工具。而在國外,自行車卻是一項(xiàng)十分受歡迎的健身運(yùn)動。因?yàn)樗鼰o污染,價(jià)位低廉,老少皆宜。而且在運(yùn)動過程中可以充分享受到大自然,對于忙碌的現(xiàn)代人來

5、說,無疑是一種較好的放松方法。在中國這種情況也在慢慢發(fā)生變化。因此愛好自行車運(yùn)動的人十分需要一款裝置,以知道自己的運(yùn)動情況。并根據(jù)外界條件,如溫度等進(jìn)行適當(dāng)?shù)恼{(diào)節(jié),已達(dá)到最佳運(yùn)動的效果。2.設(shè)計(jì)具體要求設(shè)計(jì)一個(gè)自行車車輪半徑已知,用霍爾傳感器測定出自行車的里程,并通過數(shù)碼管顯示出來的自行車?yán)锍瘫硐到y(tǒng)。二、設(shè)計(jì)目的1.通過單片機(jī)原理與接口技術(shù)專業(yè)課程設(shè)計(jì),完成一個(gè)課題的理論設(shè)計(jì)和實(shí)驗(yàn)調(diào)試任務(wù),既加深專業(yè)知識的理解,又能培養(yǎng)專業(yè)實(shí)踐技能,提高分析解決問題和解決問題的能力。2.培養(yǎng)從文獻(xiàn)和調(diào)查研究中獲取知識的能力,提高學(xué)生從別人經(jīng)驗(yàn),從其他學(xué)科找到解決問題的新途徑的悟性。3.培養(yǎng)綜合運(yùn)用本專業(yè)基本理

6、論、基本知識和基本技能的能力,使自己獲得從事本專業(yè)工程技術(shù)工作的基本訓(xùn)練。4.培養(yǎng)勇于探索,嚴(yán)謹(jǐn)推理,實(shí)事,用實(shí)踐來檢驗(yàn)理論、全方位地考慮問題等科學(xué)技術(shù)人員應(yīng)具有的素質(zhì)。5.提高對工作認(rèn)真負(fù)責(zé)、一絲不茍,對同學(xué)友愛團(tuán)結(jié)、協(xié)作攻關(guān),對新事物能潛心考察,勇于開拓,勇于實(shí)踐的基本素質(zhì)。6.進(jìn)一步熟悉掌握計(jì)算機(jī)和EDA工具軟件的能力。三、設(shè)計(jì)的具體實(shí)現(xiàn)1.系統(tǒng)概述自行車的速度里程表的硬件電路設(shè)計(jì)是基礎(chǔ)部分,它包括信號的捕獲、放大、整形,單片機(jī)的計(jì)算處理,數(shù)碼管的實(shí)時(shí)顯示和單片機(jī)外圍基本電路的設(shè)計(jì),兩大主要器件就是傳感器和單片機(jī)。傳感器是獲取自然或生產(chǎn)領(lǐng)域息的關(guān)鍵器件,是現(xiàn)代信息系統(tǒng)和各種設(shè)備不可缺少的

7、信息采集工具。磁傳感器是一種將磁學(xué)量信號轉(zhuǎn)變?yōu)殡娦盘柕钠骷蜓b置。隨著信息產(chǎn)業(yè)、工業(yè)自動化、醫(yī)療儀器等的飛速發(fā)展和計(jì)算機(jī)應(yīng)用的普與,需要大量的傳感器將被測或被控的非電信號轉(zhuǎn)換成可與計(jì)算機(jī)兼容的電信號。作為輸入信號,這就給磁傳感器的快速發(fā)展提供了機(jī)遇,形成了磁傳感器的產(chǎn)業(yè)。其中最具代表的磁傳感器就是霍爾傳感器,在自動檢測系統(tǒng)中,利用霍爾傳感器測轉(zhuǎn)數(shù)是一種最基本的測量工作。單片機(jī)是本次設(shè)計(jì)的核心部件,它是信號從采集到輸出的橋梁,而且包括計(jì)算、定時(shí)、信息處理等功能。本設(shè)計(jì)中,我們以STC公司STC89C52單片機(jī)為控制核心,采用霍爾傳感器檢測自行車輪胎的運(yùn)轉(zhuǎn)情況,通過一定的抗干擾處理和計(jì)算后,由LE

8、D顯示自行車的里程。本設(shè)計(jì)中,計(jì)數(shù)的正確性決定了本裝置的精度,如何在復(fù)雜的環(huán)境中得到正確的計(jì)數(shù)脈沖,是本設(shè)計(jì)的難點(diǎn),初步的解決辦法是在硬件上進(jìn)行合理的濾波,軟件上進(jìn)行一定的算法處理。其原理很簡單,因?yàn)檐囕喌闹睆揭阎囕喌膱A周長便是恒定不變的。由此可以計(jì)算出霍爾傳感器每發(fā)出一次計(jì)數(shù)脈沖自行車所走過的里程數(shù)。系統(tǒng)原理框圖如圖3.1。外部信號霍爾傳感器里程顯示STC89C52單片機(jī)圖3.1 自行車?yán)锍逃?jì)系統(tǒng)原理框圖2.STC單片機(jī)的原理與應(yīng)用單片機(jī)是指集成在一個(gè)芯片上的微型計(jì)算機(jī),也就是把組成微型計(jì)算機(jī)的各種功能部件,包括CPU(Central Processing Unit)、隨機(jī)存儲器RAM(

9、Random Access Memory)、只讀存儲器ROM(Read-only Memory)、基本輸入/輸出(Input/Output)接口電路。定時(shí)器/計(jì)數(shù)器等部件都制作在一塊集成芯片上,構(gòu)成一個(gè)完整的微型計(jì)算機(jī)從而實(shí)現(xiàn)微型計(jì)算機(jī)的基本功能。STC89C52是一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程Flash HYPERLINK :/baike.baidu /view/87697.htm t _blank 存儲器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得STC89C52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。 具有以下標(biāo)準(zhǔn)功

10、能: 8k字節(jié)Flash,512字節(jié)RAM, 32 位I/O 口線,看門狗定時(shí)器,置4KB EEPROM,MAX810復(fù)位電路,2個(gè)16 位 定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級中斷結(jié)構(gòu),全雙工串行口。另外 STC89X52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式。空閑模式下,CPU 停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。STC89C51管腳圖如圖3.2所示。圖3.2 STC89C52引腳圖STC89C52的主要管腳功能如下:P0.0P0.7:P0口是一組8位漏極開路型

11、雙向I/O口,也是地址/數(shù)據(jù)總線復(fù)用口。P1.0P1.7:P1是一個(gè)帶部上拉電阻的8位雙向I/O口。P2.0P2.7:P2是一個(gè)帶部上拉電阻的8位雙向I/O口。 P3.0P3.7:P3是一個(gè)帶部上拉電阻的8位雙向I/O口。ALE:地址鎖存控制信號。在系統(tǒng)擴(kuò)展時(shí),ALE用于控制把P0口輸出的低8位地址鎖存起來,以實(shí)現(xiàn)低位地址和數(shù)據(jù)的分時(shí)傳送。此外,由于ALE是以晶振16的固定頻率輸出的正脈沖,因此,可作為外部時(shí)鐘或外部定時(shí)脈沖使用。:外部程序存儲器讀選通信號。在讀外部ROM時(shí),有效(低電平),以實(shí)現(xiàn)外部ROM單元的讀操作。:訪問程序存儲控制信號。當(dāng)信號為低電平時(shí),對ROM的讀操作限定在外部程序存

12、儲器;當(dāng)信號為高電平時(shí),對ROM的讀操作是從部程序存儲器開始,并可延至外部程序存儲器。RST:復(fù)位信號。當(dāng)輸入的復(fù)位信號延續(xù)兩個(gè)機(jī)器周期以上的高電平時(shí)即為有效,用以完成單片機(jī)的復(fù)位初始化操作。XTALl和XTAL2:外接晶體引線端。當(dāng)使用芯片部時(shí)鐘時(shí),此二引線端用于外接石英晶體和微調(diào)電容;當(dāng)使用外部時(shí)鐘時(shí),用于接外部時(shí)鐘脈沖信號。VSS:地線。 VCC:+5V電源。3.霍爾傳感器電路設(shè)計(jì)本次設(shè)計(jì)信號的捕獲采用的是霍爾傳感器。霍爾器件具有許多優(yōu)點(diǎn),它們的結(jié)構(gòu)牢固、體積小、重量輕、壽命長、安裝方便、功耗小、頻率高(可達(dá)1MHz)、耐震動、不怕灰塵、油污、水汽與煙霧等的污染或腐蝕。霍爾線性器件的精度

13、高、線性度好;霍爾開關(guān)器件無觸點(diǎn)、無磨損、輸出波形清晰、無抖動、無回跳、位置重復(fù)精度高。按照霍爾器件的功能可將它們分為:霍爾線性器件和霍爾開關(guān)器件,前者輸出模擬量,后者輸出數(shù)字量。 按被檢測對象的性質(zhì)可將它們的應(yīng)用分為:直接應(yīng)用和間接應(yīng)用。A44E集成霍爾開關(guān)封裝引腳圖如圖3.3所示。在電源端加電壓Vcc,經(jīng)穩(wěn)壓器穩(wěn)壓后加在霍爾電勢發(fā)生器的兩端,根據(jù)霍爾效應(yīng)原理,當(dāng)霍爾片處在磁場中時(shí),在垂直于磁場的方向通以電流,則與這二者相垂直的方向上將會產(chǎn)生霍爾電勢差VH輸出,該VH信號經(jīng)放大器放大后送至施密特觸發(fā)器整形,使其成為方波輸送到OC門輸出。當(dāng)施加的磁場達(dá)到工作點(diǎn)時(shí),觸發(fā)器輸出高電壓(相對于地電位

14、),使三極管導(dǎo)通,此時(shí)OC門輸出端輸出低電壓,通常稱這種狀態(tài)為開 。當(dāng)施加的磁場達(dá)到釋放點(diǎn)時(shí),觸發(fā)器輸出低電壓,三極管截止,使OC門輸出高電壓,這種狀態(tài)為關(guān) 。這樣兩次電壓變換,使霍爾開關(guān)完成了一次開關(guān)動作。工作點(diǎn)與釋放點(diǎn)的差值一定,此差值稱為磁滯,在此差值,V0保持不變,因而使開關(guān)輸出穩(wěn)定可靠,這也就是集電成霍爾開關(guān)傳感器優(yōu)良特性之一。測量時(shí),在1、2兩端加5V直流電壓,在輸出端3與1之間接一個(gè)1kW的負(fù)載電阻,如圖3.4所示。圖3.3 A44E外形圖3.4 集成霍爾開關(guān)接線圖A44E輸出端OUT連到單片機(jī)外部中斷0上,當(dāng)磁鐵靠近A44E時(shí)輸出端產(chǎn)生一個(gè)低電平信號,使CPU產(chǎn)生一次中斷計(jì)一次

15、數(shù)。假定輪圈的周長為L,在輪圈上安裝m個(gè)永久磁鐵,則測得的里程值最大誤差為L/m。本設(shè)計(jì)中取m=1。當(dāng)輪子每轉(zhuǎn)一圈,通過霍爾元件傳感器采集到一個(gè)脈沖信號,并從引腳P3.2中斷0端輸入,傳感器每獲取一個(gè)脈沖信號即對系統(tǒng)提供一次計(jì)數(shù)中斷。每次中斷代表車輪轉(zhuǎn)動一圈,中斷數(shù)n輪圈的周長為L的乘積為里程值。里程S=周長L*圈數(shù)n4.USB供電電路設(shè)計(jì)電源總是電路設(shè)計(jì)不可缺少的部分,本次設(shè)計(jì)采用了USB電源供電。USB接口可以向外提供電源,且是5V的電壓,非常適合于TTL信號的系統(tǒng),特別是單片機(jī)系統(tǒng)。可以使用這個(gè)電源為USB供電,這樣便減少了電源設(shè)計(jì),簡化了USB系統(tǒng)結(jié)構(gòu)。在USB總線系統(tǒng)中,USB主機(jī)和

16、USB集線器可以通過VBUS和GND兩根電源線向外提供電源,電源一般4.755.25V。USB協(xié)議中規(guī)定,每個(gè)USB端口最大數(shù)據(jù)電流為500mA。USB端口具有高輸出功率和低輸出功率之分,同樣,USB設(shè)備可以按照電流的消耗分為高功率消耗設(shè)備和低功率消耗設(shè)備。高功率消耗設(shè)備一般需要100500mA的電流,低功率消耗設(shè)備一般需0100mA的電流。電路圖如圖3.5所示。圖3.5 USB供電電路5.按鍵電路設(shè)計(jì)鍵盤在單片機(jī)應(yīng)用系統(tǒng)中,實(shí)現(xiàn)輸入數(shù)據(jù)、傳送命令的功能,是人工干預(yù)的主要手段。鍵盤是單片機(jī)系統(tǒng)設(shè)計(jì)中一種主要的信息輸入接口,合理的設(shè)計(jì),不僅可以節(jié)省系統(tǒng)的設(shè)計(jì)成本,更可使儀器設(shè)備的操作變得更為簡單

17、、方便,很大程度上提高系統(tǒng)綜合性能。本次設(shè)計(jì)過按鍵S1來控制里程計(jì)的開始和停止,通過按鍵S2使里程計(jì)清零。電路圖如圖3.6所示圖3.6 按鍵電路6.顯示電路設(shè)計(jì)顯示模塊可以采用液晶顯示器或者數(shù)碼管顯示器,但數(shù)碼管具有低功耗,容易控制,占用CPU資源少這些優(yōu)點(diǎn),考慮到成本原因,選擇了4位的七段共陰極數(shù)碼管顯示已經(jīng)完全足夠。本設(shè)計(jì)中使用4個(gè)單位數(shù)據(jù)管,數(shù)碼管的陽極全部連接在一起,然后與U1原件74HC573鎖存器的數(shù)據(jù)輸出端相連,所存起的數(shù)據(jù)輸入端連接單片機(jī)的P0口低四位,P0口同時(shí)加了上拉電阻,數(shù)碼管中WE1,WE2,WE3,WE4是它們的位選端,每一個(gè)數(shù)碼管對應(yīng)一個(gè)位選端,與U2原件74HC5

18、73的數(shù)據(jù)輸出端的低四位相連,U2的數(shù)據(jù)輸入端也連接到單片機(jī)的P0口。兩個(gè)鎖存器的鎖存端分別與P2.6和P2.7相連。單片機(jī)控制鎖存器的鎖存端,進(jìn)而控制鎖存器的數(shù)據(jù)輸出,這種時(shí)分控制的方法便可方便地控制任意數(shù)碼管顯示任意數(shù)字。電路圖如圖3.7所示。圖3.7 顯示電路7.復(fù)位電路設(shè)計(jì)復(fù)位是單片機(jī)的初始化操作,它是由外部的復(fù)位電路來實(shí)現(xiàn),只需給單片機(jī)的復(fù)位引腳RST加上大于2個(gè)機(jī)器周期的高電平就可使其復(fù)位。電路圖如圖3.8所示。圖3.8 復(fù)位電路8.晶振電路設(shè)計(jì)晶振電路用于產(chǎn)生單片機(jī)工作時(shí)所需的時(shí)鐘控制信號。通過單片機(jī)的引腳XTAL1,XTAL2跨接石英晶體振蕩器和微調(diào)電容,構(gòu)成一個(gè)穩(wěn)定的自激振蕩

19、器。時(shí)鐘頻率直接影響單片機(jī)的速度,晶振電路的質(zhì)量也直接影響單片機(jī)系統(tǒng)的穩(wěn)定性。晶振電路電路圖如圖3.9所示。圖3.9 晶振電路9.總電路原理圖10.軟件程序設(shè)計(jì)主程序流程圖如圖3.10所示NNYY改變計(jì)數(shù)器狀態(tài)(停止/開啟)開始初始化計(jì)數(shù)器開始計(jì)數(shù)LED顯示里程按鍵S1是否按下?按鍵S1是否按下?結(jié)束計(jì)數(shù)器清零圖3.10 主程序流程圖顯示子程序設(shè)計(jì)本設(shè)計(jì)中使用4個(gè)單位數(shù)據(jù)管,數(shù)碼管的陽極全部連接在一起,然后與U1原件74HC573鎖存器的數(shù)據(jù)輸出端相連,所存起的數(shù)據(jù)輸入端連接單片機(jī)的P0口低四位,P0口同時(shí)加了上拉電阻,數(shù)碼管中WE1,WE2,WE3,WE4是它們的位選端,每一個(gè)數(shù)碼管對應(yīng)一個(gè)

20、位選端,與U2原件74HC573的數(shù)據(jù)輸出端的低四位相連,U2的數(shù)據(jù)輸入端也連接到單片機(jī)的P0口。兩個(gè)鎖存器的鎖存端分別與P2.6和P2.7相連。先打開U1鎖存器,控制段選端,輸出需要顯示的數(shù)字。然后關(guān)閉U1鎖存器,打開U2鎖存器,控制位選端,如此依次使四個(gè)數(shù)碼管顯示該位的數(shù)字。顯示子程序如下:void display(uchar qian,uchar bai,uchar shi,uchar ge) dula=1;P0=tableqian; /送千位段選數(shù)據(jù)dula=0;P0=0 xff;/送位選數(shù)據(jù)前關(guān)閉所有顯示,防止打開位選鎖存時(shí)wela=1;/原來段選數(shù)據(jù)通過位選鎖存器造成混亂P0=0

21、xfe;/送位選數(shù)據(jù)wela=0;delayms(5);/延時(shí)dula=1;P0=tablebai; /送百位段選數(shù)據(jù)dula=0;P0=0 xff;wela=1;P0=0 xfd;wela=0;delayms(5);dula=1;P0=tableshi; /送十位段選數(shù)據(jù)dula=0;P0=0 xff;wela=1;P0=0 xfb;wela=0;delayms(5);dula=1;P0=tablege; /送個(gè)位段選數(shù)據(jù)dula=0;P0=0 xff;wela=1;P0=0 xf7;wela=0;delayms(5);里程計(jì)算子程序?qū)纹瑱C(jī)P3.2口輸入的圈脈沖進(jìn)行計(jì)數(shù),計(jì)數(shù)器0打開但不打

22、開中斷,通過讀取計(jì)數(shù)值進(jìn)行控制。里程計(jì)算子程序流程圖如圖3.11。NY開始計(jì)數(shù)器0對外部信號計(jì)數(shù)通過公式計(jì)算出里程里程是否大于10000計(jì)數(shù)器清0返回里程值圖3.11 里程計(jì)算子程序流程圖里程計(jì)算子程序如下:uint read()uchar tl,th1,th2;uint val,lc;while(1)th1=TH0;tl=TL0;th2=TH0;if(th1=th2)break;val=th1*256+tl; /讀取計(jì)數(shù)器0所計(jì)數(shù)值lc=val*2;/計(jì)算自行車行駛的里程數(shù)return lc;總程序#include /52系列單片機(jī)頭文件#define uchar unsigned char

23、#define uint unsigned int sbit dula=P26;/申明U1鎖存器的鎖存端sbit wela=P27;/申明U2鎖存器的鎖存端sbit key1=P36;/申明獨(dú)立鍵盤1sbit key2=P37;/申明獨(dú)立鍵盤2uchar code table=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f,0 x77,0 x7c,0 x39,0 x5e,0 x79,0 x71;void delayms(uint);void display(uchar qian,uchar bai,uchar shi,uc

24、har ge) /顯示子函數(shù) dula=1;P0=tableqian; /送千位段選數(shù)據(jù)dula=0;P0=0 xff;/送位選數(shù)據(jù)前關(guān)閉所有顯示,防止打開位選鎖存時(shí)wela=1;/原來段選數(shù)據(jù)通過位選鎖存器造成混亂P0=0 xfe;/送位選數(shù)據(jù)wela=0;delayms(5);/延時(shí)dula=1;P0=tablebai; /送百位段選數(shù)據(jù)dula=0;P0=0 xff;wela=1;P0=0 xfd;wela=0;delayms(5);dula=1;P0=tableshi; /送十位段選數(shù)據(jù)dula=0;P0=0 xff;wela=1;P0=0 xfb;wela=0;delayms(5);

25、dula=1;P0=tablege; /送個(gè)位段選數(shù)據(jù)dula=0;P0=0 xff;wela=1;P0=0 xf7;wela=0;delayms(5);void delayms(uint xms)uint i,j;for(i=xms;i0;i-) /i=xms即延時(shí)約xms毫秒for(j=110;j0;j-);uint read()uchar tl,th1,th2;uint val,lc;while(1)th1=TH0;tl=TL0;th2=TH0;if(th1=th2)break;val=th1*256+tl; /讀取計(jì)數(shù)器0所計(jì)數(shù)值lc=val*2;/計(jì)算自行車行駛的里程數(shù)return

26、lc;void main()uchar a,b,c,d;uint num;TMOD=0 x05; /設(shè)置計(jì)數(shù)器0為工作方式1(0000 0101)TH0=0; /將計(jì)數(shù)器寄存器初值清零TL0=0;TR0=1;while(1) if(key1=0)delayms(10);if(key1=0)while(!key1);TR0=TR0;num=read();if(key2=0)delayms(10);if(key2=0)TH0=0;TL0=0;while(!key2);if(num=10000)num=0;TH0=0; /將計(jì)數(shù)器寄存器值清零TL0=0;a=num/1000;b=num%1000/1

27、00;c=num%1000%100/10;d=num%10;display(a,b,c,d);四、系統(tǒng)調(diào)試與仿真本次實(shí)驗(yàn)采用的是uVision3軟件進(jìn)行調(diào)試。Keil C51是美國Keil Software公司出品的51系列兼容單片機(jī)C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢,因而易學(xué)易用。用過匯編語言后再使用C來開發(fā),體會更加深刻。Keil C51軟件提供豐富的庫函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,全Windows界面。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會到Keil C51生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,

28、容易理解。在開發(fā)大型軟件時(shí)更能體現(xiàn)高級語言的優(yōu)勢。單片機(jī)開發(fā)中除必要的硬件外,同樣離不開軟件,我們寫的匯編語言源程序要變?yōu)镃PU可以執(zhí)行的機(jī)器碼有兩種方法,一種Keil軟件圖標(biāo)是手工匯編,另一種是機(jī)器匯編,目前已極少使用手工匯編的方法了。機(jī)器匯編是通過匯編軟件將源程序變?yōu)闄C(jī)器碼,用于MCS-51單片機(jī)的匯編軟件有早期的A51,隨著單片機(jī)開發(fā)技術(shù)的不斷發(fā)展,從普遍使用匯編語言到逐漸使用高級語言開發(fā),單片機(jī)的開發(fā)軟件也在不斷發(fā)展,Keil軟件是目前最流行開發(fā)MCS-51系列單片機(jī)的軟件,這從近年來各仿真機(jī)廠商紛紛宣布全面支持Keil即可看出。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個(gè)

29、功能強(qiáng)大的仿真調(diào)試器等在的完整開發(fā)方案,通過一個(gè)集成開發(fā)環(huán)境(uVision)將這些部份組合在一起。運(yùn)行Keil軟件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空閑的硬盤空間、WIN98、NT、WIN2000、WINXP等操作系統(tǒng)。掌握這一軟件的使用對于使用51系列單片機(jī)的愛好者來說是十分必要的,如果你使用C語言編程,那么Keil幾乎就是你的不二之選(目前在國你只能買到該軟件、而你買的仿真機(jī)也很可能只支持該軟件),即使不使用C語言而僅用匯編語言編程,其方便易用的集成環(huán)境、強(qiáng)大的軟件仿真調(diào)試工具也會令你事半功倍。連機(jī)調(diào)試就是在樣機(jī)中全速運(yùn)行系統(tǒng)軟件,觀察系統(tǒng)運(yùn)行情況,并根據(jù)

30、運(yùn)行結(jié)果修改控制參數(shù),或?qū)浖⒂布桨缸鞅匾男薷模貜?fù)調(diào)試過程,直到系統(tǒng)能滿足各項(xiàng)性能性能指標(biāo)要求。五、心得體會和建議該設(shè)計(jì)通過對設(shè)計(jì)出來的板子進(jìn)行調(diào)試,驗(yàn)證了理論分析結(jié)果的正確性。此次課程設(shè)計(jì)經(jīng)過為小組同學(xué)的不懈努力,目前基本達(dá)到了預(yù)期的要求。通過對整個(gè)系統(tǒng)的調(diào)試,可得到如下結(jié)論:本系統(tǒng)是一個(gè)可測量自行車?yán)锍套孕熊嚴(yán)锍瘫恚軌蛲ㄟ^數(shù)碼管顯示出自行車所行使的里程并能通過按鍵控制里程表清零,停止,啟動。理解了自行車?yán)锍谈鶕?jù)以下公式求得:里程=脈沖總數(shù)車輪周長通過實(shí)驗(yàn)證明本次設(shè)計(jì)符合設(shè)計(jì)的要求,能實(shí)現(xiàn)對里程的顯示并能人工控制里程表,功能性較強(qiáng),具有一定的實(shí)踐意義,將會在許多場合應(yīng)用。不過,這個(gè)設(shè)計(jì)還是有它的不足之處。首先就是沒能實(shí)現(xiàn)對自行車速度的測定,在實(shí)際應(yīng)用中

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論