自行車?yán)锍瘫淼脑O(shè)計資料_第1頁
自行車?yán)锍瘫淼脑O(shè)計資料_第2頁
自行車?yán)锍瘫淼脑O(shè)計資料_第3頁
自行車?yán)锍瘫淼脑O(shè)計資料_第4頁
自行車?yán)锍瘫淼脑O(shè)計資料_第5頁
已閱讀5頁,還剩76頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、學(xué) 號:1434060103孝世現(xiàn)7大孽north china universitt of science and tech nology畢業(yè)設(shè)計說明書graduate design設(shè)計題目:基于單片機的自行車?yán)锍趟俣缺碓O(shè)計與實現(xiàn)學(xué)生姓名:程曉鋒專業(yè)班級:2014自升本1班學(xué) 院:繼續(xù)教育學(xué)院指導(dǎo)教師:邸志剛 副教授2016年11月30日摘要摘要隨著居民生活水平的不斷提高,自行車不再僅僅是普通的運輸、代步的工具,而 是成為人們娛樂、休閑、鍛煉的首選。自行車的速度里程表能夠滿足人們最基本的需 求,讓人們能清楚地知道當(dāng)前的速度、里程等物理量。本論文主要闡述一種基于霍爾 元件的自行車的速度里程表的設(shè)

2、計。以 at89c52單片機為核心,霍爾傳感器測轉(zhuǎn)數(shù), 實現(xiàn)對自行車?yán)锍?速度的測量統(tǒng)計,采用1302實現(xiàn)在系統(tǒng)掉電的時候保存里程信 息,并能將自行車的里程數(shù)及速度用 lcd時顯示。文章詳細(xì)介紹了自行車的速度里 程表的硬件電路和軟件設(shè)計。硬件部分利用霍爾元件將自行車每轉(zhuǎn)一圈的脈沖數(shù)傳入 單片機系統(tǒng),然后單片機系統(tǒng)將信號經(jīng)過處理送顯示。軟件部分用c語言進(jìn)行編程,采用模塊化設(shè)計思想。該系統(tǒng)硬件電路簡單,子程序具有通用性。關(guān)鍵詞:里程/速度;霍爾元件;單片機;lcd顯示iabstractabstractwith the developing of people life, the bicycle i

3、s not only the universal tool of transportation and substitute for walking, but becomes the first choice of entertainment and exercising. the bicycle mileage/speed can fulfill the basic need of people s life, so tlcan learn the speed and the mileage of the bicycle. in this paper, the bicycle mileage

4、/speed design based on the hall element is elaborated. by at89c52 as kernel, using hall element to measure revolution, the measure and statistic are achieved. the range information is saved by when the power is off, the bicycle speed can be displayed on lcd. in this article, the hardware circuit and

5、 software design of bicycle mileage/speed instrument are introduced in detail. about the hardware, the pulse number is transmitted of one cycle of the bicycle into single chip microcomputer system. then the signal processed by single chip microcomputer system is sent to display scream. about the sof

6、tware, in assemble language; the program is designed in the mode of modules. the system has simple hardware, common sub-program.key words: mileage / speed; hall element; single chip microcomputer; lcd display .目錄刖h 1第1章緒論 21.1 課題背景 21.2 設(shè)計的主要內(nèi)容及技術(shù)指標(biāo) 2第2章自行車?yán)锍瘫砜傮w方案設(shè)計 32.1 任務(wù)分析與實現(xiàn) 32.2 自行車?yán)锍瘫碛布桨冈O(shè)計 32

7、.3 自行車?yán)锍瘫碥浖桨冈O(shè)計 4第3章自行車?yán)锍瘫碛布K設(shè)計 53.1 里程表的硬件設(shè)計 53.1.1 霍爾傳感器電路模塊設(shè)計 53.1.2 按鍵電路模塊設(shè)計 63.1.3 電源電路模塊設(shè)計 63.1.4 時鐘電路模塊設(shè)計 73.1.5 lcd顯示模塊電路模塊設(shè)計 73.1.6 用口下載電路模塊設(shè)計 83.1.7 復(fù)位電路模塊設(shè)計 93.1.8 晶振電路模塊設(shè)計 10第4章軟件的設(shè)計 114.1 里程表的軟件設(shè)計 114.1.1 里程速度功能模塊實現(xiàn) 114.1.2 日歷時鐘模塊功能 144.1.3 lcd1602液晶顯示模塊 17第5章軟件調(diào)試 215.1 程序的檢測與調(diào)試 215.1.

8、1 keil軟件簡介 215.1.2 編制單片機應(yīng)用程序的步驟和難點 215.2 系統(tǒng)仿真調(diào)試 245.2.1 程序的查錯手段 25第6章結(jié)論 27第7章謝辭 28參考文獻(xiàn) 29附錄1硬件設(shè)計原理圖 30附錄2硬件電路仿真圖 31附錄3軟件程序 32譯文 69c語言 69前言、,4 刖 百本文介紹里程表設(shè)計以單片機和霍爾傳感器為核心。霍爾傳感器將到來的低 電平脈沖信號輸入到單片機進(jìn)行控制與計算, 再采用lcd奠塊進(jìn)行顯示,使得自 行車的里程數(shù)據(jù)能直觀的顯示給使用者。自行車?yán)锍瘫硎怯糜谶h(yuǎn)距離連續(xù)測量自行車行駛距離的儀表。它分為電源、霍爾傳感器和顯示器3部分。隨著居民生活水平的不斷提高,自行車不再

9、僅僅 是普通的運輸、代步的工具,而是成為人們娛樂、休閑、鍛煉的首選。因此, 人們希望自行車的功用更強大,能給人們帶來更多的方便。自行車?yán)锍趟俣缺?作為自行車的一大輔助工具也正是隨著這個要求而迅速發(fā)展的,其功能也逐漸 從單一的里程顯示發(fā)展到速度、時間顯示,甚至有的還具有測量騎車人的心跳、 顯示騎車人熱量消耗等功能。本文介紹的自行車?yán)锍瘫硎怯呻娫捶€(wěn)壓系統(tǒng)供電, at89c52單片機為中央處理器,結(jié)合高精度的控制電路,方便地實現(xiàn)了智能化、 高精度、高可靠性、高效率的自行車?yán)锍瘫淼脑O(shè)計,并且使用方便。里程表以單片機at89c5切核心,由系統(tǒng)輸入、單片機部分和系統(tǒng)輸出組成。1第2章自行車?yán)锍瘫砜傮w方案設(shè)

10、計第1章緒論單片機自從推出以來,以其超小型化、結(jié)構(gòu)緊湊、可靠性高、成本低等優(yōu)點 被人們廣泛接受,從而應(yīng)用于工業(yè)、電訊、數(shù)據(jù)處理、儀器儀表等多方面。自行 車?yán)锍瘫硎亲孕熊嚨闹匾浼谧孕熊噧x表中占重要位置,但幾十年來其發(fā)展 變化并不大,現(xiàn)在國外很多車中使用了數(shù)字里程表,但在國內(nèi)還并不多見。1.1 課題背景里程表的原理很簡單,車輪的圓周長是恒定不變的。由此可以計算出每走一 里路車輪要轉(zhuǎn)多少圈,這個數(shù)也是恒定不變的。因此只要能夠自動把車輪的轉(zhuǎn)數(shù) 積累下來,然后除以每一里路對應(yīng)的轉(zhuǎn)數(shù)就可以得到行駛的里程了。這樣簡單的原理古人就已經(jīng)發(fā)現(xiàn),并且開始使用了?!坝浝锕能嚒本褪沁@樣的裝置,它是利用上述原理,再

11、加上巧妙的機構(gòu)使得車輪每轉(zhuǎn)一定圈數(shù)就自動敲一下鼓,此時只要有專人把它記下了,就可以得到所走里程。此裝置十分巧妙無論白天、 黑夜均可使用,而且盲人也可使用,體現(xiàn)出了我國古代勞動人民的聰明才智。不過,如 果車上沒有人默記鼓聲數(shù)目的話,單靠記里鼓車本身還不能累計一共走了多少 里。而且車停下來之后誰也不知道這車曾經(jīng)走過多少里路,這是美中不足之處。從保護(hù)環(huán)境和經(jīng)濟條件許可等因素綜合來看, 自行車目前乃至今后都有著廣 闊的發(fā)展空間。目前市面上自行車的速度表和里程表都是機械的, 看起來不夠直 觀與方便。如果能用lcd直接顯示出來里程數(shù)或速度值,就可節(jié)省用戶的時間及 精力處理自行車行進(jìn)過程中的突發(fā)事件。1.2

12、 設(shè)計的主要內(nèi)容及技術(shù)指標(biāo)單片機軟件設(shè)計程序主要包括里程設(shè)計模塊;存儲歷史里程數(shù)據(jù)設(shè)計模塊; 里程的顯示設(shè)計模塊;里程公里數(shù)的累計設(shè)計模塊;里程公里數(shù)的清0設(shè)計模塊。里程計數(shù)時有一盞指示燈閃爍;用 lcd1602!行顯示公里數(shù);用個開關(guān)實 現(xiàn)對里程公里數(shù)的消0功能;用霍爾傳感器實現(xiàn)對里程車輪圈數(shù)的累計功能。主要技術(shù)指標(biāo):1 .完成里程的顯示功能2 .能存貯歷史里程數(shù)據(jù)3 .能夠消除歷史數(shù)據(jù)4 .有一盞指示燈第2章 自行車?yán)锍瘫砜傮w方案設(shè)計2.1 任務(wù)分析與實現(xiàn)本設(shè)計的任務(wù)是:以stc89c5常片機為處理核心,用傳感器將車輪的轉(zhuǎn)數(shù) 轉(zhuǎn)換為電脈沖,進(jìn)行處理后送入單片機。里程及速度的測量,是經(jīng)過 s

13、tc89c52 測出總的脈沖數(shù)和每一秒所轉(zhuǎn)的圈數(shù),再經(jīng)過單片機的計算得出,其結(jié)果通過 1602lcd顯示屏顯示出來。本系統(tǒng)總體思路如下:假定車輪的周長為 l,在車輪上安裝m個磁鋼,則 測得的里程值最大誤差為l/m。經(jīng)綜合分析,本設(shè)計中取 m=l車輪每轉(zhuǎn)一圈, 開關(guān)型霍爾傳感器就會采集到一個脈沖信號,并從引腳端輸入,傳感器每獲取 一個脈沖信號代表車輪轉(zhuǎn)動一圈,即圈數(shù) qs加1,圈數(shù)qs與設(shè)置的自行車車 輪的周長l的乘積即為當(dāng)前所走里程。同時可以從定時器ti知道在1秒內(nèi)單片 機收到的脈沖個數(shù),即車輪所轉(zhuǎn)的圈數(shù),而自行車車輪周長與車輪所轉(zhuǎn)圈數(shù)的 乘積即為這1秒內(nèi)自行車所走的距離,距離除以1秒的時間,

14、即為瞬時速度。 平均速度的計算大體上與瞬時速度一樣,從計數(shù)器t1知道在t秒內(nèi)車輪所轉(zhuǎn)的 圈數(shù)后,與自行車車輪周長相乘得到t秒內(nèi)自行車所走的距離,距離除以t即 為平均速度。另一個定時器t0則可以用來實現(xiàn)秒表的計時。最后lcd顯示屏顯 示內(nèi)容的切換可以由鍵盤的輸入來實現(xiàn),而秒表計時的開始、暫停、清零及里 程的清零也可以用鍵盤的輸入來實現(xiàn)。設(shè)計時,應(yīng)綜合考慮測速精度和系統(tǒng)反應(yīng)時間。本設(shè)計采用的脈沖計數(shù)方 法,用來計算速度具有較高的測速精度。在計算里程時取了自行車的理想狀態(tài)。 實際中,誤差控制在幾米之內(nèi),相對于整個里程來說不是很大。另外,還應(yīng)盡 量保證其他子模塊在編程時的通用性和高效性。最終實現(xiàn)目標(biāo):

15、采用單片機作控制,自行車?yán)锍瘫砭哂欣锍獭⑺俣扰c秒表 計時顯示功能。通過不同按鍵的按下切換里程、速度、秒表三者之間的顯示, 也可以實現(xiàn)秒表計時的開始、暫停、清零及里程清零的功能,方便地實現(xiàn)了智 能化、高精度、高可靠性、高效率的自行車?yán)锍瘫淼脑O(shè)計,并且使用方便。2.2 自行車?yán)锍瘫碛布桨冈O(shè)計根據(jù)本設(shè)計的要求,經(jīng)研究和分析,硬件部分主要分為信息采集、信息處 理、鍵盤輸入和信息顯示四大模塊,其中的核心是信息處理,所用芯片為3華北理工大學(xué)繼續(xù)教育學(xué)院stc89c5邪片機。系統(tǒng)硬件框圖如圖2-1所示:鍵盤輸入圖2-1 系統(tǒng)硬件框圖2.3 自行車?yán)锍瘫碥浖桨冈O(shè)計通過軟件控制單片機的功能是單片機的主要特點

16、和優(yōu)點,程序的設(shè)計要考 慮合理性和可讀性,遵循模塊化設(shè)計的原則,采用自頂向下的設(shè)計方法。模塊 化設(shè)計使程序的可讀性好、修改及完善方便。軟件設(shè)計包括顯示子程序、數(shù)據(jù)處理子程序(分為里程子程序、速度子程 序)、秒表計時子程序、脈沖接收子程序等等。顯示子程序是通過編程將數(shù)據(jù)處 理的結(jié)果送給顯示器顯示。數(shù)據(jù)處理子程序是將得到的車輪所轉(zhuǎn)的圈數(shù)與實際 要顯示值之間有一定的對應(yīng)關(guān)系,經(jīng)過軟件編程顯示所需要的值。秒表計時子 程序是采用計數(shù)器t0通過編程實現(xiàn)秒表計時工作。脈沖接收子程序是通過編程 實現(xiàn)脈沖的計數(shù),即對車輪所轉(zhuǎn)的圈數(shù)計數(shù)。系統(tǒng)軟件框圖如圖2-2所示:外部信號v圖2-2 系統(tǒng)軟件框圖數(shù)據(jù)處理第3章自

17、行車?yán)锍瘫碛布K設(shè)計第3章自行車?yán)锍瘫碛布K設(shè)計3.1 里程表的硬件設(shè)計本次里程表的設(shè)計,硬件電路主要由霍爾傳感器電路,按鍵電路,電源電 路,時鐘電路,lcd顯示電路,串口下載電路,復(fù)位電路,晶振電路構(gòu)成。3.1.1 霍爾傳感器電路模塊設(shè)計a44e集成霍爾開關(guān)由穩(wěn)壓器 a霍爾電勢發(fā)生器(即硅霍爾片)b、差分放大 器c、施密特觸發(fā)器d和oc門輸出e五個基本部分組成,如圖3-1所示。(1)、 (2)、(3)代表集成霍爾開關(guān)的三個引出端點。在電源端加電壓vcc,經(jīng)穩(wěn)壓器穩(wěn)壓后加在霍爾電勢發(fā)生器的兩端,根據(jù)霍爾效應(yīng)原理,當(dāng)霍爾片處在磁場中 時,在垂直于磁場的方向通以電流,則與這二者相垂直的方向上將

18、會產(chǎn)生霍爾 電勢差vhb出,該vh信號經(jīng)放大器放大后送至施密特觸發(fā)器整形,使其成為 方波輸送到oc門輸出。當(dāng)施加的磁場達(dá)到工作點時,觸發(fā)器輸出高電壓(相對于地電位),使三極管導(dǎo)通,此時ocn輸出端輸出低電壓,通常稱這種狀態(tài)為 開。當(dāng)施加的磁場達(dá)到釋放點時,觸發(fā)器輸出低電壓,三極管截止,使och輸出高電壓,這種狀態(tài)為關(guān)。這樣兩次電壓變換,使霍爾開關(guān)完成了一次開關(guān) 動作。工作點與釋放點的差值一定,此差值稱為磁滯,在此差值內(nèi),v0保持不變,因而使開關(guān)輸出穩(wěn)定可靠,這也就是集電成霍爾開關(guān)傳感器優(yōu)良特性之一。 傳感器主要特性是它的輸出特性,即輸入磁感應(yīng)強度b與輸出電壓v0之間的關(guān) 系。測量時,在1、2兩

19、端加5v直流電壓,在輸出端3與1之間接一個負(fù)載電阻, 輸出端3接單片機int0/p3.2,如圖3-2所示。圖3-1集成開(a)型霍爾傳感器vo/v1296 (v)q釋放點(off)0510工作點(on)b/mt1520(b)5華北理工大學(xué)繼續(xù)教育學(xué)院圖3-2霍爾傳感電路3.1.2 按鍵電路模塊設(shè)計鍵盤在單片機應(yīng)用系統(tǒng)中,實現(xiàn)輸入數(shù)據(jù)、傳送命令的功能,是人工干預(yù)的 主要手段。鍵盤是單片機系統(tǒng)設(shè)計中一種主要的信息輸入接口,合理的設(shè)計,不僅可以節(jié)省系統(tǒng)的設(shè)計成本,更可使儀器設(shè)備的操作變得更為簡單、方便, 很大 程度上提高系統(tǒng)綜合性能。本次設(shè)計中通過按鍵來更改自行車車輪半徑, 并控制 顯示自行的車?yán)锍?/p>

20、和平均速度,s3刷屏,si加數(shù)據(jù),s2減數(shù)據(jù)。si圖3-3按鍵電路3.1.3 電源電路模塊設(shè)計為整個電路提供電源。電路由 7805三端穩(wěn)壓集成電路、電容、led燈、1 千歐姆的電阻、開關(guān)和直流電源組成。7805三端穩(wěn)壓集成電路內(nèi)部還有過流、過熱及調(diào)整管的保護(hù)電路,使用起來可靠、方便,而且價格便宜。注意事項:電源不要超過20v, 3a,防止意外。第3章自行車?yán)锍瘫碛布K設(shè)計7gxd圖3-4 電源電路3.1.4 時鐘電路模塊設(shè)計ds1302與單片機的連接也僅需要 3條線:rst弓i腳(高電平時啟動數(shù)據(jù)傳 送)、sclki行時鐘弓唧、i/o串行數(shù)據(jù)引腳,vcc2為備用電源,外接32.768khz

21、晶振,為芯片提供計時脈沖。ix xeex2t un仁 一電3.1.5 lcd顯示模塊電路模塊設(shè)計lcd1602引腳介紹:第1腳:vss為電源地第2腳:vddg5v電源正極第3腳:vee為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地電 華北理工大學(xué)繼續(xù)教育學(xué)院源時對比度最高。第4腳:rs為寄存器選擇,高電平1時選擇數(shù)據(jù)寄存器、低電平0時選擇指 令寄存器。第5腳:rw為讀寫信號線,高電平(1)時進(jìn)行讀操作,低電平(0)時進(jìn)行寫 操作。第6腳:e(或en調(diào)為使能(enable)端,高電平(1)時讀取信息,負(fù)跳變時 執(zhí)行指令。第714腳:do- d吠8位雙向數(shù)據(jù)端。第1516腳:空腳或背燈電源。

22、15腳背光正極,16腳背光負(fù)極。lzdij:t2vlo1 _kexp1 1p-2 0 adopul adtpi3pon ad)p1.4pcs ad3p15f0.4ad4p1.6pc 5 ad 5p1.7網(wǎng)金ae牌51eset般用0kt阻hdp3 1al1prdgktd 用 1mekvtocstl p3j四ajstdp3 4pis ai4pl5 aupl* ai itop ?mi ahxtal2尸擊 ! a l uaxul1ri- l arvsspio as1511b 13-1415-171srs4d 3?la31 前2e 31r10r13loifi圖3-6 顯示電路3.1.6 串口下載電路模塊

23、設(shè)計串行通信是指使用一條數(shù)據(jù)線,將數(shù)據(jù)一位一位地依次傳輸,每一位數(shù)據(jù) 占據(jù)一個固定的時間長度。具只需要少數(shù)幾條線就可以在系統(tǒng)間交換信息,特 別使用于計算機與計算機、計算機與外設(shè)之間的遠(yuǎn)距離通信。單片機的串行通 第3章自行車?yán)锍瘫碛布K設(shè)計信可用于與計算機之間傳送數(shù)據(jù),一般采用 rs232s口,但是由于ttl電平和 rs232電平不兼容,所以兩者對接時,必須進(jìn)行電平轉(zhuǎn)換,具原理圖如圖 2-9。rs232與電平轉(zhuǎn)換最常用的芯片有 mc1488 mc148守口 max232各廠家生產(chǎn)的此 類芯片雖然不同,但原理都一樣。在本次設(shè)計選用的是美國maxim公司的max232 芯片,由此構(gòu)成程序下載電路,

24、以便調(diào)試燒寫程序。它是rs232雙工發(fā)送器/接收器接口電路芯片,由于芯片內(nèi)部有自升壓的電平倍增電路,將 +5v轉(zhuǎn)換成 -10+10v,滿足rs232s準(zhǔn)對邏輯1和邏輯0的電平要求,工作時僅需要單一 的+5v電源。圖3-7 串口下載電路3.1.7 復(fù)位電路模塊設(shè)計上電時,剛接通電源,電容 cf當(dāng)于瞬間短路,+5立:即加到ret/vp端,該 高電平使89c5冷機自動復(fù)位,這就是上電復(fù)位;若運行過程中需要程序從頭執(zhí) 行,只需按動按鈕即可。按下按鈕,則直接把+5v1 口到了 ret/vp端從而復(fù)位稱為 手動復(fù)位。電路圖如圖3-8所示。9華北理工大學(xué)繼續(xù)教育學(xué)院圖3-8 復(fù)位電路3.1.8 晶振電路模塊

25、設(shè)計晶振電路用于產(chǎn)生單片機工作時所需的時鐘控制信號。通過單片機的引腳xtal1, xtal2夸接石英晶體振蕩器和微調(diào)電容,構(gòu)成一個穩(wěn)定的自激振蕩器。時鐘頻率直接影響單片機的速度,晶振電路的質(zhì)量也直接影響單片機系統(tǒng)的穩(wěn)定 性。晶振電路電路圖如圖第4章軟件的設(shè)計第4章軟件的設(shè)計4.1 里程表的軟件設(shè)計本自行車?yán)锍瘫碥浖捎媚K化設(shè)計方法。整個系統(tǒng)由初始化模塊、頻率測量模塊、lcd顯示模塊、速度計算與顯示模塊、里程計算與與顯示模塊、數(shù)據(jù) 存儲、讀取模塊、定時器中斷服務(wù)模塊、時鐘模塊以及其他功能模塊組成。本 設(shè)計的主要內(nèi)容是自行車?yán)锍趟俣缺?,日歷時鐘為附加功能,在此進(jìn)行簡單介 紹。4.1.1 里程速度

26、功能模塊實現(xiàn)里程速度功能程序流程圖如圖 4-1所示。11華北理工大學(xué)繼續(xù)教育學(xué)院圖4-1 里程速度功能程序流程圖程序代碼如下:void main()eepromj_xrd(0x43,0,3,number);qs=number0;as=number1;第4章軟件的設(shè)計bs=number2;init_lcd();初始化l cddispmore(1,1,-digital meter-,16);for(i=0;i25000;i+);dispmore(2,1, welcome ,16);顯示歡迎信息for(i=0;i25000;i+);dispmore(2,1, welcome. ,16);for(i=

27、0;i25000;i+);dispmore(2,1, welcome. ,16);for(i=0;i25000;i+);dispmore(2,1, welcome. ,16);for(i=0;i25000;i+);dispmore(2,1, welcome. ,16);for(i=0;i25000;i+);dispmore(2,1, welcome. ,16);for(i=0;i30000;i+);w1302(0x90,0xa5);/打開充電二級管一個二級管串聯(lián)一個2k電阻w1302(0x8e,0x80);/寫保護(hù),禁止寫操作wrcom(0x01);mode=0;p2=0xff;qs2=0;t

28、r1=5;tr2=5;wrcom(0x01);dispmore(1,1,set bike tire l=,16);wrcom(0xc9);dispone(c);wrcom(0xca);dispone(m);p2=0xff;13華北理工大學(xué)繼續(xù)教育學(xué)院wrcom(0xc6);dispone(tr1+0x30);wrcom(0xc7);dispone(tr2+0x30);while(1)if(k1=0)for(i=0;i9)tr1=0;wrcom(0xc6);dispone(tr1+0x30);for(i=0;i32000;i+);if(k2=0)for(i=0;i9)tr2=0;wrcom(0x

29、c7);dispone(tr2+0x30);for(i=0;i32000;i+);if(k3=0)for(i=0;i7)id=0;while(k3=0);switch(id)case 0:sec=0;disp_line1();disp_line2();break;case 1:/ 年year=1;disp_line1();disp_line2();id_case1_key();break;case 2:/ 月year=0;mon=1;disp_line1();disp_line2();id_case1_key();break;case 3:/ 日mon=0;day=1;disp_line1()

30、;disp_line2();id_case1_key();break;case 4:/ 星期day=0;weekk=1;disp_line1();disp_line2(); id_case1_key();4.1.3 lcd1602 液晶顯示模塊lcd1602液晶顯示器屬于字符型液晶顯示器,其內(nèi)部自帶有字符庫,所以 只要向顯示器輸送字符的 ascii碼,就可以顯示該字符了。對于1602顯示程序 的編寫最主要的是掌握好1602的讀寫操作的時序。1602顯示器的控制端分別 為rs rww e,當(dāng)寫指令時rs為低電平,rwm氐電平,e首先為高電平,然 后將數(shù)據(jù)送出,在延時一定時間后 e變?yōu)榈碗娖健_@樣

31、就把命令寫到了 1602 中。當(dāng)寫數(shù)據(jù)時rs為高電平,rw的低電平,e首先為高電平,然后將數(shù)據(jù)送出, 在延時一定的時間后e變?yōu)榈碗娖?。這樣就把數(shù)據(jù)寫到了 1602中。在實際應(yīng)用 1602時,要先將顯示器初始化,初始化的內(nèi)容包括清屏、設(shè)置顯示模式,首字17華北理工大學(xué)繼續(xù)教育學(xué)院符的位置、光標(biāo)的有無和閃爍等,然后才能顯示具體內(nèi)容圖4-3 lcd顯示程序流程圖該函數(shù)的作用是對lcd行力測,看lc皿否處于t的狀態(tài).當(dāng)bflag=1時表示 忙,此時不可以向lcd進(jìn)行讀寫操作.而當(dāng)busy=0時,表示可以向它讀寫數(shù)據(jù). 程序代碼:void wait()p2=0xff;rw=1; rs=0;doe=0;e

32、=1;while(busy=1);void dispone(dat)寫數(shù)據(jù),并顯示出來第4章軟件的設(shè)計p2=dat;rw=0; rs=1;e=0; e=1;wait();void wrcom(com)向lcm入控制字p2=com;rw=0; rs=0;e=0; e=1;wait();void init_lcd()初始化 lcdwrcom(0x01);顯示清零,數(shù)據(jù)指針清零wrcom(0x06);寫一個字后指針加一wrcom(0x38);設(shè)置16*2顯示,5*7點陣,8位數(shù)據(jù)接口wrcom(0x0c);設(shè)置開顯示,不顯示光標(biāo)void dispmore(line,row,uchar dat口,i)

33、 /格式為 dispmore(第幾行,第幾列,開始要顯示的字符地址,顯示幾個字符);uchar com;s=dat;if(line=1)com=0x80+row-1;/第一行第一列對應(yīng)的 ram勺地址位為0x80hwrcom(com);while(i-)!=0&com=0x8f)dispone(*s);com+;s+;19華北理工大學(xué)繼續(xù)教育學(xué)院elsecom=0xc0+row-1;wrcom(com);while(i-)!=0&com=0xcf) dispone(*s);com+;s+;第5章軟件調(diào)試第5章軟件調(diào)試5.1 程序的檢測與調(diào)試5.1.1 keil軟件簡介keil c51是美國ke

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

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

36、pu 16mbie更多ram 20m以上 空閑的硬盤空間、win98 nk win2000 winxp等操作系統(tǒng)。掌握這一軟件的 使用對于使用51系列單片機的愛好者來說是十分必要的,如果你使用c語言編 程,那么keil幾乎就是你的不二之選(目前在國內(nèi)你只能買到該軟件、而你買 的仿真機也很可能只支持該軟件),即使不使用c語言而僅用匯編語言編程,其 方便易用的集成環(huán)境、強大的軟件仿真調(diào)試工具也會令你事半功倍。5.1.2 編制單片機應(yīng)用程序的步驟和難點如何編寫單片機應(yīng)用程序,這是一個實踐性很強的題目,也是一項艱苦 而細(xì)致的工作。如果按照一定的步驟并且找出難點,事先對這些難點加以處21華北理工大學(xué)繼續(xù)

37、教育學(xué)院理,能夠收到事半功倍的效果。下面是開發(fā)中必經(jīng)的幾個步驟和可能遇到的 難點的處理。編制步驟:1 .搞清功能和編寫方案接到一個單片機項目設(shè)計之后,并不是馬上動手編寫程序,而是仔細(xì) 研究技術(shù)要求或者技術(shù)說明,根據(jù)這些技術(shù)要求和技術(shù)說明,把程序應(yīng)該 具備的主要功能寫清楚,寫仔細(xì),這是最關(guān)鍵的工作,否則在設(shè)計完成以 后會發(fā)現(xiàn)有些功能由于事先沒有考慮清楚再重新設(shè)計將會很麻煩,可能有些需要重新增加的功能很容易補充,而有些可能由于沒有事先考慮周全而 無法實現(xiàn)。2 .編寫總流程圖和各功能模塊流程圖根據(jù)要完成的程序功能寫出總流程圖,根據(jù)總流程圖把整個程序劃分 成幾個主要的功能模塊,每個功能模塊都要寫出基本

38、流程圖,這主要是為以后的 程序編寫起到一個指導(dǎo)作用。當(dāng)然,在實際的程序編寫過程中肯定會有一 些改動,一個基本的流程會指導(dǎo)寫程序的過程中不會出現(xiàn)太大的偏差。3 .準(zhǔn)備編程所需的資料這些資料主要是編程語言方面的書籍、 雜志等。因為程序語言的有些 資料不可能記得太清楚,如每條指令的含義,具體操作每條指令所牽涉的 硬件電路等。如果資料準(zhǔn)備得比較充分,可以放在案邊,若有需要, 順手 查閱。4 .分析編程的難點和技術(shù)解決方案為了能比較順利地完成程序設(shè)計,應(yīng)根據(jù)程序所完成的功能和程序流 程對整個程序的框架分析一下,并根據(jù)自己掌握的技能定位整個程序的難 點,然后找到最佳的算法。5 .寫程序在上面的準(zhǔn)備工作完成

39、后,就可以著手編寫程序。因為有了明確的程 序流程,有了充足的資料,可能遇到的難點基本上找到了解決方法。 這樣, 事先準(zhǔn)備得比較充分,即使在以后的程序編寫過程中遇到困難, 也較易解 決。這樣就可以節(jié)省很多時間,以便靜下心來認(rèn)真按照方案和流程編寫程 序。另外,一般寫完一個功能程序就進(jìn)行調(diào)試, 通過后再編寫另外一個功第5章軟件調(diào)試能代碼,這樣可以防止全部代碼編寫完畢后再調(diào)試可能帶來的相互影響, 從而可以搞清楚到底是哪部分程序有問題。7 .程序調(diào)試單擊project菜單項,選擇newproject項;此時彈出create newproject 對話框,選擇合適的路徑口,在文件名一欄中填入新工程的名字。

40、單擊保存;根據(jù)所用的器件,選擇cpu勺型號,單擊確定;keil51詢問是否生成默認(rèn)的 配置文件,這個可選可不選,這里選定。單擊yes,觀察項目文件管理窗口的變化;在file菜單下單擊new選項,新建文件。此時在代碼窗口出現(xiàn)一 “textl”空白文檔;在“textl”中編輯完代碼后,單擊file菜單中的保存 項,彈出保存對話框。保存名寫為text.c o單擊保存。注意在對文件命名時 必須加擴展名; 在項目導(dǎo)航欄中source group上單擊右鍵,選 add file to group source group 1;此時彈出add file 對話框。選中剛才保存的text.c 文件。單擊add。

41、此時在項目文件管理窗口中就會出現(xiàn)剛才所添加的文件text.c ;單擊快捷菜單欄中的編譯按鈕,可以編譯程序;單擊project菜單項,選擇 option for target target 1 選項。 在彈出的對話框中可以 對project 進(jìn)行總體配置;選擇 output選項卡,單擊 create hex file , 代碼輸出格式應(yīng)為hex-80 ;單擊確定后,并重新編譯??梢钥吹骄幾g成功 之后,build選項卡里又多了一項。這是生成的hex文件;單擊debug菜單 項中的start/stop debug session命令或工具欄中的進(jìn)入調(diào)試界面;單擊調(diào)試界面debug菜單項中的go命令或

42、工具欄中的運行 程序,單擊stop running命令或結(jié)束程序。觀察運行結(jié)果。23華北理工大學(xué)繼續(xù)教育學(xué)院hi - uvision2 - c:ijtcp&ad ininittnatordgsktopxcritgxtl .c圖5-1程序運行調(diào)試圖5.2系統(tǒng)仿真調(diào)試proteus統(tǒng)仿真平臺與開發(fā)平臺是由英國 labcenter公司開發(fā)的,是目 前世界上最完整的系統(tǒng)設(shè)計與仿真平臺之一。proteust以實現(xiàn)數(shù)字電路、模 擬電路及微控制系統(tǒng)與外設(shè)的混合電路系統(tǒng)的電路仿真、系統(tǒng)協(xié)同仿真和 pcb 設(shè)計等全部功能。proteu歆件能夠?qū)Ω鞣N處理器進(jìn)行實時仿真、調(diào)試與測試 的ed具,真正實現(xiàn)了在沒有目標(biāo)原

43、形時就可以對系統(tǒng)進(jìn)行調(diào)試與驗證。在構(gòu)思好電路原理圖和編好程序之后就要對其進(jìn)行系統(tǒng)仿真,原理圖的具 體設(shè)計流程如圖5-2所示。當(dāng)完成原理圖布線后,利用proteuisis編輯環(huán)境所提供的電器規(guī)則檢查 命令對設(shè)計進(jìn)行檢查,并根據(jù)系統(tǒng)提供的錯誤檢查報告修改原理圖。直到通過 電器規(guī)則檢查為止。第5章軟件調(diào)試單片機系統(tǒng)的仿真是proteus vsm一大特色,同時,本仿真系統(tǒng)將源代 碼的編輯和編譯整合到同一設(shè)計環(huán)境中,這樣使得用戶可以在設(shè)計中直接編輯 代碼,并且很容易地查看到用戶對源程序修改后對仿真結(jié)果的影響。源代碼通過編譯無誤后,就可以進(jìn)行仿真,在仿真過程中不斷完善電路和 程序的功能最后達(dá)到本次設(shè)計的目

44、的。圖5-2原理圖設(shè)計流程圖5.2.1 程序的查錯手段單片機的應(yīng)用系統(tǒng)均需借助對應(yīng)的開發(fā)系統(tǒng)(或裝置)進(jìn)行在線仿真,對25華北理工大學(xué)繼續(xù)教育學(xué)院應(yīng)用系統(tǒng)的軟,硬件進(jìn)行全面地檢測與調(diào)試。各種開發(fā)系統(tǒng)或裝置均提供以下 查錯手段。(1)單步執(zhí)行采用單步執(zhí)行操作可對應(yīng)用程序每步執(zhí)行一條指令,可逐條檢查這一段程 序的執(zhí)行過程是否符合原設(shè)計要求。可直接查出錯誤所在。宏單步可執(zhí)行一段 程序,如一步就可執(zhí)行完整個循環(huán)程序段。(2)斷點設(shè)置全速運行可在程序有疑慮的地方設(shè)置斷點,從設(shè)置的起始地址開始,以全速或非全 速方式向設(shè)定的斷點處運行。如果這段程序無語法或邏輯上的錯誤,則連續(xù)運 行到設(shè)置的斷點處停止運行,返

45、回監(jiān)控狀態(tài)。如果有錯誤,則在錯誤處停止運 行,如果進(jìn)入死循環(huán)或者程序跑飛,就會永不停止運行。全速斷點運行為檢查 實時性及中斷響應(yīng)處理等提供了方便。(3)顯示器窗口檢查(4)實時跟蹤記錄除上述之外,還有以下功能:符號化調(diào)試。在原程序中一般均以符號地址,標(biāo)號等出現(xiàn),通過匯編自動進(jìn)行變換和調(diào)整, 偏移量等均可自動換算和填入。程序的運行。自動生成目標(biāo)代碼和固化4。調(diào)試仿真電路圖見附錄2第6章結(jié)論第6章結(jié)論該設(shè)計通過對設(shè)計出來的板子進(jìn)行調(diào)試,驗證了理論分析結(jié)果的正確性。 此次課程設(shè)計經(jīng)過為期一段時間的不懈努力,達(dá)到了預(yù)期的要求。通過對整個 系統(tǒng)的調(diào)試,可得到如下結(jié)論:本系統(tǒng)是一個可測量自行車?yán)锍毯推骄?/p>

46、度的 自行車?yán)锍瘫?。理解了自行車?yán)锍碳捌淦骄俣鹊挠嬎?。里程與速度分別根據(jù)以下公式求 得:里程二脈沖總數(shù)x車輪周長速度=車輪周長/車輪轉(zhuǎn)一圈所用的時間通過實驗證明本次設(shè)計符合設(shè)計的要求,能實現(xiàn)對里程、速度的顯示,功 能性較強,具有一定的實踐意義,將會在許多場合應(yīng)用。不過,這個設(shè)計還是 有它的不足之處。首先就是電路設(shè)計有些復(fù)雜,元器件種類有點多,它們會耗 費掉一定的電力。另外就是對自行車的控制不是很全面,對測定自行車的瞬時 速度等方面我們還未做到。27華北理工大學(xué)繼續(xù)教育學(xué)院第7章謝辭本次畢業(yè)設(shè)計是在指導(dǎo)老師江老師的指導(dǎo)下完成的。忙碌了兩個多月,我 的畢業(yè)設(shè)計課題也終將告一段落。編譯程序時點擊運

47、行,也基本達(dá)到預(yù)期的效 果,虛榮的成就感在沒人的時候也總會冒上心頭。但由于能力和時間的關(guān)系, 總是覺得有很多不盡人意的地方,可是,我又會有點自戀式地安慰自己:做一 件事情,不必過于在乎最終的結(jié)果,可貴的是過程中的收獲。以此語言來安撫 我尚沒平復(fù)的心。畢業(yè)設(shè)計,也許是我大學(xué)生涯交上的最后一個作業(yè)了。想籍 次機會感謝在校期間二年以來給我?guī)椭乃欣蠋?、同學(xué),你們的友誼是我人 生的財富,是我生命中不可或缺的一部分。我的畢業(yè)指導(dǎo)老師江老師,她不僅 是我的任課老師,還是我的畢業(yè)指導(dǎo)教師,在課堂上教會了我很多知識,畢業(yè) 設(shè)計還不厭其煩的指導(dǎo),并提供了很多與該設(shè)計相關(guān)的重要信息,培養(yǎng)了我們 對做事認(rèn)真嚴(yán)謹(jǐn),

48、積極進(jìn)取的精神。這將非常有利于我們今后的學(xué)習(xí)和工作。 在此表示衷心的感謝!本次畢業(yè)設(shè)計還得到了課題組的各位老師的大力協(xié)助,在此一并表示我們 的感謝!參考文獻(xiàn)參考文獻(xiàn)1張友德,趙志英,涂時亮.單片微型機原理、應(yīng)用與實驗 m.上海;復(fù)旦大學(xué)出版 社,2000.12-142勒達(dá).單片機應(yīng)用系統(tǒng)開發(fā)實例導(dǎo)航m.北京:人民郵電出版社,2003.54-563薛鈞義,張彥斌.單片微型計算機及其應(yīng)用d.西安:西安交通大學(xué)出版 社,2001.104-1064田漢波.一種基于霍爾傳感器的直流電機轉(zhuǎn)速測量方法j.機械與電 子,2007(1).31-335楊繼生.霍爾傳感器a44e在車輪測速中的應(yīng)用研究j.電子測量技

49、術(shù) ,2009 ,(10).100-1026何立民.單片機應(yīng)用技術(shù)選編m.北京:北京航空航天大學(xué)出版社,1996.47-487蔡美琴.mcs-51系列單片機系統(tǒng)及其應(yīng)用m.上海:高等教育出版社,1992.54-578蘇偉斌.8051系列單片機應(yīng)用手冊m.北京:科學(xué)出版社,1997.76-799馬家辰.mcs-51單片機原理及接口技術(shù)m.哈爾濱:哈爾濱工業(yè)大學(xué)出版 社,1997.123-12510藏海河.單片機原理及應(yīng)用m.重慶:重慶大學(xué)出版社,2004.35-3711劉文秀.單片機仿真j.中國學(xué)術(shù)期刊,2004,6(5).56-61.12楊雪梅.單片機軟件的抗干擾設(shè)計j.中國學(xué)術(shù)期刊,2006

50、, 3(8).18-25.13joseph . a method of developing 80c552 microcontroller on mcs-51devicej .eastchina institute of metallurgy,1998 ,14(27).101-125.14intel.interfacing an mcs-51 microcontroller to an 82527 can controllerj.iondon macmillan press ltd,1996,5(80).32-40.15philips semiconductors.the i 2 c-bus

51、specification version(2.1)j.usa,2000,17(35).71-83.29華北理工大學(xué)繼續(xù)教育學(xué)院附錄1硬件設(shè)計原理圖11tieeji :打1 : k7普 khj j bm生 ti觸了 ttn s5 h - mu 3za11 yg俎跟i潞看=端牌卻上 .u -ijj . fsm q 國 i:一,- mjcmnmmjem genkm腎mnrrhke ssk tlb, tml t!k v. mevt ca- um口 tswt w y- +工 clrl3.附錄2硬件電路仿真圖32附錄2硬件電路仿真圖- r-ui .rj&h wiok 2015/05/24 sit.16 43t 63占5e333 inxi口加舊xnmzrfitra.miti 口卻通 fdjdajx3 .ugm 口 ,徜 os fdcl*dcpseflp2ivm& *zirfe pzjfatl mx-h*j_e eef infrzpl 1it3-:fz.me rza-a fz守馬x fzizan? im*p12 fi3 fiji 戶13,m-ne rijtwtt pj4na f3*tl raftfrn;f1 cp1 ?mttt -12 ,華北理工

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論