課程設(shè)計自行車?yán)锍瘫韄第1頁
課程設(shè)計自行車?yán)锍瘫韄第2頁
課程設(shè)計自行車?yán)锍瘫韄第3頁
課程設(shè)計自行車?yán)锍瘫韄第4頁
課程設(shè)計自行車?yán)锍瘫韄第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、太原工業(yè)學(xué)院本 科 課 程 設(shè) 計 (論 文) 自行車?yán)锍瘫眍} 目 _指導(dǎo)教師_輔導(dǎo)教師_學(xué)生姓名_學(xué)生學(xué)號_081電子信息科學(xué)與技術(shù)自動化與電子學(xué)院_院(部)_專業(yè)_班20111227_年 _月 _日 自行車?yán)锍瘫碚?要:本文介紹的速度與里程表設(shè)計以單片機(jī)最小系統(tǒng)和霍爾傳感器為核心。傳感器將不同車速轉(zhuǎn)變成的不同頻率的脈沖信號輸入到單片機(jī)進(jìn)行控制與計算,再采用LED模塊進(jìn)行顯示,使得電動自行車的速度與里程數(shù)據(jù)能直觀的顯示給使用者。 本系統(tǒng)由霍爾傳感器、RC濾波電路、單片機(jī)AT89S51、系統(tǒng)化LED顯示模塊、數(shù)據(jù)存儲電路和鍵盤控制組成。其中霍爾傳感器包含信號放大和波形整形。對待測信號進(jìn)行放大的

2、目的是降低對待測信號的幅度要求;波形變換和波形整形電路則用來將放大的信號轉(zhuǎn)換成可與單片機(jī)相連的TTL信號;通過單片機(jī)的設(shè)置可使內(nèi)部定時器T1對脈沖輸入引腳T0進(jìn)行控制,這樣能精確地算出加到T0引腳的單位時間內(nèi)檢測到的脈沖數(shù);設(shè)計中速度顯示采用LED模塊,通過速度換算得來的里程數(shù)采用I2C總線并通過E2PROM來存儲,既節(jié)省了所需單片機(jī)的口線和外圍器件,同時也簡化了顯示部分的軟件編程本文先對里程表設(shè)計當(dāng)中所需設(shè)備作了詳細(xì)介紹,對設(shè)計中存在的問題進(jìn)行了說明;而后對硬件和軟件部分的設(shè)計和實現(xiàn)作了認(rèn)真的分析;然后給出了系統(tǒng)的建模過程及相應(yīng)的系統(tǒng)模型,在此基礎(chǔ)上進(jìn)行了控制仿真,并對仿真效果進(jìn)行了比較。本

3、里程表的設(shè)計具有結(jié)構(gòu)簡單,成本低廉,顯示清晰,穩(wěn)定可靠等優(yōu)點。并且可進(jìn)行擴(kuò)充,加入時速表的功能,更加方便的了解你現(xiàn)在所處的情況。關(guān)鍵詞:單片機(jī)最小系統(tǒng),LED數(shù)碼管,霍爾傳感器,RC濾波器,EEPROM存儲器 目 錄第一章 概 述4第二章 硬件設(shè)計42.1系統(tǒng)組成結(jié)構(gòu)框圖52.2具體硬件電路及工作原理52.3 AT89C2051單片機(jī)簡介6 2.3.1芯片概述62.4其他外圍硬件電路7 2.4.1電源電路7 2.4.2霍爾傳感器8 2.4.3 4位串行靜態(tài)顯示電路8第三章 軟件設(shè)計93.1主程序設(shè)計93.2 外中斷0和 T1定時溢出中斷服務(wù)子程序設(shè)計103.3 速度/里程顯示控制子程序設(shè)計10

4、3.4系統(tǒng)完整源程序11參考文獻(xiàn)11附錄 12附錄1 整體電路圖12附錄2 源程序13致謝 19總結(jié) 19 第一章 概述 本設(shè)計介紹的速度與里程表設(shè)計以單片機(jī)和光電傳感器為核心。傳感器將不同車速轉(zhuǎn)變成的不同頻率的脈沖信號輸入到單片機(jī)進(jìn)行控制與計算,再采用LED模塊進(jìn)行顯示,使得電動自行車的速度與里程數(shù)據(jù)能直接的顯示給使用者。該設(shè)計能實時地將所測的速度與累計里程數(shù)顯示出來,主要是將傳感器輸入到單片機(jī)的脈沖信號的頻率(傳感器將不同車速轉(zhuǎn)變成不同頻率的脈沖信號)實時地測量出來,考慮到信號的衰減、干擾等影響,在信號送入單片機(jī)前應(yīng)對其進(jìn)行放大整形,然后通過單片機(jī)計算出速度和里程,再將所得的數(shù)據(jù)存儲到串口

5、數(shù)據(jù)存儲器,并由LED顯示模塊交替顯示所測速度與里程。本設(shè)計的里程數(shù)的算法是一種大概的算法(假設(shè)在一定時間內(nèi)自行車是勻速行進(jìn),平均速度與時間的乘積即為里程數(shù))。本系統(tǒng)由信號預(yù)處理電路、單片機(jī)AT89C2051、系統(tǒng)化LED顯示模塊、串口數(shù)據(jù)存儲電路和系統(tǒng)軟件組成。其中信號預(yù)處理電路包含信號放大、波形變換和波形整形。對待測信號進(jìn)行放大的目的是降低對待測信號的幅度要求;波形變換和波形整形電路則用來將放大的信號轉(zhuǎn)換成可與單片機(jī)相連的TTL信號;通過單片機(jī)的設(shè)置可使內(nèi)部定時器T1對脈沖輸入引腳T0進(jìn)行控制,這樣能精確地算出加到T0引腳的單位時間內(nèi)檢測到的脈沖數(shù);設(shè)計中速度顯示采用LED模塊,通過速度換

6、算得來的里程數(shù)采用I2C總線并通過E2PROM來存儲,既節(jié)省了所需單片機(jī)的口線和外圍器件,同時也簡化了顯示部分的軟件編程。    設(shè)計時,應(yīng)綜合考慮測速精度和系統(tǒng)反應(yīng)時間。本設(shè)計用測量脈沖頻率來計算速度,因而具有較高的測速精度。在計算里程時取了自行車的理想狀態(tài)。實際中,誤差控制在幾米之內(nèi),相對于整個里程來說不是很大。為了保證系統(tǒng)的實時性,系統(tǒng)的速度轉(zhuǎn)換模塊和顯示數(shù)據(jù)轉(zhuǎn)BCD碼模塊都采用快速算法。另外,還應(yīng)盡量保證其他子模塊在編程時的通用性和高效性。本設(shè)計的速度和里程值采用6位顯示,并包含兩個小數(shù)位。 第二章 硬件設(shè)計 2.1系統(tǒng)組成結(jié)構(gòu)框圖根據(jù)功能要求,首先要進(jìn)行

7、的是總體方案的設(shè)計于論證,構(gòu)思一個符合實際要求的系統(tǒng),如圖2.1所示。系統(tǒng)由測量模塊、功能選擇模塊、顯示模塊、供電模塊和單片機(jī)小系統(tǒng)構(gòu)成。功能選擇后啟動測量,大片及實時采集、處理后顯示?;魻杺鞲衅鏖_關(guān)功能選擇顯 示功能指示燈2051 單 片 機(jī) 穩(wěn)壓器+5V電池組充電電路發(fā)電機(jī)圖2.1 系統(tǒng)組成結(jié)構(gòu)框圖2.2具體硬件電路及工作原理具體硬件電路如圖2.2所示。 圖2.2 系統(tǒng)硬件電路原理圖速度和里程由開關(guān)型霍爾傳感器測量,已知自行車輪子的周長(本系統(tǒng)采用的是1.8m,設(shè)為L),輪子每轉(zhuǎn)動一圈,傳感器采樣一個下降沿信號并送到單片機(jī)的外中斷0產(chǎn)生一次中斷,全書加1,兩個相鄰下降沿信號的時間由單片機(jī)定

8、時器1計時(設(shè)為T),哪么計算當(dāng)前速度(設(shè)為V)和行駛里程(設(shè)為S)的公式為: V=1.8/T, S=1.8m*所行駛的圈數(shù)S1是單片機(jī)的復(fù)位開關(guān),系統(tǒng)采用按鍵電平復(fù)位開關(guān);S2是電源開關(guān),并由燈D1指示;S3為速度和里程切換開關(guān);S4為限速切換開關(guān),可以根據(jù)自身需要選擇不同的最大超速速度;S5為里程單位切換開關(guān)。P1.4輸出低電平時,控制D2亮,表示此時顯示的里程值為km/h,P1.5輸出低電平時,控制燈D3亮,提示速度太慢;P1.6輸出低電平時,控制燈D4亮,表示此時的顯示值時里程(否則為速度);P1.7控制超速報警電路,其為高電平表示行駛速度正常,為低電平時,三極管9012導(dǎo)通,驅(qū)動蜂鳴

9、器報警。2.3 AT89C2051單片機(jī)簡介2.3.1芯片概述AT89C2051是一個低電壓,高性能CMOS 8位單片機(jī),片內(nèi)含2k bytes的可反復(fù)擦寫的只讀Flash程序存儲器和128 bytes的隨機(jī)存取數(shù)據(jù)存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲單元,功能強(qiáng)大AT89C2051單片機(jī)可為您提供許多高性價比的應(yīng)用場合。   AT89C2051是一個功能強(qiáng)大的單片機(jī),但它只有20個引腳,15個雙向輸入/輸出(I/O)端口,其中P1是一個完整的8位雙向I/O口

10、,兩個外中斷口,兩個16位可編程定時計數(shù)器,兩個全雙向串行通信口,一個模擬比較放大器。同時AT89C2051的時鐘頻率可以為零,即具備可用軟件設(shè)置的睡眠省電功能,系統(tǒng)的喚醒方式有RAM、定時/計數(shù)器、串行口和外中斷口,系統(tǒng)喚醒后即進(jìn)入繼續(xù)工作狀態(tài)。省電模式中,片內(nèi)RAM將被凍結(jié),時鐘停止振蕩,所有功能停止工作,直至系統(tǒng)被硬件復(fù)位方可繼續(xù)運(yùn)行。管角配置圖2.3所示。圖2.3 2051引腳圖主要功能介紹(1) 兼容MCS51指令系統(tǒng)(2) 15個雙向I/O口(3) 兩個16位可編程定時/計數(shù)器(4) 時鐘頻率0-24MHz(5) 兩個外部中斷源(6) 可直接驅(qū)動LED(7) 低功耗睡眠功能(8)

11、可編程UARL通道(9) 2k可反復(fù)擦寫(>1000次)Flash ROM(10) 6個中斷源(11) 2.7-6.V的寬工作電壓范圍(12) 128x8bit內(nèi)部RAM(13) 兩個串行中斷(14) 兩級加密位(15) 內(nèi)置一個模擬比較放大器(16) 軟件設(shè)置睡眠和喚醒功能可見。2051可以為很多的嵌入式控制應(yīng)用提供高度靈活而且價格低廉的方案,特別適合小系統(tǒng)。本系統(tǒng)僅用到單片機(jī)的10個I/O口,所以選用2051單片機(jī)做主系統(tǒng)。2.4其他外圍硬件電路 2.4.1電源電路 如圖2.4所示。發(fā)電機(jī)發(fā)出+15V的交流電,經(jīng)整流濾波后,再給鎳氫電池組充電,充電采用恒流方式。已充電的電池組經(jīng)780

12、5穩(wěn)壓,給霍爾傳感器和單片機(jī)系統(tǒng)供電。由圖2.4 電源電路原理圖于充電電流可達(dá)400500mA,且充電時間較長,所以三極管選用功率高的C8050。5K的電位器用于調(diào)節(jié)充電電流,避免電流過大燒壞元件。當(dāng)然,實驗設(shè)計過程中為了簡便,我們可以不用電機(jī)。直接用4個1.5V的電池組經(jīng)7805穩(wěn)壓后得到+5V電壓給單片機(jī)系統(tǒng)和霍爾傳感器供電。2.4.2霍爾傳感器 霍爾傳感器是利用霍爾效應(yīng)把磁輸入信號轉(zhuǎn)換成電信號的器件。本系統(tǒng)采用JK8002D霍爾接近開關(guān),他是一種非接觸型無觸點開關(guān),系統(tǒng)通過它探測外部的磁場的強(qiáng)弱變化,繼而控制開關(guān)輸出。磁場由外部的磁鋼產(chǎn)生。JK8002D霍爾接近開關(guān)的內(nèi)部原理圖和輸入/輸

13、出特性如圖(5)和圖(6)所示。JK8002D霍爾接近開關(guān)的輸入量是磁感應(yīng)強(qiáng)度B,當(dāng)B值達(dá)到一定的程度(如Bl)時,霍爾開關(guān)內(nèi)部的觸發(fā)器翻轉(zhuǎn),其輸出電平狀態(tài)也隨之翻轉(zhuǎn)。當(dāng)探頭與磁鋼距離由遠(yuǎn)而近為8mm時,霍爾元件輸出端輸出一個無抖動的低電平(約為0.2V),當(dāng)兩者距離足夠遠(yuǎn)時,霍爾元件輸出端輸出一個無抖動的高電平(約為3.7V),所以輸出信號可直接到單片機(jī)的外中斷0的引腳。 2.4.3 4位串行靜態(tài)顯示電路當(dāng)單片機(jī)的UART口部進(jìn)行串行通信時,可設(shè)置其工作于同步移位寄存器方式0,以輸出顯示信息,實現(xiàn)n位LED的靜態(tài)顯示,這樣做只占用了很少的I/O口線。系統(tǒng)中,4各共陽極得LED數(shù)碼管和4片 7

14、4LS164構(gòu)成4位數(shù)字顯示電路,74LS164將串行輸入的顯示信息轉(zhuǎn)換成并行輸出,驅(qū)動數(shù)碼管顯示。74LS164在低電平輸出時允許通過的電流為8mA,故不必添加驅(qū)動電路即可獲取理想亮度。與動態(tài)掃描方式相比較,該方式無須CPU做不停的掃描,頻繁地為顯示服務(wù),節(jié)省了CPU的時間,軟件世界也比較簡單。顯示電路如圖2.5所示。圖2.5 4位串行靜態(tài)顯示電路原理圖 第三章 軟件設(shè)計3.1主程序設(shè)計主程序流程圖見圖3.1。開機(jī)后系統(tǒng)自檢,正常時LED顯示“”,同時等待自行車行駛。輪子開始轉(zhuǎn)圈后,系統(tǒng)進(jìn)行記錄和計算,并根據(jù)速度/里程開關(guān)的選擇顯示數(shù)值。N系統(tǒng)初始化主程序P3.2=0?Y開始初始顯示P1.0

15、=1?N顯示里程顯示速度Y圖3.1 主程序流程圖3.2 外中斷0和 T1定時溢出中斷服務(wù)子程序設(shè)計外中斷0服務(wù)子程序用于對輸入脈沖的個數(shù)即輪子轉(zhuǎn)圈的次數(shù)計數(shù)。每計數(shù)一次,系統(tǒng)保存圈數(shù)值的同時保存定時器的計時值,并根據(jù)功能開關(guān)鍵實時顯示相應(yīng)的值。T1定時溢出中斷服務(wù)子程序用于實時統(tǒng)計記一次數(shù)的經(jīng)歷時間。T1定時的基準(zhǔn)時間設(shè)為20ms,假設(shè)記一次數(shù)中T1中斷的次數(shù)為C,1.8/(20C)ms即當(dāng)前自行車行駛的速度。用內(nèi)部定時加外中斷的方法實現(xiàn)了對輸入脈沖信號的測量,這是本系統(tǒng)最關(guān)鍵的程序部分。3.3 速度/里程顯示控制子程序設(shè)計最大允許速度由限速切換開關(guān)S4控制,超速(>20千米/小時)使單

16、片機(jī)的P1.7輸出低電平報警。若行駛速度太慢(<0.5m/s),燈D3不斷閃爍,LED交替顯示“Erro”、“Sudu”和當(dāng)前速度值,以引起騎車者的注意。速度顯示值的單位有km/h和每m/s,由功能鍵S5切換。對于里程值,為了較精確地顯示,程序設(shè)置了不同里程范圍時所顯示的小數(shù)點后數(shù)字的位數(shù):里程為10m99m,顯示2位小數(shù);里程為100m999m,顯示1位小數(shù)。3.4系統(tǒng)完整源程序如附錄2參考文獻(xiàn):1 張毅坤,陳善久.單片微型計算機(jī)原理及應(yīng)用.西安:西安電子科技大學(xué)出版社,2002.2 張友德,趙志英,徐時亮.單片微機(jī)原理應(yīng)用與實驗.上海:復(fù)旦大學(xué)出版社,2000.3 偉福Lab2000

17、P系列單片機(jī)仿真實驗系統(tǒng)說明書.4 鄭學(xué)堅 周斌 微型計算機(jī)原理和應(yīng)用 北京:清華大學(xué)出版社5 陳為 單片機(jī)原理 附錄附錄1 整體電路圖附錄2 源程序自行車?yán)锍瘫?/* 各引腳用途及系統(tǒng)功能說明P1.0 速度和里程切換:1顯示速度,0顯示里程P1.1 限速度切換:1 10m/s;0 8m/sP1.2 km/h和 m/s的切換:P1.4 指示顯示器單位為km/hP1.5 速度太慢燈閃爍警告P1.6 0時燈亮,指示里程;為以燈不亮,顯示速度P1.7 超速度報警 距離最大值為9999m6H圈、 38H圈、 22C圈、 15B6圈0m=<S<10m 10m=<S<100m 10

18、0m=<S<1000m 1000m=<S<10000m周長0707H 00B4H 0012H 0012H/0AH/變量定義/XIAOSHU EDU 57H ; 小數(shù)點位數(shù)單元 GEWEI EDU 40H ; 顯示單元SHIWEI EDU 41H ; BAIWEI EDU 42H ;QIANWEI EDU 43H ; QSHU1 EDU 43H ; QSHU0 EDU 61H ; 自行車圈數(shù)存儲單元高位QSHU0 EDU 62H ; 自行車圈數(shù)存儲單元低位SJIAN0 EDU 6CH ; T1定時溢出存儲單元高位SJIAN1 EDU 6DH ; T1定時溢出存儲單元低位/

19、主程序/ ORG 000H AJMP START ORG 0003H AJMP INTEX0 ORG 001BH AJMP IT11 ORG 0030HSTART: MOV SP,#75H ; 設(shè)置堆棧指針 MOV SCON,#00H ; 串行口工作方式 MOV GEWEI,#0AH ; 開機(jī)顯示 MOV SHIWEI,#0AH MOV BAIWEI,#0AH MOV QIANWEI,#0AH ACALL DIS11 SETB P3.2 ; 外中斷0為輸入查詢方式 JB P3.2 ; 等待第一個有效脈沖(下降沿)到來 ACALL CLEARRAM ; 調(diào)用系統(tǒng)準(zhǔn)備顯示初始化子程序STLOOP:

20、 JNB P1.0,ST1 ; p1.0=0,顯示速度 ACALL DISPLAYS ; P1.0=1, 顯示里程 SJMP STLOOP ; 循環(huán)顯示ST1: ACALL DISPLAYV ; 第一個下降沿來后顯示速度 AJMP STLOOP ; 循環(huán)顯示/系統(tǒng)準(zhǔn)備顯示初始化子程序/CLEARRAM: MOV TMOD,#10H ; T1用于定時,工作于模式1 MOV TH1,#0B1H ; 定時20ms初始值 SETB P1.2 ; P1.2-P1.0為輸入 SETB P1.1 SERB P1.0 CLR A ; 相應(yīng)內(nèi)RAM空間清零 MOV 21H,A ; 速度/里程的BCD碼高位清0

21、MOV 22H,A ; 速度/里程的BCD碼低位清0 MOV QSHU1,A ; 圈數(shù)空間清0 MOV QSHU0,A MOV 6AH,A ; T1溢出次數(shù)暫存單元高位清0 MOV 6BH,A ; T1溢出次數(shù)暫存單元低位清0 MOV SJIAN0,A ; 計數(shù)器空間清零 MOV SJIAN1,A MOV XIAOSHU,#01H ; 默認(rèn)顯示3位小數(shù) SETB IT0 ; 設(shè)置外中斷為邊沿觸發(fā)方式 SETB PT1 ; T1優(yōu)先級最高 SETB EA ; 開總中斷 SETB ET1 ; 開T1中斷 SETB EX0 ; 開外0中斷/外中斷0服務(wù)子程序/INTEX0: PUSH ACC ; 累

22、加器堆棧保護(hù) PUSH PSW ; 狀態(tài)字堆棧保護(hù) INC QSHU0 ; 圈加1 SETB P1.7 ; 置1不報警 CLR A ; 清A CJNE A,QSHU0,SUBX0 ; 計數(shù)沒溢出轉(zhuǎn)SUBX0 INC QSHU1 ; 溢出進(jìn)位(61H加1)SUBX0: CLR TR1 ; 關(guān)計時,讀輪子轉(zhuǎn)一圈的時間 MOV 6AH,SJIAN0 ; 時間暫存 MOV 6BH,SJIAN1 MOV TH1,#0B1H ; 定時器T1重付初值 MOV TL1,#0DFH CLR A MOV SJIAN0,A ; 清計時空間 MOV SJIAN1,A SETB TR1 ; 重新計時 POP PSW ;

23、 狀態(tài)字恢復(fù) POP ACC ; 累加器恢復(fù) RETI ; 中斷返回/T1定時器溢出時中斷服務(wù)子程序/IT11: PUSH ACC ; 堆棧保護(hù) PUSH PSW INC SJIAN1 ; 定時20毫秒溢出次數(shù) MOV A,SJIAN1 ; 讀一圈定時的次數(shù) CJNE A,#0BBH,SUBT1 ; 速度太慢(<0.5),處理 AJMP SUBT2 SUBT1: JC SUBT2 INC 69H ; (69H)為奇數(shù),LED顯示“Erro” MOV A,69H ; 再顯示具體速度的值 JB ACC.0 ERRO ; (69H)為偶數(shù),LED顯示“Sudu” MOV GEWEI,#05H

24、; 再顯示具體速度的值 MOV SHIWEI,#0BH MOV BAIWEI,#0DH MOV QIANWEI,#0BH MOV XIAOSHU,#0BH ACALL DIS11 SJMP FS12ERRO: MOV GEWEI,#0CH MOV SHIWEI,#OBH MOV BAIWEI,#0BH MOV QIANWEI,#0DH ACALL DIS21;“Erro”或“sudu”和具體速度大值交替閃爍顯示FS12: MOV R2,#01H ; CLR P1.5 ACALL DELAY2 SETB P1.5 ACALL DELAY2 DJNZ R2,FLASHSUBT2: MOV TH1,

25、#0B1H MOV TL1,#0DFH SETB TR1 POP PSW POP ACC RETI/里程顯示控制子程序/DISPLAYS:CLR P1.6 ACALL JULI MOV A,QSHU1 CJNE A,#02H,DIAOYONG AJMP PANDYDIAOYONG:JNC PANDY1 AJMP BUDYPANDY: MOV A,QSHU0 CJNE A,#2CH,PANDY2 AJMP PANDY1PANDY2: JC BUDYPANDY1: MOV R6,#00h MOV R7,#0AH ACALL JULI2 ACALL BCDC ACALL FENKAI ACALL D

26、IS21 ACALL DELAY1 RETBUDY: MOV R6,#00h MOV R7,#01h ACALL JULI2 ACALL BCDC ACALL FENKAI ACALL DIS11 ACALL DELAY1 ACALL DELAY1 RET/速度顯示控制子程序/DISPLAYV:SETB P1.6 ACALL SUDU ACALL BCDC ACALL FENKAI MOV XIAOSHU,#01H RET/處理子程序1/JULI: PUSH PSW PUSH ACC MOV R2,QSHU1 MOV R3,QSHU0 JNZ GAO MOV A,QSHU0 CJNE A,#0

27、6H,PAN1 AJMP PAN2PAN1: JNC PAN2 AJMP CZ707PAN2: MOV A,QSHU0 CJNE A,#38H,PAN3 AJMP GAOPAN3: JC CZB4GAO: AJMP CZ12CZ707: MOV R6,#07H MOV R7,#07H MOV XIAOSHU,#01H AJMP KAISHICZB4: MOV R6,#00H MOV R7,#0B4H MOV XIAOSHU,#02H AJMP KAISHICZ12: MOV R6,#00H MOV R7,#00H MOV XIAOSHU,#03H KAISHI為兩字節(jié)乘兩字節(jié)程序段KAISHI

28、: MOV A,R3 MOV B,R7 MUL AB MOV R4,B MOV R5,B MOV A,R3 MOV B,R6 MUL AAB ADD A,R4 MOV R4,A CLR A ADDC A,B MOV B,R7 MUL AB ADD A,R4 MOV R4,A MOV A,R3 ADDC A,B MOV R3,A CLR A RLC A XCH A,R2 MOV B,R6 MUL AB ADD A,R3 MOV R3,A MOV A,R2 ADDC A,B MOV 50H,R2 MOV 51H,R3 MOV 52H,R4 MOV 53H,R5 POP PSW POP ACC RE

29、T/處理里程子程序2/Juli2: PUSH PSW PUSH ACC MOV R2,50H MOV R3,51H MOV R4,52H MOV R5,53HDIVD11: CLR C MOV A,R3 SUBB A,R7 MOV A,R2 SUBB A,R6 JC DVD11 SETB OV RETDVD111: MOV B,#10HDVD211: CLR C MOV A,R5 MOV R5,A MOV A,R4 RLC A MOV R4,A MOV A,R3 RLC A MOV R3,A XCH A,R2 XCH A,R2 MOV F0,C CLR C SUBB A,R7 MOV R1,A

30、 MOV A,R2 SUBB A,R6 ANL C,/F0 JC DVD311 MOV R2,A MOV A,R1 MOV R3,A INC R5DVD311: DJNZ B,DVD211 MOV A,R4 MOV R2,A MOV A,R5 MOV R3,A CLR OV MOV 30H,R2 MOV 31H,R3 POP ACC POP PSW NOP RET/十六進(jìn)制轉(zhuǎn)換乘BCD子程序/BCDC: PUSH ACC PUSH PSW MOV R6,30H MOV R7,31H CLR A MOV R3,A MOV R4,A MOV R5,A MOV R2,#10HHB322: MOV A

31、,R7 RLC A MOV R7,A MOV A,R6 RLC A MOV R6,A MOV A,R5 DA A MOV R5,A MOV A,R4 ADDC A,R4 DA A MOV R4,A MOV A,R3 ADDC A,R3 DJNZ R2,HB322 MOV 20H,R3 MOV 21H,R4 MOV 22H,R5 POP PSW POP ACC NOP RET/算速度十六進(jìn)制值子程序/SUDU: PUSH PSW PUSH ACC JB P1.2,KM SJMP JUBUKM: MOV R2,#00H MOV R3,#04H MOV R4,#0F1H MOV R5,#0A0H C

32、LR P1.4 SJMP QUANJUJUBU: MOV R2,#00H MOV R3,#001H MOV R4,#05FH MOV R5,#090H CLR P1.4QUANJU: MOV A,6BH JB P1.1,XIAN10 CJNE A,#0BH,BUXIANG SJMP JC0XIAN10: CJNE A,#09H,BUXIANG SJMP JC0BUXIANG: JC JC0 SJMP BUJGJC0: MOV A,6AH CJNE A,#00H,BUJG AJMP JIANGGAOJIANGGAO: CLR P1.7 MOV GEWEI,#0CH MOV SHIWEI,#0BH

33、 MOV BAIWEI,#0BH MOV QIANWEI,#0DH ACALL DIS21 ACALL DELAY1 MOV GEWEI,#0EH MOV SHIIWEI, #0EH MOV BAIWEI,#0EH MOV QIANWEI,#0EH ACALL DIS21 ACALL DELAY1 SJMP QUANJUBUJU: MOV A,6BH CJNE A,#0AFH,LING0 AJMP LING1LING0: JC LING1 AJMP BUJINGLING1: MOV A,6AH CJNE A,#00J,BULING0 AJMP BULING1BULING0: JC BULING

34、1BULING: MOV SJIAN0,#00H MOV SJIAN1,#00H RET /4字節(jié)除2字節(jié)除法子程序/BULING1: MOV R6,6AH MOV R7,6BHDIVD: CLR C MOV A,R3 SUBB A,R7 MOV A,R2 SUBB A,R6 JC DVD1 SETB OV RETDVD1: MOV B,#10HDVD2: CLR C MOV A,R5 RLC A MOV R5,A MOV A,A4 RLC A MOV R4,A MOV A,R3 RLC A MOV R3,A XCH A,R2 XCH A,R2 MOV F0,C CLR C SUBB A,R7

35、 MOV R1,A MOV A,R2 SUBB A,R6 ANL C,/F0 JC DVD3 MOV R2,A MOV A,R1 MOV R3,A INC R5DVD3: DJNZ B,DVD2 MOV A,R4 MOV R2,A MOV A,R5 MOV R3,A CLR OV MOV 30H,R2 MOV 31H,R3 POP ACC POP PSW SETB P1.7 NOP RET/壓縮BCD碼轉(zhuǎn)乘非壓縮BCD碼子程序/FENKAI: MOV R7,#02H MOV R0,#GEWEI MOV R1,#21HFENKAI1: MOV A,R1 ANL A,#0F0H SWAP A MO

36、V R0,A INC R0 MOV A,R1 ANL A,#0FH MOV R0,A INC R0 INC R1 DJNZ R7,FENKAI1 RET/延時子程序/DELAY1: MOV R6,#0FFHDEL: MOV R7,#0FFH DJNZ R7,$ DJNZ R6,DE; RETDELAY2: MOV R6,#02FH MOV R7,#0FFH DJNZ R7,$ DJNZ R6,DEL2 RET/4位串行靜態(tài)顯示子程序/DIS21: MOV R7,#04H MOV R0,#GEWEILED1_21: MOV A,R0 MOV DPTR,#DATA_7SEG22LED1_221: MOVC A,A+DPTR MOV SBUF,A JNB TI,$ CLR TI INC R0 DJNZ R7,LED1_21 RETDATA_7SEG22DB081H,0EDH,043H,049H,02DH,019

溫馨提示

  • 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

提交評論