![](https://static.zsdocx.com/FlexPaper/FileRoot/2019-6/13/14/7835ce60-f1ae-4d24-ba86-124de2d33f1b/7835ce60-f1ae-4d24-ba86-124de2d33f1bpic.jpg)
![自行車里程速度計的設計畢業(yè)論文_第1頁](https://static.zsdocx.com/FlexPaper/FileRoot/2019-6/13/14/7835ce60-f1ae-4d24-ba86-124de2d33f1b/7835ce60-f1ae-4d24-ba86-124de2d33f1b1.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 自行車里程/速度計的設計</p><p> 摘要:本文介紹了用89C52單片機設計自行車里程/速度計,運用單片機的運算和控制功能,并采用數碼管實時顯示所測速度和里程的速度里程計設計方案,用分頻器TC4024實現二分頻,用來探討24C01傳感器的用途,通過實用電路的設計來掌握速度及里程傳感器的使用方法及一些性能參數。本系統含了電子電路技術,以及常用的AT89C52單片機工作原理,通過本系統的
2、設計,把它們倆者有機結合。</p><p> 關鍵詞:AT89C52 數碼管 TC4024 24C01傳感器 </p><p> The Odometer/Speedometer’s Design Of The Bike</p><p> Abstract: This article introduced used the Micro Compute
3、r Unit of the AT89C52 design The Odometer/Speedometer’s Of The Bike, it utilizes Micro Computer Unit's operation and control function, and it uses the nixietube real time display to measure the speed and the course s
4、peed hodometer design proposal, it realizes two frequency divisions with the frequency divider of TC4024,it uses for to discuss the 24C01 sensor's use, through the practical electric circuit's design it grasps th
5、e odometer/speed</p><p> Keywords: AT89C52 Nixietube TC4024 24C01 sensor</p><p><b> 目 錄</b></p><p><b> 1 緒 論3</b></p><p> 2 at89C52
6、單片機4</p><p> 2.1 at89C52單片機簡介4</p><p> 2.2 at89C52的管腳及其含義4</p><p> 3 TC40246</p><p> 4 24C01芯片6</p><p> 4.1 24C01簡介6</p><p> 4.2
7、 24C01的特性:7</p><p> 5 硬件電路的設計8</p><p> 5.1 系統硬件電路8</p><p> 5.2 系統的工作原理8</p><p><b> 6 軟件設計9</b></p><p> 6.1 系統內存的規(guī)劃9</p>&l
8、t;p> 6.2 系統的主要程序設計9</p><p><b> 7 系統調試11</b></p><p> 7.1 硬件調試11</p><p> 7.2 軟件調試12</p><p><b> 8 結 論14</b></p><p><
9、b> 致謝15</b></p><p> 附錄: 系統完整源程序17</p><p><b> 1 緒 論</b></p><p> 傳感器,英文名字為Sensor或Transducer,亦稱換能器、變換器。在科技迅速發(fā)展的今天,傳感器越來倍受重視。在日常生活、航天、航空,常規(guī)武器、交通運輸,機械制造、化工、生
10、物醫(yī)學工程、自動化檢測工程及計量等各項領域都被廣泛應用[6]。</p><p> 目前,傳感器已向新材料開發(fā),集成化、智能化、數字化、新工藝,高精度化及高穩(wěn)定、高可靠化等技術發(fā)展。特別是霍爾傳感器,鑒于它的價廉、易于使用,使它廣泛運用于里程計、速度計等[6]。</p><p> 單片微型計算機簡稱單片機,又稱微控制器,特別適用于控制領域。通常單片機由單塊集成電路構成,內部包含有計算機的
11、基本部件:CPU(中央處理器),存儲器和I/O接口電路等。因此,單片機只需要與適當的軟件及外部設備相結合,便可以成為一個單片機控制系統[4]。</p><p> 目前,場上銷售的單片機有4位、8、16位、32位,并且單片機朝著高性能多種方向發(fā)展,尤其是8位單片機以經成為當前單片機的主流,主要體現在CPU功能增強、內部資源增多、引腳的功能化、低電壓和低功好耗化上[4]。</p><p>
12、 單片機因為其體積小、功能強,可靠性高,靈活方便等優(yōu)點,所以可以用于各個領域,對各行各業(yè)的技術改造和產品更新換代起到重要的推動作用。</p><p> 本人經過學習,用AT89C52設計了一個自行車里程/速度計。本設計可輪流顯示自行車行使的里程和速度, 采用TC4024芯片作為計數器以及2C401存儲數據,3個單級共陰數碼管作為顯示系統。本系統具有超速信響提醒功能,里程數據自動記憶,也可應用于電動自行車、摩托車
13、、汽車等機動車儀表上。</p><p><b> .</b></p><p> 2 AT89C52單片機</p><p> 2.1 AT89C52單片機簡介</p><p> 本設計選用AT89C52單片機,AT89C52是一種低功耗、高性能CMOS 8位微控制器。使用Atmel 公司高密度非易失性
14、存儲器技術制造,可與工業(yè)AT89C51 產品指令和引腳完全兼容。</p><p> 2.2 AT89C52的管腳及其含義[5]</p><p> AT89C52的管腳及各管腳含義如下:</p><p> 圖2.2 89C52管腳圖</p><p><b> 各引腳功能說明:</b></p>
15、;<p> VCC——電源電壓;GND——接地; P0口——P0口是一組8位漏極開路型雙向I/O口,也即地址/數據總線復用口。作為輸出口用時,每位能吸收電流的方式驅動8個TTL邏輯門電路,對端口P0寫“1”時,可作為高阻抗輸入端用; 在訪問外部數據存儲器或程序存儲器時,這組口線分時轉換地址(低8位)和數據總線復用,在訪問期間激活內部上拉電阻; 在FLASH編程時,P0口接收指令字節(jié),而在程序校驗時,輸出指令字節(jié),
16、校驗時,要求外接上拉電阻; P1口——P1口是一個帶內部上拉電阻的8位雙向I/O口,P1的輸出緩沖級可驅動(吸收或輸出電流)4個TTL邏輯門電路。對端口寫“1”,通過內部的上拉電阻把端口拉到高電平,此時可作輸出口。作輸入口使用時,因為內部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流; 與AT89C51不同之處是,P1.0和P1.1還可分別作為定時/計數器2的外部計數輸入(P1.0/T2)和輸入(P1.1/T2EX); FL
17、ASH編程和程序校驗期間,P1接收低8位地址; P1.0和P1.1的第二功能:P1.0 T2(定時/計數器2外部計數脈沖輸入),時鐘輸出 ;P</p><p> 3 TC4024 </p><p> 本程序采用TC4024芯片,它是一個7位的計數器,計數器具有分頻的作用,它包含有14個管腳,其7腳接地,14腳接+5V,1腳接AT89C52的INT0,即12腳,在系統中此芯片起到
18、了二分頻的作用。</p><p> 4 24C01芯片</p><p> 4.1 24C01簡介</p><p> 24C01是一個1K位串行CMOS EEPROM,內部含有128個8位字節(jié),CATALYST的先進CMOS技術實際上減少了器件的功耗,24C01是一個8位字節(jié)頁寫緩沖器,該器件通過I2C總線接口進行操作,即此芯片采用I2C協議進行讀寫數據。有
19、一個專門的寫保護功能。</p><p> 24C01是I2C接口的,但標準51是不帶I2C接口的,串口方式0是不行的,需要用IO模擬,所以隨便接兩個IO都可以,而且都要接上拉電阻,大概幾K就行了,因為不是總線方式,所以不能用MOV指令,也不能用SBUF,要判斷是否為滿,可以在程序里設個變量。</p><p> 在這里要注意E2P芯片的壽命(一般是讀寫100萬次,足夠了)。 存儲數據的時
20、候,可以對操作數和存儲的數據進行比較,不相等則存儲,這樣可以增加使用壽命,比有些每隔1秒鐘進行存儲的會好多了。以下是24C01的管腳圖:</p><p><b> 圖4.1管腳圖</b></p><p> 表3.1 24C01的管腳描述</p><p> 4.2 24C01的特性:</p><p> 24C0
21、1芯片具有以下特性:</p><p> 與400KHZ的I2C總線兼容;</p><p> +1.8-6.0V工作電壓范圍;</p><p> 低功耗CMOS技術;</p><p> 寫保護功能:當WP為高電平時進入寫保護狀態(tài);</p><p><b> 頁寫緩沖器;</b></p
22、><p><b> 自定時擦寫周期;</b></p><p> 1,000,000編程擦除/周期;</p><p> 可保存數據100年;</p><p> 8腳DIP、SOIC、TSSOP封裝;</p><p> 10 溫度范圍:商業(yè)級、工業(yè)級和汽車級。</p><p&
23、gt; 5 硬件電路的設計</p><p> 5.1 系統硬件電路</p><p> 自行車里程/速度計能自動顯示自行車行駛的總里程數及行車速度,具有超速信響提醒功能,里程數據自動記憶,也可應用于電動自行車、摩托車、汽車等機動車儀表上。其硬件電路原理圖如圖5.1。</p><p> 圖 5.1系統原理圖</p><p> 5.
24、2 系統的工作原理</p><p> 本設計能實時地將所測的速度與累計里程數顯示出來,主要是將24C01傳感器輸入到單片機的脈沖信號,將頻率實時地測量出來,然后通過單片機計算出速度和里程,再將所得的數據存儲到TC4024芯片中,通過AT89C52單片機計算出來的速度和里程的數據,必須通過BCD碼的轉換才能輸出給數碼管。最后由共陰數碼管顯示所測速度與里程。 </p><p> 自行車里程
25、/速度計采用AT89C52單片機作控制,速度及里程傳感器采用霍爾元件,其電器原理圖如圖5.1所示。P0口和P2口用于七段LED顯示器的段碼及掃描輸出,在顯示里程時,第三位小數點用17腳P3.7口控制點亮。P1.0和P1.1口分別用于顯示里程狀態(tài)和速度狀態(tài)。P1.2、 P1.3、 P1.6和 P1.7口分別用于設置輪圈的大小。P3.0口的開關用于確定顯示的方式,當開關閉合時,顯示速度;打開時顯示里程。第12腳外中斷0用于對輪子圈數的計數輸
26、入,輪子每轉一圈,霍爾傳感器輸出一個地電平脈沖。第13腳外中斷1用于控制定時器T1的啟停,當輸入為0時關閉定時器。此控制信號是將輪子圈數的計數脈沖經二分頻后形成(見圖5.1),這樣,每次定時器T1的開啟時間剛好為轉一圈的時間。根據輪子的周長就可以計算出自行車的速度。P1.4和P1.5口用于EEPROM存儲器24C01的存取控制。11腳輸出用于速度超速時的報警。</p><p><b> 6 軟件設計&
27、lt;/b></p><p> 6.1 系統內存的規(guī)劃</p><p> 由于本系統處理功能較多,因而一部分內存單元用于特定的用處。其主</p><p> 要內存單元用處如下:</p><p> 50H:EEPROM器件尋址字節(jié)存放單元;</p><p> 51H:EEPROM傳送字節(jié)數存放單元;<
28、;/p><p> 30H:EEPROM發(fā)送數據緩沖單元;</p><p> 40H:EEPROM讀出數據存放單元;</p><p> 0A0H:EEPROM尋址字節(jié)字節(jié)寫;</p><p> 0A1H:EEPROM尋址字節(jié)字節(jié)讀;</p><p> 62 H:DPTR計數器擴展高8位;</p>&l
29、t;p> 6C H:定時器T1計數器擴展高8位;</p><p> 6D H:定時器T1計數器擴展高8—16位;</p><p> 60 H、61 H、62 H:里程計數單元;</p><p> 68 H、69 H、6A H、6B H:存放自行車每圈時間數;</p><p> 70 H、71 H、72 H、73 H:顯示BCD
30、碼數據存放用;</p><p> 11 H—15 H:存放被除數;</p><p> 16 H—19 H:存放除數。</p><p> 6.2 系統的主要程序設計 </p><p><b> 1. 初始化程序</b></p><p> 在本系統初始化程序中,主要完成以下工作:將T1設為外
31、部控制定時器方式;外中斷0及外中斷1設為邊沿觸發(fā)方式;將部分內存單元清零;設置輪子 周長值;開中斷及定時器;將EEPROM中的數據調入內存等。 </p><p> 2. 輪圈設置出錯處理程序</p><p> P1.2、 P1.3、 P1.6、P1.7端口的開關用于設定輪子的周長,當沒有設定時(至少讓一個開關閉合),能從P3.1口輸出一個周期為0.5S的方波信號,用作發(fā)光管閃爍及信響器
32、提醒。</p><p><b> 3. 主程序</b></p><p> 主程序根據P3.0的開關狀態(tài)選擇里程或速度顯示,其流程圖如圖6.2所示。</p><p> 圖6.2 主程序流程圖</p><p> 4.里程計數程序(外中斷0服務程序)</p><p> 外中斷0服務程序用于對
33、12腳輸入的圈脈沖進行計數,為十六進制計數器。60H為低位,62H為高位。每計數一次后,對里程數據進行一次存儲操作。</p><p> 5.外中斷1服務程序</p><p> 外中斷1服務程序用于處理輪子轉動一圈后計時數據。當標志位(00H)為1時,說明計數器溢出,放入最大時間值(為#0FFH);當標志位為0時,將計數單元(TL1、TH1、6CH、6DH)的值放入68H—6BH單元。&
34、lt;/p><p> 6.EEPROM存取程序</p><p> 本系統使用歸一化I2C串口存取子程序,使用一條數據線和時鐘線,采用ATMEL公司的24C01串口存儲器,應用簡單方便。</p><p><b> 7.顯示子程序</b></p><p> 當顯示里程時,先要將圈數計數器中的數據進行運算,求出總里程。當要
35、</p><p> 顯示速度時,要將輪子的這周長和轉一圈的時間數相除,然后換算成Km/h單位。最后放入70H—73H,進行數據顯示。</p><p><b> 7 系統調試</b></p><p> 要完成一個產品的設計,有很多紛繁復雜的步驟和過程,其中最為重要</p><p> 和最為關鍵的就是系統調試。調試的
36、步驟和方法有很多。本人也看過不少,在這次系統調試的中調試的過程我充分的發(fā)揮了仿真器的作用。</p><p><b> 7.1 硬件調試</b></p><p> 硬件的焊接是一個比較繁瑣的過程,繁瑣的地方在于3個單聯數碼管的</p><p> 連接,線路較多,在焊接時要特別的細心,在焊接完成并燒入程序之后通電發(fā)現數碼管不亮,檢查了好幾遍
37、,電路無焊沒有錯誤,于是我就懷疑可能是數碼管的問題,拿去貝爾(學院的社團)測試沒問題,數碼管并沒有燒壞。</p><p> 在插入芯片時要特別注意不能把芯片插反,否則就會把芯片燒掉;也要</p><p> 注意極性電容的方向,長的腳為正,短的為負,不能把負的接+5V,正的接地;在焊接三極管時也要注意其三個管腳的排布,還有為保護三極管不被燒換,所以3個三極管要各自接一個限流電阻(這里為4
38、.7K)。</p><p><b> 7.2 軟件調試</b></p><p> 軟件調試是調試的重點,同時也是出錯最多的地方;在整個軟件調試調試過程中我采取先部分后整體的調試方法。</p><p> 在整個程序的編寫調試過程中我首先調試的是數碼管顯示系統,為此我編寫了以下一段程序用于數碼管顯示調試,要求數碼管顯示0、1、2。</p
39、><p> ORG 0000H</p><p> MAIN: MOV P2, #0FFH</p><p> MOV P0, 0C0H</p><p> MOV P2, #0FEH</p><p> ACALL DELAY1</p><p> MOV
40、 P2, #0FFH</p><p> MOV P0, 0F9H</p><p> MOV P2, #0FDH</p><p> ACALL DELAY1</p><p> MOV P2, #0FFH</p><p> MOV P0, 0A4H</p>
41、<p> MOV P2, #OFBH</p><p> MOV P2, #0FFH</p><p> AJMP MAIN</p><p> DELAY1: MOV R6, #02H</p><p> AGAIN: MOV R7, #8FH</p><p&g
42、t; DELAY: DJNZ R7, DELAY</p><p> DJNZ R6, AGAIN</p><p><b> RET</b></p><p><b> END</b></p><p> 結果數碼管正確顯示了0、1、2這三個數,顯示系統調試成功。</p
43、><p> 軟件測試要注意一下幾點:</p><p> 1.在編寫I2C串行歸一化存儲子程序時本來出了點錯,后經過多次調試才運行正確。</p><p> 2.里程/速度控制程序是系統程序的重點,所以它當然也是軟件調試的重點。</p><p> 3.顯示系統最好先調試。</p><p> 4.用韋幅軟件進行仿真時要
44、充分利用其逐步調試功能。</p><p><b> 8 結 論</b></p><p> 本設計能自動顯示自行車行駛的總里程數及行車速度,具有超速信響報警提醒以及里程數據自動記憶的功能,也可應用于電動自行車、摩托車、汽車等機動車的儀表上。由于本系統采用的是動態(tài)掃描LED顯示且共陰數碼管的驅動電流不是很大,所以數碼管的顯示不是特別亮。但可以通過更換小點的電阻增大其
45、驅動電流(最大驅動電流不能超過20毫安)使數碼管變得更亮。</p><p><b> 致謝</b></p><p> 首先,我要感謝XX老師在本次畢業(yè)設計中,X老師不厭其煩的指導我,在整個畢業(yè)設計制作過程中,使得我在單片機方面的技能得到了進一步提高。X老師給予了全程的幫作、鼓勵與指導,在此我表示衷心的感謝!同時感謝XX老師在各方面給予的幫助,使我能夠有一個良好的環(huán)
46、境,在做此課程設計時X老師還為我免費提供仿真器等器材,為我更好的完成本系統的設計提供了先決條件。</p><p> 另外,我還要感謝我的父母,沒有他們的支持,我是無法完成這個系統設計的,他們給予我的,我將來一定會努力回報他們的。</p><p> 最后,我還要感謝我身邊的同學、朋友,他們也給了我很大的幫助。</p><p><b> 參考文獻<
47、/b></p><p> [1] 李玉峰、倪虹霞. MCS-51系列單片機原理與接口技術. 第一版. 北京:</p><p> 人民郵電出版社. 2004</p><p> [2] 周興華. 手把手教你學單片機. 第一版.北京:北京航空航天大學出版社. 2005</p><p> [3] 曾一江. 單片微機原理與
48、接口技術. 第一版.北京:科學出版社. 2006</p><p> [4] 張俊謨. 單片機中級教程—原理與應用. 第二版. 北京:北京航空航天大學出版社. 2006. P1-11</p><p> [5] 張友德 、趙志英、涂時亮. 單片機微型機原理、應用與實驗.第五版.上海:復旦大學出版社. 2006. P24-27</p><p> [
49、6] 呂泉. 現代傳感器原理及應用. 第一版. 北京:清華大學出版社. 2006.</p><p><b> P1-5</b></p><p> [7] 張毅剛、彭喜元. 單片機原理與應用設計. 第一版. 哈爾濱:哈爾濱工業(yè)大學. </p><p> [8] 謝自美.電子線路設計.實驗.測試[M].武漢:華中科技大學出版社,200
50、0</p><p> [9] 曲家駭,王季秩 ,伺服控制系統中的傳感器</p><p> [10] 鄔寬民.單片機外圍器件實用手冊,數據傳輸接口器件分冊.北京.北京航空航天大學出版社.2001:189-195</p><p> [11] 王貴悅,新編傳感器實用手冊.水利電力出版社.2002:67-89</p><p> [12] 《
51、自行車電子里程表的初步設計》 刁文興 南京工業(yè)職業(yè)技術學院 后勤總公司 江蘇 南京 </p><p> [13] 《數字式汽車里程表的設計》 諸德宏, 潘天紅, 朱湘臨 江蘇大學電氣信息工程學院 , 江蘇 鎮(zhèn)江 </p><p> [14] 《電子車速里程表的單片機實現方案》王鎖弘, 威海雙豐電子傳感有限公司 山東 威海 </p><
52、p> [15] 張福學。傳感器使用電路150例.中國技術出版社[M].1992年</p><p> [16] 《Embedded Microcontrollers and Processor Design》,嵌入式微控制器與處理器設計,Greg Osborn,機械工業(yè)出版社</p><p> [17] Altium Designer (Protel),機械工業(yè)出版社</p
53、><p> [18] Programming 8-bit PIC Microcontrollers in C with Interactive Hardware Simulation, 8位單片機C語言編程:基于PIC16 ,Martin P. Bates,人民郵電出版社</p><p> 附錄: 系統完整源程序</p><p> 以下是控制系統完整源程序<
54、/p><p><b> ;</b></p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p> ;; SPEED/MILE OR IKE PROGRAM ;;</p><
55、p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p><b> ;</b></p><p><b> ;</b></p><p> ; 60H,61H,62H作里程計數單
56、元,6CH,6DH作T1計數擴充單元,</p><p> ; 68H,69H,6AH,6BH存放自行車每圈時間數,70H,71H,72H,73H</p><p> ; 作顯示BCD碼存放數用,11H—15H存放被除數,16H-19H存放除數</p><p><b> ;</b></p><p&g
57、t;<b> ;</b></p><p><b> ; 定義</b></p><p> VSDA EQU P1.5 ; EEPROM數據傳送口</p><p> VSCL EQU P1.4 ; EEPROM時鐘傳送口</p><p> SLA
58、 EQU 50H ; EEPROM器件尋址字節(jié)存放單元</p><p> NUMBYT EQU 51H ; EEPROM傳送字節(jié)數存放單元</p><p> MTD EQU 30H ; EEPROM發(fā)送數據緩沖單元</p><p> MRD EQU 40H ; EEPROM讀
59、出數據存放單元</p><p> SLAW EQU 0A0H ; EEPROM尋址字節(jié)寫</p><p> SLAR EQU 0A1H ; EEPROM尋址字節(jié)讀</p><p> DPHH EQU 62H ; DPTR計數擴展高8位</p><p> TH1H EQ
60、U 6CH ; 定時器T1擴展高8位</p><p> TH1HH EQU 6DH ; 定時器T1擴展高8-16位</p><p><b> ;</b></p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p&g
61、t; ;; PRO GRAM INPUT ;;</p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p> ORG 0000H;程序執(zhí)行開始地址</p><p> LJMP START;跳至START</p><p> ORG
62、 0003H;外中斷0中斷程序入口</p><p> LJMP INTEX0;跳至INTEX0中斷服務程序</p><p> ORG 000BH;定時器T0中斷程序入口</p><p> RETI ;中斷返回</p><p> ORG 0013H;外中斷1中斷入口&l
63、t;/p><p> LJMP INTEX1; 跳至INTEX1中斷服務程序</p><p> ORG 001BH; 定時器T1中斷程序入口</p><p> LJMP INTT1; 跳至INTT1中斷服務程序</p><p> ORG 0023H;串口中斷入口地址</p>
64、<p> RETI ;中斷返回</p><p> ORG 002BH;定時器T2中斷入口地址</p><p> RETI ;中斷返回</p><p><b> ;</b></p><p><b> ;</b></p>&
65、lt;p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p> ;; PROGRAM CLEAR ;;</p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p><b> ;上電初始化程序</b></p>
66、<p> CLEARMEN: MOV TMOD, #90H ;T1為16位外部控制定時器</p><p> MOV SP, #75H ;堆棧在75H開始</p><p> SETB PX0 ;外中斷0優(yōu)先級為1</p><p> SETB IT0
67、 ;外中斷0用邊沿觸發(fā)</p><p> SETB IT1 ;外中斷1用邊沿觸發(fā)</p><p> MOV 20H, A ;清內存中特定單元</p><p> MOV 6CH, A ;</p><p> MOV 6DH, A
68、 ;</p><p> MOV 70H, A ;</p><p> MOV 71H, A ;</p><p> MOV 72H, A ;</p><p> MOV 73H, A ;</p><p
69、> MOV 60H, A ;</p><p> MOV 61H, A ;</p><p> MOV 62H, A ;</p><p> MOV 63H, A ; 清內存中特定單元</p><p> DEC
70、A ;A為#0FFH</p><p> MOV 68H, A ;內存置數據#0FFH</p><p> MOV 69H, A ;內存置數據#0FFH</p><p> MOV 6AH, A ;內存置數據#0FFH</p><p&g
71、t; MOV 6BH, A ;內存置數據#0FFH</p><p> MOV P1, A ;P1口置1</p><p> CLEAR1: JB P1.2, KEY1 ;根據P1.2,P1.3,P1.6,P1.7設置狀態(tài)</p><p> ; 在21地址單元賦自行車周長值&
72、lt;/p><p> MOV 21H, #0FH ; 22寸自行車周長值</p><p> LJMP CLEAR2 ; 轉CLEAR2</p><p> KEY1: JB P1.3, KEY2 ;</p><p> MOV 21H, #12H
73、 ; 24寸自行車周長值</p><p> LJMP CLEAR2 ; CLEAR2</p><p> KEY2: JB P1.6, KEY3 ;</p><p> MOV 21H, #14H ; 26寸自行車周長值</p><p> LJMP
74、 CLEAR2 ; 轉CLEAR2</p><p> KEY3: JB P1.7, ERR ; 四個開關都沒合上,轉出錯處理</p><p> MOV 21H, #19H ; 28寸自行車周長值</p><p> CLEAR2: SETB TR1
75、 ; 開定時器T1</p><p> SETB EA ; 開中斷允許</p><p> SETB EX0 ; 開外中斷0</p><p> SETB ET1 ; 開定時中斷T1</p><p> SETB P3.
76、1 ; 關報警器</p><p> LCALL VIICREAD ; 將EEPROM中原里程數據調入</p><p><b> 內存</b></p><p> RET ; 子程序返回</p><p> ERR: CPL
77、 P3.1 ; 輪周長設置出錯,LED燈閃提醒</p><p> ALL DL5S ; 延時</p><p> LJMP CLEAR1 ; 重新初始化,等待輪周長設置開關合上 </p><p><b> ;</b></p><p&g
78、t; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p> ;; PROGRAM START ;;</p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p><b> ;</b></p><p> S
79、TART: LCALL CLEARMEN ; 上電初始化</p><p> START1: JB P3.0, DISPLAYS ; P3.0=1,顯示里程</p><p> LCALL DISPLAYV ; 顯示速度</p><p> START2: SJMP
80、 START1 ; 轉START1循環(huán)</p><p><b> ;</b></p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p> ;; INTEX0 PROGRAM ;;</p><p> ;;;;;;;;;;;
81、;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p> ; 里程計數程序,用外中斷0實現,計數用60H-62H內存單元。</p><p> INTEX0: PUSH ACC ; 累加器堆棧保護</p><p> PUSH PSW ; 狀態(tài)字堆棧保護&l
82、t;/p><p> INC 60H ; 圈加1</p><p> CLR A ; 清A</p><p> CJNE A, 60H, INTEX0OUT ; 計數沒溢出轉INTEX0OUT</p><p> INC 61H
83、 ; 溢出進位(61H加1)</p><p> CJNE A, 61H, INTEX0OUT ; 計數沒溢出轉INTEX0OUT</p><p> INC 62H ; 溢出進位(62H加1)</p><p> INTEX0OUT: LCALL VIICWRITE ; 里程數據存入EEP
84、ROM</p><p> SETB EX1 ; 開外中斷1</p><p> POP PSW ; 狀態(tài)字恢復</p><p> POP ACC ; 累加器恢復</p><p> RETI ;
85、中斷返回</p><p><b> ;</b></p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p> ;; INTEX1 PROGRAM ;;</p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
86、;;;;</p><p> ; 每轉1圈時間計數處理程序,每圈時間放在68H-6BH單元中。</p><p> INTEX1: PUSH ACC ; 堆棧保護</p><p> PUSH PSW ;</p><p> CLR EX1
87、 ; 關外中斷1</p><p> JNB 00H, INTEX11 ; 溢出標志為0轉INTEX11</p><p> MOV TL1, #0FFH ; 溢出時計時單元賦#0FFH(顯示速度為零)</p><p> MOV TH1, #0FFH ;</p><p&
88、gt; MOV 6CH, #0FFH ;</p><p> MOV 6DH, #0FFH ;</p><p> INTEX11: MOV 68H, TL1 ; 將時間計數值移入暫存單元68H-6BH</p><p> MOV 69H, TH1 ;</p>
89、;<p> MOV 6AH, 6CH ;</p><p> MOV 6BH, 6DH ;</p><p> CLR A ; 清A</p><p> MOV TL1, A ; 計時單元置0</p><p>
90、 MOV TH1, A ;</p><p> MOV 6CH, A ;</p><p> MOV 6DH, A ;</p><p> CLR 00H ; 清溢出標志</p><p> POP PSW
91、 ; 堆棧恢復</p><p> POP ACC ;</p><p> RETI ; 中斷返回</p><p><b> ;</b></p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
92、;;;;;;;;;;;;;;</p><p> ;; INTT1 PROGRAM ;;</p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p><b> ;</b></p><p> ; T1計數器中斷服務程序。(計數器T1由外中斷1輸入控制
93、,當為高電平時計時開始)</p><p> INTT1: PUSH ACC ; 堆棧保護</p><p> PUSH PSW ;</p><p> INC 6CH ; 6CH計時單元加1</p><p> MOV A, 6
94、CH ; 移入A</p><p> JNZ INTT11 ; 不等于0轉INTT11</p><p> INC 6DH ; 進位,6DH單元加1</p><p> MOV A, 6DH ; 移入A</p><p> JNZ INT
95、T11 ; 不等于0轉INTT11</p><p> SETB 00H ; 計時器溢出,置溢出標志</p><p> INTT11: POP PSW ; 恢復堆棧</p><p> POP ACC ;</p><p>
96、 RETI ; 中斷返回</p><p><b> ;</b></p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p> ;; DISPLAY S ;;</p><p> ;;;;;;;;;;;;;;;;;;;;;;;;
97、;;;;;;;;;;;</p><p><b> ;</b></p><p><b> ;里程顯示控制程序</b></p><p> DISPLAYS: SETB P1.0 ; 點亮LED1(顯示里程狀態(tài))</p><p> CLR P1.1
98、 ; 關閉速度指示燈</p><p> SETB P3.7 ; 顯示小數點(最小顯示為0.1公里)</p><p> LCALL SSS ; 將圈數轉為公里數</p><p> LCALL DISPLAY ; 顯示公里數據</p><p>
99、 LJMP START1 ; 跳回START1</p><p><b> ;</b></p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p> ;; DISPLAY V ;;</p><p> ;;;;;;;;;;;;;;;;;;;;;
100、;;;;;;;;;;;;</p><p><b> ;速度顯示控制程序</b></p><p> DISPLAYV: CLR P1.0 ; 關閉LED1(里程)燈</p><p> SETB P1.1 ; 點亮LED2(顯示時速狀態(tài))</p><p>
101、 CLR P3.7 ; 關小數點顯示</p><p> LCALL VVV ; 每圈時間換算為公里/小時程序</p><p> MOV A, 71H ; 將十位數(BCD碼)值移入A</p><p> SUBB A, #04H ; 與預定報警值比較</p>
102、<p> JNC WARING ; 時速超過40時報警</p><p> SETB P3.1 ; 關報警燈</p><p> V1: LCALL DISPLAY ; 顯亮一次(為了改善閃爍)</p><p> RET ; 子程序返
103、回</p><p> WARING: CLR P3.1 ; 報警燈LED3點亮(并嗚叫)</p><p> AJMP V1 ; 轉V1退出</p><p><b> ;</b></p><p> ;;;;;;;;;;;;;;;;;;;;;;;
104、;;;;;;;;;;;;;</p><p> ;; VIIC WRITE ;;</p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p> ;歸一化EEPROM存入程序(12M時鐘),存入數在50H起單元</p><p> VIICWRITE: ACALL WMOV
105、9</p><p> MOV SLA, #SLAW</p><p> MOV NUMBYT, #09H</p><p> LCALL WRNBYT</p><p><b> RET</b></p><p> WMOV9: MOV 5FH, #50
106、H</p><p> MOV R0, #MTD</p><p> MOV R1, #5FH</p><p> MOV R2, #09H</p><p> WMOV: MOV A, @R1</p><p> MOV @R0, A</p>&l
107、t;p> INC R0</p><p> INC R1</p><p> DJNZ R2, WMOV</p><p><b> RET</b></p><p><b> ;</b></p><p> ;;;;;;;;;;;;;;;
108、;;;;;;;;;;;;;;;;;;;;;</p><p> ;; VIICRE AD ;;</p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p> ; 歸一化EEPROM讀出程序(12M時鐘),讀出數放入60H-67H單元</p><p> VIICREAD:
109、 MOV MTD, #50H </p><p> MOV SLA, #SLAW</p><p> MOV NUMBYT, #01H</p><p> LCALL WRNBYT</p><p> MOV SLA, #SLAR</p><p> MOV NUMB
110、YT, #08H</p><p> LCALL RDNBYT</p><p> ACALL RMOV8</p><p><b> RET</b></p><p> RMOV8: MOV R0, #MRD</p><p> MOV R1, #60H&l
111、t;/p><p> MOV R2, #08H</p><p> RMOV: MOV A, @R0</p><p> MOV @R1, A</p><p> INC R0</p><p> INC R1</p><p> DJNZ
112、 R2, RMOV</p><p><b> RET</b></p><p><b> ;</b></p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p> ;; VIIC PROGRAM ;;</p
113、><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p> ; I2C串行歸一化存儲子程序</p><p> STA: SETB VSDA</p><p> SETB VSCL</p><p><b> NOP
114、</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p> CLR VSDA</p><p><b> NOP</
115、b></p><p> CLR VSDA</p><p><b> NOP</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p><b> NOP</b>
116、</p><p> CLR VSCL</p><p><b> RET</b></p><p> STOP: CLR VSDA</p><p> SETB VSCL</p><p><b> NOP</b></p>
117、;<p><b> NOP</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p> SETB VSDA</p><p><b> NOP</b></p>&l
118、t;p><b> NOP</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p> CLR VSDA</p><p> CLR VSCL</p><p><b>
119、; RET</b></p><p> MACK: CLR VSDA</p><p> SETB VSCL</p><p><b> NOP</b></p><p><b> NOP</b></p><p><b>
120、 NOP</b></p><p><b> NOP</b></p><p> CLR VSCL</p><p> SETB VSDA</p><p><b> RET</b></p><p> MNACK: SETB
121、VSDA</p><p> SETB VSCL</p><p><b> NOP</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p><b> NOP</b>&
122、lt;/p><p> CLR VSCL</p><p> CLR VSDA</p><p><b> RET</b></p><p> CACK: SETB VSDA</p><p> SETB VSCL</p><p>
123、 CLR F0</p><p> MOV C, VSDA</p><p> JNC CEND</p><p> SETB F0</p><p> CEND: CLR VSCL</p><p><b> RET</b></p&g
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 自行車里程速度計的設計 畢業(yè)論文
- 自行車里程速度計的設計畢業(yè)論文
- 畢業(yè)論文自行車里程_速度計的設計
- 自行車里程速度計的設計
- 自行車里程及速度計課程設計
- 自行車里程速度計設計-單片機自動控制畢業(yè)論文
- 自行車行程速度畢業(yè)設計--基于單片機的自行車里程速度計設計
- 畢業(yè)設計(論文)-基于單片機的自行車里程速度計的設計
- 畢業(yè)設計(論文)_基于單片機的自行車里程速度計的設計
- 畢業(yè)設計(論文)-基于單片機的自行車里程速度計的設計
- 單片機課程設計-自行車里程計速度計
- 單片機課程設計-自行車里程計速度計
- 自行車里程表設計【畢業(yè)論文】
- 畢業(yè)論文--自行車里程表的設計
- 課程設計---自行車用速度計
- 自行車里程表設計【畢業(yè)論文+文獻綜述+開題報告】
- 基于單片機的自行車里程_速度表設計-職業(yè)學院畢業(yè)論文
- 單片機自行車速度里程計論文
- 單片機自行車速度里程計論文
- 畢業(yè)設計--基于單片機的自行車里程速度表
評論
0/150
提交評論