多功能自行車碼表設(shè)計.doc_第1頁
多功能自行車碼表設(shè)計.doc_第2頁
多功能自行車碼表設(shè)計.doc_第3頁
多功能自行車碼表設(shè)計.doc_第4頁
多功能自行車碼表設(shè)計.doc_第5頁
免費預(yù)覽已結(jié)束,剩余111頁可下載查看

下載本文檔

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

文檔簡介

多功能自行車測速儀多功能自行車測速儀- 1 - 多功能自行車測速儀目錄一、產(chǎn)品設(shè)計背景2二、產(chǎn)品功能簡介2三、系統(tǒng)硬件設(shè)計3四、MCU軟件設(shè)計8五、上位機軟件 bike V1.0設(shè)計8六、產(chǎn)品實物及測試106113621463156416七、結(jié)語16附錄 1 電路圖17附錄 2 源程序18- 1 - 多功能自行車測速儀- 1 - 多功能自行車測速儀多功能自行車測速儀使用說明書一、產(chǎn)品設(shè)計背景隨著人們生活水平的逐漸提高,人們對于生活質(zhì)量的要求也日益增加,尤其是對健身的要求。自行車在中國普遍作為代步工具。而在國外,自行車卻是一項十分受歡迎的健身運動。因為它無污染,價位低廉,老少皆宜。而且在運動過程中可以充分享受到大自然,對于忙碌的現(xiàn)代人來說,無疑是一種較好的放松方法。在中國這種情況也在慢慢發(fā)生變化。因此愛好自行車運動的人十分學(xué)要一款能測速的裝置,以知道自己的運動情況。并根據(jù)外界條件,如溫度,風(fēng)速等進行適當(dāng)?shù)恼{(diào)節(jié),已達到最佳運動的效果。而對于自行車運動員來說,最為關(guān)心的莫過于一段時間內(nèi)的訓(xùn)練效果。因為教練要根據(jù)一段時間內(nèi)運動員的訓(xùn)練效果進行評估,從而進行適當(dāng)?shù)恼{(diào)整已使運動員達到最佳的狀態(tài)。因此需要一種裝置進行對訓(xùn)練中各種參數(shù)的測定記錄。本作品就是針對此而設(shè)計的。二、產(chǎn)品功能簡介 對自行車進行實時速度的測量。顯示出速度值。 能針對不同的車型進行選擇。從而采用不同的模塊進行測量。 能測量出當(dāng)前環(huán)境的溫度,以供使用者決定是否適宜進行運動。 顯示當(dāng)前日期時間,可以任意設(shè)定當(dāng)前工作時間。 顯示行車?yán)锍?,運動時間。- 1 - 多功能自行車測速儀 可以自行設(shè)定采樣頻率 記錄一段時間內(nèi)的定時采樣速度,存入制定單元。通過與 PC機進行通訊,將數(shù)據(jù)傳送到 PC 機中用如見進行處理,分析。得出運動或訓(xùn)練的情況。 配套軟件 bike v1.0可以將本次運動的速度繪制成速度曲線,以供參考。并可以將數(shù)據(jù)轉(zhuǎn)存入數(shù)據(jù)庫保存以備日后查詢使用 配套軟件 bike v1.0 充分考慮到廣大自行車愛好者對于自行車運動的熱衷,因此加入了對自行車運動的介紹,當(dāng)今流行車型的簡介以及進行自行車運動的注意事項和自行車旅行的相關(guān)知識。并會逐漸對該軟件加以升級,使其功能更加完善,以滿足廣大使用者的需求。 可以進入系統(tǒng)休眠方式以節(jié)省電能,并隨時激活喚醒系統(tǒng)重新進行工作。可以調(diào)節(jié)液晶對比度,可以打開背景燈顯示。三、系統(tǒng)硬件設(shè)計系統(tǒng)框圖被測量對象傳感器單片機系統(tǒng)PC 機通信處理數(shù)據(jù)處理并顯示通過傳感器對外部物理量進行測量,再將物理信號轉(zhuǎn)換為電信號,- 2 - 多功能自行車測速儀輸入單片機,單片機對所輸入的電信號進行處理,最后輸出顯示,并可以通過與上位機通訊將數(shù)據(jù)采集到電腦中。本設(shè)計中用到的主要部件包括單片機 AT89C52、DS12887 時鐘芯片、DS18B20 溫度傳感器、歐姆龍公司的 EE-SX671 型光電傳感器、MAX232 通信芯片以及液晶顯示器。1、 時鐘芯片 DS12887DS12887 是美國達拉斯半導(dǎo)體公司最新推出的時鐘芯片,采用CMOS 技術(shù)制成,把時鐘芯片所需的晶振和外部鋰電池相關(guān)電路集于芯片內(nèi)部。采用 DS12887 芯片設(shè)計的時鐘電路勿需任何外圍電路并具有良好的微機接口。DS12887 芯片具有微功耗、外圍接口簡單、精度高、工作穩(wěn)定可靠等優(yōu)點,可廣泛用于各種需要較高精度的實時時鐘場合中。這里我們將 DS12887 的數(shù)據(jù)線與單片機的 P0 口相連,將其片選線與 P2.0 相連,這樣便可通過 R0 或 R1 寄存器實現(xiàn)時鐘芯片與單片機的數(shù)據(jù)傳輸。注意在 DS12887 的 RESET 端應(yīng)連接上電復(fù)位電路,因為只有當(dāng)該腳保持低電平時間大于 200ms,DS12887 才能有效工作。DS12887的 IRQ端腳為其中斷信號輸出口,低電平有效,可作微處理的中斷輸入。沒有中斷條件滿足時,IRQ 處于高阻態(tài)。IRQ 線是漏極開路輸入,要求外接上接電阻。時鐘芯片的有多種中斷處理方式,例如周期中斷,鬧鐘中斷,更新中斷等,這里我們利用它的更新中斷,即時間每過 1秒中,DS12887的更新中斷便會從 IRQ端輸出,而 IRQ引腳則與單片機的 INT1中斷相連,這樣每當(dāng) DS12887發(fā)出時間上的- 3 - 多功能自行車測速儀中斷請求單片機便可從它的 INT1 中斷得知,隨之立刻進入中斷子程序,在這個中斷程序中對光電傳感器所發(fā)出的脈沖信號進行計數(shù)處理,這樣就可以得到速度以及里程等所要測量的量。由于在測速系統(tǒng)中時間的測定非常重要,因此 DS12887 可以說是本設(shè)計的核心部件,它的使用好壞直接影響著最終測量的精確度,所以在調(diào)試時務(wù)必細心,盡量在熟悉 DS12887的各種功能后在開始編程。2、 溫度傳感器 DS1820DSl820數(shù)字溫度計提供9位(二進制)溫度讀數(shù)指示器件的溫度信息經(jīng)過單線接口送入 DSl820 或從DSl820 送出因此從主機 CPU 到 DSl820 僅需一條線(和地線)DSl820 的電源可以由數(shù)據(jù)線本身提供而不需要外部電源因為每一個 DSl820 在出廠時已經(jīng)給定了唯一的序號因此任意多個 DSl820 可以存放在同一條單線總線上這允許在許多不同的地方放置溫度敏感器件 DSl820 的測量范圍從-55 到+125 增量值為 0.5可在 l s(典型值)內(nèi)把溫度變換成數(shù)字。由于 DS1820 采用單總線結(jié)構(gòu)因此外圍電路非常簡單,通過一上拉電阻 R5 即可與單片機相連。這里我們將 DS1820的數(shù)據(jù)引腳 DQ 與單片機的 T0 口(即 P3.4)相連,通過這條數(shù)據(jù)線接收溫度測量值。雖然 DS1820 的外圍電路十分簡單,但是凡事哪能完美,可以- 4 - 多功能自行車測速儀說這是以繁雜的編程換來的。DS1820 以其嚴(yán)格而繁難的時序要求著稱。因為它只有一根數(shù)據(jù)線,即數(shù)據(jù)與命令字都要在同一條線上傳輸,所以 DS1820 制定了嚴(yán)格的時序,大家在使用時務(wù)必嚴(yán)格按照說明書上的要求對其進行操作,否則時序要是不正確,DS1820 就罷工。筆者在調(diào)試的時候大部分時間都花在了調(diào)試 DS1820 上。通過切身的體會,我覺的最好變一到兩個通用的延時子程序,在 DS1820 的編程中就可以直接調(diào)用延時程序,以保證時序的準(zhǔn)確。3、EE-SX671 型光電傳感器EE-SX671 型光電傳感器是歐姆龍公司所生產(chǎn)的光電開關(guān)型傳感器。其四個引腳中我們只需用其中的三個:電源端,接地端以及信號輸出端。在車子行駛過程中,車輪帶動碼盤旋轉(zhuǎn),由于碼盤上刻有等分的孔,在連續(xù)的透光與擋光過程中,該傳感器便連續(xù)輸出標(biāo)準(zhǔn)的脈沖信號。由電路圖可知,將傳感器的輸出信號經(jīng)過光耦接到單片機的 T1 口,再設(shè)定 T1 為計數(shù)器工作方式,這樣就可以對所接收到的脈沖進行計數(shù),進而計算出速度里程等。注意一定要將光電傳感器的輸出信號調(diào)好,使其成為標(biāo)準(zhǔn)的脈沖信號,這樣 T1 計數(shù)器才能正常的工作。再調(diào)試的時候可先不接入 EE-SX671,可先用信號發(fā)生器產(chǎn)生所需要的脈沖信號來進行模擬,待全部調(diào)試好后再接入 EE-SX671。在使用- 5 - 多功能自行車測速儀EE-SX671 之前最好用示波器看一下輸出波形是否規(guī)整達到要求。一般情況下,輸出的就是標(biāo)準(zhǔn)的脈沖信號,如果發(fā)現(xiàn)有點偏差可通過外連調(diào)理電路將其整理一番。而且最好用電壓表的交流檔打一下,看一下峰值,是否達到 T1 口的電平識別范圍。EE-SX671 最后要安裝到車上,所以事先最好準(zhǔn)備一個易彎曲的鐵片用螺母將其與 EE-SX671 連接然后在固定于車上,這樣可以保證在車子行駛過程中不發(fā)生晃動。4、 液晶顯示由于現(xiàn)在的液晶模塊應(yīng)用已經(jīng)十分廣泛,其使用方法大同小異,所以筆者不準(zhǔn)備祥加介紹。大家可根據(jù)自己的熟悉程度自行選擇顯示器件。如果對于液晶不熟悉,完全可以使用數(shù)碼管作為顯示媒介。這里我把自己的液晶顯示界面給大家看一下開機畫面5、 電源- 6 - 多功能自行車測速儀這里我們采用 9V 的電池供電,用 LM7805 進行穩(wěn)壓處理,將 9V穩(wěn)降到 5V 以供單片機以及各芯片使用。有條件的可以購買電源模塊為系統(tǒng)供電。經(jīng)測試 9V 電池完全可以滿足實際需要。6、與微機通信筆者在設(shè)計該儀器時,想將所測得的數(shù)據(jù)傳送到電腦中,再用高級語言對數(shù)據(jù)進行處理,比如速度,在繪制出速度曲線,這樣對于教練或是廣大自行車愛好者來說,就可以很清晰地看到自己在訓(xùn)練過程中的情況。這里筆者采用大家熟知的串口通訊方式,采用 MAX232 作為電平轉(zhuǎn)換芯片。相信大家已經(jīng)很熟悉了,筆者就不贅述了。四、MCU 軟件設(shè)計這里采用匯編語言進行編程,軟件的任務(wù)量比較大,涉及到計速算法,具體會在附錄的源程序中詳細說明,這里不多述了。五、上位機軟件 bike V1.0設(shè)計在用高級語言處理上,筆者采用 VB 捆綁數(shù)據(jù)庫將采集得數(shù)據(jù)轉(zhuǎn)存入數(shù)據(jù)庫中,這樣就可以保存每一次的訓(xùn)練數(shù)據(jù),以備日后查用。后來索性就編了一個小軟件,除了上述功能外,還增加了一些對于自行車運動的常識和知識。用串口線將測速儀與電腦連接后,即可進行數(shù)據(jù)的傳輸。在 PC機上即可進行數(shù)據(jù)的接收處理,并可以轉(zhuǎn)存入數(shù)據(jù)庫。- 7 - 多功能自行車測速儀傳輸參數(shù)設(shè)定自行車知識介紹數(shù)據(jù)庫軟件主界面數(shù)據(jù)曲線的繪制- 8 - 多功能自行車測速儀六、作品實物及測試產(chǎn)品實物圖串口通信液晶對比度調(diào)節(jié)液晶背景燈總體效果圖【1】電源接口復(fù) 位總開關(guān)總體效果圖【2】- 9 - 多功能自行車測速儀本作品采用 9V 電池供電,使用時務(wù)必保證電池電量充足,將電池按要求接到系統(tǒng)電源接口處。撥動開關(guān),使系統(tǒng)工作,將出現(xiàn)如下開機畫面:開機畫面待系統(tǒng)自檢 4 秒后便進入系統(tǒng)主菜單,如前圖所示。共有四大功能模塊:1 測速模式:系統(tǒng)的主工作界面,進行速度及相關(guān)量的檢測2 數(shù)據(jù)傳輸:將所記錄的數(shù)據(jù)傳入 PC 機,再由配套軟件bike v1.0 進行處理,包括繪制曲線及轉(zhuǎn)存入數(shù)據(jù)庫3 其它功能:可以進行時間設(shè)定及查看版本信息4 退出系統(tǒng):使系統(tǒng)進入節(jié)能休眠模式- 10 - 多功能自行車測速儀各功能模塊詳細測試說明【注】為方便敘述,將產(chǎn)品的功能按鍵從左自右依次定義為號鍵、號鍵、號鍵、號鍵。(一)在主菜單下按號鍵(SET)即進入,出現(xiàn)如下子菜單:車型選擇在此子菜單下先進行車型的選擇,您可以選擇 26 型和 275 型兩鐘目前最常見的車型進行測量按號鍵可以返回主菜單如按號鍵即選擇 275型,系統(tǒng)會根據(jù)您的不同選擇為您準(zhǔn)確選定參數(shù)進行測量。緊接著會出現(xiàn)如下菜單:- 11 - 多功能自行車測速儀采樣頻率設(shè)定在本菜單中,詢問您希望設(shè)定的采樣頻率,這樣系統(tǒng)便會按照您的設(shè)定時間,每隔固定的時間便向系統(tǒng)內(nèi)部的 RAM 中自動寫入當(dāng)前的速度值。在選定采樣時間后系統(tǒng)便會進入主測量界面:主測量界面【注】此時確保您正確接入傳感器,否則速度,里程便顯示零- 12 - 多功能自行車測速儀在此界面處,隨時按下號鍵(EXIT),系統(tǒng)便會返回主界面。在采樣時間設(shè)定處,當(dāng)設(shè)定好時間后,系統(tǒng)會自動將內(nèi)部存儲單元清零。(二)在主菜單下按號鍵即進入,出現(xiàn)如下子菜單:數(shù)據(jù)傳輸菜單按號鍵即進入數(shù)據(jù)傳輸模式,在您將測速儀與電腦連接后系統(tǒng)會自動將您剛才運動過程中存儲在系統(tǒng)中的速度值傳到電腦中以供處理。按號鍵,返回主菜單。當(dāng)畫面顯示【數(shù)據(jù)傳輸完畢!】時,表示數(shù)據(jù)已傳輸完畢,系統(tǒng)會自動返回主菜單?!咀ⅰ吭谶M行數(shù)據(jù)傳輸時,為保證正確傳輸,請務(wù)必用串口線將測速儀與電腦連接牢靠。- 13 - 多功能自行車測速儀(三)在主菜單下按號鍵即進入,出現(xiàn)如下子菜單:其它功能菜單按號鍵即進入,出現(xiàn)如下設(shè)定畫面:時間設(shè)定畫面此時按號鍵可以選擇修改單元,按號鍵(UP),加值;按號鍵(DOWN),減值。修改完畢后,按號鍵確定,OK處光標(biāo)閃爍反顯,后返回上一級菜單。- 14 - 多功能自行車測速儀(四)在主菜單下按號鍵即進入,系統(tǒng)即進入節(jié)能休眠模式,系統(tǒng)出現(xiàn)如下畫面結(jié)束畫面在休眠模式下,按號鍵(WAKE)即可激活喚醒系統(tǒng)。六、結(jié)語以上是對本產(chǎn)品的功能及使用說明。誠然,本次開發(fā)的這款產(chǎn)品還有許多亟待改進的地方。包括功能上及軟件的設(shè)計上。這是本人大三的時候開發(fā)的一個基于 51 單片機的作品,現(xiàn)在看來可以改進的地方很多,比如在體積上,可一選用更小封裝的單片機,而且對于手持設(shè)備應(yīng)該低功耗,比如可采用 TI的 430系列的單片機,這樣就可以用鈕扣電池供電,使用時間可以更長。最后非常感謝本網(wǎng)站能舉辦這樣的活動,這對于普及單片機技術(shù)以及提高廣大愛好者的動手能力都非常有益!- 15 - 多功能自行車測速儀附錄 1 電路- 16 - 多功能自行車測速儀附錄 2 源程序;*總程序*;Controller:ST7920;MCU:AT89C52 ,晶體頻率:11.0592MHz;LCM:128*64;LCM型號:帶中文字庫的 128X64-5ZK;LCM 接口:1:GND 2:VCC 3:V0 4.RS 5:RW 6:E 7-14:DB0-DB715:PSB 16:NC 17:RST 18:Vout;*;*功能引腳命名*D_PORT EQU P1RS EQU P2.1;數(shù)據(jù)口;液晶指令與數(shù)據(jù)寄存器設(shè)置位RW EQU P2.2 ;液晶讀寫控制位E EQU P2.3COM EQU 20HDAT EQU 21H;液晶使能端;指令寄存器;數(shù)據(jù)寄存器TD EQU P3.4WAKE EQU PSW.5;DS1820數(shù)據(jù)引腳;液晶復(fù)位標(biāo)志FX_KEY EQU PSW.1 ;液晶光標(biāo)反顯開關(guān),F(xiàn)X_KEY=1 一直反顯;FX_KEY=0反顯一次后關(guān)閉- 17 - 多功能自行車測速儀;*相關(guān)使用單元說明*;25H光標(biāo)移動計數(shù)器;2EH用來保護讀時鐘芯片的 R0;22h用來存放時鐘的 BCD碼;2DH用來存放修改時間時的漢字查詢標(biāo)志位;2FH存放溫度十位;30H存放溫度各位;85H用做判斷使用內(nèi)部 RAM還是時鐘 RAM的標(biāo)志位,0為內(nèi)部,1為時鐘;37H用做保存時鐘芯片的 RAM地址;84H用做保存內(nèi)部 RAM的地址;*;*里程和速度的基本命名*TAB2 EQU 08HLUNZ_Z EQU 09HLUNZ_X EQU 0AHSPD_Z EQU 0BHSPD_X EQU 0CHLC_Z EQU 0DHLC_X EQU 0EHLC_JW EQU 0FH進位的標(biāo)志位;30H用來查漢字時鐘表時使用;31H中存輪周長整數(shù)部分;32H中存小數(shù)部分;33H中存速度的整數(shù)部分;34H中存小數(shù)部分;35h中存里程的整數(shù)部分;36h中存小數(shù)部分;37H中存里程計算時的一個小數(shù)向整數(shù)部分- 18 - 多功能自行車測速儀SPD_SUM EQU 10HSPD_PDW EQU 11HLC_XZB EQU 12HLC_XZS EQU 13HLC_XZG EQU 14HLC_XSF EQU 15HSPD_XZS EQU 16HSPD_XZG EQ17HSPD_XSF EQU 18HKM_JW EQU 19HKM EQU 1AH;38H中存速度的和(三妙內(nèi)的);39H中存速度平均值的判斷位(三次);41H中存里程顯示部分的整數(shù)的百位;42H中存里程顯示部分的整數(shù)的十位;43H中存里程顯示部分的整數(shù)的個位;44H中存里程顯示部分的小數(shù)的十分位;45H中存速度顯示部分的整數(shù)的十位;46H中存速度顯示部分的整數(shù)的個位;47H中存速度顯示部分的小數(shù)的十分位;48H中存里程向千米進位時的標(biāo)志位;49H中存里程的公里數(shù)CAI EQU 1BH;50H中是存采樣頻率的數(shù)值QIAN_Z EQU 1CH速度);51H 中存前一秒時的里程整數(shù)。(用于計算HOU_Z EQU 1DH算速度);52H 中存現(xiàn)在時刻的里程的整數(shù) (用于計;53H 中存前一秒時的里程小數(shù);54H 中存現(xiàn)QIAN_X EQU 1EH在時刻的里程的小數(shù)。HOU_X EQU 1FHQBZW_Z EQU 23H位;54H中存現(xiàn)在時刻的里程的小數(shù)。;55H中存里程整數(shù)部分前一秒時的進位標(biāo)志HBZW_Z EQU 24H;56H存整數(shù)部分后一秒的進位標(biāo)志位- 19 - 多功能自行車測速儀QBZW_X EQU 26HHBZW_X EQU 27HSPD_SUMX EQU 28HSDJS EQU 29HSD EQU 2AH;57H中存里程小數(shù)部分前一秒的進位標(biāo)志位;58H中存小數(shù)部分后一秒的進位標(biāo)志位;59H中存速度的平均值的小數(shù)部分;61H中存:輪周長每周脈沖數(shù);62H中存脈沖數(shù)和 61h中相乘后的高八位;63h中存的是主程序中判斷是否到一分鐘的TEP EQU 2BH標(biāo)志位,用于讀溫度傳感器CUN EQU 2CH;64H中每到一秒加一,當(dāng)和 cai里的數(shù)相等時遍向 ram中保存一個速度值;*程序地址編排*ORG0000HAJMP MAINORG0003H;主程序入口LJMP WAKE_UPORG0013H;INT0中斷入口;INT1中斷入口;T1中斷入口LJMP SUDUORG001BHLJMP JISUAN- 20 - 多功能自行車測速儀;*主程序入口地址ORG0040HMAIN:MOV SP,#60HMOVDPTR,#STARTLCALL PIC_SHOWLCALL TEMPER;顯示開始畫面;測試溫度MOVSPD_Z,#00HMOVSPD_X,#00HMOVLC_Z,#00HMOVLC_X,#00HMOVLC_JW,#00HMOVSPD_SUM,#00HMOVSPD_PDW,#00HMOVLC_XZB,#00HMOVLC_XZS,#00HMOVLC_XZG,#00HMOVLC_XSF,#00HMOVSPD_XZS,#00HMOVSPD_XZG,#00HMOVSPD_XSF,#00H- 21 - 多功能自行車測速儀MOVKM_JW,#00HMOVKM,#00HMOVQBZW_Z,#00HMOVHBZW_Z,#00HMOVQBZW_X,#00HMOVHBZW_X,#00HMOVQIAN_Z,#00HMOVHOU_Z,#00HMOVQIAN_X,#00HMOVHOU_X,#00HMOVSPD_SUMX,#00HMOVSD,#00HMOVTEP,#00HMOVTAB2,#00HMOVCUN,#00H;相關(guān)單元的初始化MOV 2FH,#02HMOV30H,#09HMOV R1,#85HMOVR1,#0MOV37H,#0EHMOVR1,#84HMOVR1,#38H- 22 - 多功能自行車測速儀TIME:CLRP2.0;時鐘芯片的初始化MOVR0,#0AHMOVA,#70HMOVX R0,AMOVR0,#0BHMOVA,#96HMOVX R0,AMOVR0,#0CHMOVX A,R0MOVR0,#00HMOVA,#00H;基本寄存器的初始化;秒單元的初始化;分單元的初始化;時單元的初始化;星期單元的初始化MOVX R0,AMOV R0,#02HMOVA,#00HMOVX R0,AMOV R0,#04HMOVA,#00HMOVX R0,AMOV R0,#06HMOVA,#05HMOVX R0,A- 23 - 多功能自行車測速儀MOVR0,#07HMOVA,#05hMOVX R0,AMOVR0,#08HMOVA,#05H;日單元的初始化;月單元的初始化;年單元的初始化MOVX R0,AMOVR0,#09HMOVA,#05HMOVX R0,AMOVR0,#0AHMOVA,#20HMOVX R0,AMOVR0,#0BHMOVA,#16HMOVX R0,A;啟動時鐘芯片;*以上是時鐘芯片的初始化;*主菜單顯示模塊*ZHU_MENU:LCALL INIT_LCMMOVCOM,#80HMOV DPTR,#STRING_ZHULCALL PUT_STRING- 24 - 多功能自行車測速儀CLRFX_KEYclr EA;FX_KEY=0反顯一次后關(guān)閉;關(guān)中斷SETB P2.4SETB P2.5SETB P2.6SETB P2.7CHOICE_ZHU:JNBP2.4,CESU_JUMPJNBP2.5,CHUANSHU_JUMPJNBP2.6,FUNCTION_JUMPJNBP2.7,EXIT_JUMPAJMP CHOICE_ZHUCESU_JUMP:LJMPCESU_MENUCHUANSHU_JUMP:LJMPCHUANSHU_MENUFUNCTION_JUMP:LJMP FUNCTION_MENUEXIT_JUMP:;進入【測速功能】模塊;進入【數(shù)據(jù)傳輸】模塊;進入【其它功能】模塊LJMP EXIT_MENU;【退出系統(tǒng)】;*- 25 - 多功能自行車測速儀;*測速菜單CESU_MENU:MOVLCALL FANXIANLJMP CESUR4,#30;反顯第一行;反顯示主菜單中的【測速模式】項;*CESU:LCALL INIT_LCMMOVCOM,#80HMOVDPTR,#STRING_CESULCALL PUT_STRINGMOVTMOD,#01100000BMOVTH1,#224;顯示測速界面;設(shè)定為方式 2MOVTL1,#224 ;裝初值CLREA;*以上是歷程和速度的初始化SETB P2.4SETB P2.5SETB P2.6;準(zhǔn)備讀管腳JUDGE:JNBP2.4,LZC26- 26 - 多功能自行車測速儀JNBP2.5,LZC275JNBP2.6,RETURN1AJMP JUDGE;*以上是判斷按鍵LZC26:MOVR4,#13;反顯第二行;反顯示測速菜單中的【26型】項MOVLUNZ_Z,#2LCALL FANXIANMOVLUNZ_X,#73MOVSDJS,#65LJMP SAMPLE_MENULZC275:MOV R4,#21;反顯第三行LCALL FANXIAN;反顯示測速菜單中的【275型】項MOVLUNZ_Z,#02HMOVLUNZ_X,#193MOVSDJS,#68LJMP SAMPLE_MENURETURN1:MOVR4,#05;反顯第四行LCALL FANXIAN;反顯示測速菜單中的【退出】項- 27 - 多功能自行車測速儀LJMP ZHU_MENU;退出本級菜單,返回主菜單;*測速菜單結(jié)束;*數(shù)據(jù)傳輸菜單CHUANSHU_MENU:MOV R4,#14;反顯第二行LCALL FANXIAN;反顯示主菜單中的【數(shù)據(jù)傳輸】項LCALL INIT_LCM;重新初始化,顯示【數(shù)據(jù)傳輸】菜單項MOV COM,#80HMOV DPTR,#STRING_CHUANSHULCALL PUT_STRINGSETB P2.4SETB P2.5CHOICE_CHUANSHU:JNB P2.4,BEGIN_CHUANJNB P2.5,RETURN2AJMP CHOICE_CHUANSHURETURN2: MOV R4,#14LCALL FANXIAN;反顯第三行;反顯示數(shù)據(jù)傳輸菜單- 28 - 多功能自行車測速儀中的【退出】項AJMP ZHU_MENUBEGIN_CHUAN:MOV R4,#06HLCALL FANXIAN;反顯第二行;反顯示數(shù)據(jù)傳輸菜單中的【開始傳輸】項LCALL INIT_LCM;重新初始化,顯示【正在傳輸.】MOV COM,#91HMOV DPTR,#START_CHUANLCALL PUT_STRINGLCALL delay1LCALL delay1;*通信傳送模塊MOV SCON,#40H;方式 1傳輸MOV TMOD,#20HMOV TL1,#0F4H;設(shè)置 2.4k波特率MOV TH1,#0F4HMOV PCON,#00HCLR TI;SMOD=0,波特率不加倍CLR P2.0- 29 - 多功能自行車測速儀SETB TR1;T1開始計時MOV R2,#57;傳送 57次MOV R0,#0EH;時鐘芯片的內(nèi)部 RAM起始單元DO1:MOV SBUF,2FHacall delay10CLR TI;傳送溫度的高位;傳送溫度的低位;傳送速度的整數(shù)部分MOV SBUF,30Hacall delay10CLR TIMOVX A,R0MOV SBUF,Aacall delay10CLRTIINCR0MOVX A,R0;傳送速度的小數(shù)部分MOV SBUF,Aacalldelay10CLR TIINC R0- 30 - 多功能自行車測速儀DJNZ R2,DO1MOV R0,#38HMOV R2,#20;單片機的內(nèi)部 RAM;傳送 20次起始單元DO:MOV SBUF,2FHacalldelay10CLR TI;傳送溫度的高位MOV SBUF,30Hacalldelay10CLR TI;傳送溫度的低位MOV SBUF,R0acalldelay10CLR TI;傳送速度的整數(shù)部分INC R0MOV SBUF,R0acalldelay10CLR TI;傳送速度的小數(shù)部分INC R0DJNZ R2,DO- 31 - 多功能自行車測速儀LCALLINIT_LCM;重新初始化,顯示【數(shù)據(jù)傳輸完畢!】MOV COM,#91HMOV DPTR,#FINISH_CHUANLCALL PUT_STRINGLCALL delay1LCALL delay1LJMP ZHU_MENUDELAY10:D22:MOV R4,#20HMOV R5,#248DJNZ R5,$DJNZ R4,D22RET;*數(shù)據(jù)傳輸菜單結(jié)束*;*退出菜單EXIT_MENU:- 32 - 多功能自行車測速儀MOVR4,#06;反顯第四行LCALL FANXIAN;反顯示主菜單中的“退出系統(tǒng)”項LCALL INIT_LCM;重新初始化,顯示關(guān)機;顯示關(guān)機畫面畫面MOVDPTR,#FINISHLCALL PIC_SHOWLCALL DELAY1CLRMOVWAKECOM,#34H;功能設(shè)置-8BIT 控制界面,擴充指令集LCALL WRITE_COMMANDLCALL DELAYLCALL DELAYMOVCOM,#08H;進入液晶休眠模式LCALL WRITE_COMMANDLCALL DELAYLCALL DELAYMOVIE,#81HSETB IT0- 33 - 多功能自行車測速儀JNBWAKE,$;等待 INT0 中斷,判斷液晶復(fù)位標(biāo)志 wAkE,wAkE=1,繼續(xù)執(zhí)行,wAkE=0,原地執(zhí)行AJMP ZHU_MENU ;返回主菜單顯示;*退出菜單結(jié)束;*采樣菜單SAMPLE_MENU:LCALL INIT_LCM據(jù)傳輸】菜單項;重新初始化,顯示【數(shù)MOVCOM,#80HDPTR,#STRING_SAMPLELCALL PUT_STRINGMOVSETBP2.4SETB P2.5SETB P2.6CHAXUN:JNBP2.4,LIANG_MIAOJNBP2.5,SANSHI_MIAOJNBP2.6,LIUSHI_MIAOAJMP CHAXUN- 34 - 多功能自行車測速儀LIANG_MIAO:SANSHI_MIAO:LIUSHI_MIAO:MOVR4,#11LCALL FANXIANMOVCAI,#2LJMP CLEAR1MOVR4,#19LCALL FANXIANMOVCAI,#30LJMP CLEAR1MOVR4,#3LCALL FANXIANMOVCAI,#60LJMP CLEAR1;*給所有單元清零CLEAR1:- 35 - 多功能自行車測速儀MOVSPD_Z,#0MOVSPD_X,#0CLRP2.0MOVR1,#85HMOVR1,#0MOV37H,#0EHMOVR1,#84HMOVR1,#38H ;清零的時候重新賦初值CLEAR:MOVR1,#85HMOVA,R1;85H 用 做 判 斷 使 用 內(nèi) 部RAM還是時鐘 RAM的標(biāo)志位,0為內(nèi)部,1為時鐘CJNE A,#1,NEIBURAM2MOVR0,37H;37H用做保存時鐘芯片的 RAM地址CJNE R0,#128,TIMERAM2- 36 - 多功能自行車測速儀MOVR1,#85HMOVR1,#0MOV37H,#0EHMOVR1,#84HMOVR1,#38H ;清零完成后重新賦初值LJMP GZXIANSTIMERAM2:MOVA,SPD_ZMOVX R0,AINCR0MOVA,SPD_XMOVX R0,AINCR0MOV37H,R0LJMP BUCUN1- 37 - 多功能自行車測速儀NEIBURAM2:MOVR1,#84H;84H 用做保存內(nèi)部 RAM的地址MOVA,R1MOVR0,ACJNE R0,#60H,NEIBURAM11MOVR1,#85HMOVR1,#1LJMP BUCUN1NEIBURAM11:MOVR0,SPD_ZINCR0MOVR0,SPD_XINCR0MOVR1,#84HMOVA,R0MOVR1,ALJMP BUCUN1BUCUN1:LJMP CLEAR- 38 - 多功能自行車測速儀;*清零完畢;*采樣菜單結(jié)束;*其它功能菜單FUNCTION_MENU:MOVR4,#22;反顯第三行LCALL FANXIAN;反顯示主菜單中的【其它功能】項FUNC_DOT:LCALL INIT_LCM;重新初始化,顯示【其它功能】中的內(nèi)容MOVCOM,#80HDPTR,#STRING_FUNCTIONMOVLCALL PUT_STRINGSETB P2.4SETB P2.5SETB P2.6CHOICE_FUNCTION:JNB P2.4,TIME_SET;進入【時間設(shè)定】- 39 - 多功能自行車測速儀功能模塊息】模塊JNB P2.5,VERSION_MENU;進入【產(chǎn)品信JNB P2.6,RETURN3;退出本級菜單AJMP CHOICE_FUNCTIONRETURN3:MOV R4,#03LCALLFANXIAN;反顯第四行;反顯示其它功能菜單中的【退出】項AJMP ZHU_MENUVERSION_MENU:;退出本級菜單,返回主菜單MOV R4,#19LCALL FANXIAN中的【產(chǎn)品信息】項MOV COM,#80H;反顯第三行;反顯示其它功能菜單MOV DPTR,#STRING_VERSIONLCALL PUT_STRINGLCALL DELAY1LCALL DELAY1LCALL DELAY1LCALL DELAY1- 40 - 多功能自行車測速儀AJMP FUNC_DOT;4秒后自動其它功能菜單;*其它功能菜單結(jié)束;*時間設(shè)定界面TIME_SET:MOV R4,#11LCALL FANXIAN;反顯第二行;反顯時間設(shè)定項SETB FX_KEYCLRP2.0MOVR0,#0AHMOVA,#70HMOVX R0,AMOVR0,#0BHMOVA,#86H;向 A寄存器送命令;向 B寄存器送命令;禁止芯片工作,設(shè)定為二進制碼格式,24小時模式MOVX R0,AMOVR0,#0CHMOVX A,R0;指向 C寄存器;讀 C寄存器- 41 - 多功能自行車測速儀LCALL INIT_LCM;重新初始化,顯示【時間設(shè)定】MOVMOVCOM,#80HDPTR,#STRING_TIMELCALL PUT_STRINGTIME_DISP:MOVTAB2,#00HCOM,#90HMOVLCALL WRITE_COMMANDMOVR0,#09HLCALL BIN_BCDLCALL TDISPLCALL HANZIMOVR0,#08HLCALL BIN_BCDLCALL TDISPLCALL HANZIMOVR0,#07H- 42 - 多功能自行車測速儀LCALL BIN_BCDLCALL TDISPLCALL HANZIMOVR0,#06HLCALL BIN_BCDLCALL TDISPLCALL HANZIMOVR0,#04HLCALL BIN_BCDLCALL TDISPLCALL HANZIMOVR0,#02HLCALL BIN_BCDLCALL TDISPLCALL HANZIMOVR0,#00HLCALL BIN_BCDLCALL TDISP- 43 - 多功能自行車測速儀LCALL HANZIMOVCOM,#9FHMOVDPTR,#STRING_OKLCALL PUT_STRING;*以上界面顯示*MOV R4, #04MOV 25H,#07;光標(biāo)移動計數(shù)器,當(dāng)為 0 時,要重新復(fù)位SETB P2.4SETB P2.5SETB P2.6SETB P2.7LCALL FANXIANFAN:JNB P2.4,xiaodou1ajmp j2xiaodou1:mov r0,#12- 44 - 多功能自行車測速儀xiaodou11:lcall delaydjnz r0,xiaodou11JNB P2.4,gb_shiftj2:JNB P2.5,xiaodou2ajmp j3xiaodou2:mov r0,#10xiaodou22:lcall delaydjnz r0,xiaodou22JNB P2.5,time_addj3:JNB P2.6, xiaodou3ajmp j4xiaodou3:mov r0,#10xiaodou33:lcall delaydjnz r0,xiaodou33JNB P2.6,time_minus- 45 - 多功能自行車測速儀j4:JNB P2.7,TIME_OVERAJMP FAN;*光標(biāo)移動GB_SHIFT:DJNZ 25H,LEFT_SHIFTMOV 25H,#07MOV R4,#12GB_FUWEI:MOV COM,#14HLCALL WRITE_COMMANDLCALL DELAY;設(shè)定液晶的光標(biāo)向右移動LCALL DELAYDJNZ R4,GB_FUWEIAJMP FAN;R4為光標(biāo)移動位數(shù)LEFT_SHIFT:MOV R4,#02LCALL FANXIANAJMP FAN;*- 46 - 多功能自行車測速儀TIME_ADD:MOVR2,#01HACALL UPDATETIME_MINUS:TIME_OVER:MOVR2,#00HACALL UPDATECLRP2.0MOVR0,#0AHMOVA,#20HMOVX R0,AMOVR0,#0BHMOVA,#16HMOVX R0,A;啟動時鐘芯片CLRFX_KEYMOVCOM,#02H;光標(biāo)重新回到原點LCALL WRITE_COMMANDLCALL DELAYLCALL DELAYMOVR4,#32;設(shè)定光標(biāo)向又移動 32次TIME_OVER1:- 47 - 多功能自行車測速儀MOVCOM,#14H ;設(shè)定液晶的光標(biāo)向右移動LCALL WRITE_COMMANDLCALL DELAYLCALL DELAYDJNZ R4,TIME_OVER1;R4為光標(biāo)移動位數(shù)movr4,#01lcall fanxianAJM

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論