課程設(shè)計---自行車?yán)锍瘫韄第1頁
已閱讀1頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  本 科 課 程 設(shè) 計 (論 文)</p><p>  題 目 __________________________________</p><p>  __________________________________</p><p>  指導(dǎo)教師__________________________</p><p>

2、  輔導(dǎo)教師__________________________</p><p>  學(xué)生姓名__________________________</p><p>  學(xué)生學(xué)號__________________________</p><p>  _______________________________院(部)________________________

3、____專業(yè)________________班</p><p>  ______年 ___月 ___日</p><p><b>  自行車?yán)锍瘫?lt;/b></p><p>  摘 要:本文介紹的速度與里程表設(shè)計以單片機(jī)最小系統(tǒng)和霍爾傳感器為核心。傳感器將不同車速轉(zhuǎn)變成的不同頻率的脈沖信號輸入到單片機(jī)進(jìn)行控制與計算,再采用LED模塊進(jìn)行顯示,使得

4、電動自行車的速度與里程數(shù)據(jù)能直觀的顯示給使用者。</p><p>  本系統(tǒng)由霍爾傳感器、RC濾波電路、單片機(jī)AT89S51、系統(tǒng)化LED顯示模塊、數(shù)據(jù)存儲電路和鍵盤控制組成。其中霍爾傳感器包含信號放大和波形整形。對待測信號進(jìn)行放大的目的是降低對待測信號的幅度要求;波形變換和波形整形電路則用來將放大的信號轉(zhuǎn)換成可與單片機(jī)相連的TTL信號;通過單片機(jī)的設(shè)置可使內(nèi)部定時器T1對脈沖輸入引腳T0進(jìn)行控制,這樣能精確地算

5、出加到T0引腳的單位時間內(nèi)檢測到的脈沖數(shù);設(shè)計中速度顯示采用LED模塊,通過速度換算得來的里程數(shù)采用I2C總線并通過E2PROM來存儲,既節(jié)省了所需單片機(jī)的口線和外圍器件,同時也簡化了顯示部分的軟件編程</p><p>  本文先對里程表設(shè)計當(dāng)中所需設(shè)備作了詳細(xì)介紹,對設(shè)計中存在的問題進(jìn)行了說明;而后對硬件和軟件部分的設(shè)計和實現(xiàn)作了認(rèn)真的分析;然后給出了系統(tǒng)的建模過程及相應(yīng)的系統(tǒng)模型,在此基礎(chǔ)上進(jìn)行了控制仿真,并

6、對仿真效果進(jìn)行了比較。</p><p>  本里程表的設(shè)計具有結(jié)構(gòu)簡單,成本低廉,顯示清晰,穩(wěn)定可靠等優(yōu)點。并且可進(jìn)行擴(kuò)充,加入時速表的功能,更加方便的了解你現(xiàn)在所處的情況。</p><p>  關(guān)鍵詞:單片機(jī)最小系統(tǒng),LED數(shù)碼管,霍爾傳感器,RC濾波器,EEPROM存儲器</p><p><b>  目 錄</b></p&g

7、t;<p>  第一章 概 述4</p><p>  第二章 硬件設(shè)計4</p><p>  2.1系統(tǒng)組成結(jié)構(gòu)框圖5</p><p>  2.2具體硬件電路及工作原理5</p><p>  2.3 AT89C2051單片機(jī)簡介6</p><p>  2.3.1芯片概述6</p>

8、<p>  2.4其他外圍硬件電路7</p><p>  2.4.1電源電路7</p><p>  2.4.2霍爾傳感器8</p><p>  2.4.3 4位串行靜態(tài)顯示電路8</p><p>  第三章 軟件設(shè)計9</p><p>  3.1主程序設(shè)計9</p><p&

9、gt;  3.2 外中斷0和 T1定時溢出中斷服務(wù)子程序設(shè)計10</p><p>  3.3 速度/里程顯示控制子程序設(shè)計10</p><p>  3.4系統(tǒng)完整源程序11</p><p><b>  參考文獻(xiàn)11</b></p><p><b>  附錄 12</b></p>

10、;<p>  附錄1 整體電路圖12</p><p>  附錄2 源程序13</p><p><b>  致謝 19</b></p><p><b>  總結(jié) 19</b></p><p>  第一章 概述 </p><p>  本設(shè)

11、計介紹的速度與里程表設(shè)計以單片機(jī)和光電傳感器為核心。傳感器將不同車速轉(zhuǎn)變成的不同頻率的脈沖信號輸入到單片機(jī)進(jìn)行控制與計算,再采用LED模塊進(jìn)行顯示,使得電動自行車的速度與里程數(shù)據(jù)能直接的顯示給使用者。該設(shè)計能實時地將所測的速度與累計里程數(shù)顯示出來,主要是將傳感器輸入到單片機(jī)的脈沖信號的頻率(傳感器將不同車速轉(zhuǎn)變成不同頻率的脈沖信號)實時地測量出來,考慮到信號的衰減、干擾等影響,在信號送入單片機(jī)前應(yīng)對其進(jìn)行放大整形,然后通過單片機(jī)計算出速

12、度和里程,再將所得的數(shù)據(jù)存儲到串口數(shù)據(jù)存儲器,并由LED顯示模塊交替顯示所測速度與里程。本設(shè)計的里程數(shù)的算法是一種大概的算法(假設(shè)在一定時間內(nèi)自行車是勻速行進(jìn),平均速度與時間的乘積即為里程數(shù))。</p><p>  本系統(tǒng)由信號預(yù)處理電路、單片機(jī)AT89C2051、系統(tǒng)化LED顯示模塊、串口數(shù)據(jù)存儲電路和系統(tǒng)軟件組成。其中信號預(yù)處理電路包含信號放大、波形變換和波形整形。對待測信號進(jìn)行放大的目的是降低對待測信號的幅

13、度要求;波形變換和波形整形電路則用來將放大的信號轉(zhuǎn)換成可與單片機(jī)相連的TTL信號;通過單片機(jī)的設(shè)置可使內(nèi)部定時器T1對脈沖輸入引腳T0進(jìn)行控制,這樣能精確地算出加到T0引腳的單位時間內(nèi)檢測到的脈沖數(shù);設(shè)計中速度顯示采用LED模塊,通過速度換算得來的里程數(shù)采用I2C總線并通過E2PROM來存儲,既節(jié)省了所需單片機(jī)的口線和外圍器件,同時也簡化了顯示部分的軟件編程。</p><p>  設(shè)計時,應(yīng)綜合考慮測速精度和系統(tǒng)

14、反應(yīng)時間。本設(shè)計用測量脈沖頻率來計算速度,因而具有較高的測速精度。在計算里程時取了自行車的理想狀態(tài)。實際中,誤差控制在幾米之內(nèi),相對于整個里程來說不是很大。為了保證系統(tǒng)的實時性,系統(tǒng)的速度轉(zhuǎn)換模塊和顯示數(shù)據(jù)轉(zhuǎn)BCD碼模塊都采用快速算法。另外,還應(yīng)盡量保證其他子模塊在編程時的通用性和高效性。本設(shè)計的速度和里程值采用6位顯示,并包含兩個小數(shù)位。 </p><p>  第二章 硬件設(shè)計

15、</p><p>  2.1系統(tǒng)組成結(jié)構(gòu)框圖</p><p>  根據(jù)功能要求,首先要進(jìn)行的是總體方案的設(shè)計于論證,構(gòu)思一個符合實際要求的系統(tǒng),如圖2.1所示。</p><p>  系統(tǒng)由測量模塊、功能選擇模塊、顯示模塊、供電模塊和單片機(jī)小系統(tǒng)構(gòu)成。功能選擇后啟動測量,大片及實時采集、處理后顯示。</p><p>  圖2.1 系統(tǒng)組成結(jié)構(gòu)框

16、圖</p><p>  2.2具體硬件電路及工作原理</p><p>  具體硬件電路如圖2.2所示。</p><p>  圖2.2 系統(tǒng)硬件電路原理圖</p><p>  速度和里程由開關(guān)型霍爾傳感器測量,已知自行車輪子的周長(本系統(tǒng)采用的是1.8m,設(shè)為L),輪子每轉(zhuǎn)動一圈,傳感器采樣一個下降沿信號并送到單片機(jī)的外中斷0產(chǎn)生一次中斷,

17、全書加1,兩個相鄰下降沿信號的時間由單片機(jī)定時器1計時(設(shè)為T),哪么計算當(dāng)前速度(設(shè)為V)和行駛里程(設(shè)為S)的公式為:</p><p>  V=1.8/T, S=1.8m*所行駛的圈數(shù)</p><p>  S1是單片機(jī)的復(fù)位開關(guān),系統(tǒng)采用按鍵電平復(fù)位開關(guān);S2是電源開關(guān),并由燈D1指示;S3為速度和里程切換開關(guān);S4為限速切換開關(guān),可以根據(jù)自身需要選擇不同的最大超速速度;S5為里程單位

18、切換開關(guān)。P1.4輸出低電平時,控制D2亮,表示此時顯示的里程值為km/h,P1.5輸出低電平時,控制燈D3亮,提示速度太慢;P1.6輸出低電平時,控制燈D4亮,表示此時的顯示值時里程(否則為速度);P1.7控制超速報警電路,其為高電平表示行駛速度正常,為低電平時,三極管9012導(dǎo)通,驅(qū)動蜂鳴器報警。</p><p>  2.3 AT89C2051單片機(jī)簡介</p><p><b&g

19、t;  2.3.1芯片概述</b></p><p>  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ī)可為您提供許多

20、高性價比的應(yīng)用場合。   AT89C2051是一個功能強(qiáng)大的單片機(jī),但它只有20個引腳,15個雙向輸入/輸出(I/O)端口,其中P1是一個完整的8位雙向I/O口,兩個外中斷口,兩個16位可編程定時計數(shù)器,兩個全雙向串行通信口,一個模擬比較放大器。同時AT89C2051的時鐘頻率可以為零,即具備可用軟件設(shè)置的睡眠省電功能,系統(tǒng)的喚醒方式有RAM、定時/計數(shù)器、串行口和外中斷口,系統(tǒng)喚醒后即進(jìn)入繼續(xù)工作狀態(tài)。

21、省電模式中,片內(nèi)RAM將被凍結(jié),時鐘停止振蕩,所有功能停止工作,直至系統(tǒng)被硬件復(fù)位方可繼續(xù)運(yùn)行。管角配置圖2.3所示。</p><p>  圖2.3 2051引腳圖</p><p><b>  主要功能介紹</b></p><p>  兼容MCS51指令系統(tǒng)</p><p><b>  15個雙向I/O口&

22、lt;/b></p><p>  兩個16位可編程定時/計數(shù)器</p><p>  時鐘頻率0-24MHz</p><p><b>  兩個外部中斷源</b></p><p><b>  可直接驅(qū)動LED</b></p><p><b>  低功耗睡眠功能&l

23、t;/b></p><p><b>  可編程UARL通道</b></p><p>  2k可反復(fù)擦寫(>1000次)Flash ROM</p><p><b>  6個中斷源</b></p><p>  2.7-6.V的寬工作電壓范圍</p><p>  128

24、x8bit內(nèi)部RAM</p><p><b>  兩個串行中斷</b></p><p><b>  兩級加密位</b></p><p>  內(nèi)置一個模擬比較放大器</p><p>  軟件設(shè)置睡眠和喚醒功能</p><p>  可見。2051可以為很多的嵌入式控制應(yīng)用提供高度

25、靈活而且價格低廉的方案,特別適合小系統(tǒng)。本系統(tǒng)僅用到單片機(jī)的10個I/O口,所以選用2051單片機(jī)做主系統(tǒng)。</p><p>  2.4其他外圍硬件電路 </p><p>  2.4.1電源電路 </p><p>  如圖2.4所示。發(fā)電機(jī)發(fā)出+15V的交流電,經(jīng)整流濾波后,再給鎳氫電池組充電,充電采用恒流方式。已充電的電池組經(jīng)7805穩(wěn)壓,給霍爾傳感器和單片機(jī)系統(tǒng)

26、供電。由</p><p>  圖2.4 電源電路原理圖</p><p>  于充電電流可達(dá)400~500mA,且充電時間較長,所以三極管選用功率高的C8050。5KΩ的電位器用于調(diào)節(jié)充電電流,避免電流過大燒壞元件。</p><p>  當(dāng)然,實驗設(shè)計過程中為了簡便,我們可以不用電機(jī)。直接用4個1.5V的電池組經(jīng)7805穩(wěn)壓后得到+5V電壓給單片機(jī)系統(tǒng)和霍爾傳感器

27、供電。</p><p>  2.4.2霍爾傳感器 </p><p>  霍爾傳感器是利用霍爾效應(yīng)把磁輸入信號轉(zhuǎn)換成電信號的器件。本系統(tǒng)采用JK8002D霍爾接近開關(guān),他是一種非接觸型無觸點開關(guān),系統(tǒng)通過它探測外部的磁場的強(qiáng)弱變化,繼而控制開關(guān)輸出。磁場由外部的磁鋼產(chǎn)生。</p><p>  JK8002D霍爾接近開關(guān)的內(nèi)部原理圖和輸入/輸出特性如圖(5)和圖(6)所

28、示。JK8002D霍爾接近開關(guān)的輸入量是磁感應(yīng)強(qiáng)度B,當(dāng)B值達(dá)到一定的程度(如Bl)時,霍爾開關(guān)內(nèi)部的觸發(fā)器翻轉(zhuǎn),其輸出電平狀態(tài)也隨之翻轉(zhuǎn)。</p><p>  當(dāng)探頭與磁鋼距離由遠(yuǎn)而近為8mm時,霍爾元件輸出端輸出一個無抖動的低電平(約為0.2V),當(dāng)兩者距離足夠遠(yuǎn)時,霍爾元件輸出端輸出一個無抖動的高電平(約為3.7V),所以輸出信號可直接到單片機(jī)的外中斷0的引腳。</p><p>  

29、2.4.3 4位串行靜態(tài)顯示電路</p><p>  當(dāng)單片機(jī)的UART口部進(jìn)行串行通信時,可設(shè)置其工作于同步移位寄存器方式0,以輸出顯示信息,實現(xiàn)n位LED的靜態(tài)顯示,這樣做只占用了很少的I/O口線。系統(tǒng)中,4各共陽極得LED數(shù)碼管和4片 74LS164構(gòu)成4位數(shù)字顯示電路,74LS164將串行輸入的顯示信息轉(zhuǎn)換成并行輸出,驅(qū)動數(shù)碼管顯示。74LS164在低電平輸出時允許通過的電流為8mA,故不必添加驅(qū)動電路即

30、可獲取理想亮度。與動態(tài)掃描方式相比較,該方式無須CPU做不停的掃描,頻繁地為顯示服務(wù),節(jié)省了CPU的時間,軟件世界也比較簡單。顯示電路如圖2.5所示。</p><p>  圖2.5 4位串行靜態(tài)顯示電路原理圖</p><p><b>  第三章 軟件設(shè)計</b></p><p><b>  3.1主程序設(shè)計</b>&l

31、t;/p><p>  主程序流程圖見圖3.1。</p><p>  開機(jī)后系統(tǒng)自檢,正常時LED顯示“——”,同時等待自行車行駛。輪子開始轉(zhuǎn)圈后,系統(tǒng)進(jìn)行記錄和計算,并根據(jù)速度/里程開關(guān)的選擇顯示數(shù)值。</p><p>  圖3.1 主程序流程圖</p><p>  3.2 外中斷0和 T1定時溢出中斷服務(wù)子程序設(shè)計</p>&l

32、t;p>  外中斷0服務(wù)子程序用于對輸入脈沖的個數(shù)即輪子轉(zhuǎn)圈的次數(shù)計數(shù)。每計數(shù)一次,系統(tǒng)保存圈數(shù)值的同時保存定時器的計時值,并根據(jù)功能開關(guān)鍵實時顯示相應(yīng)的值。</p><p>  T1定時溢出中斷服務(wù)子程序用于實時統(tǒng)計記一次數(shù)的經(jīng)歷時間。T1定時的基準(zhǔn)時間設(shè)為20ms,假設(shè)記一次數(shù)中T1中斷的次數(shù)為C,1.8/(20C)ms即當(dāng)前自行車行駛的速度。</p><p>  用內(nèi)部定時加外

33、中斷的方法實現(xiàn)了對輸入脈沖信號的測量,這是本系統(tǒng)最關(guān)鍵的程序部分。</p><p>  3.3 速度/里程顯示控制子程序設(shè)計</p><p>  最大允許速度由限速切換開關(guān)S4控制,超速(>20千米/小時)使單片機(jī)的P1.7輸出低電平報警。若行駛速度太慢(<0.5m/s),燈D3不斷閃爍,LED交替顯示“Erro”、“Sudu”和當(dāng)前速度值,以引起騎車者的注意。</p&g

34、t;<p>  速度顯示值的單位有km/h和每m/s,由功能鍵S5切換。對于里程值,為了較精確地顯示,程序設(shè)置了不同里程范圍時所顯示的小數(shù)點后數(shù)字的位數(shù):里程為10m~99m,顯示2位小數(shù);里程為100m~999m,顯示1位小數(shù)。</p><p>  3.4系統(tǒng)完整源程序</p><p><b>  如附錄2</b></p><p&g

35、t;  參考文獻(xiàn):[1] 張毅坤,陳善久.單片微型計算機(jī)原理及應(yīng)用.西安:西安電子科技大學(xué)出版社,2002.</p><p>  [2] 張友德,趙志英,徐時亮.單片微機(jī)原理應(yīng)用與實驗.上海:復(fù)旦大學(xué)出版社,2000.</p><p>  [3] 偉福Lab2000P系列單片機(jī)仿真實驗系統(tǒng)說明書.</p><p>  [4] 鄭學(xué)堅 周斌 微型計算機(jī)原理和應(yīng)用

36、 北京:清華大學(xué)出版社</p><p>  [5] 陳為 單片機(jī)原理 </p><p><b>  附錄</b></p><p><b>  附錄1 整體電路圖</b></p><p><b>  附錄2 源程序</b></p><p>&

37、lt;b>  自行車?yán)锍瘫?lt;/b></p><p>  /* 各引腳用途及系統(tǒng)功能說明</p><p>  P1.0 速度和里程切換:1顯示速度,0顯示里程</p><p>  P1.1 限速度切換:1 10m/s;0 8m/s</p><p>  P1.2 km/h和 m/s的切換:<

38、/p><p>  P1.4 指示顯示器單位為km/h</p><p>  P1.5 速度太慢燈閃爍警告</p><p>  P1.6 0時燈亮,指示里程;為以燈不亮,顯示速度</p><p>  P1.7 超速度報警</p><p>  距離最大值為9999m</p>

39、<p>  6H圈、 38H圈、 22C圈、 15B6圈</p><p>  0m=<S<10m 10m=<S<100m 100m=<S<1000m 1000m=<S<10000m</p><p>  周長0707H 00B4H 0012H 0012H/0AH</p>

40、<p><b>  //變量定義//</b></p><p>  XIAOSHU EDU 57H ; 小數(shù)點位數(shù)單元 </p><p>  GEWEI EDU 40H ; 顯示單元</p><p>  SHIWEI EDU

41、 41H ; </p><p>  BAIWEI EDU 42H ;</p><p>  QIANWEI EDU 43H ; </p><p>  QSHU1 EDU 43H ; </p>

42、<p>  QSHU0 EDU 61H ; 自行車圈數(shù)存儲單元高位</p><p>  QSHU0 EDU 62H ; 自行車圈數(shù)存儲單元低位</p><p>  SJIAN0 EDU 6CH ; T1定時溢出存儲單元

43、高位</p><p>  SJIAN1 EDU 6DH ; T1定時溢出存儲單元低位</p><p><b>  //主程序//</b></p><p>  ORG 000H </p><p>  AJMP START</p><p>

44、;  ORG 0003H</p><p>  AJMP INTEX0</p><p>  ORG 001BH</p><p>  AJMP IT11</p><p>  ORG 0030H</p><p>  START: MOV SP,#75H ; 設(shè)置堆棧

45、指針</p><p>  MOV SCON,#00H ; 串行口工作方式</p><p>  MOV GEWEI,#0AH ; 開機(jī)顯示</p><p>  MOV SHIWEI,#0AH</p><p>  MOV BAIWEI,#0AH</p><

46、;p>  MOV QIANWEI,#0AH</p><p>  ACALL DIS11</p><p>  SETB P3.2 ; 外中斷0為輸入查詢方式</p><p>  JB P3.2 ; 等待第一個有效脈沖(下降沿)到來</p><p>

47、  ACALL CLEARRAM ; 調(diào)用系統(tǒng)準(zhǔn)備顯示初始化子程序</p><p>  STLOOP: JNB P1.0,ST1 ; p1.0=0,顯示速度</p><p>  ACALL DISPLAYS ; P1.0=1, 顯示里程</p><p>  SJM

48、P STLOOP ; 循環(huán)顯示</p><p>  ST1: ACALL DISPLAYV ; 第一個下降沿來后顯示速度</p><p>  AJMP STLOOP ; 循環(huán)顯示</p><p>  //系統(tǒng)準(zhǔn)備顯示初始化子程序//</p>

49、;<p>  CLEARRAM: MOV TMOD,#10H ; T1用于定時,工作于模式1</p><p>  MOV TH1,#0B1H ; 定時20ms初始值</p><p>  SETB P1.2 ; P1.2-P1.0為輸入</p><p

50、>  SETB P1.1</p><p>  SERB P1.0</p><p>  CLR A ; 相應(yīng)內(nèi)RAM空間清零</p><p>  MOV 21H,A ; 速度/里程的BCD碼高位清0</p><p>  MOV 22H,A

51、 ; 速度/里程的BCD碼低位清0</p><p>  MOV QSHU1,A ; 圈數(shù)空間清0</p><p>  MOV QSHU0,A</p><p>  MOV 6AH,A ; T1溢出次數(shù)暫存單元高位清0 </p><

52、p>  MOV 6BH,A ; T1溢出次數(shù)暫存單元低位清0</p><p>  MOV SJIAN0,A ; 計數(shù)器空間清零</p><p>  MOV SJIAN1,A </p><p>  MOV XIAOSHU,#01H ; 默認(rèn)

53、顯示3位小數(shù)</p><p>  SETB IT0 ; 設(shè)置外中斷為邊沿觸發(fā)方式</p><p>  SETB PT1 ; T1優(yōu)先級最高</p><p>  SETB EA ; 開總中斷</p><p>  

54、SETB ET1 ; 開T1中斷</p><p>  SETB EX0 ; 開外0中斷</p><p>  //外中斷0服務(wù)子程序//</p><p>  INTEX0: PUSH ACC ; 累加器堆棧保護(hù)</p>&

55、lt;p>  PUSH PSW ; 狀態(tài)字堆棧保護(hù)</p><p>  INC QSHU0 ; 圈加1</p><p>  SETB P1.7 ; 置1不報警</p><p>  CLR A ;

56、 清A</p><p>  CJNE A,QSHU0,SUBX0 ; 計數(shù)沒溢出轉(zhuǎn)SUBX0</p><p>  INC QSHU1 ; 溢出進(jìn)位(61H加1)</p><p>  SUBX0: CLR TR1 ; 關(guān)計時,讀輪子轉(zhuǎn)一圈的時間

57、</p><p>  MOV 6AH,SJIAN0 ; 時間暫存</p><p>  MOV 6BH,SJIAN1 </p><p>  MOV TH1,#0B1H ; 定時器T1重付初值</p><p>  MOV TL1,#0DFH

58、 </p><p><b>  CLR A</b></p><p>  MOV SJIAN0,A ; 清計時空間</p><p>  MOV SJIAN1,A</p><p>  SETB TR1 ; 重新計時</p>

59、;<p>  POP PSW ; 狀態(tài)字恢復(fù)</p><p>  POP ACC ; 累加器恢復(fù)</p><p>  RETI ; 中斷返回</p><p>  //T1定時器溢出時中斷服務(wù)子程序//</

60、p><p>  IT11: PUSH ACC ; 堆棧保護(hù)</p><p>  PUSH PSW </p><p>  INC SJIAN1 ; 定時20毫秒溢出次數(shù)</p><p>  MOV A,SJIAN1

61、; 讀一圈定時的次數(shù)</p><p>  CJNE A,#0BBH,SUBT1 ; 速度太慢(<0.5),處理</p><p>  AJMP SUBT2 </p><p>  SUBT1: JC SUBT2 </p><p>  INC 69H ;

62、 (69H)為奇數(shù),LED顯示“Erro”</p><p>  MOV A,69H ; 再顯示具體速度的值</p><p>  JB ACC.0 ERRO ; (69H)為偶數(shù),LED顯示“Sudu” </p><p>  MOV GEWEI,#05H ;

63、 再顯示具體速度的值</p><p>  MOV SHIWEI,#0BH</p><p>  MOV BAIWEI,#0DH</p><p>  MOV QIANWEI,#0BH</p><p>  MOV XIAOSHU,#0BH</p><p>  ACALL DIS11</p

64、><p>  SJMP FS12</p><p>  ERRO: MOV GEWEI,#0CH</p><p>  MOV SHIWEI,#OBH</p><p>  MOV BAIWEI,#0BH</p><p>  MOV QIANWEI,#0DH</p><p>  A

65、CALL DIS21</p><p> ??;“Erro”或“sudu”和具體速度大值交替閃爍顯示</p><p>  FS12: MOV R2,#01H ; </p><p>  CLR P1.5</p><p>  ACALL DELAY2</p><p>  SETB

66、P1.5</p><p>  ACALL DELAY2</p><p>  DJNZ R2,FLASH</p><p>  SUBT2: MOV TH1,#0B1H</p><p>  MOV TL1,#0DFH</p><p><b>  SETB TR1</b></p&g

67、t;<p><b>  POP PSW</b></p><p><b>  POP ACC</b></p><p><b>  RETI</b></p><p>  //里程顯示控制子程序//</p><p>  DISPLAYS:CLR P1.6&l

68、t;/p><p>  ACALL JULI</p><p>  MOV A,QSHU1</p><p>  CJNE A,#02H,DIAOYONG</p><p>  AJMP PANDY</p><p>  DIAOYONG:JNC PANDY1</p><p>  AJMP BU

69、DY</p><p>  PANDY: MOV A,QSHU0</p><p>  CJNE A,#2CH,PANDY2</p><p>  AJMP PANDY1</p><p>  PANDY2: JC BUDY</p><p>  PANDY1: MOV R6,#00h</p>

70、;<p>  MOV R7,#0AH </p><p>  ACALL JULI2</p><p>  ACALL BCDC</p><p>  ACALL FENKAI</p><p>  ACALL DIS21</p><p>  ACALL DELAY1</p><p>

71、<b>  RET</b></p><p>  BUDY: MOV R6,#00h</p><p>  MOV R7,#01h</p><p>  ACALL JULI2 </p><p>  ACALL BCDC</p><p>  ACALL FENKAI</p>

72、<p>  ACALL DIS11</p><p>  ACALL DELAY1</p><p>  ACALL DELAY1</p><p><b>  RET</b></p><p>  //速度顯示控制子程序//</p><p>  DISPLAYV:SETB P1.6</

73、p><p>  ACALL SUDU</p><p>  ACALL BCDC</p><p>  ACALL FENKAI</p><p>  MOV XIAOSHU,#01H</p><p><b>  RET</b></p><p>  //處理子程序1//</

74、p><p>  JULI: PUSH PSW</p><p><b>  PUSH ACC</b></p><p>  MOV R2,QSHU1</p><p>  MOV R3,QSHU0</p><p><b>  JNZ GAO</b></p&g

75、t;<p>  MOV A,QSHU0</p><p>  CJNE A,#06H,PAN1</p><p>  AJMP PAN2</p><p>  PAN1: JNC PAN2</p><p>  AJMP CZ707</p><p>  PAN2: MOV A,QSH

76、U0</p><p>  CJNE A,#38H,PAN3</p><p><b>  AJMP GAO</b></p><p>  PAN3: JC CZB4</p><p>  GAO: AJMP CZ12</p><p>  CZ707: MOV R6,#0

77、7H</p><p>  MOV R7,#07H</p><p>  MOV XIAOSHU,#01H</p><p>  AJMP KAISHI</p><p>  CZB4: MOV R6,#00H</p><p>  MOV R7,#0B4H</p><p>  M

78、OV XIAOSHU,#02H</p><p>  AJMP KAISHI</p><p>  CZ12: MOV R6,#00H</p><p>  MOV R7,#00H</p><p>  MOV XIAOSHU,#03H </p><p>  KAISHI為兩字節(jié)乘兩字節(jié)程序段</

79、p><p>  KAISHI: MOV A,R3</p><p>  MOV B,R7</p><p><b>  MUL AB</b></p><p>  MOV R4,B</p><p>  MOV R5,B</p><p>  MOV A,R3&

80、lt;/p><p>  MOV B,R6</p><p><b>  MUL AAB</b></p><p>  ADD A,R4 </p><p>  MOV R4,A</p><p><b>  CLR A</b></p><p

81、><b>  ADDC A,B</b></p><p>  MOV B,R7</p><p><b>  MUL AB </b></p><p>  ADD A,R4</p><p>  MOV R4,A</p><p>  MOV A,R3<

82、;/p><p><b>  ADDC A,B</b></p><p>  MOV R3,A</p><p><b>  CLR A</b></p><p><b>  RLC A</b></p><p>  XCH A,R2</p&g

83、t;<p>  MOV B,R6</p><p><b>  MUL AB</b></p><p>  ADD A,R3</p><p>  MOV R3,A</p><p>  MOV A,R2</p><p><b>  ADDC A,B</

84、b></p><p>  MOV 50H,R2</p><p>  MOV 51H,R3</p><p>  MOV 52H,R4</p><p>  MOV 53H,R5</p><p><b>  POP PSW</b></p><p><

85、;b>  POP ACC</b></p><p><b>  RET</b></p><p>  //處理里程子程序2//</p><p>  Juli2: PUSH PSW</p><p><b>  PUSH ACC</b></p><p>

86、  MOV R2,50H</p><p>  MOV R3,51H</p><p>  MOV R4,52H</p><p>  MOV R5,53H</p><p>  DIVD11: CLR C</p><p>  MOV A,R3</p><p>  SUBB

87、A,R7</p><p>  MOV A,R2</p><p>  SUBB A,R6</p><p>  JC DVD11</p><p><b>  SETB OV </b></p><p><b>  RET</b></p><p>

88、;  DVD111: MOV B,#10H</p><p>  DVD211: CLR C</p><p>  MOV A,R5</p><p>  MOV R5,A</p><p>  MOV A,R4</p><p><b>  RLC A</b></p>

89、;<p>  MOV R4,A</p><p>  MOV A,R3</p><p><b>  RLC A</b></p><p>  MOV R3,A</p><p>  XCH A,R2</p><p>  XCH A,R2</p><

90、;p>  MOV F0,C</p><p><b>  CLR C</b></p><p>  SUBB A,R7</p><p>  MOV R1,A</p><p>  MOV A,R2</p><p>  SUBB A,R6</p><p>

91、  ANL C,/F0</p><p>  JC DVD311</p><p>  MOV R2,A</p><p>  MOV A,R1</p><p>  MOV R3,A</p><p><b>  INC R5</b></p><p>  

92、DVD311: DJNZ B,DVD211</p><p>  MOV A,R4</p><p>  MOV R2,A</p><p>  MOV A,R5</p><p>  MOV R3,A</p><p><b>  CLR OV</b></p><

93、;p>  MOV 30H,R2</p><p>  MOV 31H,R3</p><p><b>  POP ACC</b></p><p><b>  POP PSW</b></p><p><b>  NOP</b></p><p&

94、gt;<b>  RET</b></p><p>  //十六進(jìn)制轉(zhuǎn)換乘BCD子程序//</p><p>  BCDC: PUSH ACC</p><p><b>  PUSH PSW</b></p><p>  MOV R6,30H</p><p>  MOV

95、 R7,31H</p><p><b>  CLR A</b></p><p>  MOV R3,A</p><p>  MOV R4,A</p><p>  MOV R5,A</p><p>  MOV R2,#10H</p><p>  HB32

96、2: MOV A,R7</p><p><b>  RLC A</b></p><p>  MOV R7,A</p><p>  MOV A,R6</p><p><b>  RLC A</b></p><p>  MOV R6,A</p&g

97、t;<p>  MOV A,R5</p><p><b>  DA A</b></p><p>  MOV R5,A</p><p>  MOV A,R4</p><p>  ADDC A,R4</p><p><b>  DA A</b&g

98、t;</p><p>  MOV R4,A</p><p>  MOV A,R3</p><p>  ADDC A,R3</p><p>  DJNZ R2,HB322</p><p>  MOV 20H,R3</p><p>  MOV 21H,R4</p>

99、<p>  MOV 22H,R5</p><p><b>  POP PSW</b></p><p><b>  POP ACC</b></p><p><b>  NOP </b></p><p><b>  RET</b><

100、;/p><p>  //算速度十六進(jìn)制值子程序//</p><p>  SUDU: PUSH PSW</p><p><b>  PUSH ACC</b></p><p>  JB P1.2,KM</p><p>  SJMP JUBU</p><p>  K

101、M: MOV R2,#00H</p><p>  MOV R3,#04H</p><p>  MOV R4,#0F1H</p><p>  MOV R5,#0A0H</p><p>  CLR P1.4</p><p>  SJMP QUANJU</p><p>

102、  JUBU: MOV R2,#00H</p><p>  MOV R3,#001H</p><p>  MOV R4,#05FH</p><p>  MOV R5,#090H</p><p>  CLR P1.4</p><p>  QUANJU: MOV A,6BH</p>

103、;<p>  JB P1.1,XIAN10</p><p>  CJNE A,#0BH,BUXIANG</p><p><b>  SJMP JC0</b></p><p>  XIAN10: CJNE A,#09H,BUXIANG</p><p><b>  SJMP JC0&l

104、t;/b></p><p>  BUXIANG: JC JC0</p><p>  SJMP BUJG</p><p>  JC0: MOV A,6AH </p><p>  CJNE A,#00H,BUJG</p><p>  AJMP JIANGGAO</p>&

105、lt;p>  JIANGGAO: CLR P1.7</p><p>  MOV GEWEI,#0CH</p><p>  MOV SHIWEI,#0BH</p><p>  MOV BAIWEI,#0BH</p><p>  MOV QIANWEI,#0DH</p><p>  ACALL DI

106、S21</p><p>  ACALL DELAY1</p><p>  MOV GEWEI,#0EH</p><p>  MOV SHIIWEI, #0EH</p><p>  MOV BAIWEI,#0EH</p><p>  MOV QIANWEI,#0EH</p><p>

107、;  ACALL DIS21</p><p>  ACALL DELAY1</p><p>  SJMP QUANJU</p><p>  BUJU: MOV A,6BH</p><p>  CJNE A,#0AFH,LING0</p><p>  AJMP LING1</p><p

108、>  LING0: JC LING1</p><p>  AJMP BUJING</p><p>  LING1: MOV A,6AH</p><p>  CJNE A,#00J,BULING0</p><p>  AJMP BULING1</p><p>  BULING0: JC

109、 BULING1</p><p>  BULING: MOV SJIAN0,#00H</p><p>  MOV SJIAN1,#00H</p><p><b>  RET</b></p><p>  //4字節(jié)除2字節(jié)除法子程序//</p><p>  BULING1: MOV R

110、6,6AH</p><p>  MOV R7,6BH</p><p>  DIVD: CLR C</p><p>  MOV A,R3</p><p>  SUBB A,R7</p><p>  MOV A,R2</p><p>  SUBB A,R6</p>

111、;<p>  JC DVD1</p><p><b>  SETB OV </b></p><p><b>  RET</b></p><p>  DVD1: MOV B,#10H</p><p>  DVD2: CLR C</p><p

112、>  MOV A,R5</p><p><b>  RLC A</b></p><p>  MOV R5,A</p><p>  MOV A,A4</p><p><b>  RLC A</b></p><p>  MOV R4,A</p&

113、gt;<p>  MOV A,R3</p><p><b>  RLC A</b></p><p>  MOV R3,A</p><p>  XCH A,R2</p><p>  XCH A,R2</p><p>  MOV F0,C</p>&

114、lt;p><b>  CLR C</b></p><p>  SUBB A,R7</p><p>  MOV R1,A</p><p>  MOV A,R2</p><p>  SUBB A,R6</p><p>  ANL C,/F0</p><p&

115、gt;  JC DVD3</p><p>  MOV R2,A</p><p>  MOV A,R1</p><p>  MOV R3,A</p><p><b>  INC R5</b></p><p>  DVD3: DJNZ B,DVD2</p>

116、<p>  MOV A,R4</p><p>  MOV R2,A</p><p>  MOV A,R5</p><p>  MOV R3,A</p><p><b>  CLR OV</b></p><p>  MOV 30H,R2</p><

117、;p>  MOV 31H,R3</p><p><b>  POP ACC</b></p><p><b>  POP PSW</b></p><p>  SETB P1.7</p><p><b>  NOP</b></p><p>

118、;<b>  RET</b></p><p>  //壓縮BCD碼轉(zhuǎn)乘非壓縮BCD碼子程序//</p><p>  FENKAI: MOV R7,#02H</p><p>  MOV R0,#GEWEI</p><p>  MOV R1,#21H</p><p>  FENKAI1:

119、 MOV A,@R1</p><p>  ANL A,#0F0H</p><p><b>  SWAP A</b></p><p>  MOV @R0,A</p><p><b>  INC R0</b></p><p>  MOV A,@R1</

120、p><p>  ANL A,#0FH</p><p>  MOV @R0,A</p><p><b>  INC R0</b></p><p><b>  INC R1</b></p><p>  DJNZ R7,FENKAI1</p>

121、<p><b>  RET</b></p><p><b>  //延時子程序//</b></p><p>  DELAY1: MOV R6,#0FFH</p><p>  DEL: MOV R7,#0FFH</p><p>  DJNZ R7,$</p>

122、<p>  DJNZ R6,DE;</p><p><b>  RET</b></p><p>  DELAY2: MOV R6,#02FH</p><p>  MOV R7,#0FFH</p><p>  DJNZ R7,$</p><p>  DJNZ R

123、6,DEL2</p><p><b>  RET</b></p><p>  //4位串行靜態(tài)顯示子程序//</p><p>  DIS21: MOV R7,#04H</p><p>  MOV R0,#GEWEI</p><p>  LED1_21: MOV A,@R0<

124、/p><p>  MOV DPTR,#DATA_7SEG22</p><p>  LED1_221: MOVC A,@A+DPTR</p><p>  MOV SBUF,A</p><p>  JNB TI,$</p><p><b>  CLR TI</b></p>

125、;<p><b>  INC R0</b></p><p>  DJNZ R7,LED1_21</p><p><b>  RET</b></p><p>  DATA_7SEG22</p><p><b>  DB</b></p><

126、;p>  081H,0EDH,043H,049H,02DH,019H,011H,0CDH,001H,009H,07FH,077H,013H,071,0FFH</p><p> ?。? 1 2 3 4 5 6 7 8 9 - r o E 空</p><p><b>  顯</b></p><p> ?。? = =

127、 = = = = = = = = = = = = = = = = = = = = = =</p><p>  DIS11: MOV R7,#04H</p><p>  MOV R6,XIAOSHU</p><p>  MOV R0,#GEWEI</p><p>  LED1_11:MOV A,@R0</p>&

128、lt;p>  DJNZ R6,LED6</p><p>  MOV DPTR,#DATA_7SEG3</p><p>  SJMP LED1_31</p><p>  LED6: MOV DPTR,#DATA_7SEG2</p><p>  LED1_31: MOVC A,@A+DPTR</p><p

129、>  MOV SBUF,A</p><p>  JNB TI,$</p><p><b>  CLR TI</b></p><p><b>  INC R0</b></p><p>  DJNZ R7,LED1_11</p><p><b&

130、gt;  RET</b></p><p>  DATA_7SEG2</p><p>  DB 081H,0EDH,043H,049H,02DH,019,011H,0CDH,001H,009H,07FH,0A1H,0R9H,061H</p><p> ?。?0 1 2 3 4 5 6 7 8 9 - U

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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

提交評論