自行車?yán)锍趟俣扔嫷脑O(shè)計畢業(yè)論文_第1頁
自行車?yán)锍趟俣扔嫷脑O(shè)計畢業(yè)論文_第2頁
自行車?yán)锍趟俣扔嫷脑O(shè)計畢業(yè)論文_第3頁
自行車?yán)锍趟俣扔嫷脑O(shè)計畢業(yè)論文_第4頁
自行車?yán)锍趟俣扔嫷脑O(shè)計畢業(yè)論文_第5頁
已閱讀5頁,還剩34頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、自行車?yán)锍?速度計的設(shè)計 1自行車?yán)锍?速度計的設(shè)計摘要摘要:本文介紹了用 89C52 單片機設(shè)計自行車?yán)锍?速度計,運用單片機的運算和控制功能,并采用數(shù)碼管實時顯示所測速度和里程的速度里程計設(shè)計方案,用分頻器 TC4024 實現(xiàn)二分頻,用來探討 24C01 傳感器的用途,通過實用電路的設(shè)計來掌握速度及里程傳感器的使用方法及一些性能參數(shù)。本系統(tǒng)含了電子電路技術(shù),以及常用的 AT89C52 單片機工作原理,通過本系統(tǒng)的設(shè)計,把它們倆者有機結(jié)合。關(guān)鍵詞關(guān)鍵詞:AT89C52 數(shù)碼管 TC4024 24C01 傳感器 The Odometer/Speedometers Design Of The B

2、ikeAbstract: This article introduced used the Micro Computer Unit of the AT89C52 design The Odometer/Speedometers Of The Bike, it utilizes Micro Computer Units operation and control function, and it uses the nixietube real time display to measure the speed and the course speed hodometer design propo

3、sal, it realizes two frequency divisions with the frequency divider of TC4024,it uses for to discuss the 24C01 sensors use, through the practical electric circuits design it grasps the odometer/speedometers application method and some performance parameter。This system contains the electronic circuit

4、 technology, as well as the commonly used AT89C52 Micro Computer Units work principle, through this systems design, which pairs them organic union。Keywords: AT89C52 Nixietube TC4024 24C01 sensor自行車?yán)锍?速度計的設(shè)計 2目 錄1 緒 論.32 AT89C52 單片機.42.1 AT89C52 單片機簡介 .42.2 AT89C52 的管腳及其含義 .43 TC4024.64 24C01 芯片.64.1

5、 24C01 簡介.64.2 24C01 的特性:.75 硬件電路的設(shè)計.85.1 系統(tǒng)硬件電路 .85.2 系統(tǒng)的工作原理.86 軟件設(shè)計.96.1 系統(tǒng)內(nèi)存的規(guī)劃.96.2 系統(tǒng)的主要程序設(shè)計.97 系統(tǒng)調(diào)試.117.1 硬件調(diào)試 .117.2 軟件調(diào)試.128 結(jié) 論.14致謝.15附錄: 系統(tǒng)完整源程序.17自行車?yán)锍?速度計的設(shè)計 31 1 緒 論傳感器,英文名字為 Sensor 或 Transducer,亦稱換能器、變換器。在科技迅速發(fā)展的今天,傳感器越來倍受重視。在日常生活、航天、航空,常規(guī)武器、交通運輸,機械制造、化工、生物醫(yī)學(xué)工程、自動化檢測工程及計量等各項領(lǐng)域都被廣泛應(yīng)用6

6、。目前,傳感器已向新材料開發(fā),集成化、智能化、數(shù)字化、新工藝,高精度化及高穩(wěn)定、高可靠化等技術(shù)發(fā)展。特別是霍爾傳感器,鑒于它的價廉、易于使用,使它廣泛運用于里程計、速度計等6。單片微型計算機簡稱單片機,又稱微控制器,特別適用于控制領(lǐng)域。通常單片機由單塊集成電路構(gòu)成,內(nèi)部包含有計算機的基本部件:CPU(中央處理器) ,存儲器和 I/O 接口電路等。因此,單片機只需要與適當(dāng)?shù)能浖巴獠吭O(shè)備相結(jié)合,便可以成為一個單片機控制系統(tǒng)4。目前,場上銷售的單片機有 4 位、8、16 位、32 位,并且單片機朝著高性能多種方向發(fā)展,尤其是 8 位單片機以經(jīng)成為當(dāng)前單片機的主流,主要體現(xiàn)在 CPU功能增強、內(nèi)部資

7、源增多、引腳的功能化、低電壓和低功好耗化上4。單片機因為其體積小、功能強,可靠性高,靈活方便等優(yōu)點,所以可以用于各個領(lǐng)域,對各行各業(yè)的技術(shù)改造和產(chǎn)品更新?lián)Q代起到重要的推動作用。本人經(jīng)過學(xué)習(xí),用 AT89C52 設(shè)計了一個自行車?yán)锍?速度計。本設(shè)計可輪流顯示自行車行使的里程和速度, 采用 TC4024 芯片作為計數(shù)器以及 2C401 存儲數(shù)據(jù),3 個單級共陰數(shù)碼管作為顯示系統(tǒng)。本系統(tǒng)具有超速信響提醒功能,里程數(shù)據(jù)自動記憶,也可應(yīng)用于電動自行車、摩托車、汽車等機動車儀表上。.自行車?yán)锍?速度計的設(shè)計 42 AT89C52 單片機2.12.1 AT89C52 單片機簡介本設(shè)計選用 AT89C52 單

8、片機,AT89C52 是一種低功耗、高性能 CMOS 8 位微控制器。使用 Atmel 公司高密度非易失性存儲器技術(shù)制造,可與工業(yè) AT89C51 產(chǎn)品指令和引腳完全兼容。2.22.2 AT89C52 的管腳及其含義5AT89C52 的管腳及各管腳含義如下: 圖 2.2 89C52 管腳圖各引腳功能說明:VCC電源電壓;GND接地; P0 口P0 口是一組 8 位漏極開路型雙向 I/O 口,也即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時,每位能吸收電流的方式驅(qū)動 8 個 TTL 邏輯門電路,對端口 P0寫“1”時,可作為高阻抗輸入端用; 自行車?yán)锍?速度計的設(shè)計 5在訪問外部數(shù)據(jù)存儲器或程序存儲器時

9、,這組口線分時轉(zhuǎn)換地址(低 8 位)和數(shù)據(jù)總線復(fù)用,在訪問期間激活內(nèi)部上拉電阻; 在 FLASH 編程時,P0 口接收指令字節(jié),而在程序校驗時,輸出指令字節(jié),校驗時,要求外接上拉電阻; P1 口P1 口是一個帶內(nèi)部上拉電阻的 8 位雙向 I/O 口,P1 的輸出緩沖級可驅(qū)動(吸收或輸出電流)4 個 TTL 邏輯門電路。對端口寫“1” ,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸出口。作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流; 與 AT89C51 不同之處是,P1.0 和 P1.1 還可分別作為定時/計數(shù)器 2 的外部計數(shù)輸入(P1.0/T2)和輸入(P1

10、.1/T2EX) ; FLASH 編程和程序校驗期間,P1 接收低 8 位地址; P1.0 和 P1.1 的第二功能:P1.0 T2(定時/計數(shù)器 2 外部計數(shù)脈沖輸入),時鐘輸出 ;P1.1 T2EX(定時/計數(shù) 2 捕獲/重裝載觸發(fā)和方向控制); P2 口P2 是一個帶內(nèi)部上拉電阻的 8 位雙向 I/O 口,P2 的輸出緩沖級可驅(qū)動(吸收或輸出電流)4 個 TTL 邏輯門電路。對端口 P2 寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口,作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流; 在訪問外部程序存儲器或 16 位地址的外部數(shù)據(jù)存儲器時,P2

11、 口送出高 8 位地址數(shù)據(jù)。在訪問 8 位地址的外部數(shù)據(jù)存儲器時,P2 口輸出 P2 鎖存器的內(nèi)容; FLASH 編程或校驗時,P2 亦接收高位地址和一些控制信號; P3 口P3 口是一組帶有內(nèi)部上拉電阻的 8 位雙向 I/O 口。P3 口輸出緩沖級可驅(qū)動(吸收或輸出電流)4 個 TTL 邏輯門電路。對 P3 口寫入“1”時,它們被內(nèi)部上拉電阻拉高并可作為輸入端口。此時,被外部拉低的 P3 口將用上拉電阻輸出電流; P3 口除了作為一般的 I/O 口線外,更重要的用途是它的第二功能:P3.0 RXD(串行輸入口) 自行車?yán)锍?速度計的設(shè)計 6P3.1 TXD(串行輸出口) P3.2 INTO(

12、外中斷 0) P3.3 INT1(外中斷 1) P3.4 TO(定時/計數(shù)器 0) P3.5 T1(定時/計數(shù)器 1) P3.6 WR(外部數(shù)據(jù)存儲器寫選通) P3.7 RD(外部數(shù)據(jù)存儲器讀選通) 此外,P3 口還接收一些用于 FLASH 閃存編程和程序校驗的控制信號; RST復(fù)位輸入。當(dāng)振蕩器工作時,RST 引腳出現(xiàn)兩個機器周期以上高電平將是單片機復(fù)位; ALE/PROG當(dāng)訪問外部程存儲器或數(shù)據(jù)存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低 8 位字節(jié)。一般情況下,ALE 仍以時鐘振蕩頻率的 1/6輸出固定的脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當(dāng)訪問外部數(shù)

13、據(jù)存儲器時將跳過一個 ALE 脈沖; 對 FLASH 存儲器編程期間,該引腳還用于輸入編程脈沖(PROG); EA 端為高電平(接 Vcc端),CPU 則執(zhí)行內(nèi)部程序存儲器的指令。3 TC4024 本程序采用 TC4024 芯片,它是一個 7 位的計數(shù)器,計數(shù)器具有分頻的作用,它包含有 14 個管腳,其 7 腳接地,14 腳接+5V,1 腳接 AT89C52 的 INT0,即12 腳,在系統(tǒng)中此芯片起到了二分頻的作用。4 24C01 芯片4.14.1 24C01 簡介 24C01 是一個 1K 位串行 CMOS EEPROM,內(nèi)部含有 128 個 8 位字節(jié),CATALYST 的先進 CMOS

14、 技術(shù)實際上減少了器件的功耗,24C01 是一個 8 位字節(jié)頁寫緩沖器,該器件通過 I2C 總線接口進行操作,即此芯片采用 I2C 協(xié)議進行自行車?yán)锍?速度計的設(shè)計 7讀寫數(shù)據(jù)。有一個專門的寫保護功能。24C01 是 I2C 接口的,但標(biāo)準(zhǔn) 51 是不帶 I2C 接口的,串口方式 0 是不行的,需要用 IO 模擬,所以隨便接兩個 IO 都可以,而且都要接上拉電阻,大概幾 K就行了,因為不是總線方式,所以不能用 MOV 指令,也不能用 SBUF,要判斷是否為滿,可以在程序里設(shè)個變量。在這里要注意 E2P 芯片的壽命(一般是讀寫 100 萬次,足夠了) 。 存儲數(shù)據(jù)的時候,可以對操作數(shù)和存儲的數(shù)據(jù)

15、進行比較,不相等則存儲,這樣可以增加使用壽命,比有些每隔 1 秒鐘進行存儲的會好多了。以下是 24C01 的管腳圖:圖 4.1 管腳圖表 3.1 24C01 的管腳描述管腳名稱功能A0、A1、A2器件地址選擇SDA串行數(shù)據(jù)/地址SCL串行時鐘WP寫保護VCC+1.8V6.0V 工作電壓VSS接地4.24.2 24C01 的特性:24C01 芯片具有以下特性:1. 與 400KHZ 的 I2C 總線兼容;自行車?yán)锍?速度計的設(shè)計 82. +1.8-6.0V 工作電壓范圍;3. 低功耗 CMOS 技術(shù);4. 寫保護功能:當(dāng) WP 為高電平時進入寫保護狀態(tài);5. 頁寫緩沖器;6. 自定時擦寫周期;7

16、. 1,000,000 編程擦除/周期;8. 可保存數(shù)據(jù) 100 年;9. 8 腳 DIP、SOIC、TSSOP 封裝;10 溫度范圍:商業(yè)級、工業(yè)級和汽車級。5 硬件電路的設(shè)計5.15.1 系統(tǒng)硬件電路 自行車?yán)锍?速度計能自動顯示自行車行駛的總里程數(shù)及行車速度,具有超速信響提醒功能,里程數(shù)據(jù)自動記憶,也可應(yīng)用于電動自行車、摩托車、汽車等機動車儀表上。其硬件電路原理圖如圖 5.1。圖 5.1 系統(tǒng)原理圖自行車?yán)锍?速度計的設(shè)計 95.25.2 系統(tǒng)的工作原理本設(shè)計能實時地將所測的速度與累計里程數(shù)顯示出來,主要是將 24C01 傳感器輸入到單片機的脈沖信號,將頻率實時地測量出來,然后通過單片機

17、計算出速度和里程,再將所得的數(shù)據(jù)存儲到 TC4024 芯片中,通過 AT89C52 單片機計算出來的速度和里程的數(shù)據(jù),必須通過 BCD 碼的轉(zhuǎn)換才能輸出給數(shù)碼管。最后由共陰數(shù)碼管顯示所測速度與里程。 自行車?yán)锍?速度計采用 AT89C52 單片機作控制,速度及里程傳感器采用霍爾元件,其電器原理圖如圖 5.1 所示。P0 口和 P2 口用于七段 LED 顯示器的段碼及掃描輸出,在顯示里程時,第三位小數(shù)點用 17 腳 P3.7 口控制點亮。P1.0 和P1.1 口分別用于顯示里程狀態(tài)和速度狀態(tài)。P1.2、 P1.3、 P1.6 和 P1.7 口分別用于設(shè)置輪圈的大小。P3.0 口的開關(guān)用于確定顯示

18、的方式,當(dāng)開關(guān)閉合時,顯示速度;打開時顯示里程。第 12 腳外中斷 0 用于對輪子圈數(shù)的計數(shù)輸入,輪子每轉(zhuǎn)一圈,霍爾傳感器輸出一個地電平脈沖。第 13 腳外中斷 1 用于控制定時器T1 的啟停,當(dāng)輸入為 0 時關(guān)閉定時器。此控制信號是將輪子圈數(shù)的計數(shù)脈沖經(jīng)二分頻后形成(見圖 5.1) ,這樣,每次定時器 T1 的開啟時間剛好為轉(zhuǎn)一圈的時間。根據(jù)輪子的周長就可以計算出自行車的速度。P1.4 和 P1.5 口用于 EEPROM 存儲器 24C01 的存取控制。11 腳輸出用于速度超速時的報警。6 軟件設(shè)計6.16.1 系統(tǒng)內(nèi)存的規(guī)劃 由于本系統(tǒng)處理功能較多,因而一部分內(nèi)存單元用于特定的用處。其主要

19、內(nèi)存單元用處如下:50H:EEPROM 器件尋址字節(jié)存放單元;51H:EEPROM 傳送字節(jié)數(shù)存放單元;30H:EEPROM 發(fā)送數(shù)據(jù)緩沖單元;40H:EEPROM 讀出數(shù)據(jù)存放單元;0A0H:EEPROM 尋址字節(jié)字節(jié)寫;自行車?yán)锍?速度計的設(shè)計 100A1H:EEPROM 尋址字節(jié)字節(jié)讀;62 H:DPTR 計數(shù)器擴展高 8 位;6C H:定時器 T1 計數(shù)器擴展高 8 位;6D H:定時器 T1 計數(shù)器擴展高 816 位;60 H、61 H、62 H:里程計數(shù)單元;68 H、69 H、6A H、6B H:存放自行車每圈時間數(shù);70 H、71 H、72 H、73 H:顯示 BCD 碼數(shù)據(jù)存

20、放用;11 H15 H:存放被除數(shù);16 H19 H:存放除數(shù)。 6.26.2 系統(tǒng)的主要程序設(shè)計 1. 初始化程序在本系統(tǒng)初始化程序中,主要完成以下工作:將 T1 設(shè)為外部控制定時器方式;外中斷 0 及外中斷 1 設(shè)為邊沿觸發(fā)方式;將部分內(nèi)存單元清零;設(shè)置輪子 周長值;開中斷及定時器;將 EEPROM 中的數(shù)據(jù)調(diào)入內(nèi)存等。 2. 輪圈設(shè)置出錯處理程序 P1.2、 P1.3、 P1.6、P1.7 端口的開關(guān)用于設(shè)定輪子的周長,當(dāng)沒有設(shè)定時(至少讓一個開關(guān)閉合) ,能從 P3.1 口輸出一個周期為 0.5S 的方波信號,用作發(fā)光管閃爍及信響器提醒。3. 主程序主程序根據(jù) P3.0 的開關(guān)狀態(tài)選擇

21、里程或速度顯示,其流程圖如圖 6.2 所示。自行車?yán)锍?速度計的設(shè)計 11圖 6.2 主程序流程圖4.里程計數(shù)程序(外中斷 0 服務(wù)程序) 外中斷 0 服務(wù)程序用于對 12 腳輸入的圈脈沖進行計數(shù),為十六進制計數(shù)器。60H 為低位,62H 為高位。每計數(shù)一次后,對里程數(shù)據(jù)進行一次存儲操作。5.外中斷 1 服務(wù)程序外中斷 1 服務(wù)程序用于處理輪子轉(zhuǎn)動一圈后計時數(shù)據(jù)。當(dāng)標(biāo)志位(00H)為 1 時,說明計數(shù)器溢出,放入最大時間值(為#0FFH);當(dāng)標(biāo)志位為 0 時,將計數(shù)單元(TL1、TH1、6CH、6DH)的值放入 68H6BH 單元。6.EEPROM 存取程序本系統(tǒng)使用歸一化 I2C 串口存取子

22、程序,使用一條數(shù)據(jù)線和時鐘線,采用 ATMEL 公司的 24C01 串口存儲器,應(yīng)用簡單方便。7.顯示子程序自行車?yán)锍?速度計的設(shè)計 12當(dāng)顯示里程時,先要將圈數(shù)計數(shù)器中的數(shù)據(jù)進行運算,求出總里程。當(dāng)要 顯示速度時,要將輪子的這周長和轉(zhuǎn)一圈的時間數(shù)相除,然后換算成 Km/h 單位。最后放入 70H73H,進行數(shù)據(jù)顯示。7 系統(tǒng)調(diào)試 要完成一個產(chǎn)品的設(shè)計,有很多紛繁復(fù)雜的步驟和過程,其中最為重要和最為關(guān)鍵的就是系統(tǒng)調(diào)試。調(diào)試的步驟和方法有很多。本人也看過不少,在這次系統(tǒng)調(diào)試的中調(diào)試的過程我充分的發(fā)揮了仿真器的作用。7.1 硬件調(diào)試 硬件的焊接是一個比較繁瑣的過程,繁瑣的地方在于 3 個單聯(lián)數(shù)碼管

23、的連接,線路較多,在焊接時要特別的細(xì)心,在焊接完成并燒入程序之后通電發(fā)現(xiàn)數(shù)碼管不亮,檢查了好幾遍,電路無焊沒有錯誤,于是我就懷疑可能是數(shù)碼管的問題,拿去貝爾(學(xué)院的社團)測試沒問題,數(shù)碼管并沒有燒壞。在插入芯片時要特別注意不能把芯片插反,否則就會把芯片燒掉;也要 注意極性電容的方向,長的腳為正,短的為負(fù),不能把負(fù)的接+5V,正的接地;在焊接三極管時也要注意其三個管腳的排布,還有為保護三極管不被燒換,所以 3 個三極管要各自接一個限流電阻(這里為 4.7K) 。7.2 軟件調(diào)試軟件調(diào)試是調(diào)試的重點,同時也是出錯最多的地方;在整個軟件調(diào)試調(diào)試過程中我采取先部分后整體的調(diào)試方法。在整個程序的編寫調(diào)試

24、過程中我首先調(diào)試的是數(shù)碼管顯示系統(tǒng),為此我編寫了以下一段程序用于數(shù)碼管顯示調(diào)試,要求數(shù)碼管顯示0、1、2。 ORG 0000H MAIN: MOV P2, #0FFH MOV P0, 0C0H自行車?yán)锍?速度計的設(shè)計 13 MOV P2, #0FEH ACALL DELAY1 MOV P2, #0FFH MOV P0, 0F9H MOV P2, #0FDH ACALL DELAY1 MOV P2, #0FFH MOV P0, 0A4H MOV P2, #OFBH MOV P2, #0FFH AJMP MAIN DELAY1: MOV R6, #02H AGAIN: MOV R7, #8FHDE

25、LAY: DJNZ R7, DELAY DJNZ R6, AGAIN RET END結(jié)果數(shù)碼管正確顯示了 0、1、2 這三個數(shù),顯示系統(tǒng)調(diào)試成功。軟件測試要注意一下幾點:1.在編寫 I2C 串行歸一化存儲子程序時本來出了點錯,后經(jīng)過多次調(diào)試才運行正確。2.里程/速度控制程序是系統(tǒng)程序的重點,所以它當(dāng)然也是軟件調(diào)試的重點。3.顯示系統(tǒng)最好先調(diào)試。4.用韋幅軟件進行仿真時要充分利用其逐步調(diào)試功能。自行車?yán)锍?速度計的設(shè)計 148 結(jié) 論本設(shè)計能自動顯示自行車行駛的總里程數(shù)及行車速度,具有超速信響報警提醒以及里程數(shù)據(jù)自動記憶的功能,也可應(yīng)用于電動自行車、摩托車、汽車等機動車的儀表上。由于本系統(tǒng)采用的

26、是動態(tài)掃描 LED 顯示且共陰數(shù)碼管的驅(qū)動電流不是很大,所以數(shù)碼管的顯示不是特別亮。但可以通過更換小點的電阻增大其驅(qū)動電流(最大驅(qū)動電流不能超過 20 毫安)使數(shù)碼管變得更亮。自行車?yán)锍?速度計的設(shè)計 15致謝首先,我要感謝宋復(fù)成老師在本次畢業(yè)設(shè)計中,宋老師不厭其煩的指導(dǎo)我,在整個畢業(yè)設(shè)計制作過程中,使得我在單片機方面的技能得到了進一步提高。宋老師給予了全程的幫作、鼓勵與指導(dǎo),在此我表示衷心的感謝!同時感謝王玉芝老師在各方面給予的幫助,使我能夠有一個良好的環(huán)境,在做此課程設(shè)計時王老師還為我免費提供仿真器等器材,為我更好的完成本系統(tǒng)的設(shè)計提供了先決條件。自行車?yán)锍?速度計的設(shè)計 16 另外,我還

27、要感謝我的父母,沒有他們的支持,我是無法完成這個系統(tǒng)設(shè)計的,他們給予我的,我將來一定會努力回報他們的。最后,我還要感謝我身邊的同學(xué)、朋友,他們也給了我很大的幫助。參考文獻1 李玉峰、倪虹霞. MCS-51 系列單片機原理與接口技術(shù). 第一版. 北京:人民郵電出版社. 20042 周興華. 手把手教你學(xué)單片機. 第一版.北京:北京航空航天大學(xué)出版社. 20053 曾一江. 單片微機原理與接口技術(shù). 第一版.北京:科學(xué)出版社. 自行車?yán)锍?速度計的設(shè)計 1720064 張俊謨. 單片機中級教程原理與應(yīng)用. 第二版. 北京:北京航空航天大學(xué)出版社. 2006. P1-115 張友德 、趙志英、涂時亮

28、. 單片機微型機原理、應(yīng)用與實驗.第五版.上海:復(fù)旦大學(xué)出版社. 2006. P24-276 呂泉. 現(xiàn)代傳感器原理及應(yīng)用. 第一版. 北京:清華大學(xué)出版社. 2006. P1-57 張毅剛、彭喜元. 單片機原理與應(yīng)用設(shè)計. 第一版. 哈爾濱:哈爾濱工業(yè)大學(xué). 8 謝自美.電子線路設(shè)計.實驗.測試M.武漢:華中科技大學(xué)出版社,20009 曲家駭,王季秩 ,伺服控制系統(tǒng)中的傳感器10 鄔寬民.單片機外圍器件實用手冊,數(shù)據(jù)傳輸接口器件分冊.北京.北京航空航天大學(xué)出版社.2001:189-19511 王貴悅,新編傳感器實用手冊.水利電力出版社.2002:67-8912 自行車電子里程表的初步設(shè)計 刁

29、文興 南京工業(yè)職業(yè)技術(shù)學(xué)院 后勤總公司 江蘇 南京 13 數(shù)字式汽車?yán)锍瘫淼脑O(shè)計 諸德宏, 潘天紅, 朱湘臨 江蘇大學(xué)電氣信息工程學(xué)院 , 江蘇 鎮(zhèn)江 14 電子車速里程表的單片機實現(xiàn)方案王鎖弘, 威海雙豐電子傳感有限公司 山東 威海 15 張福學(xué)。傳感器使用電路 150 例.中國技術(shù)出版社M.1992 年16 Embedded Microcontrollers and Processor Design ,嵌入式微控制器與處理器設(shè)計,Greg Osborn,機械工業(yè)出版社17 Altium Designer (Protel),機械工業(yè)出版社18 Programming 8-bit PIC Mi

30、crocontrollers in C with Interactive Hardware Simulation, 8 位單片機 C 語言編程:基于 PIC16 ,Martin P. Bates,人民郵電出版社自行車?yán)锍?速度計的設(shè)計 18附錄: 系統(tǒng)完整源程序以下是控制系統(tǒng)完整源程序; SPEED/MILE OR IKE PROGRAM ; 60H,61H,62H 作里程計數(shù)單元,6CH,6DH 作 T1 計數(shù)擴充單元,; 68H,69H,6AH,6BH 存放自行車每圈時間數(shù),70H,71H,72H,73H; 作顯示 BCD 碼存放數(shù)用,11H15H 存放被除數(shù),16H-19H 存放除數(shù);

31、定義 VSDA EQU P1.5 ; EEPROM 數(shù)據(jù)傳送口 VSCL EQU P1.4 ; EEPROM 時鐘傳送口 SLA EQU 50H ; EEPROM 器件尋址字節(jié)存放單元 NUMBYT EQU 51H ; EEPROM 傳送字節(jié)數(shù)存放單元 MTD EQU 30H ; EEPROM 發(fā)送數(shù)據(jù)緩沖單元 MRD EQU 40H ; EEPROM 讀出數(shù)據(jù)存放單元 SLAW EQU 0A0H ; EEPROM 尋址字節(jié)寫 SLAR EQU 0A1H ; EEPROM 尋址字節(jié)讀自行車?yán)锍?速度計的設(shè)計 19 DPHH EQU 62H ; DPTR 計數(shù)擴展高 8 位 TH1H EQU 6

32、CH ; 定時器 T1 擴展高 8 位 TH1HH EQU 6DH ; 定時器 T1 擴展高 8-16 位; PRO GRAM INPUT ; ORG 0000H;程序執(zhí)行開始地址 LJMP START;跳至 START ORG 0003H;外中斷 0 中斷程序入口 LJMP INTEX0;跳至 INTEX0 中斷服務(wù)程序 ORG 000BH;定時器 T0 中斷程序入口 RETI ;中斷返回 ORG 0013H;外中斷 1 中斷入口 LJMP INTEX1; 跳至 INTEX1 中斷服務(wù)程序 ORG 001BH; 定時器 T1 中斷程序入口 LJMP INTT1; 跳至 INTT1 中斷服務(wù)程

33、序 ORG 0023H;串口中斷入口地址 RETI ;中斷返回 ORG 002BH;定時器 T2 中斷入口地址 RETI ;中斷返回; PROGRAM CLEAR ;自行車?yán)锍?速度計的設(shè)計 20;上電初始化程序CLEARMEN: MOV TMOD, #90H ;T1 為 16 位外部控制定時器 MOV SP, #75H ;堆棧在 75H 開始 SETB PX0 ;外中斷 0 優(yōu)先級為 1 SETB IT0 ;外中斷 0 用邊沿觸發(fā) SETB IT1 ;外中斷 1 用邊沿觸發(fā) MOV 20H, A ;清內(nèi)存中特定單元 MOV 6CH, A ; MOV 6DH, A ; MOV 70H, A ;

34、 MOV 71H, A ; MOV 72H, A ; MOV 73H, A ; MOV 60H, A ; MOV 61H, A ; MOV 62H, A ; MOV 63H, A ; 清內(nèi)存中特定單元 DEC A ;A 為#0FFH MOV 68H, A ;內(nèi)存置數(shù)據(jù)#0FFHMOV 69H, A ;內(nèi)存置數(shù)據(jù)#0FFH MOV 6AH, A ;內(nèi)存置數(shù)據(jù)#0FFH MOV 6BH, A ;內(nèi)存置數(shù)據(jù)#0FFH自行車?yán)锍?速度計的設(shè)計 21 MOV P1, A ;P1 口置 1CLEAR1: JB P1.2, KEY1 ;根據(jù) P1.2,P1.3,P1.6,P1.7 設(shè)置狀態(tài) ; 在 21 地

35、址單元賦自行車周長值 MOV 21H, #0FH ; 22 寸自行車周長值 LJMP CLEAR2 ; 轉(zhuǎn) CLEAR2KEY1: JB P1.3, KEY2 ; MOV 21H, #12H ; 24 寸自行車周長值 LJMP CLEAR2 ; CLEAR2KEY2: JB P1.6, KEY3 ; MOV 21H, #14H ; 26 寸自行車周長值 LJMP CLEAR2 ; 轉(zhuǎn) CLEAR2KEY3: JB P1.7, ERR ; 四個開關(guān)都沒合上,轉(zhuǎn)出錯處理 MOV 21H, #19H ; 28 寸自行車周長值CLEAR2: SETB TR1 ; 開定時器 T1 SETB EA ; 開

36、中斷允許 SETB EX0 ; 開外中斷 0 SETB ET1 ; 開定時中斷 T1 SETB P3.1 ; 關(guān)報警器 LCALL VIICREAD ; 將 EEPROM 中原里程數(shù)據(jù)調(diào)入內(nèi)存 RET ; 子程序返回ERR: CPL P3.1 ; 輪周長設(shè)置出錯,LED 燈閃提醒 ALL DL5S ; 延時自行車?yán)锍?速度計的設(shè)計 22 LJMP CLEAR1 ; 重新初始化,等待輪周長設(shè)置開關(guān)合上 ; PROGRAM START ;START: LCALL CLEARMEN ; 上電初始化START1: JB P3.0, DISPLAYS ; P3.0=1,顯示里程 LCALL DISPLA

37、YV ; 顯示速度START2: SJMP START1 ; 轉(zhuǎn) START1 循環(huán); INTEX0 PROGRAM ; 里程計數(shù)程序,用外中斷 0 實現(xiàn),計數(shù)用 60H-62H 內(nèi)存單元。INTEX0: PUSH ACC ; 累加器堆棧保護 PUSH PSW ; 狀態(tài)字堆棧保護 INC 60H ; 圈加 1 CLR A ; 清 A CJNE A, 60H, INTEX0OUT ; 計數(shù)沒溢出轉(zhuǎn) INTEX0OUT INC 61H ; 溢出進位(61H 加 1) CJNE A, 61H, INTEX0OUT ; 計數(shù)沒溢出轉(zhuǎn) INTEX0OUT INC 62H ; 溢出進位(62H 加 1)I

38、NTEX0OUT: LCALL VIICWRITE ; 里程數(shù)據(jù)存入 EEPROM SETB EX1 ; 開外中斷 1 POP PSW ; 狀態(tài)字恢復(fù)自行車?yán)锍?速度計的設(shè)計 23 POP ACC ; 累加器恢復(fù) RETI ; 中斷返回; INTEX1 PROGRAM ; 每轉(zhuǎn) 1 圈時間計數(shù)處理程序,每圈時間放在 68H-6BH 單元中。INTEX1: PUSH ACC ; 堆棧保護 PUSH PSW ; CLR EX1 ; 關(guān)外中斷 1 JNB 00H, INTEX11 ; 溢出標(biāo)志為 0 轉(zhuǎn) INTEX11 MOV TL1, #0FFH ; 溢出時計時單元賦#0FFH(顯示速度為零) M

39、OV TH1, #0FFH ; MOV 6CH, #0FFH ; MOV 6DH, #0FFH ;INTEX11: MOV 68H, TL1 ; 將時間計數(shù)值移入暫存單元 68H-6BH MOV 69H, TH1 ; MOV 6AH, 6CH ; MOV 6BH, 6DH ; CLR A ; 清 A MOV TL1, A ; 計時單元置 0 MOV TH1, A ; MOV 6CH, A ; MOV 6DH, A ;自行車?yán)锍?速度計的設(shè)計 24 CLR 00H ; 清溢出標(biāo)志 POP PSW ; 堆?;謴?fù) POP ACC ; RETI ; 中斷返回; INTT1 PROGRAM ; T1 計

40、數(shù)器中斷服務(wù)程序。 (計數(shù)器 T1 由外中斷 1 輸入控制,當(dāng)為高電平時計時開始)INTT1: PUSH ACC ; 堆棧保護 PUSH PSW ; INC 6CH ; 6CH 計時單元加 1 MOV A, 6CH ; 移入 A JNZ INTT11 ; 不等于 0 轉(zhuǎn) INTT11 INC 6DH ; 進位,6DH 單元加 1 MOV A, 6DH ; 移入 A JNZ INTT11 ; 不等于 0 轉(zhuǎn) INTT11 SETB 00H ; 計時器溢出,置溢出標(biāo)志INTT11: POP PSW ; 恢復(fù)堆棧 POP ACC ; RETI ; 中斷返回; DISPLAY S ;自行車?yán)锍?速度計

41、的設(shè)計 25;里程顯示控制程序DISPLAYS: SETB P1.0 ; 點亮 LED1(顯示里程狀態(tài)) CLR P1.1 ; 關(guān)閉速度指示燈 SETB P3.7 ; 顯示小數(shù)點(最小顯示為 0.1 公里) LCALL SSS ; 將圈數(shù)轉(zhuǎn)為公里數(shù) LCALL DISPLAY ; 顯示公里數(shù)據(jù) LJMP START1 ; 跳回 START1; DISPLAY V ;速度顯示控制程序DISPLAYV: CLR P1.0 ; 關(guān)閉 LED1(里程)燈 SETB P1.1 ; 點亮 LED2(顯示時速狀態(tài)) CLR P3.7 ; 關(guān)小數(shù)點顯示 LCALL VVV ; 每圈時間換算為公里/小時程序 M

42、OV A, 71H ; 將十位數(shù)(BCD 碼)值移入 A SUBB A, #04H ; 與預(yù)定報警值比較 JNC WARING ; 時速超過 40 時報警 SETB P3.1 ; 關(guān)報警燈V1: LCALL DISPLAY ; 顯亮一次(為了改善閃爍) RET ; 子程序返回WARING: CLR P3.1 ; 報警燈 LED3 點亮(并嗚叫)自行車?yán)锍?速度計的設(shè)計 26 AJMP V1 ; 轉(zhuǎn) V1 退出; VIIC WRITE ;歸一化 EEPROM 存入程序(12M 時鐘) ,存入數(shù)在 50H 起單元VIICWRITE: ACALL WMOV9 MOV SLA, #SLAW MOV N

43、UMBYT, #09H LCALL WRNBYT RETWMOV9: MOV 5FH, #50H MOV R0, #MTD MOV R1, #5FH MOV R2, #09HWMOV: MOV A, R1 MOV R0, A INC R0 INC R1 DJNZ R2, WMOV RET; VIICRE AD ; 歸一化 EEPROM 讀出程序(12M 時鐘) ,讀出數(shù)放入 60H-67H 單元自行車?yán)锍?速度計的設(shè)計 27VIICREAD: MOV MTD, #50H MOV SLA, #SLAW MOV NUMBYT, #01H LCALL WRNBYT MOV SLA, #SLAR MO

44、V NUMBYT, #08H LCALL RDNBYT ACALL RMOV8 RETRMOV8: MOV R0, #MRD MOV R1, #60H MOV R2, #08HRMOV: MOV A, R0 MOV R1, A INC R0 INC R1 DJNZ R2, RMOV RET; VIIC PROGRAM ; I2C 串行歸一化存儲子程序STA: SETB VSDA SETB VSCL自行車?yán)锍?速度計的設(shè)計 28 NOP NOP NOP NOP CLR VSDA NOP CLR VSDA NOP NOP NOP NOP CLR VSCL RETSTOP: CLR VSDA SET

45、B VSCL NOP NOP NOP NOP SETB VSDA NOP NOP NOP NOP CLR VSDA CLR VSCL RETMACK: CLR VSDA SETB VSCL NOP自行車?yán)锍?速度計的設(shè)計 29 NOP NOP NOP CLR VSCL SETB VSDA RETMNACK: SETB VSDA SETB VSCL NOP NOP NOP NOP CLR VSCL CLR VSDA RETCACK: SETB VSDA SETB VSCL CLR F0 MOV C, VSDA JNC CEND SETB F0CEND: CLR VSCL RETWRBYT: MO

46、V R0, #08HWLP: RLC A JC WR1 AJMP WR0WLP1: DJNZ R0, WLP自行車?yán)锍?速度計的設(shè)計 30 RETWR1: SETB VSDA SETB VSCL NOP NOP NOP NOP CLR VSCL CLR VSDA AJMP WLP1WR0: CLR VSDA SETB VSCL NOP NOP NOP NOP CLR VSCL AJMP WLP1RDBYT: MOV R0, #08HRLP: SETB VSDA SETB VSCL MOV C, VSDA MOV A, R2 RLC A MOV R2, A CLR VSCL DJNZ R0, R

47、LP RET自行車?yán)锍?速度計的設(shè)計 31WRNBYT: MOV R3, NUMBYT LCALL STA MOV A, SLA LCALL WRBYT LCALL CACK JB F0, WRNBYT MOV R1, #MTDWRDA: MOV A, R1 LCALL WRBYT LCALL CACK JB F0, WRNBYT INC R1 DJNZ R3, WRDA LCALL STOP RETRDNBYT: MOV R3, NUMBYT LCALL STA MOV A, SLA LCALL WRBYT LCALL CACK JB F0, RDNBYTRDN: MOV R1, #MRDR

48、DN1: LCALL RDBYT MOV R1, A DJNZ R3, ACK LCALL MNACK自行車?yán)锍?速度計的設(shè)計 32 LCALL STOP RETACK: LCALL MACK INC R1 SJMP RDN1; DISPLAY PROGRAM ; 顯示程序。顯示 BCD 碼在 70H-73H 單元內(nèi),采用共陰 LED 數(shù)碼管DISPLAY: MOV R1, #70H ; 顯示單元首址 MOV R2, #0FEH ; 掃描字PLAY: MOV A, R2 ; 掃描字入 A MOV P2, A ; 放到端口 MOV A, R1 ; 取顯示數(shù)據(jù) ANL A, #0FH ; 去掉高四

49、位(為 0) MOV DPTR, #TAB ; 取段碼表首址 MOVC A, A+DPTR ; 查顯示數(shù)據(jù)對應(yīng)段碼 MOV P0,A ; 段碼輸出 LCALL DL1MS ; 點亮 1 毫秒 INC R1 ; 指向下一顯示數(shù)據(jù)地址 MOV A, R2 ; 取掃描字 JNB ACC.3, ENDOUT ; 已掃描到第四位,轉(zhuǎn) ENDOUT 退出自行車?yán)锍?速度計的設(shè)計 33 RL A ; 循環(huán)左移 MOV R2, A ; 放回 R2 AJMP PLAY ; 轉(zhuǎn) PLAY 循環(huán)ENDOUT: SETB P2.0 ; 關(guān)掃描 SETB P2.1 ; 關(guān)掃描 SETB P2.2 ; 關(guān)掃描 SETB

50、P2.3 ; 關(guān)掃描 RET ; 掃描結(jié)束;共陰段碼表(可顯示 0-F)TAB: DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H DB 7FH, 6FH, 77H, 7CH, 39H, 5EH, 79H, 71H DB 00H; SSS PROGRAM ; 里程處理程序,將自行車圈數(shù)據(jù)換算成公里數(shù)SSS: MOV 19H, #64H ; 除數(shù)最高位賦值 MOV 18H, #00H ; 除數(shù)賦值 MOV 17H, #00H ; 除數(shù)賦值 MOV 16H, #00H ; 除數(shù)賦值 MOV 11H, #00H ; 被除數(shù)賦值 MOV 12H, #00H ; 被除數(shù)

51、賦值 MOV 13H, 62H ; 被除數(shù)賦值自行車?yán)锍?速度計的設(shè)計 34 MOV 14H, 61H ; 被除數(shù)賦值 MOV 15H, 60H ; 被除數(shù)賦值 LCALL DIVST ; 調(diào)除法程序 LCALL BCDST ; 調(diào)二進制轉(zhuǎn) BCD 碼程序 MOV A, 25H ; 結(jié)果處理,將 25H 數(shù)移入 A ANL A, #0FH ; 將高四位置為 0 MOV 70H, A ; 放入 70H 單元 MOV A, 25H ; 25H 數(shù)移入 A SWAP A ; 高低四位交換 ANL A, #0FH ; 將高四位置為 0 MOV 71H, A ; 放入 71H 單元 MOV A, 24H ; 24H 數(shù)移入 A ANL A, #0FH ; 將高四位置為 0 M

溫馨提示

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

評論

0/150

提交評論