自行車?yán)锍趟俣扔?jì)的設(shè)計(jì)論文8_第1頁(yè)
自行車?yán)锍趟俣扔?jì)的設(shè)計(jì)論文8_第2頁(yè)
自行車?yán)锍趟俣扔?jì)的設(shè)計(jì)論文8_第3頁(yè)
自行車?yán)锍趟俣扔?jì)的設(shè)計(jì)論文8_第4頁(yè)
自行車?yán)锍趟俣扔?jì)的設(shè)計(jì)論文8_第5頁(yè)
已閱讀5頁(yè),還剩30頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、Comment 91: 要有封面Comment 92: 兩段并一段,措辭適當(dāng)調(diào)整。. . . . 1 / 35自行車?yán)锍?速度計(jì)的設(shè)計(jì) 摘要摘要 :本文介紹了 AT89C52 單片機(jī),運(yùn)用單片機(jī)的運(yùn)算和控制功能,并采用簡(jiǎn)單、可靠的霍爾元件傳感器,實(shí)現(xiàn)了自行車?yán)锍?、速度?shí)時(shí)測(cè)量,實(shí)時(shí)測(cè)得的數(shù)據(jù)由數(shù)碼管顯示,切換顯示時(shí)采用蜂鳴器提示。并且用分頻器 TC4024 實(shí)現(xiàn)二分頻,用來(lái)探討24C01 傳感器的用途,通過(guò)實(shí)用電路的設(shè)計(jì)來(lái)掌握速度與里程傳感器的使用方法與一些性能參數(shù)。本設(shè)計(jì)外圍電路簡(jiǎn)單,元件少,體積小,超速時(shí)采用蜂鳴報(bào)警提示。本系統(tǒng)包含電子電路技術(shù),以與常用的 AT89C52 單片機(jī)工作原理。

2、 關(guān)鍵詞關(guān)鍵詞 :AT89C52 數(shù)碼管顯示器 TC4024 24C01 傳感器 The Odometer/Speedometers Design OfThe BikeAbstract:Abstract: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 nix

3、ietube real time display to measure the speed and the course speed hodometer design proposal, 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 appl

4、ication method and some performance parameter。This system contains the electronic circuit technology, as well as the commonly used AT89C52 Micro Computer Unitswork principle, through this systems design, which pairs them organic union。Keywords:Keywords: AT89C52 Nixietube TC402424C01 sensorComment 93

5、: 正文需加入方案設(shè)計(jì)環(huán)節(jié),全文框架建議引言方案設(shè)計(jì)芯片介紹硬件電路設(shè)計(jì)軟件設(shè)計(jì)調(diào)試Comment 94: 原文的 234 三部分要合為一部分,并精簡(jiǎn);軟硬件設(shè)計(jì)要充實(shí)Comment 95: 正文序號(hào)要求一、 (一) 1、 全文修改. . . . 2 / 35目 錄1.前言 32. AT89C52 單片機(jī) 42.1 AT89C52 單片機(jī)簡(jiǎn)介 42.2 AT89C52 的管腳與其含義 53. TC402474. 24C01 芯片 74.1 24C01 簡(jiǎn)介 74.2 24C01 的特性、框圖與參數(shù) 84.3 管腳描述.105. 硬件電路的設(shè)計(jì) 115.1 系統(tǒng)硬件電路 115.2 系統(tǒng)的工作原

6、理 116. 軟件設(shè)計(jì) 126.1 系統(tǒng)存的規(guī)劃 126.2 系統(tǒng)的主要程序設(shè)計(jì) 127 軟件調(diào)試 148. 結(jié) 論 15致 16參考文獻(xiàn).17附錄: 系統(tǒng)完整源程序 18Comment 96: 去掉不必要的符號(hào). . . . 3 / 351 1 前言傳感器,是一種檢測(cè)裝置,能感受到被測(cè)的信息,并能將檢測(cè)感受到的信息,按一定規(guī)律變換成為電信號(hào)或其他所需形式的信息輸出,以滿足信息的傳輸、處理、存儲(chǔ)、顯示、記錄和控制等要求。它是實(shí)現(xiàn)自動(dòng)檢測(cè)和自動(dòng)控制的首要環(huán)節(jié)。它的作用是將一種能量轉(zhuǎn)換成另一種能量的形式。英文名字為 Sensor 或Transducer,亦稱變換器、換能器。在科學(xué)技術(shù)迅速發(fā)展的當(dāng)今

7、社會(huì),傳感器的應(yīng)用越來(lái)越廣泛,如在日常生活、航空、航天,常規(guī)武器、交通運(yùn)輸,機(jī)械制造、生物醫(yī)學(xué)工程、化工、自動(dòng)化檢測(cè)工程與計(jì)量等各項(xiàng)領(lǐng)域。傳感器的應(yīng)用現(xiàn)狀:微型化智能化多功能傳感器集成化數(shù)字化傳感器更趨向于高精度化、高穩(wěn)定、高可靠化等方向發(fā)展。例如:霍爾傳感器,由于它的價(jià)廉、易于使用,變使它能夠廣泛的運(yùn)用于里程計(jì)、速度計(jì)等方面。單片微型計(jì)算機(jī)是制作在一塊集成電路芯片上的計(jì)算機(jī),簡(jiǎn)稱單片機(jī),又稱微控制器。它包括中央處理器(Central Processing Unit,CPU) 、用 RAM 構(gòu)成的數(shù)據(jù)存儲(chǔ)器、用 ROM 構(gòu)成的程序存儲(chǔ)器、定時(shí)器/計(jì)數(shù)器、各種輸入/輸出(I/O)接口和時(shí)鐘電路,

8、可獨(dú)立地進(jìn)行工作。特別適用于控制領(lǐng)域。因此,單片機(jī)只要與適當(dāng)?shù)能浖c外部設(shè)備相結(jié)合,便可成為一個(gè)單片機(jī)控制系統(tǒng)。單片機(jī)的分類有:4 位單片機(jī)、8 位單片機(jī)、16 位單片機(jī)、32 位單片機(jī)。Microchip 單片機(jī)是市場(chǎng)份額增長(zhǎng)較快的單片機(jī),它的主要產(chǎn)品是 PIC 系列 8 位單片機(jī)。8 位單片機(jī)以經(jīng)成為當(dāng)前單片機(jī)的主流,主要體現(xiàn)在 CPU 功能增強(qiáng)、部資源增多、引腳的功能化、低電壓和低功好耗化上。單片機(jī)由于其體積小、功能強(qiáng),可靠性高,靈活方便等優(yōu)點(diǎn),所以被廣泛的應(yīng)用于各個(gè)領(lǐng)域,并對(duì)各行各業(yè)的技術(shù)改造和產(chǎn)品的更新?lián)Q代起到重要的推動(dòng)作用。Comment 97: 插入方案設(shè)計(jì),畫出系統(tǒng)框圖,包括主

9、要芯片和器件的選擇. . . . 4 / 35本人經(jīng)過(guò)學(xué)習(xí),用 AT89C52 設(shè)計(jì)了一個(gè)自行車?yán)锍?速度計(jì)。本設(shè)計(jì)可輪流顯示自行車行使的里程和速度, 采用 TC4024 芯片作為計(jì)數(shù)器以與 2C401 存儲(chǔ)數(shù)據(jù),3 個(gè)單級(jí)共陰數(shù)碼管作為顯示系統(tǒng)。本系統(tǒng)具有超速信響提醒功能,里程數(shù)據(jù)自動(dòng)記憶,也可應(yīng)用于電動(dòng)自行車、摩托車、汽車等機(jī)動(dòng)車儀表上。2 AT89C52AT89C52 單片機(jī)單片機(jī)2.12.1AT89C52AT89C52 單片機(jī)簡(jiǎn)介單片機(jī)簡(jiǎn)介本文涉與所使用的 AT89C52 是 51 系列單片機(jī)的一個(gè)型號(hào),它是 ATMEL 公司生產(chǎn)的。 AT89C52 是一個(gè)低電壓,高性能 CMOS 8

10、 位單片機(jī),片含 8k bytes 的可反復(fù)擦寫的 Flash 只讀程序存儲(chǔ)器和 256 bytes 的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器( RAM),器件采用ATMEL 公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51 指令系統(tǒng),片置通用 8 位中央處理器和 Flash 存儲(chǔ)單元。 AT89C52 特點(diǎn):與 MCS-51 產(chǎn)品指令和引腳完全兼容 8K 字節(jié)可重擦寫 FLASH 閃存 1000 次擦寫周期 全靜態(tài)操作:0Hz-24MHz 三級(jí)加密程序存儲(chǔ)器 256X8 字節(jié)部 RAM 32 個(gè)可編程 I/O 口線 3 個(gè) 16 位定時(shí)/計(jì)數(shù)器 5 個(gè)中斷源 可編程串行 UART 通道 低功耗空閑和掉電

11、模式功能特性概述: AT89C52 提供以下標(biāo)準(zhǔn)功能:8K 字節(jié) FLASH 閃存,256 字節(jié)部 RAM,32 個(gè) I/O 口線,3 個(gè) 16 位定時(shí)/計(jì)數(shù)器,一個(gè) 6 向量?jī)杉?jí)中斷結(jié)構(gòu),一個(gè)全雙工串行通信口,片振蕩器與時(shí)鐘電路。同時(shí),AT89C52 可降至 0Hz 的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止 CPU 工作,但允許 RAM,定時(shí)/計(jì)數(shù)器,串行通信口與中斷系. . . . 5 / 35統(tǒng)繼續(xù)工作。掉電方式保存 RAM 中的容,但振蕩器停止工作并禁止其他所有部件工作直到下一個(gè)硬件復(fù)位。2.22.2 AT89C52AT89C52 的管腳與其含義的管腳與其含義AT

12、89C52 的管腳與各管腳含義如下:圖 1 89C52 管腳圖功能引腳說(shuō)明:(1)電源引腳VCC(40 腳):接+5V 電源正端;GND(20 腳):接地;(2)時(shí)鐘引腳 XTAL1(19 腳):部振蕩電路反相放大器的輸入端,是外接晶體的一個(gè)引腳。當(dāng)采用外部振蕩器時(shí),此腳接地。 XTAL2(18 腳):部振蕩電路反相放大器的輸出端,是外接晶體的另一端。當(dāng)采用外部振蕩器時(shí),此引腳接外部振蕩電源。(3)控制引腳 RST/Vpd(9 腳):為復(fù)位輸入端口,外接電阻電容組成的復(fù)位電路。晶振工作時(shí),RST 腳持續(xù) 2 個(gè)機(jī)器周期高電平將使單片機(jī)復(fù)位。. . . . 6 / 35 ALE/PROG(30

13、腳):地址鎖存有效信號(hào)輸出端。地址鎖存控制信號(hào)(時(shí),鎖存低 8 位 ALE)是訪問(wèn)外部程序存儲(chǔ)器地址 的輸出脈沖。在 flash 編程時(shí),此引腳(PROG)也用作編程輸入脈沖。 在一般情況下,ALE 以晶振六分之一的固定頻率輸出脈沖,可用來(lái)作為外部定時(shí)器或時(shí)鐘使用。除此之外,在每次訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),ALE 脈沖將會(huì)跳過(guò)。 PSEN/(29 腳):片外部程序存儲(chǔ)器讀選通信號(hào)輸出端,低電平有效。當(dāng) AT89S52 從外部程序存儲(chǔ)器執(zhí)行外部代碼時(shí),在每個(gè)機(jī)器周期 PSEN 信號(hào)兩次有效,而在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),PSEN 信號(hào)將不出現(xiàn)。 EA/Vpp(31 腳):訪問(wèn)外部程序存儲(chǔ)器控制信號(hào)。欲使

14、 CPU 僅訪問(wèn)外部程序存儲(chǔ)器(地址為 0000HFFFFH),EA 端必須保持低電平(接地)。 如果 EA 端為高電平(接 Vcc 端),CPU 則執(zhí)行部程序存儲(chǔ)器中的指令。 在 flash 編程期間,EA 也接收 12 伏 VPP 電壓。(4)I/O 引腳P0 口P0 口是一組 8 位漏極開路型雙向 I/O 口,也即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時(shí),每位能吸收電流的方式驅(qū)動(dòng) 8 個(gè) TTL 邏輯門電路,對(duì)端口 P0 寫“1”時(shí),可作為高阻抗輸入端用。P0 在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器或程序存儲(chǔ)器時(shí),這組口線分時(shí)轉(zhuǎn)換地址(低 8 位)和數(shù)據(jù)總線復(fù)用,在訪問(wèn)期間激活部上拉電阻; 在 FLASH 編

15、程時(shí),P0 口接收指令字節(jié),而在程序校驗(yàn)時(shí),輸出指令字節(jié),校驗(yàn)時(shí),要求外接上拉電阻; P1 口P1 口是一個(gè)帶部上拉電阻的 8 位雙向 I/O 口,P1 的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4 個(gè) TTL 邏輯門電路。對(duì)端口寫“1” ,通過(guò)部的上拉電阻把端口拉到高電平,此時(shí)可作輸出口。作輸入口使用時(shí),因?yàn)椴看嬖谏侠娮?,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流; 與 AT89C51 不同之處是,P1.0 和 P1.1 還可分別作為定時(shí)/計(jì)數(shù)器 2 的外部計(jì)數(shù)輸入(P1.0/T2)和輸入(P1.1/T2EX) ; FLASH 編程和程序校驗(yàn)期間,P1 接收低 8 位地址; P1.0 和 P1.1

16、的第二功能:P1.0 T2(定時(shí)/計(jì)數(shù)器 T2 外部計(jì)數(shù)脈沖輸入),時(shí)鐘輸出 ;P1.1 T2EX(定時(shí)/計(jì)數(shù) T2 捕捉/重裝載觸發(fā)信號(hào)和方向控制); P2 口P2 是一個(gè)帶部上拉電阻的 8 位雙向 I/O 口,P2 的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4 個(gè) TTL 邏輯門電路。對(duì)端口 P2 寫“1”,通過(guò)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口,作輸入口使用時(shí),因?yàn)椴看嬖谏侠娮瑁硞€(gè)引腳被外部信. . . . 7 / 35號(hào)拉低時(shí)會(huì)輸出一個(gè)電流; 在訪問(wèn)外部程序存儲(chǔ)器或 16 位地址的外部數(shù)據(jù)存儲(chǔ)器時(shí),P2 口送出高 8 位地址數(shù)據(jù)。在訪問(wèn) 8 位地址的外部數(shù)據(jù)存儲(chǔ)器時(shí),P2 口輸

17、出 P2 鎖存器的容; FLASH 編程或校驗(yàn)時(shí),P2 亦接收高位地址和一些控制信號(hào); P3 口P3 口是一組帶有部上拉電阻的 8 位雙向 I/O 口。P3 口輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4 個(gè) TTL 邏輯門電路。對(duì) P3 口寫入“1”時(shí),它們被部上拉電阻拉高并可作為輸入端口。此時(shí),被外部拉低的 P3 口將用上拉電阻輸出電流; P3 口除了作為一般的 I/O 口線外,更重要的用途是它的第二功能:表 1端口功能第二功能功能說(shuō)明P3.0RXD串行輸入(數(shù)據(jù)接收)口P3.2TXD串行輸出(數(shù)據(jù)發(fā)送)口P3.2INT0/外部中斷 0 輸入P3.3INT1/外部中斷 1 輸入P3.4T0定時(shí)器/

18、計(jì)數(shù)器 0 計(jì)數(shù)輸入P3.5T1定時(shí)器/計(jì)數(shù)器 1 計(jì)數(shù)輸入P3.6WR/片外數(shù)據(jù)存儲(chǔ)器寫選通信號(hào)輸出P3.7RD/片外數(shù)據(jù)存儲(chǔ)器讀選通信號(hào)輸入此外,P3 口還接收一些用于 FLASH 閃存編程和程序校驗(yàn)的控制信號(hào)。3 3 TC4024TC4024本程序采用 TC4024 芯片,它是一個(gè) 7 位二進(jìn)制記數(shù)器/分頻器,它包含有 14 個(gè)管腳,其 7 腳接地,14 腳接+5V,1 腳接 AT89C52 的 INT0,即 12 腳,在系統(tǒng)中此芯片起到了二分頻的作用。4 4 24C0124C01 芯片芯片4.14.1 24C0124C01 簡(jiǎn)介簡(jiǎn)介24C01 是一個(gè) 1K 位串行 CMOS EEPRO

19、M,部含有 128 個(gè) 8 位字節(jié),CATALYST 的先進(jìn)CMOS 技術(shù)實(shí)際上減少了器件的功耗,是采用 I2C 接口的串行可電擦除可編程只讀存儲(chǔ)Comment 98: 芯片資料要?jiǎng)h減,后面一樣. . . . 8 / 35器,有一個(gè)專門的寫保護(hù)功能。因其接線簡(jiǎn)單且對(duì)數(shù)據(jù)修改具有足夠的靈活性,故得到了廣泛的應(yīng)用。24C01 是 I2C 接口的,但標(biāo)準(zhǔn) 51 是不帶 I2C 接口的,串口方式 0 是不行的,需要用 IO 模擬,所以隨便接兩個(gè) IO 都可以,而且都要接上拉電阻,大概幾 K 就行了,因?yàn)椴皇强偩€方式,所以不能用 MOV 指令,也不能用 SBUF,要判斷是否為滿,可以在程序里設(shè)個(gè)變量。以

20、下是 24C01 的管腳圖:圖 2 管腳圖表 2 24C01 的管腳描述4.24.2 24C01 的特性:24C01 芯片具有以下特性:與 400KHZ 的 I2C 總線兼容;+1.8-6.0V 工作電壓圍;低功耗 CMOS 技術(shù);寫保護(hù)功能:當(dāng) WP 為高電平時(shí)進(jìn)入寫保護(hù)狀態(tài);頁(yè)寫緩沖器;自定時(shí)擦寫周期;1,000,000 編程擦除/周期;可保存數(shù)據(jù) 100 年;8 腳 DIP、SOIC、TSSOP 封裝; 溫度圍:商業(yè)級(jí)、工業(yè)級(jí)和汽車級(jí)。方方框框圖圖. . . . 9 / 35圖 3參參數(shù)數(shù)值值 工作溫度工業(yè)級(jí)-55 125 商業(yè)級(jí) 0 75 貯存溫度-65 150 各管腳承受電壓-2.0

21、 Vcc2.0V Vcc 管腳承受電壓-2.0 7.0V 封裝功率損耗(Ta=25 )1.0W 焊接溫度(10 秒) 300 輸出短路電流 100mA. . . . 10 / 35可可靠靠性性參參數(shù)數(shù)( (表表3 3) )4 4. .3 3 管管腳腳描描述述S SC CL L :串串行行時(shí)時(shí)鐘鐘 24C01 串行時(shí)鐘輸入管腳用于產(chǎn)生器件所有數(shù)據(jù)發(fā)送或接收的時(shí)鐘,這是一個(gè)輸入管腳。 S SD DA A :串串行行數(shù)數(shù)據(jù)據(jù)/ /地地址址24C01 雙向串行數(shù)據(jù)/地址管腳用于器件所有數(shù)據(jù)的發(fā)送或接收,SDA 是一個(gè)開漏 輸出管腳,可與其它開漏輸出或集電極開路輸出進(jìn)行線或 wire-OR。A A0 0

22、 A A1 1 A A2 2 :器器件件地地址址輸輸入入端端這些輸入腳用于多個(gè)器件級(jí)聯(lián)時(shí)設(shè)置器件地址,當(dāng)這些腳懸空時(shí)默認(rèn)值為 0 ,24C01 除外。當(dāng)使用 24C01 時(shí)最大可級(jí)聯(lián) 8 個(gè)器件,如果只有一個(gè) 24C01 被總線尋址,這三個(gè)地址輸入腳 A0 A1 A2 必須連接到 Vss。 W WP P 寫寫保保護(hù)護(hù)如果 WP 管腳連接到 Vcc, 所有的容都被寫保護(hù)(只能讀) 。當(dāng) WP 管腳連接到 Vss 或懸空,允許器件進(jìn)行正常的讀/寫操作。 I I2 2C C 總總線線協(xié)協(xié)議議I2C 總線協(xié)議定義如下:1. 只有在總線空閑時(shí)才允許啟動(dòng)數(shù)據(jù)傳送. 2. 在數(shù)據(jù)傳送過(guò)程中,當(dāng)時(shí)鐘線為高電平

23、時(shí),數(shù)據(jù)線必須保持穩(wěn)定狀態(tài),不允許有跳變。時(shí)鐘線為高電平時(shí),數(shù)據(jù)線的任何電平變化將被看作總線的起始或停止信號(hào)。 3. 起始信號(hào) 時(shí)鐘線保持高電平期間數(shù)據(jù)線電平從高到低的跳變作為 I2C 總線的起始信號(hào)。 4. 停止信號(hào) 時(shí)鐘線保持高電平期間數(shù)據(jù)線電平從低到高的跳變作為 I2C 總線Comment 99: 要增加,不能就給原理總圖,要把一個(gè)一個(gè)電路單獨(dú)給出電路圖并加以分析說(shuō)明,最后再附上總圖并作必要的解釋。. . . . 11 / 35的停止信號(hào)。5 硬件電路的設(shè)計(jì)5.15.1 系統(tǒng)硬件電路自行車?yán)锍?速度計(jì)能自動(dòng)顯示自行車行駛的總里程數(shù)與行車速度,具有超速信響提醒功能,里程數(shù)據(jù)自動(dòng)記憶,也可應(yīng)

24、用于電動(dòng)自行車、摩托車、汽車等機(jī)動(dòng)車儀表上。其硬件電路原理圖如圖 4。圖 4 系統(tǒng)原理圖5.25.2 系統(tǒng)的工作原理本設(shè)計(jì)能實(shí)時(shí)地將所測(cè)的速度與累計(jì)里程數(shù)顯示出來(lái),主要是將 24C01 傳感器輸入到單片機(jī)的脈沖信號(hào),將頻率實(shí)時(shí)地測(cè)量出來(lái),然后通過(guò)單片機(jī)計(jì)算出速度和里程,再將所得的數(shù)據(jù)存儲(chǔ)到 TC4024 芯片中,通過(guò) AT89C52 單片機(jī)計(jì)算出來(lái)的速度和里程的數(shù)據(jù),必須通過(guò) BCD 碼的轉(zhuǎn)換才能輸出給數(shù)碼管。最后由共陰數(shù)碼管顯示所測(cè)速度與里程。 Comment 910: 內(nèi)容充實(shí)后,分解到各子電路的分析中. . . . 12 / 35自行車?yán)锍?速度計(jì)采用 AT89C52 單片機(jī)作控制,速度

25、與里程傳感器采用霍爾元件,其電器原理圖如圖 4 所示。P0 口和 P2 口用于七段 LED 顯示器的段碼與掃描輸出,在顯示里程時(shí),第三位小數(shù)點(diǎn)用 17 腳 P3.7 口控制點(diǎn)亮。P1.0 和 P1.1 口分別用于顯示里程狀態(tài)和速度狀態(tài)。P1.2、 P1.3、 P1.6 和 P1.7 口分別用于設(shè)置輪圈的大小。P3.0 口的開關(guān)用于確定顯示的方式,當(dāng)開關(guān)閉合時(shí),顯示速度;打開時(shí)顯示里程。第 12 腳外中斷 0 用于對(duì)輪子圈數(shù)的計(jì)數(shù)輸入,輪子每轉(zhuǎn)一圈,霍爾傳感器輸出一個(gè)地電平脈沖。第 13 腳外中斷 1 用于控制定時(shí)器 T1 的啟停,當(dāng)輸入為 0 時(shí)關(guān)閉定時(shí)器。此控制信號(hào)是將輪子圈數(shù)的計(jì)數(shù)脈沖經(jīng)二

26、分頻后形成(見圖 4) ,這樣,每次定時(shí)器 T1 的開啟時(shí)間剛好為轉(zhuǎn)一圈的時(shí)間。根據(jù)輪子的周長(zhǎng)就可以計(jì)算出自行車的速度。P1.4 和 P1.5 口用于 EEPROM 存儲(chǔ)器 24C01 的存取控制。11 腳輸出用于速度超速時(shí)的報(bào)警。6 軟件設(shè)計(jì)6.16.1 系統(tǒng)存的劃分由于本系統(tǒng)處理功能較多,因而一部分存單元用于特定的用處。其主要存單元用處如下:50H:EEPROM 器件尋址字節(jié)存放單元;51H:EEPROM 傳送字節(jié)數(shù)存放單元;30H:EEPROM 發(fā)送數(shù)據(jù)緩沖單元;40H:EEPROM 讀出數(shù)據(jù)存放單元;0A0H:EEPROM 尋址字節(jié)字節(jié)寫;0A1H:EEPROM 尋址字節(jié)字節(jié)讀;62H

27、:DPTR 計(jì)數(shù)器擴(kuò)展高 8 位;6CH:定時(shí)器 T1 計(jì)數(shù)器擴(kuò)展高 8 位;6DH:定時(shí)器 T1 計(jì)數(shù)器擴(kuò)展高 816 位;60H、61H、62H:里程計(jì)數(shù)單元;68H、69H、6AH、6BH:存放自行車每圈時(shí)間數(shù);70H、71H、72H、73H:顯示 BCD 碼數(shù)據(jù)存放用;11H15H:存放被除數(shù);16H19H:存放除數(shù)。. . . . 13 / 356.26.2 系統(tǒng)主要的程序設(shè)計(jì)1. 初始化程序在本系統(tǒng)初始化程序中,主要完成以下工作:將 T1 設(shè)為外部控制定時(shí)器方式;外中斷 0 與外中斷 1 設(shè)為邊沿觸發(fā)方式;將部分存單元清零;設(shè)置輪子周長(zhǎng)值;開中斷與定時(shí)器;將 EEPROM 中的數(shù)據(jù)

28、調(diào)入存等。 2. 輪圈設(shè)置出錯(cuò)處理程序 P1.2、 P1.3、 P1.6、P1.7 端口的開關(guān)用于設(shè)定輪子的周長(zhǎng),當(dāng)沒有設(shè)定時(shí)(至少讓一個(gè)開關(guān)閉合) ,能從 P3.1 口輸出一個(gè)周期為 0.5S 的方波信號(hào),用作發(fā)光管閃爍與信響器提醒。3. 主程序主程序根據(jù) P3.0 的開關(guān)狀態(tài)選擇里程或速度顯示,其流程圖如圖 6.2 所示。圖 5 主程序流程圖4.里程計(jì)數(shù)程序(外中斷 0 服務(wù)程序)Comment 911: 對(duì)照源程序,各子程序也給出程序流程圖. . . . 14 / 35 外中斷 0 服務(wù)程序用于對(duì) 12 腳輸入的圈脈沖進(jìn)行計(jì)數(shù),為十六進(jìn)制計(jì)數(shù)器。60H 為低位,62H 為高位。每計(jì)數(shù)一次

29、后,對(duì)里程數(shù)據(jù)進(jìn)行一次存儲(chǔ)操作。5.外中斷 1 服務(wù)程序外中斷 1 服務(wù)程序用于處理輪子轉(zhuǎn)動(dòng)一圈后計(jì)時(shí)數(shù)據(jù)。當(dāng)標(biāo)志位(00H)為 1時(shí),說(shuō)明計(jì)數(shù)器溢出,放入最大時(shí)間值(為#0FFH);當(dāng)標(biāo)志位為 0 時(shí),將計(jì)數(shù)單元(TL1、TH1、6CH、6DH)的值放入 68H6BH 單元。6.EEPROM 存取程序本系統(tǒng)使用歸一化 I2C 串口存取子程序,使用一條數(shù)據(jù)線和時(shí)鐘線,采用ATMEL 公司的 24C01 串口存儲(chǔ)器,應(yīng)用簡(jiǎn)單方便。7.顯示子程序當(dāng)顯示里程時(shí),先要將圈數(shù)計(jì)數(shù)器中的數(shù)據(jù)進(jìn)行運(yùn)算,求出總里程。當(dāng)要 顯示速度時(shí),要將輪子的這周長(zhǎng)和轉(zhuǎn)一圈的時(shí)間數(shù)相除,然后換算成 Km/h 單位。最后放入

30、70H73H,進(jìn)行數(shù)據(jù)顯示。7 軟件調(diào)試軟件調(diào)試是調(diào)試的重點(diǎn),同時(shí)也是最容易出錯(cuò)的地方;在整個(gè)軟件調(diào)試過(guò)程中,我采取了先部分后整體的調(diào)試方法。在整個(gè)程序的編寫調(diào)試過(guò)程中我首先調(diào)試的是數(shù)碼管顯示系統(tǒng),要求數(shù)碼管顯示0、1、2,數(shù)碼管顯示調(diào)試程序如下。 ORG 0000HMAIN: MOV P2, #0FFH MOV P0, 0C0H MOV P2, #0FEH ACALL DELAY1 MOV P2, #0FFHMOV P0, 0F9H MOV P2, #0FDH ACALL DELAY1 MOV P2, #0FFHComment 912: 這部分不能這樣寫,. . . . 15 / 35 MO

31、V P0, 0A4H MOV P2, #OFBH MOV P2, #0FFH AJMP MAIN DELAY1: MOV R6, #02H AGAIN: MOV R7, #8FHDELAY: DJNZ R7, DELAY DJNZ R6, AGAIN RET END結(jié)果數(shù)碼管正確顯示了 0、1、2 這三個(gè)數(shù),顯示系統(tǒng)調(diào)試成功。軟件測(cè)試要注意一下幾點(diǎn):1.在編寫 I2C 串行歸一化存儲(chǔ)子程序時(shí)本來(lái)出了點(diǎn)錯(cuò),后經(jīng)過(guò)多次調(diào)試才運(yùn)行正確。2.里程/速度控制程序是系統(tǒng)程序的重點(diǎn),所以它當(dāng)然也是軟件調(diào)試的重點(diǎn)。3.顯示系統(tǒng)最好先調(diào)試。4.用軟件進(jìn)行仿真時(shí)要充分利用其逐步調(diào)試功能。8 結(jié) 論本論文所寫的是能

32、夠自動(dòng)顯示自行車行駛的總里程數(shù)與行車速度,具有超速信響報(bào)警提醒以與里程數(shù)據(jù)自動(dòng)記憶的功能,也可應(yīng)用于電動(dòng)自行車、摩托車、汽車等機(jī)動(dòng)車的儀表上。由于本系統(tǒng)采用的是動(dòng)態(tài)掃描 LED 顯示且共陰數(shù)碼管的驅(qū)動(dòng)電流不是很大,所以數(shù)碼管的顯示不是特別亮。但可以通過(guò)更換小點(diǎn)的電阻增大其驅(qū)動(dòng)電流(最大驅(qū)動(dòng)電流不能超過(guò) 20 毫安)使數(shù)碼管變得更亮。Comment 913: 字體字號(hào)等格式需對(duì)照要求改好. . . . 16 / 35致首先,我要感老師在這次畢業(yè)論文設(shè)計(jì)中,耐心的指導(dǎo)我,在整個(gè)畢業(yè)論文設(shè)計(jì)過(guò)程中,使我對(duì)單片機(jī)方面的知識(shí)與技能,都得到了進(jìn)一步了解與提高。給予我很大的鼓勵(lì)與指導(dǎo),在此我衷心的感王老師!

33、感她在各方面給予我的幫助,使我能夠有一個(gè)良好的書寫環(huán)境。同時(shí)在做此論文設(shè)計(jì)時(shí)王老師還為我提供軟件材料,為我更好的完成本論文設(shè)計(jì)提供了良好的條件。然后,我還要感我身邊的同學(xué)、朋友,在這個(gè)過(guò)程中他們也給了我很大的鼓勵(lì)與幫助,使我能夠順利的完成論文。. . . . 17 / 35參考文獻(xiàn)1 玉峰、倪虹霞. MCS-51 系列單片機(jī)原理與接口技術(shù). 第一版. :人民郵電. 20042 周興華. 手把手教你學(xué)單片機(jī). 第一版.:航空航天大學(xué). 20053 曾一江. 單片微機(jī)原理與接口技術(shù). 第一版.:科學(xué). 20064 俊謨. 單片機(jī)中級(jí)教程原理與應(yīng)用. 第二版. :航空航天大學(xué). 2006. P1-1

34、15 友德 、志英、涂時(shí)亮. 單片機(jī)微型機(jī)原理、應(yīng)用與實(shí)驗(yàn).第五版.:復(fù)旦大學(xué). 2006. P24-276 呂泉. 現(xiàn)代傳感器原理與應(yīng)用. 第一版. :清華大學(xué). 2006. P1-57 毅剛、喜元. 單片機(jī)原理與應(yīng)用設(shè)計(jì). 第一版. :工業(yè)大學(xué). 8 自美.電子線路設(shè)計(jì).實(shí)驗(yàn).測(cè)試M.:華中科技大學(xué),20009 曲家駭,王季秩 ,伺服控制系統(tǒng)中的傳感器10 鄔寬民.單片機(jī)外圍器件實(shí)用手冊(cè),數(shù)據(jù)傳輸接口器件分冊(cè).航空航天大學(xué).2001:189-19511 王貴悅,新編傳感器實(shí)用手冊(cè).水利電力.2002:67-8912 自行車電子里程表的初步設(shè)計(jì) 刁文興 工業(yè)職業(yè)技術(shù)學(xué)院 后勤總公司 13 數(shù)

35、字式汽車?yán)锍瘫淼脑O(shè)計(jì) 諸德宏, 天紅, 朱湘臨 大學(xué)電氣信息工程學(xué)院 , 14 電子車速里程表的單片機(jī)實(shí)現(xiàn)方案王鎖弘, 威海雙豐電子傳感 威海 15 福學(xué)。傳感器使用電路 150 例.中國(guó)技術(shù)M.1992 年16 Embedded Microcontrollers and Processor Design ,嵌入式微控制器與處理器設(shè)計(jì),Greg Osborn,機(jī)械工業(yè)17 Altium Designer (Protel),機(jī)械工業(yè)18Programming 8-bit PIC Microcontrollers in C with Interactive Hardware Simulation,

36、 8 位單片機(jī) C 語(yǔ)言編程:基于 PIC16 ,Martin P. Bates,人民郵電19 為,黃科,雷道中.單片機(jī)典型系統(tǒng)設(shè)計(jì).電子工業(yè)20 懷強(qiáng). 基于單片機(jī)與光電傳感器的電動(dòng)自行車速度與里程表的設(shè)計(jì). 今日電子,2006Comment 914: 源程序部分建議頁(yè)面分兩欄節(jié)約紙 X. . . . 18 / 35附錄: 系統(tǒng)完整源程序以下是控制系統(tǒng)完整源程序; SPEED/MILE OR IKE PROGRAM ; 60H,61H,62H 作里程計(jì)數(shù)單元,6CH,6DH 作 T1 計(jì)數(shù)擴(kuò)充單元,; 68H,69H,6AH,6BH 存放自行車每圈時(shí)間數(shù),70H,71H,72H,73H; 作

37、顯示 BCD 碼存放數(shù)用,11H15H 存放被除數(shù),16H-19H 存放除數(shù); 定義 VSDA EQU P1.5 ; EEPROM 數(shù)據(jù)傳送口 VSCL EQU P1.4 ; EEPROM 時(shí)鐘傳送口 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é)讀 DPHH EQU 62H ;

38、DPTR 計(jì)數(shù)擴(kuò)展高 8 位 TH1H EQU 6CH ; 定時(shí)器 T1 擴(kuò)展高 8 位 TH1HH EQU 6DH ; 定時(shí)器 T1 擴(kuò)展高 8-16 位; PRO GRAM INPUT ; ORG 0000H ;程序執(zhí)行開始地址 LJMP START ;跳至 START ORG 0003H ;外中斷 0 中斷程序入口 LJMP INTEX0 ;跳至 INTEX0 中斷服務(wù)程序 ORG 000BH ;定時(shí)器 T0 中斷程序入口 RETI ;中斷返回 ORG 0013H ;外中斷 1 中斷入口. . . . 19 / 35 LJMP INTEX1 ; 跳至 INTEX1 中斷服務(wù)程序 ORG

39、001BH ; 定時(shí)器 T1 中斷程序入口 LJMP INTT1 ; 跳至 INTT1 中斷服務(wù)程序 ORG 0023H ;串口中斷入口地址 RETI ;中斷返回 ORG 002BH ;定時(shí)器 T2 中斷入口地址 RETI ;中斷返回; PROGRAM CLEAR ;上電初始化程序CLEARMEN: MOV TMOD, #90H ;T1 為 16 位外部控制定時(shí)器 MOV SP, #75H ;堆棧在 75H 開始 SETB PX0 ;外中斷 0 優(yōu)先級(jí)為 1 SETB IT0 ;外中斷 0 用邊沿觸發(fā) SETB IT1 ;外中斷 1 用邊沿觸發(fā) MOV 20H, A ;清存中特定單元 MOV

40、6CH, A ; MOV 6DH, A ; MOV 70H, A ; MOV 71H, A ; MOV 72H, A ; MOV 73H, A ; MOV 60H, A ; MOV 61H, A ; MOV 62H, A ; MOV 63H, A ; 清存中特定單元 DEC A ;A 為#0FFH MOV 68H, A ;存置數(shù)據(jù)#0FFHMOV 69H, A ;存置數(shù)據(jù)#0FFH. . . . 20 / 35 MOV 6AH, A ;存置數(shù)據(jù)#0FFH MOV 6BH, A ;存置數(shù)據(jù)#0FFH MOV P1, A ;P1 口置 1CLEAR1: P1.2, KEY1 ;根據(jù) P1.2,P1

41、.3,P1.6,P1.7 設(shè)置狀態(tài) ; 在 21 地址單元賦自行車周長(zhǎng)值 MOV 21H, #0FH ; 22 寸自行車周長(zhǎng)值 LJMP CLEAR2 ; 轉(zhuǎn) CLEAR2KEY1: P1.3, KEY2 ; MOV 21H, #12H ; 24 寸自行車周長(zhǎng)值 LJMP CLEAR2 ; CLEAR2KEY2: P1.6, KEY3 ; MOV 21H, #14H ; 26 寸自行車周長(zhǎng)值 LJMP CLEAR2 ; 轉(zhuǎn) CLEAR2KEY3: P1.7, ERR ; 四個(gè)開關(guān)都沒合上,轉(zhuǎn)出錯(cuò)處理 MOV 21H, #19H ; 28 寸自行車周長(zhǎng)值CLEAR2: SETB TR1 ; 開定

42、時(shí)器 T1 SETB EA ; 開中斷允許 SETB EX0 ; 開外中斷 0 SETB ET1 ; 開定時(shí)中斷 T1 SETB P3.1 ; 關(guān)報(bào)警器 LCALL VIICREAD ; 將 EEPROM 中原里程數(shù)據(jù)調(diào)入存 RET ; 子程序返回ERR: CPL P3.1 ; 輪周長(zhǎng)設(shè)置出錯(cuò),LED 燈閃提醒 ALL DL5S ; 延時(shí) LJMP CLEAR1 ; 重新初始化,等待輪周長(zhǎng)設(shè)置開關(guān)合上. . . . 21 / 35; PROGRAM START ;START: LCALL CLEARMEN ; 上電初始化START1: P3.0, DISPLAYS ; P3.0=1,顯示里程

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

44、位(62H 加 1)INTEX0OUT: LCALL VIICWRITE ; 里程數(shù)據(jù)存入 EEPROM SETB EX1 ; 開外中斷 1 POP PSW ; 狀態(tài)字恢復(fù) POP ACC ; 累加器恢復(fù) RETI ; 中斷返回; INTEX1 PROGRAM ; 每轉(zhuǎn) 1 圈時(shí)間計(jì)數(shù)處理程序,每圈時(shí)間放在 68H-6BH 單元中。INTEX1: PUSH ACC ; 堆棧保護(hù). . . . 22 / 35 PUSH PSW ; CLR EX1 ; 關(guān)外中斷 1 JNB 00H, INTEX11 ; 溢出標(biāo)志為 0 轉(zhuǎn) INTEX11 MOV TL1, #0FFH ; 溢出時(shí)計(jì)時(shí)單元賦#0FF

45、H(顯示速度為零) MOV TH1, #0FFH ; MOV 6CH, #0FFH ; MOV 6DH, #0FFH ;INTEX11: MOV 68H, TL1 ;將時(shí)間計(jì)數(shù)值移入暫存單元 68H-6BH MOV 69H, TH1 ; MOV 6AH, 6CH ; MOV 6BH, 6DH ; CLR A ; 清 A MOV TL1, A ; 計(jì)時(shí)單元置 0 MOV TH1, A ; MOV 6CH, A ; MOV 6DH, A ; CLR 00H ;清溢出標(biāo)志 POP PSW ;堆棧恢復(fù) POP ACC ; RETI ; 中斷返回; INTT1 PROGRAM ; T1 計(jì)數(shù)器中斷服務(wù)程

46、序。 (計(jì)數(shù)器 T1 由外中斷 1 輸入控制,當(dāng)為高電平時(shí)計(jì)時(shí)開始)INTT1: PUSH ACC ; 堆棧保護(hù) PUSH PSW ; INC 6CH ; 6CH 計(jì)時(shí)單元加 1 MOV A, 6CH ; 移入 A. . . . 23 / 35 JNZ INTT11 ; 不等于 0 轉(zhuǎn) INTT11 INC 6DH ; 進(jìn)位,6DH 單元加 1 MOV A, 6DH ; 移入 A JNZ INTT11 ; 不等于 0 轉(zhuǎn) INTT11 SETB 00H ; 計(jì)時(shí)器溢出,置溢出標(biāo)志INTT11: POP PSW ; 恢復(fù)堆棧 POP ACC ; RETI ; 中斷返回; DISPLAY S ;里

47、程顯示控制程序DISPLAYS: SETB P1.0 ; 點(diǎn)亮 LED1(顯示里程狀態(tài)) CLR P1.1 ; 關(guān)閉速度指示燈 SETB P3.7 ;顯示小數(shù)點(diǎn)(最小顯示為 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 ; 點(diǎn)亮 LED2(顯示時(shí)速狀態(tài)) CLR P3.7 ; 關(guān)小數(shù)點(diǎn)顯示 LCALL VVV ; 每圈時(shí)間換算為公里/小時(shí)程序 MOV A, 71H

48、 ; 將十位數(shù)(BCD 碼)值移入 A SUBB A, #04H ; 與預(yù)定報(bào)警值比較 JNC WARING ; 時(shí)速超過(guò) 40 時(shí)報(bào)警. . . . 24 / 35 SETB P3.1 ; 關(guān)報(bào)警燈V1: LCALL DISPLAY ; 顯亮一次(為了改善閃爍) RET ; 子程序返回WARING: CLR P3.1 ; 報(bào)警燈 LED3 點(diǎn)亮(并鳴叫) AJMP V1 ; 轉(zhuǎn) V1 退出; VIIC WRITE ;歸一化 EEPROM 存入程序(12M 時(shí)鐘) ,存入數(shù)在 50H 起單元VIICWRITE: ACALL WMOV9 MOV SLA, #SLAW MOV NUMBYT, #0

49、9H 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í)鐘) ,讀出數(shù)放入 60H-67H 單元VIICREAD: MOV MTD, #50H MOV SLA, #SLAW. . . . 25 / 35 MOV NUMBYT, #01H LCALL WRNBYT MOV SLA, #SLAR MOV NUMBYT,

50、 #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 串行歸一化存儲(chǔ)子程序STA: SETB VSDA SETB VSCL NOP NOP NOP NOP CLR VSDA NOP CLR VSDA NOP. . . . 26 / 35 NOP NOP NOP CLR VSCL RETSTOP: CLR VSDA SETB VSCL NO

51、P NOP NOP NOP SETB VSDA NOP NOP NOP NOP CLR VSDA CLR VSCL RETMACK: CLR VSDA SETB VSCL NOP NOP NOP NOP CLR VSCL SETB VSDA RETMNACK: SETB VSDA SETB VSCL. . . . 27 / 35 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: MOV R0, #08

52、HWLP: RLC A JC WR1 AJMP WR0WLP1: DJNZ R0, WLP RETWR1: SETB VSDA SETB VSCL NOP NOP NOP NOP CLR VSCL CLR VSDA AJMP WLP1. . . . 28 / 35WR0: 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, RLP RETWRN

53、BYT: MOV R3, NUMBYT LCALL STA MOV A, SLA LCALL WRBYT LCALL CACK F0, WRNBYT MOV R1, #MTDWRDA: MOV A, R1 LCALL WRBYT LCALL CACK F0, WRNBYT INC R1. . . . 29 / 35 DJNZ R3, WRDA LCALL STOP RETRDNBYT: MOV R3, NUMBYT LCALL STA MOV A, SLA LCALL WRBYT LCALL CACK F0, RDNBYTRDN: MOV R1, #MRDRDN1: LCALL RDBYT M

54、OV R1, A DJNZ R3, ACK LCALL MNACK LCALL STOP RETACK: LCALL MACK INC R1 SJMP RDN1; DISPLAY PROGRAM ; 顯示程序。顯示 BCD 碼在 70H-73H 單元,采用共陰 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 ; 去掉高四位(為 0) MOV DPTR, #TAB ; 取段碼表首址. .

55、. . 30 / 35 MOVC A, A+DPTR ; 查顯示數(shù)據(jù)對(duì)應(yīng)段碼 MOV P0,A ; 段碼輸出 LCALL DL1MS ; 點(diǎn)亮 1 毫秒 INC R1 ; 指向下一顯示數(shù)據(jù)地址 MOV A, R2 ; 取掃描字 JNB ACC.3, ENDOUT ;已掃描到第四位,轉(zhuǎn) ENDOUT 退出 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 P2.3 ; 關(guān)掃描 RET ; 掃描結(jié)束;共陰段碼表(可顯示 0-F

56、)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ù)賦值 MOV 13H, 62H ; 被除數(shù)賦值 MOV 14H, 61H ; 被除數(shù)賦值. . . . 31 / 35 MOV 15H, 60H ; 被除數(shù)賦值 LCALL DIVST ; 調(diào)除法程序 LCALL BCDST ; 調(diào)二進(jìn)制轉(zhuǎn) BCD 碼程序 MOV A, 25H

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論