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

下載本文檔

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

文檔簡(jiǎn)介

1、題目:基于單片機(jī)的自行車?yán)锍逃?jì)系統(tǒng)設(shè)計(jì)設(shè)計(jì)內(nèi)容設(shè)計(jì)制作和調(diào)試一個(gè)由8052mcu組成的自行車?yán)锍逃?jì)系統(tǒng)。通過這個(gè)過程學(xué)習(xí)熟悉單片機(jī)的外圍擴(kuò)展、鍵盤控制和七段數(shù)碼管的使用,掌握51系列單片機(jī)控制和測(cè)試方法。設(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ù)幕魻杺鞲衅髌骷?。選擇獨(dú)立鍵盤和4位共陰極數(shù)碼管。二、硬件選型工作三、硬件的設(shè)計(jì)和實(shí)現(xiàn)1. 選擇計(jì)算機(jī)機(jī)型(采用

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

3、計(jì)說明書應(yīng)有目錄、摘要、序言、主干內(nèi)容(按章節(jié)編寫)、主要結(jié)論和參考書,附錄應(yīng)包括程序清單、系統(tǒng)方框圖和電路原理圖。4. 課程設(shè)計(jì)說明書應(yīng)包括按上述設(shè)計(jì)步驟進(jìn)行設(shè)計(jì)的分析和思考內(nèi)容和引用的相關(guān)知識(shí)。5. 要求打印b5紙,排版要求請(qǐng)向指導(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)答疑請(qǐng)直接與指導(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 3.霍

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

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

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

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

8、,由led顯示自行車的里程。本設(shè)計(jì)中,計(jì)數(shù)的正確性決定了本裝置的精度,如何在復(fù)雜的環(huán)境中得到正確的計(jì)數(shù)脈沖,是本設(shè)計(jì)的難點(diǎn),初步的解決辦法是在硬件上進(jìn)行合理的濾波,軟件上進(jìn)行一定的算法處理。其原理很簡(jiǎn)單,因?yàn)檐囕喌闹睆揭阎囕喌膱A周長(zhǎng)便是恒定不變的。由此可以計(jì)算出霍爾傳感器每發(fā)出一次計(jì)數(shù)脈沖自行車所走過的里程數(shù)。系統(tǒng)原理框圖如圖3.1。外部信號(hào)霍爾傳感器里程顯示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ī)存儲(chǔ)器

9、ram(random access memory)、只讀存儲(chǔ)器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 存儲(chǔ)器。在單芯片上,擁有靈巧的8 位cpu 和在系統(tǒng)可編程flash,使得stc89c52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。 具有以下標(biāo)準(zhǔn)功能: 8k字節(jié)flash,512字節(jié)ram, 32 位i/o 口線,看門狗定時(shí)器,內(nèi)置4k

10、b eeprom,max810復(fù)位電路,2個(gè)16 位 定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口。另外 stc89x52 可降至0hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,cpu 停止工作,允許ram、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,ram內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。stc89c51管腳圖如圖3.2所示。圖3.2 stc89c52引腳圖stc89c52的主要管腳功能如下:p0.0p0.7:p0口是一組8位漏極開路型雙向i/o口,也是地址/數(shù)據(jù)總線復(fù)用口。p1.0p1.7:p1是一個(gè)帶內(nèi)部上拉電阻的8

11、位雙向i/o口。p2.0p2.7:p2是一個(gè)帶內(nèi)部上拉電阻的8位雙向i/o口。 p3.0p3.7:p3是一個(gè)帶內(nèi)部上拉電阻的8位雙向i/o口。ale:地址鎖存控制信號(hào)。在系統(tǒng)擴(kuò)展時(shí),ale用于控制把p0口輸出的低8位地址鎖存起來,以實(shí)現(xiàn)低位地址和數(shù)據(jù)的分時(shí)傳送。此外,由于ale是以晶振16的固定頻率輸出的正脈沖,因此,可作為外部時(shí)鐘或外部定時(shí)脈沖使用。:外部程序存儲(chǔ)器讀選通信號(hào)。在讀外部rom時(shí),有效(低電平),以實(shí)現(xiàn)外部rom單元的讀操作。:訪問程序存儲(chǔ)控制信號(hào)。當(dāng)信號(hào)為低電平時(shí),對(duì)rom的讀操作限定在外部程序存儲(chǔ)器;當(dāng)信號(hào)為高電平時(shí),對(duì)rom的讀操作是從內(nèi)部程序存儲(chǔ)器開始,并可延至外部程序

12、存儲(chǔ)器。rst:復(fù)位信號(hào)。當(dāng)輸入的復(fù)位信號(hào)延續(xù)兩個(gè)機(jī)器周期以上的高電平時(shí)即為有效,用以完成單片機(jī)的復(fù)位初始化操作。xtall和xtal2:外接晶體引線端。當(dāng)使用芯片內(nèi)部時(shí)鐘時(shí),此二引線端用于外接石英晶體和微調(diào)電容;當(dāng)使用外部時(shí)鐘時(shí),用于接外部時(shí)鐘脈沖信號(hào)。vss:地線。 vcc:+5v電源。3.霍爾傳感器電路設(shè)計(jì)本次設(shè)計(jì)信號(hào)的捕獲采用的是霍爾傳感器?;魻柶骷哂性S多優(yōu)點(diǎn),它們的結(jié)構(gòu)牢固、體積小、重量輕、壽命長(zhǎng)、安裝方便、功耗小、頻率高(可達(dá)1mhz)、耐震動(dòng)、不怕灰塵、油污、水汽及煙霧等的污染或腐蝕?;魻柧€性器件的精度高、線性度好;霍爾開關(guān)器件無觸點(diǎn)、無磨損、輸出波形清晰、無抖動(dòng)、無回跳、位置

13、重復(fù)精度高。按照霍爾器件的功能可將它們分為:霍爾線性器件和霍爾開關(guān)器件,前者輸出模擬量,后者輸出數(shù)字量。 按被檢測(cè)對(duì)象的性質(zhì)可將它們的應(yīng)用分為:直接應(yīng)用和間接應(yīng)用。a44e集成霍爾開關(guān)封裝引腳圖如圖3.3所示。在電源端加電壓vcc,經(jīng)穩(wěn)壓器穩(wěn)壓后加在霍爾電勢(shì)發(fā)生器的兩端,根據(jù)霍爾效應(yīng)原理,當(dāng)霍爾片處在磁場(chǎng)中時(shí),在垂直于磁場(chǎng)的方向通以電流,則與這二者相垂直的方向上將會(huì)產(chǎn)生霍爾電勢(shì)差vh輸出,該vh信號(hào)經(jīng)放大器放大后送至施密特觸發(fā)器整形,使其成為方波輸送到oc門輸出。當(dāng)施加的磁場(chǎng)達(dá)到工作點(diǎn)時(shí),觸發(fā)器輸出高電壓(相對(duì)于地電位),使三極管導(dǎo)通,此時(shí)oc門輸出端輸出低電壓,通常稱這種狀態(tài)為開 。當(dāng)施加的

14、磁場(chǎng)達(dá)到釋放點(diǎn)時(shí),觸發(fā)器輸出低電壓,三極管截止,使oc門輸出高電壓,這種狀態(tài)為關(guān) 。這樣兩次電壓變換,使霍爾開關(guān)完成了一次開關(guān)動(dòng)作。工作點(diǎn)與釋放點(diǎn)的差值一定,此差值稱為磁滯,在此差值內(nèi),v0保持不變,因而使開關(guān)輸出穩(wěn)定可靠,這也就是集電成霍爾開關(guān)傳感器優(yōu)良特性之一。測(cè)量時(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è)低電平信號(hào),使cpu產(chǎn)生一次中斷計(jì)一次數(shù)。假定輪圈的周長(zhǎng)為l,在輪圈上安裝m個(gè)永久磁鐵,則測(cè)得的里程值最大誤差為

15、l/m。本設(shè)計(jì)中取m=1。當(dāng)輪子每轉(zhuǎn)一圈,通過霍爾元件傳感器采集到一個(gè)脈沖信號(hào),并從引腳p3.2中斷0端輸入,傳感器每獲取一個(gè)脈沖信號(hào)即對(duì)系統(tǒng)提供一次計(jì)數(shù)中斷。每次中斷代表車輪轉(zhuǎn)動(dòng)一圈,中斷數(shù)n輪圈的周長(zhǎng)為l的乘積為里程值。 里程s=周長(zhǎng)l*圈數(shù)n4.usb供電電路設(shè)計(jì)電源總是電路設(shè)計(jì)不可缺少的部分,本次設(shè)計(jì)采用了usb電源供電。usb接口可以向外提供電源,且是5v的電壓,非常適合于ttl信號(hào)的系統(tǒng),特別是單片機(jī)系統(tǒng)。可以使用這個(gè)電源為usb供電,這樣便減少了電源設(shè)計(jì),簡(jiǎn)化了usb系統(tǒng)結(jié)構(gòu)。在usb總線系統(tǒng)中,usb主機(jī)和usb集線器可以通過vbus和gnd兩根電源線向外提供電源,電源一般4.

16、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è)備的操作變得更為簡(jiǎn)單、方便,很大程度上提高系統(tǒng)綜合性能。本次設(shè)計(jì)中通過按鍵s1來控制里程計(jì)的

17、開始和停止,通過按鍵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ù)碼管對(duì)應(yīng)一個(gè)位選端,與u2原件74hc573的數(shù)據(jù)輸出端的低四位相連,u2的數(shù)據(jù)輸入端也連接到單片機(jī)的p0口

18、。兩個(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í)鐘控制信號(hào)。通過單片機(jī)的引腳xtal1,xtal2跨接石英晶體振蕩器和微調(diào)電容,構(gòu)成一個(gè)穩(wěn)定的自激振蕩器。時(shí)鐘頻率直接影響單片機(jī)的速度,晶振電路的質(zhì)量也直接影響單片機(jī)系統(tǒng)

19、的穩(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ù)碼管對(duì)應(yīng)一個(gè)位選端,與u2原件74hc573的數(shù)據(jù)輸出端的低四位相連,u2的數(shù)據(jù)

20、輸入端也連接到單片機(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=0xff;/送位選數(shù)據(jù)前關(guān)閉所有顯示,防止打開位選鎖存時(shí)wela=1;/原來段選數(shù)據(jù)通過位選鎖存器造成混亂p0=0xfe;/送位選數(shù)據(jù)wela=0;delayms(5);/延時(shí)dula=

21、1;p0=tablebai; /送百位段選數(shù)據(jù)dula=0;p0=0xff;wela=1;p0=0xfd;wela=0;delayms(5);dula=1;p0=tableshi; /送十位段選數(shù)據(jù)dula=0;p0=0xff;wela=1;p0=0xfb;wela=0;delayms(5);dula=1;p0=tablege; /送個(gè)位段選數(shù)據(jù)dula=0;p0=0xff;wela=1;p0=0xf7;wela=0;delayms(5);里程計(jì)算子程序?qū)纹瑱C(jī)p3.2口輸入的圈脈沖進(jìn)行計(jì)數(shù),計(jì)數(shù)器0打開但不打開中斷,通過讀取計(jì)數(shù)值進(jìn)行控制。里程計(jì)算子程序流程圖如圖3.11。ny開始計(jì)數(shù)器0對(duì)

22、外部信號(hào)計(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#define uint unsigned int sbit dula=p26;/申

23、明u1鎖存器的鎖存端sbit wela=p27;/申明u2鎖存器的鎖存端sbit key1=p36;/申明獨(dú)立鍵盤1sbit key2=p37;/申明獨(dú)立鍵盤2uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;void delayms(uint);void display(uchar qian,uchar bai,uchar shi,uchar ge) /顯示子函數(shù) dula=1;p0=tableqian; /送千位段選數(shù)據(jù)dula=0;p0=0xff

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

25、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 lc;void main()uchar a,b,c,d;uint num;tmod=0x05; /設(shè)置計(jì)數(shù)器0為工作方式1(0000

26、 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/100;c=num%1000%100/10;d=num%10;display(a,b,c,d);四、系統(tǒng)調(diào)試與仿真本次實(shí)驗(yàn)采用的是uvi

27、sion3軟件進(jìn)行調(diào)試。keil c51是美國(guó)keil software公司出品的51系列兼容單片機(jī)c語言軟件開發(fā)系統(tǒng),與匯編相比,c語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用。用過匯編語言后再使用c來開發(fā),體會(huì)更加深刻。keil c51軟件提供豐富的庫函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,全windows界面。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會(huì)到keil c51生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語言的優(yōu)勢(shì)。單片機(jī)開發(fā)中除必要的硬件外,同樣離不開軟件,我們寫的匯編語言源程序要變?yōu)閏pu可以執(zhí)

28、行的機(jī)器碼有兩種方法,一種keil軟件圖標(biāo)是手工匯編,另一種是機(jī)器匯編,目前已極少使用手工匯編的方法了。機(jī)器匯編是通過匯編軟件將源程序變?yōu)闄C(jī)器碼,用于mcs-51單片機(jī)的匯編軟件有早期的a51,隨著單片機(jī)開發(fā)技術(shù)的不斷發(fā)展,從普遍使用匯編語言到逐漸使用高級(jí)語言開發(fā),單片機(jī)的開發(fā)軟件也在不斷發(fā)展,keil軟件是目前最流行開發(fā)mcs-51系列單片機(jī)的軟件,這從近年來各仿真機(jī)廠商紛紛宣布全面支持keil即可看出。keil提供了包括c編譯器、宏匯編、連接器、庫管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個(gè)集成開發(fā)環(huán)境(uvision)將這些部份組合在一起。運(yùn)行keil軟件需要pentiu

29、m或以上的cpu,16mb或更多ram、20m以上空閑的硬盤空間、win98、nt、win2000、winxp等操作系統(tǒng)。掌握這一軟件的使用對(duì)于使用51系列單片機(jī)的愛好者來說是十分必要的,如果你使用c語言編程,那么keil幾乎就是你的不二之選(目前在國(guó)內(nèi)你只能買到該軟件、而你買的仿真機(jī)也很可能只支持該軟件),即使不使用c語言而僅用匯編語言編程,其方便易用的集成環(huán)境、強(qiáng)大的軟件仿真調(diào)試工具也會(huì)令你事半功倍。連機(jī)調(diào)試就是在樣機(jī)中全速運(yùn)行系統(tǒng)軟件,觀察系統(tǒng)運(yùn)行情況,并根據(jù)運(yùn)行結(jié)果修改控制參數(shù),或?qū)浖?、硬件方案作必要的修改,重?fù)調(diào)試過程,直到系統(tǒng)能滿足各項(xiàng)性能性能指標(biāo)要求。五、心得體會(huì)和建議該設(shè)計(jì)通過對(duì)設(shè)計(jì)出來的板子進(jìn)行調(diào)試,驗(yàn)證了理論分析結(jié)果的正確性。此次課程設(shè)計(jì)經(jīng)過為小組同學(xué)的不懈努力,目前基本達(dá)到了預(yù)期的要求。通過對(duì)整個(gè)系統(tǒng)的調(diào)試,可得到如下結(jié)論:本系統(tǒng)是一個(gè)可測(cè)量自行車?yán)锍套孕熊嚴(yán)锍瘫恚軌蛲ㄟ^數(shù)碼管顯示出自行車所行使的里程并能通過按鍵控制里程表清零,停止,啟動(dòng)。理解了自行車?yán)锍谈鶕?jù)以下公式求得:里程=脈沖總數(shù)車輪周長(zhǎng)通過實(shí)驗(yàn)證明本次設(shè)計(jì)符合設(shè)計(jì)的要求,能實(shí)現(xiàn)對(duì)里程的顯示并能人工控制里程表,功能性較強(qiáng),具有一定的實(shí)踐意義,將會(huì)在許多場(chǎng)合應(yīng)用。不過,這個(gè)設(shè)計(jì)還是有它的不足之處。首先就是沒能實(shí)現(xiàn)對(duì)自行車速度的測(cè)定,在實(shí)際應(yīng)用中不方便,這些還需要我們繼續(xù)努力完善。在設(shè)計(jì)之前,參考了

溫馨提示

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

評(píng)論

0/150

提交評(píng)論