單片機(jī)電子制作--電子式里程表_第1頁(yè)
單片機(jī)電子制作--電子式里程表_第2頁(yè)
單片機(jī)電子制作--電子式里程表_第3頁(yè)
單片機(jī)電子制作--電子式里程表_第4頁(yè)
單片機(jī)電子制作--電子式里程表_第5頁(yè)
已閱讀5頁(yè),還剩48頁(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)介

電子式里程表摘 要里程表廣泛應(yīng)用于各類(lèi)機(jī)車(chē),傳統(tǒng)的機(jī)械式里程表雖然穩(wěn)定可靠,但功能單一、易受磨損。隨著電子技術(shù)的迅猛發(fā)展,電子式里程表得以廣泛應(yīng)用,現(xiàn)在很多轎車(chē)儀表已經(jīng)使用電子車(chē)速里程表,本設(shè)計(jì)介紹一種基于單片機(jī)的智能電子里程表。該電子式里程表是一種數(shù)字式儀表,主要由車(chē)速表和里程表兩部分組成,其傳感器采用無(wú)接觸測(cè)量的光電傳感器。它不僅可顯示車(chē)輛行駛的總里程,也可顯示一段時(shí)間的階段里程,還可顯示車(chē)速,以及實(shí)現(xiàn)超速報(bào)警等功能,并具有較強(qiáng)的再開(kāi)發(fā)能力。它的實(shí)現(xiàn)方式是,通過(guò)安裝在汽車(chē)轉(zhuǎn)軸上的測(cè)量盤(pán),用光電式轉(zhuǎn)速傳感器檢測(cè)轉(zhuǎn)速的脈沖信息,在脈沖狀態(tài)下,將轉(zhuǎn)速的變化轉(zhuǎn)換成光通量的變化,再通過(guò)光電轉(zhuǎn)換元件將光通量的變化轉(zhuǎn)換成電量的變化,接著通過(guò)頻率測(cè)量電路將脈沖信號(hào)輸入到單片機(jī)中,然后依據(jù)電量與轉(zhuǎn)速的函數(shù)關(guān)系實(shí)現(xiàn)轉(zhuǎn)速測(cè)量,再通過(guò)計(jì)算,從而得出里程、車(chē)速的信息,并由 LED 顯示器顯示出來(lái)。并且該電子式里程表累積的里程數(shù)字存儲(chǔ)在非易失性的EEPROM 存儲(chǔ)器內(nèi),在無(wú)電狀態(tài)下數(shù)據(jù)也能保存。關(guān)鍵詞:AT89S51單片機(jī);里程表;光電傳感器;LED顯示器;存儲(chǔ)器AbstractVehicle odometer is applied in each kind of motorcycle extensively, although the traditional machine type odometer stable and credible, but the function of it is single and be easily worn away. Along with the technical fast fiercely develop in electronics, the electronic vehicle can be applied extensively. Recently, a lot of car appearances have already used the electronic vehicle odometer, this graduation thesis introduce a kind of intelligence electronic vehicle odometer, which is based on a Single-Chip Microcomputer system. The electronics type vehicle odometer is a kind of numerical type appearance, which mainly constitute with two parts, that is vehicle speed meter and odometer, it adopts the light sensor that the sensor has no contact measure. It not only can show the total mileage that vehicle drive, but also can show the stage mileage of a period of time. Moreover, Its can show the car speed, and the realization exceed the speed limit to report and so on. It also has the ability of strongerly develop again. The way of this vehicle odometer carry out is as follows: through the installed measure plate in the automobile shaft, use the light sensor to measure the rotational speed information. Under the pulse appearance, it make the variety rotational speed change to the variety of the light flux, after that the variety of the light flux convert to electricity quantity. Then through the light electricity convert component, we can make the pulse signal input to the Single-Chip Microcomputer by the frequency measure circuit. Then in terms of the function relationship of electricity quantity and rotational speed, we can realize the measure of rotational speed, after calculate by the Single-Chip Microcompute, we can obtain the information of mileage and vehicle speed. Moreover, This mileage and vehicle speed information can be displayed by the LED monitor. And the mileage numeral of the electronics vehicle odometer accumulation is saving in EEPROM,which is not easily lost, the data also can keep under the no electric appearance.Keyword:AT89S51 Single-Chip Microcomputer;Odometer ;Light sensor;LED ;Memory目 錄引言 11 總體設(shè)計(jì)22 系統(tǒng)設(shè)計(jì)可行性分析22.1 總體設(shè)計(jì)分析22.2 硬件模塊32.3 軟件模塊63 硬件單元電路設(shè)計(jì)73.1 傳感器的設(shè)計(jì)73.2 單片機(jī)與光電傳感器的接口設(shè)計(jì)113.3 單片機(jī)與外部存儲(chǔ)器的接口設(shè)計(jì)133.4 單片機(jī)與超速報(bào)警電路的接口設(shè)計(jì)133.5 單片機(jī)與鍵盤(pán)和7段顯示器的接口設(shè)計(jì) 134 軟件設(shè)計(jì)144.1 脈沖測(cè)量部分164.2 鍵盤(pán)輸入部分174.3 數(shù)據(jù)處理部分184.4 存儲(chǔ)器部分214.5 超速報(bào)警部分244.6 顯示部分255 系統(tǒng)調(diào)試275.1 硬件單元電路調(diào)試275.2 軟件程序調(diào)試295.3 整體調(diào)試326 系統(tǒng)使用說(shuō)明327 系統(tǒng)功能的擴(kuò)展338 結(jié)論33謝辭 35參考文獻(xiàn)36附錄37引言我國(guó)汽車(chē)工業(yè)走過(guò)了五十年的歷程,與國(guó)際發(fā)達(dá)國(guó)家汽車(chē)工業(yè)相比,電子技術(shù)水平相對(duì)比較落后,提高國(guó)產(chǎn)汽車(chē)的電子技術(shù)水平,增加汽車(chē)電子裝備的數(shù)量,促進(jìn)汽車(chē)電子化是奪取未來(lái)汽車(chē)市場(chǎng)的關(guān)鍵,提高我國(guó)的汽車(chē)電子技術(shù)已勢(shì)在必行。隨著中國(guó)的復(fù)關(guān),國(guó)外汽車(chē)零部件廠商也大舉進(jìn)入中國(guó)參與競(jìng)爭(zhēng)。電子式儀表及新型傳感器是各類(lèi)車(chē)型汽車(chē)的首選配套產(chǎn)品,通用性好,市場(chǎng)前景廣闊。目前國(guó)外汽車(chē)車(chē)速里程表已廣泛采用電子式機(jī)芯結(jié)構(gòu),而國(guó)內(nèi)汽車(chē)儀表一直是機(jī)械式車(chē)速里程表的天下,少數(shù)采用動(dòng)圈式電子儀表, 通過(guò)大量市場(chǎng)調(diào)研,我們清楚地看到進(jìn)入 20 世紀(jì)以來(lái)汽車(chē)工業(yè)迅速發(fā)展,而電子產(chǎn)品則是汽車(chē)提高技術(shù)含量的晴雨表。國(guó)外電子產(chǎn)品占整車(chē)成本的 30%,然而我國(guó)汽車(chē)行業(yè)起步較晚,技術(shù)十分落后,電子產(chǎn)品僅占整車(chē)成本的 5%。例如國(guó)外汽車(chē)早已裝配電子式儀表,而我國(guó)汽車(chē)仍在應(yīng)用傳統(tǒng)的機(jī)械儀表,可靠性很差。目前汽車(chē)儀表控制電子化是一種發(fā)展趨勢(shì),由先進(jìn)的傳感器與顯示裝置構(gòu)成的電子儀表已開(kāi)始全面取代傳統(tǒng)的機(jī)電式儀表,成為現(xiàn)代汽車(chē)的明顯標(biāo)志。 一般汽車(chē)的常規(guī)儀表有車(chē)速里程表、轉(zhuǎn)速表、機(jī)油壓力表、水溫表、燃油表、充電表等。儀表板中最常用的是車(chē)速里程表,目前很多轎車(chē)儀表已經(jīng)使用電子車(chē)速表,它通過(guò)變速器上的速度傳感器獲取信號(hào),通過(guò)脈沖頻率的變化使指針偏轉(zhuǎn)或者顯示數(shù)字。 隨著汽車(chē)電子半導(dǎo)體技術(shù)的發(fā)展,多功能、高精度、高靈敏度、讀數(shù)直觀的電子數(shù)字顯示及圖像顯示的儀表已不斷應(yīng)用于汽車(chē)。汽車(chē)儀表的功能已不僅僅是單純的顯示,而是通過(guò)對(duì)汽車(chē)各部件參數(shù)的監(jiān)測(cè)和計(jì)算機(jī)處理相配套,從而達(dá)到控制汽車(chē)各種運(yùn)行工況的目的。因而電子式里程表的廣泛應(yīng)用將會(huì)很大的提高中國(guó)的汽車(chē)電子技術(shù)水平。本作品正是順應(yīng)了汽車(chē)電子發(fā)展的趨勢(shì),利用安裝在汽車(chē)轉(zhuǎn)軸上的測(cè)量盤(pán),由光電傳感器輸出采樣脈沖,采取單片機(jī)控制,用一個(gè)六位 LED 數(shù)碼管和一個(gè)四位 LED 數(shù)碼管作為顯示設(shè)備,從而得出里程、車(chē)速的信息。在里程信息的存儲(chǔ)功能上,采用了新型轎車(chē)中廣泛使用的串行 EEPROM 芯片 24C16。當(dāng)電源正常供電時(shí)給電容器充電,電源掉電時(shí),利用電容器電流將單片機(jī)中的數(shù)據(jù)寫(xiě)入 EEPROM 中。本作品廉價(jià)且功能較強(qiáng),使用方便,實(shí)用價(jià)值較高,極容易得到推廣。本作品經(jīng)過(guò)實(shí)驗(yàn),完全能達(dá)到設(shè)計(jì)要求,顯示的車(chē)速、里程和原車(chē)機(jī)械里程表的顯示值誤差小于 1%,報(bào)警值非常準(zhǔn)確。由于采用的芯片都是廣泛使用的通用芯片,成本較低,制作元器件和印刷電路板成本不過(guò)七八十元,如果批量生產(chǎn),成本更低。而且該電子式里程表體積小,功耗低,功能多,穩(wěn)定可靠,性價(jià)比高,在很多領(lǐng)域都能得到廣泛的應(yīng)用,具有較高的經(jīng)濟(jì)價(jià)值。1 總體設(shè)計(jì)該電子式里程表以AT89S51單片機(jī)為核心,由系統(tǒng)輸入、單片機(jī)部分和系統(tǒng)輸出組成。其主要模塊有報(bào)警裝置、鍵盤(pán)輸入、光電傳感器、顯示、單片機(jī)以及EEPROM存儲(chǔ)器。其系統(tǒng)組成框圖如圖1.1所示。圖1.1 系統(tǒng)組成框圖單片機(jī)控制模塊是該作品的重要組成部分。為了提高單片機(jī)的使用效率,以及可以實(shí)現(xiàn)在線編程,而采用了 AT89C51 單片機(jī)的升級(jí)產(chǎn)品 AT89S51 單片機(jī)。為保證數(shù)據(jù)的安全可靠保存并減少作品的成本,以及使系統(tǒng)的結(jié)構(gòu)簡(jiǎn)單,在里程信息的存儲(chǔ)功能上,沒(méi)有采用常用的并行 EEPROM 存儲(chǔ)器,而采用了新型轎車(chē)中廣泛使用的串行 EEPROM芯片 24C16。當(dāng)電源正常供電時(shí)給電容器充電,電源掉電時(shí),利用電容器電流將單片機(jī)中的數(shù)據(jù)寫(xiě)入 EEPROM 中。超速報(bào)警部分本作品采用了簡(jiǎn)單的軟件設(shè)計(jì),由程序產(chǎn)生,鈴聲是為了達(dá)到提示的目的,因此,選用了一個(gè)簡(jiǎn)單的蜂鳴器,通過(guò)軟件定時(shí)產(chǎn)生的嘀嘀聲作為提示音,并且接一個(gè)紅色的發(fā)光二極管,使報(bào)警效果更加理想。在車(chē)速里程顯示方面,本作品采用了常用的 6 位共陽(yáng)極 LED 顯示器,通過(guò)按鍵的轉(zhuǎn)換以及對(duì)單片機(jī)的軟件編程,可在一個(gè) 6 位共陽(yáng)極 LED 顯示器中實(shí)現(xiàn)系統(tǒng)總里程和單班里程的顯示,而車(chē)速則通過(guò)另一個(gè) 4 位的共陽(yáng)極 LED 顯示器實(shí)時(shí)顯示。而本系統(tǒng)的車(chē)速脈沖采樣部分,采用了非接觸式的高靈敏度光電傳感器,它有利于提高脈沖測(cè)量的精度,并提高了系統(tǒng)的可靠性,應(yīng)用時(shí)將測(cè)量盤(pán)固定在車(chē)輛的轉(zhuǎn)軸上,再通過(guò)光電傳感器來(lái)測(cè)量。2 系統(tǒng)設(shè)計(jì)可行性分析2.1 總體設(shè)計(jì)分析根據(jù)電子式里程表的具體設(shè)計(jì)要求:(1)顯示車(chē)輛行駛的總里程,用 6 位 LED 顯示;(2)顯示一段時(shí)間的階段里程,用 6 位 LED 顯示;(3)顯示車(chē)速,用 4 位 LED 顯示;(4)實(shí)現(xiàn)超速報(bào)警;本作品設(shè)計(jì)的電子式里程表?yè)碛幸韵聠卧δ苣K:(1)光電傳感器的脈沖信號(hào)檢測(cè)與轉(zhuǎn)換;(2)超速報(bào)警功能;(3)里程信息存儲(chǔ)功能;(4)車(chē)速和里程的 LED 顯示功能;根據(jù)電子式里程表的一些基本要求,從而結(jié)合實(shí)際情況對(duì)具體的單元功能模塊作軟件或硬件上的不同分工,具體如下:在車(chē)輛轉(zhuǎn)軸上安裝的光電傳感器的脈沖檢測(cè)單元必須使用具體硬件電路來(lái)實(shí)現(xiàn)。鍵輸入和鍵處理、脈沖記數(shù)處理等功能模塊使用軟件編程方式要比硬件電路簡(jiǎn)單得多,實(shí)現(xiàn)也很容易。超速報(bào)警、里程信息存儲(chǔ)、車(chē)速和里程的 LED 顯示都采用硬件電路和軟件編程相結(jié)合的方式。其中超速報(bào)警采用一個(gè)蜂鳴器和一個(gè)紅色發(fā)光二極管的報(bào)警方式,通過(guò)單片機(jī)的軟件中斷請(qǐng)求,實(shí)現(xiàn)蜂鳴器的嘀嘀聲及發(fā)光二極管的閃爍顯示。里程信息的存儲(chǔ)采用單片機(jī)對(duì)存儲(chǔ)器的讀寫(xiě)方式,實(shí)現(xiàn)了數(shù)據(jù)信息的保存。車(chē)速和里程的 LED 顯示通過(guò)單片機(jī) P0 口和 P2 口,編程恰當(dāng)?shù)剡x擇各個(gè) 7 段 LED 顯示器的點(diǎn)亮?xí)r間和間隔時(shí)間,實(shí)現(xiàn) LED 的動(dòng)態(tài)實(shí)現(xiàn)。綜上所述,本作品由以上所述的硬件電路和軟件編程來(lái)完成。 下面就硬件以及軟件實(shí)現(xiàn)的單元電路分別進(jìn)行具體分析。2.2 硬件模塊2.2.1光電傳感器模塊經(jīng)過(guò)比較,本系統(tǒng)采用了透射式光電測(cè)速脈沖整形電路。每當(dāng)安裝在汽車(chē)轉(zhuǎn)軸上的旋轉(zhuǎn)測(cè)量盤(pán)上的長(zhǎng)方孔與光電傳感器上的透光孔重合,則光敏三極管受光而通過(guò)電流,使三極管飽和導(dǎo)通,故用于脈沖整形的施密特觸發(fā)器CD4093 輸出高電平,當(dāng)圓盤(pán)轉(zhuǎn)至透光孔被遮時(shí),CD4093輸出低電平。隨著圓盤(pán)不停地轉(zhuǎn)動(dòng), CD4093便輸出脈沖序列。測(cè)出輸出脈沖個(gè)數(shù),結(jié)合圓盤(pán)每一周的孔數(shù),使可算出轉(zhuǎn)軸旋轉(zhuǎn)的轉(zhuǎn)速,進(jìn)而可算出車(chē)輛的行駛速度。2.2.2單片機(jī)控制模塊本系統(tǒng)使用了單片機(jī) AT89S51,它是 AT89C51 的升級(jí)產(chǎn)品,能實(shí)現(xiàn)在線編程。單片機(jī) AT89S51 是由 ATMEL 公司生產(chǎn)的 51 單片機(jī)。簡(jiǎn)單介紹如下:AT89S51 單片機(jī)是一個(gè)低電壓,高性能 CMOS 8 位單片機(jī),該器件采用 ATMEL 高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的 MCS-51 指令集和輸出管腳相兼容。其片內(nèi)含有 4k bytes 的可反復(fù)擦寫(xiě)的只讀程序存儲(chǔ)器(PEROM)和 128 bytes 的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),器件采用 ATMEL 公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn) MCS-51 指令系統(tǒng),片內(nèi)置通用 8 位中央處理器和 Flash 存儲(chǔ)單元,內(nèi)置功能強(qiáng)大的微型計(jì)算機(jī)的 AT89S51 為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。AT89S51 是一個(gè)低功耗高性能單片機(jī),40 個(gè)引腳,32 個(gè)外部雙向輸入/輸出(I/O)端口,同時(shí)內(nèi)含 2 個(gè)外部中斷口,2 個(gè) 16 位可編程定時(shí)計(jì)數(shù)器,2 個(gè)全雙工串行通信口,AT89S51 可以按照常規(guī)方法進(jìn)行編程,也可以在線編程。其將通用的微處理器和 Flash存儲(chǔ)器結(jié)合在一起,特別是可反復(fù)擦寫(xiě)的Flash存儲(chǔ)器可有效地降低開(kāi)發(fā)成本。其主要特性如下: 與MCS-51 兼容 4K字節(jié)可編程FLASH存儲(chǔ)器 1000次擦寫(xiě)周期 數(shù)據(jù)保留時(shí)間:10年 全靜態(tài)工作:0Hz-24Hz 三級(jí)程序存儲(chǔ)器鎖定 支持在系統(tǒng)編程 ISP128*8 位內(nèi)部 RAM 32 個(gè)可編程 I/O 口兩個(gè) 16 位定時(shí)器/計(jì)數(shù)器 5 個(gè)中斷源 可編程串行通道 低功耗的閑置和掉電模式 片內(nèi)振蕩器和時(shí)鐘電路 具有雙工 UART 串行通道 此單片機(jī)主要用于本系統(tǒng)的控制,包括響應(yīng)中斷、延時(shí)、定時(shí)、記數(shù)、判斷、掃描鍵盤(pán)、超速報(bào)警、LED 數(shù)碼管顯示等等。2.2.3鍵盤(pán)模塊單片機(jī)系統(tǒng)所用的鍵盤(pán)有編碼鍵盤(pán)和編碼鍵盤(pán)兩種。編碼鍵盤(pán)是只要按下它的某一個(gè)鍵,就能產(chǎn)生這個(gè)鍵的代碼,與此同時(shí)還產(chǎn)生一個(gè)脈沖信號(hào),以通知 CPU 接收鍵碼。編碼鍵盤(pán)使用方便,也不用編寫(xiě)太復(fù)雜的程序。但硬件電路復(fù)雜,比非編碼簡(jiǎn)易鍵盤(pán)成本要高。非編碼鍵盤(pán)也稱簡(jiǎn)易鍵盤(pán),它的按鍵是排列成行、列矩陣形式的。按鍵的作用只是簡(jiǎn)單地實(shí)現(xiàn)接點(diǎn)的接通或斷開(kāi),因此必須有一套相應(yīng)的程序與之配合,才能產(chǎn)生相應(yīng)的鍵碼,它基本上不需要附加什么硬件電路。但需要通過(guò)軟件來(lái)解決按的識(shí)別、防抖動(dòng)以及如何產(chǎn)生鍵碼的問(wèn)題。本系統(tǒng)的鍵盤(pán)輸入部分,采用了 2 個(gè)功能鍵,用這 2 個(gè)鍵既可以選擇 6 位 LED 顯示器顯示是單班里程還是總里程。為了節(jié)約成本,本作品選用簡(jiǎn)易鍵盤(pán)即兩個(gè)按鍵開(kāi)關(guān)來(lái)實(shí)現(xiàn)車(chē)速與里程的轉(zhuǎn)換顯示。2.2.4顯示模塊單片機(jī)所用的顯示有 LED 和 LCD 兩種,從設(shè)計(jì)的難度和成本造價(jià)來(lái)說(shuō) LCD 都要高于 LED。液晶顯示器 LCD 的最大優(yōu)點(diǎn)是電源電壓低和功耗低,但液晶為非發(fā)光型物質(zhì),它是利用外界光源的被動(dòng)式顯示器件,環(huán)境越明亮顯示越清晰,不能用于暗處。白天靠日光顯示,夜間必須使用照明光源。而且它的工作溫度范圍不寬,低溫條件下靈敏度較低,有時(shí)甚至不能正常工作。壽命與使用條件有關(guān),強(qiáng)光下使用壽命會(huì)減小。此外,它的響應(yīng)速度較低(在 10200ms 范圍) ,這就限制了它在快速系統(tǒng)中的應(yīng)用。LED 數(shù)碼管是目前最常用的數(shù)字顯示器,一個(gè)LED數(shù)碼管可用來(lái)顯示一位09十進(jìn)制數(shù)和一個(gè)小數(shù)點(diǎn),在小型專用微機(jī)系統(tǒng)和單板機(jī)等場(chǎng)合,它是主要的顯示器件,在通用微機(jī)系統(tǒng)中,也常用來(lái)作為狀態(tài)等顯示。對(duì)于共陽(yáng)極顯示器,要點(diǎn)亮的顯示段引腳需接低電平“0” 。本作品要顯示的是總里程、單班里程以及車(chē)速,為數(shù)字顯示?;谝壕э@示器的成本以及在實(shí)際應(yīng)用中的需要,因此,本作品選用了由LED組成的共陽(yáng)極7段發(fā)光顯示器,它有簡(jiǎn)單、經(jīng)濟(jì)、易于與單片機(jī)接口等優(yōu)點(diǎn)。2.2.5存儲(chǔ)模塊此部分是整個(gè)系統(tǒng)的關(guān)鍵部分之一,它的工作情況直接決定了系統(tǒng)數(shù)據(jù)安全保存的可靠性。EEPROM是電可擦除可編程只讀存儲(chǔ)器。在平常情況下,EEPROM 與EPROM一樣是只讀的,需要寫(xiě)入時(shí),在指定的引腳加上一個(gè)高電壓即可寫(xiě)入或擦除,而且其擦除的速度極快!通常EEPROM芯片又分為串行EEPROM和并行EEPROM兩種,串行EEPROM在讀寫(xiě)時(shí)數(shù)據(jù)的輸入輸出是通過(guò)2線、 3線、4線或SPI總線等接口方式進(jìn)行的,而并行EEPROM 的數(shù)據(jù)輸入輸出則是通過(guò)并行總線進(jìn)行的。在汽車(chē)上串行EEPROM用得最多,防盜汽車(chē)音響解碼,液晶里程表,安全氣囊電腦等等單元模塊都大量采用這種芯片。并行EEPROM用的相對(duì)少些。經(jīng)過(guò)翻閱大量的文獻(xiàn)資料,發(fā)現(xiàn)使用串行 EEPROM 芯片作為本系統(tǒng)的外部存儲(chǔ)器,是比較常用的一種方法,而且在做電路板時(shí)布線簡(jiǎn)單,單片機(jī)編程時(shí)也穩(wěn)定可靠,當(dāng)失電時(shí)數(shù)據(jù)能得以安全的保存,因而采用了串行 EEPROM 芯片 24C16。本系統(tǒng)所用的24C16是美國(guó)ATMEL公司的低功耗CMOS串行EEPROM,它是內(nèi)含2K8位存儲(chǔ)空間,具有工作電壓寬(2.55.5V) 、擦寫(xiě)次數(shù)多(大于10000次) 、寫(xiě)入速度快(小于10ms)等特點(diǎn)。24C16的1、2、3腳是三條地址線,用于確定芯片的硬件地址。在AT89S51試驗(yàn)開(kāi)發(fā)板上它們都接地,第8腳和第4腳分別為正、負(fù)電源。第5腳SDA為串行數(shù)據(jù)輸入/輸出,數(shù)據(jù)通過(guò)這條雙向I2C總線串行傳送,在AT89S51試驗(yàn)開(kāi)發(fā)板上和單片機(jī)的P1.4連接。第6腳SCL為串行時(shí)鐘輸入線,在AT89C51試驗(yàn)開(kāi)發(fā)板上和單片機(jī)的P1.3連接。SDA和SCL都需要和正電源間各接一個(gè)10K的電阻上拉。第7腳需要接地。24C02中帶有片內(nèi)地址寄存器。每寫(xiě)入或讀出一個(gè)數(shù)據(jù)字節(jié)后,該地址寄存器自動(dòng)加1,以實(shí)現(xiàn)對(duì)下一個(gè)存儲(chǔ)單元的讀寫(xiě)。所有字節(jié)均以單一操作方式讀取。為降低總的寫(xiě)入時(shí)間,一次操作可寫(xiě)入多達(dá)8個(gè)字節(jié)的數(shù)據(jù)。2.3 軟件模塊通過(guò)上面分析,設(shè)計(jì)中決定選用S51系列單片機(jī)作為控制器,那么它的軟件編寫(xiě)就要按照單片機(jī)語(yǔ)言:C語(yǔ)言或匯編語(yǔ)言來(lái)編寫(xiě),這里我選用執(zhí)行效率高的匯編語(yǔ)言編寫(xiě)。開(kāi)發(fā)工具為keil c51,它的功能強(qiáng)大,支持 c語(yǔ)言和匯編語(yǔ)言的編寫(xiě)與調(diào)試,其軟件模擬I/O口將會(huì)給軟件調(diào)試帶來(lái)極大的方便。2.3.1脈沖測(cè)量部分本單元需要兩個(gè)I/O口,我選用了單片機(jī)的P1.5和P1.6。由于脈沖測(cè)量過(guò)程中,開(kāi)始檢測(cè)時(shí)脈沖寬度已小于機(jī)器周期T,因而會(huì)導(dǎo)致脈沖的丟失。為了避免脈沖的丟失,可用門(mén)電路實(shí)現(xiàn)記數(shù)開(kāi)始與脈沖上升沿的同步控制。所以在控制時(shí),首先由P1.6發(fā)一個(gè)清0負(fù)脈沖,其輸出封鎖與門(mén)G1 和G2 。接著由P1.5 發(fā)一個(gè)啟動(dòng)正脈沖,從而將門(mén)G2打開(kāi)。之后,被測(cè)脈沖上升沿通過(guò) G2送T1計(jì)數(shù);同時(shí)Q2輸出的高電平使INT0=1 ,定時(shí)器 0的門(mén)控GATE有效,啟動(dòng)T/C0開(kāi)始定時(shí)。直到定時(shí)結(jié)束時(shí),從P1.6發(fā)出一個(gè)負(fù)脈沖,將U2清零,從而封鎖G2 ,使T/C1停止計(jì)數(shù),至此一次頻率采樣過(guò)程結(jié)束。計(jì)數(shù)器1采用計(jì)數(shù)值滿后自然清零再計(jì)數(shù)的方法。將T/C0設(shè)為高優(yōu)先級(jí),允許計(jì)數(shù)過(guò)程中定時(shí)中斷。2.3.2鍵盤(pán)輸入部分本單元采用了單片機(jī)的P1.1和P1.2口,通過(guò)外接兩個(gè)按鍵開(kāi)關(guān),從而控制一個(gè)6位LED顯示器的總里程和單班里程的顯示。由于機(jī)械開(kāi)關(guān)在狀態(tài)轉(zhuǎn)換時(shí)有信號(hào)的抖動(dòng),故在接入開(kāi)關(guān)的同時(shí),必須考慮防抖動(dòng)的問(wèn)題。防抖動(dòng)的方法之一是軟件延時(shí)去抖動(dòng)。既在開(kāi)關(guān)狀態(tài)改變時(shí),執(zhí)行一個(gè)延時(shí)程序,待電平穩(wěn)定后再讀入開(kāi)關(guān)狀態(tài)信息。而采用的鍵盤(pán)分析程序應(yīng)包括:是否有鍵按下以及識(shí)別哪個(gè)鍵按下。一旦找到某鍵,是否按下此鍵,即可將程序轉(zhuǎn)到該鍵的功能程序段。2.3.3存儲(chǔ)器部分本系統(tǒng)采用的是串行EEPROM芯片24C16,24C16的13腳分別為器件編址端A0、A1、A2(用于與系統(tǒng)中的同類(lèi)器件編碼) ,4 腳為電源地,5腳為I2C總線的數(shù)據(jù)線SDA,6腳為 I2C總線的時(shí)鐘SCL ,7腳為測(cè)試輸入端,在系統(tǒng)中接地,8腳為電源。當(dāng)時(shí)鐘線SCL為高電平時(shí),數(shù)據(jù)線SDA 由高電平跳變?yōu)榈碗娖蕉x為“開(kāi)始”信號(hào);當(dāng)SCL線為高電平時(shí), SDA線發(fā)生低電平到高電平的跳變?yōu)椤敖Y(jié)束”信號(hào)。程序中多處調(diào)用了DELAY子程序(僅兩條NOP指令),這是為了滿足I2C總線上數(shù)據(jù)傳送速率的要求,只有當(dāng)SDA數(shù)據(jù)線上的數(shù)據(jù)穩(wěn)定下來(lái)之后才能進(jìn)行讀寫(xiě) (即SCL線發(fā)出正脈沖) 。另外,在讀最后一個(gè)數(shù)據(jù)字節(jié)時(shí),置應(yīng)答信號(hào)為“1”,表示讀操作即將完成。2.3.4超速報(bào)警部分本單元采用一個(gè)蜂鳴器和一個(gè)紅色發(fā)光二極管與單片機(jī)的P1.0口相接的報(bào)警實(shí)現(xiàn)方式,光電傳感器檢測(cè)汽車(chē)轉(zhuǎn)軸的脈沖信號(hào),并經(jīng)過(guò)頻率測(cè)量電路,輸入到單片機(jī)的T1口,通過(guò)單片機(jī)的T1口記數(shù),由單片機(jī)進(jìn)行數(shù)據(jù)處理,轉(zhuǎn)換成車(chē)速值。這實(shí)時(shí)的車(chē)速值與單片機(jī)設(shè)定的最大車(chē)速值相比較,當(dāng)車(chē)速值大于最大車(chē)速值時(shí),通過(guò)單片機(jī)的軟件中斷請(qǐng)求,以1秒鐘為周期,實(shí)現(xiàn)蜂鳴器的嘀嘀聲及發(fā)光二極管的閃爍顯示。當(dāng)車(chē)速值回落到最大車(chē)速值以下時(shí),則通過(guò)單片機(jī)控制,關(guān)閉超速報(bào)警功能。2.3.5顯示部分本單元采用一個(gè)6位共陽(yáng)極LED顯示器中實(shí)現(xiàn)系統(tǒng)總里程和單班里程的顯示,而車(chē)速則通過(guò)另一個(gè)4位的共陽(yáng)極LED顯示器實(shí)時(shí)顯示。其中LED顯示器的段選碼都由單片機(jī)的P0口連接控制,4位LED顯示器的位選碼由單片機(jī)的P2.6和P2.7口通過(guò)譯碼器74LS139控制,譯碼器74LS139對(duì)單片機(jī)的P2.6和P2.7口分時(shí)選通,這樣任何一個(gè)時(shí)刻,都只有一位LED在點(diǎn)亮,也即動(dòng)態(tài)掃描顯示方式。74LS139是一個(gè)2-4譯碼器,它將單片機(jī)輸出的地址信號(hào)譯碼后動(dòng)態(tài)驅(qū)動(dòng)相應(yīng)的LED。但74LS139電流驅(qū)動(dòng)能力較小,為此,我使用了未級(jí)驅(qū)動(dòng)PNP三極管C9015作為地址驅(qū)動(dòng)。而6位LED顯示器的位選碼,則由單片機(jī)的P2.0至P2.5口控制。經(jīng)過(guò)翻閱大量的技術(shù)資料,對(duì)具體要求實(shí)現(xiàn)的功能進(jìn)行完整的系統(tǒng)分析,我認(rèn)為我的電子式里程表的系統(tǒng)設(shè)計(jì)基本符合實(shí)際情況,可以完成設(shè)計(jì)任務(wù)所要求實(shí)現(xiàn)的基本功能。3 硬件單元電路設(shè)計(jì)3.1 傳感器的設(shè)計(jì)汽車(chē)開(kāi)動(dòng)后,監(jiān)測(cè)傳感器對(duì)汽車(chē)轉(zhuǎn)軸的轉(zhuǎn)動(dòng)進(jìn)行采樣,將脈沖采樣信號(hào)輸入到單片機(jī)管腳,單片機(jī)的定時(shí)計(jì)數(shù)器 T1 工作于計(jì)數(shù)器方式,累計(jì)脈沖個(gè)數(shù),根據(jù)一段時(shí)間內(nèi)的脈沖個(gè)數(shù)和車(chē)輪的大小,就可以由單片機(jī)計(jì)算出運(yùn)行的速度和公里數(shù),并驅(qū)動(dòng)顯示器進(jìn)行顯示。3.1.1 傳感器的選擇轉(zhuǎn)速是指每分鐘內(nèi)旋轉(zhuǎn)軸轉(zhuǎn)動(dòng)的圈數(shù)。機(jī)械式轉(zhuǎn)速儀和電模擬式測(cè)速儀已經(jīng)無(wú)法滿足自動(dòng)化程序日益提高的需要,它們只能測(cè)量精度不高的轉(zhuǎn)速,而且輸出不能直接供計(jì)算機(jī)使用,因此,非接觸式的光電數(shù)字轉(zhuǎn)速儀表就越來(lái)越廣泛地得到應(yīng)用。光電傳感器是采用光電元件作為檢測(cè)元件的傳感器。它首先把被測(cè)量的變化轉(zhuǎn)換成光信號(hào)的變化,然后借助光電元件進(jìn)一步將光信號(hào)轉(zhuǎn)換成電信號(hào)。光電傳感器一般由光源、光學(xué)通路和光電元件三部分組成。光電檢測(cè)方法具有精度高、反應(yīng)快、非接觸等優(yōu)點(diǎn),而且可測(cè)參數(shù)多,傳感器的結(jié)構(gòu)簡(jiǎn)單,形式靈活多樣,因此在檢測(cè)和控制領(lǐng)域內(nèi)得到廣泛應(yīng)用。 由于采用光電傳感器,可以實(shí)現(xiàn)非接觸測(cè)量。光電式轉(zhuǎn)速測(cè)量?jī)x表比較容易作為高頻脈沖頻率傳感器。例如,可在每轉(zhuǎn)中發(fā)出幾萬(wàn)脈沖,因此分辨率高,可測(cè)極低的轉(zhuǎn)速,測(cè)量范圍幾乎可從零轉(zhuǎn)開(kāi)始。其次這種測(cè)量方法一般對(duì)轉(zhuǎn)軸的附加載荷都很小,不會(huì)影響被測(cè)對(duì)象的正常旋轉(zhuǎn),光電式轉(zhuǎn)速傳感器工作在脈沖狀態(tài)下,它是將轉(zhuǎn)軸的轉(zhuǎn)速變換成相應(yīng)頻率的脈沖,然后測(cè)出脈沖頻率就可以測(cè)得轉(zhuǎn)速值。這種測(cè)速方法具有傳感器結(jié)構(gòu)簡(jiǎn)單、可靠、測(cè)量精度高等優(yōu)點(diǎn)。光電轉(zhuǎn)速傳感器的性能可歸納如下:(1)傳感器采用無(wú)接觸測(cè)量,不增加被測(cè)物旋轉(zhuǎn)力矩,測(cè)量小里矩的旋轉(zhuǎn)物能獲得很高的精度。(2)光電傳感器是利用光波作為媒介來(lái)實(shí)現(xiàn)轉(zhuǎn)速測(cè)量的,抗電磁干擾能力強(qiáng),如果采用調(diào)制光源或調(diào)制型發(fā)光器件,傳感器還可具有抗外界雜光干擾能力。(3)傳感器利用光電效應(yīng)方便地將轉(zhuǎn)速換成電量信號(hào)。故此類(lèi)傳感器測(cè)量范圍寬、非接觸檢測(cè)距離遠(yuǎn),隨著激光技術(shù)的發(fā)展,使光電檢測(cè)技術(shù)獲得了新發(fā)展,能達(dá)到超遠(yuǎn)距離的測(cè)量。(4)光電傳感器易受環(huán)境霧塵,粉塵、油塵、水霧及雜光的影響。 經(jīng)過(guò)比較,由于光電傳感器的結(jié)構(gòu)簡(jiǎn)單、可靠、測(cè)量精度高等優(yōu)點(diǎn),因而本設(shè)計(jì)中選用了光電傳感器。3.1.2 光電傳感器的選擇光電傳感器的類(lèi)型按照光電傳感器中光電元件輸出電信號(hào)的形式可以將光電傳感器分為模擬式和脈沖式兩大類(lèi)。 (1)模擬式光電傳感器 這種傳感器中光電元件接受的光通量隨被測(cè)量連續(xù)變化,因此,輸出的光電流也是連續(xù)變化的,并與被測(cè)量呈確定的函數(shù)關(guān)系。 (2)脈沖式光電傳感器 在這種傳感器中,光電元件接受的光信號(hào)是斷續(xù)變化的,因此光電元件處于開(kāi)關(guān)工作狀態(tài),它輸出的光電流通常是只有兩種穩(wěn)定狀態(tài)的脈沖形式的信號(hào),多用于光電計(jì)數(shù)和光電式轉(zhuǎn)速測(cè)量等場(chǎng)合。通過(guò)兩種形式的光電傳感器比較,我選用了脈沖式光電傳感器,因其多用于光電計(jì)數(shù)和光電式轉(zhuǎn)速測(cè)量等場(chǎng)合。脈沖式光電轉(zhuǎn)速傳感器從光路系統(tǒng)看,有透射式和反射式兩種。(1)透射式光電傳感器這種儀表的測(cè)量盤(pán)裝在被測(cè)轉(zhuǎn)軸上,在它旁邊裝有不動(dòng)的讀數(shù)盤(pán)。測(cè)量盤(pán)沿外緣圓周刻有等距徑向透明光縫,在讀數(shù)盤(pán)上刻有同樣間距的透光縫隙,當(dāng)測(cè)量盤(pán)隨被測(cè)軸一起轉(zhuǎn)動(dòng)時(shí),每轉(zhuǎn)過(guò)一個(gè)縫隙,由光源射來(lái)的光線就將照射到光敏元件上一次,這個(gè)光脈沖將引起光敏元件的輸出電脈沖,在孔數(shù)一定時(shí),該列電脈沖數(shù)就和轉(zhuǎn)速成正比。電脈沖經(jīng)測(cè)量電路整形放大后再送入頻率計(jì)計(jì)數(shù)和顯示,經(jīng)核算或標(biāo)定后,就可以得到一個(gè)便于測(cè)量計(jì)數(shù)的信號(hào),此時(shí)被測(cè)轉(zhuǎn)速為n= f/N式中 f測(cè)得的脈沖頻率;N每轉(zhuǎn)脈沖數(shù),它等于圓周上之縫數(shù)。若在調(diào)制盤(pán)上開(kāi) 60 個(gè)小孔,則可在 1 秒的記數(shù)值上直接讀出轉(zhuǎn)速大小。它可以測(cè)量 1r/min 的車(chē)速。如果開(kāi) 600 個(gè)孔,則它的測(cè)量精度為 0.1r/min。(2)反射式光電傳感器在轉(zhuǎn)軸上不便于安裝測(cè)量轉(zhuǎn)盤(pán)時(shí),還可以采用在測(cè)量轉(zhuǎn)軸上加反射鏡的方法。在可能時(shí),為了提高分辨率,可以在轉(zhuǎn)軸圓周方向等距貼數(shù)塊反射鏡。只有光線入射時(shí),轉(zhuǎn)軸每轉(zhuǎn)一周就有數(shù)次光反射作用。再用簡(jiǎn)單光學(xué)系統(tǒng)將反射光投到光敏元件上,就可以輸出相應(yīng)的電脈沖。其它部分與透射式一樣,通過(guò)測(cè)脈沖頻率就可以求出轉(zhuǎn)速。反射式轉(zhuǎn)速表使用方便,它不給轉(zhuǎn)軸帶來(lái)附加載荷,可以在距被測(cè)物數(shù)十毫米外非接觸地測(cè)量其轉(zhuǎn)速,但要求轉(zhuǎn)軸不能太細(xì),便于貼反射鏡,它適于測(cè)量的轉(zhuǎn)速范圍為 304.8 r/min。510通過(guò)比較,可知透射式光電傳感器比反射式光電傳感器的測(cè)量精度高,因而本設(shè)計(jì)中我采用了透射式光電傳感器,并且采用了 60 條縫隙的測(cè)量盤(pán)。如圖 3.1 所示,為透射式光電轉(zhuǎn)速傳感器的結(jié)構(gòu)原理圖。圖 3.1 透射式光電轉(zhuǎn)速傳感器的結(jié)構(gòu)原理測(cè)量盤(pán)上具有相同間距的縫隙,當(dāng)測(cè)量盤(pán)轉(zhuǎn)動(dòng)時(shí),轉(zhuǎn)過(guò)一條縫隙,光線便產(chǎn)生一次明暗變化,使光敏元件感光一次,用這種結(jié)構(gòu)可以大大增加轉(zhuǎn)盤(pán)上的縫隙數(shù),因此使每轉(zhuǎn)的脈沖數(shù)相應(yīng)地增加。3.1.3 光電傳感器的脈沖整形電路施密特觸發(fā)器在脈沖的產(chǎn)生和整形電路中應(yīng)用很廣。施密特觸發(fā)器是一種能夠把輸入波形整形成為適合于數(shù)字電路需要的矩形脈沖的電路。而且由于具有滯回特性,所以抗干擾能力也很強(qiáng)。它可用于波形變換、脈沖整形以及脈沖幅度鑒別。下圖 3.2為其應(yīng)用:圖 3.2 施密特觸發(fā)器的應(yīng)用根據(jù)以上施密特觸發(fā)器的應(yīng)用特性,因而用施密特觸發(fā)器作為本系統(tǒng)的主要脈沖整形元件。圖 3.3 是本系統(tǒng)所采用的透射式光電測(cè)速脈沖整形電路圖。每當(dāng)旋轉(zhuǎn)圓盤(pán)上的長(zhǎng)方孔與光電開(kāi)關(guān)上的透光孔重合,則光敏三極管受光而通過(guò)電流,使三極管飽和導(dǎo)通,故施密特觸發(fā)器 CD4093 輸出高電平,當(dāng)圓盤(pán)轉(zhuǎn)至透光孔被遮時(shí), CD4093 輸出低電平。隨著圓盤(pán)不停地轉(zhuǎn)動(dòng),CD4093 便輸出脈沖序列。測(cè)出輸出脈沖個(gè)數(shù),結(jié)合圓盤(pán)每一周的孔數(shù),使可算出旋轉(zhuǎn)的轉(zhuǎn)速及轉(zhuǎn)角。圖中的 CD4093 用于脈沖整形。圖 3.3 透射式光電測(cè)速脈沖整形電路圖3.2 單片機(jī)與光電傳感器的接口設(shè)計(jì)單片機(jī)測(cè)量頻率有兩種方法:測(cè)頻法和測(cè)周期法。測(cè)量頻率就是在單位定時(shí)時(shí)間里對(duì)被測(cè)信號(hào)脈沖進(jìn)行計(jì)數(shù);測(cè)量周期是在被測(cè)信號(hào)周期時(shí)間里對(duì)其一基準(zhǔn)時(shí)鐘脈沖進(jìn)行計(jì)數(shù)。測(cè)周期法常用于脈沖頻率較低的場(chǎng)合,所以在本系統(tǒng)中我采用了測(cè)頻法。測(cè)量頻率最簡(jiǎn)單的方法是將被測(cè)信號(hào)整形為脈沖,然后連接到單片機(jī)的定時(shí)器/記數(shù)器(T/C)的外部脈沖輸入端,本系統(tǒng)中將被測(cè)信號(hào)脈沖 AT89S51 的 T1 端。可將AT89S51 的一個(gè) T/C0 用作定時(shí)器,另一個(gè) T/C1 用作計(jì)數(shù)器。在 T/C0 定時(shí)時(shí)間里,由 T/C1 對(duì)頻率脈沖進(jìn)行計(jì)數(shù)。T/C1 的計(jì)數(shù)值是單位定時(shí)時(shí)間里的脈沖個(gè)數(shù)。但應(yīng)注意如下問(wèn)題:( 1) 由 于 AT895S51 對(duì) 輸 入 T/C 的 外 部 脈 沖 計(jì) 數(shù) , 是 通 過(guò) 在 每 個(gè) 機(jī) 器 周 期 的 第10 個(gè) 時(shí) 鐘 周 期 對(duì) 輸 入 端 T1 采 樣 , 故 需 要 兩 個(gè) 機(jī) 器 周 期 ( 等 于 24 個(gè) 時(shí) 鐘 周 期 ) 識(shí) 別一 個(gè) 脈 沖 的 負(fù) 跳 變 , 每 識(shí) 別 到 一 個(gè) 脈 沖 的 負(fù) 跳 變 將 計(jì) 數(shù) 器 加 1。 因 此 被 測(cè) 脈 沖 的 最 高頻 率 必 須 小 于 。 此 外 , 還 要 求 被 測(cè) 頻 率 脈 沖 的 寬 度 應(yīng) 大 于 一 個(gè) 機(jī) 器 周 期/24fFoscmaxT。 本 系 統(tǒng) 所 采 用 的 時(shí) 鐘 頻 率 為 12 , 則 被 測(cè) 脈 沖 的 最 高 頻 率 不 應(yīng) 超 過(guò) oscfH12 24 500 ; 其 寬 度 必 須 大 于 。maxH/Zk sfTosc/2(2)在定時(shí)記數(shù)時(shí)會(huì)出現(xiàn)如圖 3.4 所示的丟失脈沖的情況。第一個(gè)脈沖的丟失,是由于開(kāi)始檢測(cè)時(shí)脈沖寬度已小于機(jī)器周期 T;第二個(gè)脈沖丟失是由于脈沖的負(fù)跳變?cè)诙〞r(shí)之處出現(xiàn)。定時(shí)時(shí)間里出現(xiàn)脈沖丟失,將引起測(cè)量精度降低。脈沖頻率越低,這種誤差越大。圖 3.4 頻率測(cè)量法的脈沖丟失為解決圖 3.4 中第一個(gè)脈沖的丟失,可用門(mén)電路實(shí)現(xiàn)記數(shù)開(kāi)始與脈沖上升沿的同步控制。圖 3.5 是用 AT80S51 的 T/C0 作定時(shí)器, T/C1 作計(jì)數(shù)器,對(duì)頻率測(cè)量的接口電路。圖 3.5 帶同步控制的頻率測(cè)量接口控制時(shí),首先由 P1.6 發(fā)一個(gè)清 0 負(fù)脈沖,使 U1、U2 兩個(gè) D 觸發(fā)器復(fù)位,其輸出封鎖與門(mén) G1 和 G2。接著由 P1.5 發(fā)一個(gè)啟動(dòng)正脈沖 ,其有效上升沿使 Q1=1,門(mén) G1 被開(kāi)放,使被測(cè)脈沖得以通過(guò)門(mén) G1,使 Q2 置為 1,從而將門(mén) G2 打開(kāi)。之后,被測(cè)脈沖上升沿通過(guò) G2 送 T1 計(jì)數(shù);同時(shí) Q2 輸出的高電平使 INT0=1,定時(shí)器 0 的門(mén)控 GATE有效,啟動(dòng) T/C0 開(kāi)始定時(shí)。直到定時(shí)結(jié)束時(shí),從 P1.6 發(fā)出一個(gè)負(fù)脈沖,將 U2 清零,從而封鎖 G2,使 T/C1 停止計(jì)數(shù),至此一次頻率采樣過(guò)程結(jié)束。在本系統(tǒng)中 ,為汽xf車(chē)轉(zhuǎn)軸上安裝的測(cè)量盤(pán)縫隙對(duì)應(yīng)的頻率,測(cè)量 T/C 定時(shí)時(shí)間為 1S,這樣長(zhǎng)時(shí)間的定時(shí),先由 T/C0 定時(shí) 100ms,之后軟件循環(huán) 10 次來(lái)完成(10100ms=1s) 。T/C 作頻率脈沖的計(jì)數(shù)器,若單片機(jī)工作在計(jì)數(shù)方式 1,最大計(jì)數(shù)值為 65536。若 100ms 計(jì)數(shù) 65536 次,則脈沖的頻率為 655.36kHz,這已經(jīng)超過(guò)了 AT89S51 的計(jì)數(shù)器的最高頻率 500 kHz,能夠發(fā)揮出 T/C 的最大計(jì)數(shù)能力。T/C0 定時(shí) 100ms 的計(jì)數(shù)初值設(shè)為 3CB0H,并設(shè)定時(shí)器/計(jì)數(shù)器方式字 TMOD=59h。計(jì)數(shù)器 1 采用計(jì)數(shù)值滿后自然清零再計(jì)數(shù)的方法。將T/C0 設(shè)為高優(yōu)先級(jí),允許計(jì)數(shù)過(guò)程中定時(shí)中斷,即定時(shí)時(shí)間到就中止計(jì)數(shù)。3.3 單片機(jī)與外部存儲(chǔ)器的接口設(shè)計(jì)本系統(tǒng)采用的是串行EEPROM芯片24C16,24C16的13腳分別為器件編址端A0、A1、A2(用于與系統(tǒng)中的同類(lèi)器件編碼) ,4 腳為電源地,5腳為I2C總線的數(shù)據(jù)線SDA,在系統(tǒng)中與單片機(jī)的P1.3口相接,6腳為I2C總線的時(shí)鐘SCL,在系統(tǒng)中與單片機(jī)的P1.4口相接, 7腳為測(cè)試輸入端,在系統(tǒng)中接地,8腳為電源。當(dāng)時(shí)鐘線SCL為高電平時(shí),數(shù)據(jù)線SDA 由高電平跳變?yōu)榈碗娖蕉x為“開(kāi)始 ”信號(hào);當(dāng)SCL線為高電平時(shí),SDA線發(fā)生低電平到高電平的跳變?yōu)椤敖Y(jié)束”信號(hào)。在5腳SDA,6腳SCL 上分別接兩個(gè)10K 的上拉電阻,并外接了一個(gè)瓷介電容,當(dāng)電源正常供電時(shí)給電容器充電,電源掉電時(shí),利用電容器電流將單片機(jī)中的數(shù)據(jù)寫(xiě)入EEPROM中。3.4 單片機(jī)與超速報(bào)警電路的接口設(shè)計(jì)本部分采用一個(gè)蜂鳴器和一個(gè)紅色發(fā)光二極管與單片機(jī)的P1.0口相接的報(bào)警實(shí)現(xiàn)方式, 。若實(shí)時(shí)的車(chē)速值與單片機(jī)設(shè)定的最大車(chē)速值相比較,當(dāng)車(chē)速值大于最大車(chē)速值時(shí),通過(guò)單片機(jī)的軟件中斷請(qǐng)求,以1秒鐘為周期,從而實(shí)現(xiàn)P1.0口高低電平的通斷。當(dāng)P1.0口為高電平時(shí),輸出正5V的電壓,使紅色發(fā)光二極管得以導(dǎo)通。而且電流由另一條通路使NPN三極管導(dǎo)通,射極輸出電流驅(qū)動(dòng)蜂鳴器工作。當(dāng)P1.0為低電平時(shí),則不能使紅色發(fā)光二極管和NPN三極管導(dǎo)通,因而不能工作。正因?yàn)镻1.0口高低電平的通斷作用,實(shí)現(xiàn)蜂鳴器的嘀嘀聲及發(fā)光二極管的閃爍顯示,從而實(shí)現(xiàn)了系統(tǒng)超速報(bào)警的功能。其電路圖如下圖3.6所示:圖3.6 超速報(bào)警電路圖3.5 單片機(jī)與鍵盤(pán)和 7 段顯示器的接口設(shè)計(jì)本系統(tǒng)的鍵盤(pán)輸入部分,采用 2 個(gè)功能鍵,用這 2 個(gè)鍵,既可以選擇顯示是單班里程還是總里程。本系統(tǒng)采用的是常見(jiàn)的按鈕開(kāi)關(guān)。開(kāi)關(guān)的接入方法是先將按鈕開(kāi)關(guān)的狀態(tài)轉(zhuǎn)變?yōu)檫壿嬰娖剑缓罂芍苯咏拥絾纹瑱C(jī)的某一條 I/O 線。但由于機(jī)械開(kāi)關(guān)在狀態(tài)轉(zhuǎn)換時(shí)有信號(hào)的抖動(dòng),故在接入開(kāi)關(guān)的同時(shí),必須考慮防抖動(dòng)的問(wèn)題。其圖 3.7如下所示:圖 3.7 鍵盤(pán)輸入電路圖而七段LED顯示器一般都是同時(shí)使用幾個(gè)LED顯示器,它有兩種連用方法:一是每一位都用各自的8位輸出口控制,在顯示某一字符時(shí),相應(yīng)的段恒定發(fā)光或不發(fā)光,這種顯示方法屬于靜態(tài)顯示,它占用較多的I/O口線。二是動(dòng)態(tài)顯示,即將多個(gè)7段LED的段選端復(fù)接在一起,只用一個(gè)8位輸出控制段選,段選同時(shí)加到各個(gè)7段LED顯示器上,通過(guò)控制各個(gè)顯示器公共陽(yáng)極/陰極輪流接電/接地的方法,逐一輪流地啟動(dòng)各個(gè)LED。這種方法中,只要恰當(dāng)?shù)剡x擇點(diǎn)亮?xí)r間和時(shí)間間隔,就會(huì)給人以為是各位LED同時(shí)顯示的假象。這里使用了一個(gè)6位和一個(gè)4位動(dòng)態(tài)顯示的共陽(yáng)極數(shù)碼管顯示器。其中LED顯示器的段選碼都由單片機(jī)的P0口連接控制,4位LED顯示器的位選碼由單片機(jī)的P2.6和P2.7口通過(guò)譯碼器74LS139控制,譯碼器74LS139對(duì)單片機(jī)的P2.6和P2.7口分時(shí)選通,這樣任何一個(gè)時(shí)刻,都只有一位LED在點(diǎn)亮,也即動(dòng)態(tài)掃描顯示方式。74LS139是一個(gè)2-4譯碼器,它將單片機(jī)輸出的地址信號(hào)譯碼后動(dòng)態(tài)驅(qū)動(dòng)相應(yīng)的LED。但74LS139的電流驅(qū)動(dòng)能力較小,為此,使用了未級(jí)驅(qū)動(dòng)PNP三極管C9015作為地址驅(qū)動(dòng)。而6位LED顯示器的位選碼,則由單片機(jī)的P2.0至P2.5口控制。再通過(guò)軟件編程,從而控制各自的7節(jié)LED是否被點(diǎn)亮(由于本模塊電路較大,就沒(méi)有在這里列出,但可以參考本作品的完整電路原理圖)。4 軟件設(shè)計(jì)系統(tǒng)的主程序流程如圖4.1所示。圖4.1 系統(tǒng)主程序流程圖 本系統(tǒng)的控制、運(yùn)算和管理功能都要通過(guò)軟件設(shè)計(jì)來(lái)完成,本系統(tǒng)采用模塊式設(shè)計(jì)技術(shù)來(lái)進(jìn)行軟件設(shè)計(jì),整個(gè)軟件在功能上可分為初始化模塊,鍵輸入和鍵處理模塊,脈沖計(jì)數(shù)處理模塊,顯示模塊,段碼表子程序塊,存儲(chǔ)模塊。AT89S51單片機(jī)硬件中斷人口地址為0013H,并且在這里按鍵輸入、顯示子程序和脈沖計(jì)數(shù)均用到了T/C(計(jì)時(shí)/計(jì)數(shù)器)中斷功能。系統(tǒng)的初始化,除了分配一些功能寄存器、定義一些常量、設(shè)置AT89S51單片機(jī)的輸人輸出口的工作模式外,還要將24C16設(shè)置為串行傳輸模式,清除P0、P2、P1 3個(gè)口的寄存器以及接收號(hào)碼計(jì)數(shù)器等一些功能寄存器及開(kāi)中斷等。下面,就各單元功能模塊分別進(jìn)行說(shuō)明。4.1 脈沖測(cè)量部分由于脈沖測(cè)量過(guò)程中,開(kāi)始檢測(cè)時(shí)脈沖寬度已小于機(jī)器周期 T,因而會(huì)導(dǎo)致脈沖的丟失。為了避免脈沖的丟失,可用門(mén)電路實(shí)現(xiàn)記數(shù)開(kāi)始與脈沖上升沿的同步控制。所以在控制時(shí),首先由 P1.6 發(fā)一個(gè)清 0 負(fù)脈沖,其輸出封鎖與門(mén) G1 和 G2。接著由 P1.5發(fā)一個(gè)啟動(dòng)正脈沖,從而將門(mén) G2 打開(kāi)。之后,被測(cè)脈沖上升沿通過(guò) G2 送 T1 計(jì)數(shù);同時(shí) Q2 輸出的高電平使 INT0=1,定時(shí)器 0 的門(mén)控 GATE 有效,啟動(dòng) T/C0 開(kāi)始定時(shí)。直到定時(shí)結(jié)束時(shí),從 P1.6 發(fā)出一個(gè)負(fù)脈沖,將 U2 清零,從而封鎖 G2,使 T/C1 停止計(jì)數(shù),至此一次頻率采樣過(guò)程結(jié)束。計(jì)數(shù)器 1 采用計(jì)數(shù)值滿后自然清零再計(jì)數(shù)的方法。將 T/C0 設(shè)為高優(yōu)先級(jí),允許計(jì)數(shù)過(guò)程中定時(shí)中斷。電路圖在圖 3.5。下面是初始化和同步控制程序及中斷服務(wù)程序。位地址 06H 作定時(shí) 1s 時(shí)間到標(biāo)志位,R7 作軟件計(jì)數(shù)器,計(jì)數(shù) 10 個(gè) 100ms。ORG 0000H;;AJMP MAIN;ORG 000BH; 定時(shí)器 T0 中斷AJMP TIMER0;ORG 001BH; 定時(shí)器 T1 中斷AJMP CONTER1;MAIN: CLR 06H; 清定時(shí)時(shí)間到標(biāo)志位CLR P1.6; 產(chǎn)生清 0 用負(fù)脈沖NOPSETB P1.5MOV TMOD,#59H; MOV TH0,#3CH; T/C0 外部啟動(dòng)定時(shí),T/C1 計(jì)數(shù)MOV TL0,#0B0H; MOV TH1,#00H; T/C1 方式 1 由 00H 開(kāi)始計(jì)數(shù) MOV TL1,#00H;MOV R7,#0AH; 計(jì)數(shù) 10 個(gè) 100msSETB TR0; T/C0 啟動(dòng)SETB TR1; T/C1 啟動(dòng)SETB PT0; 定時(shí)器 0 為高中斷優(yōu)先級(jí)SETB ET0; 開(kāi) T/C0 中斷SETB ET1; 開(kāi) T/C1 中斷SETB EA; CPU 開(kāi)中斷NOP;CLR P1.5;HE: JNB 06H,HE; 產(chǎn)生時(shí) 1s 時(shí)間到CLR P1.6; 產(chǎn)生負(fù)脈沖,封鎖 G2 NOP; SETB P1.6;CLR TR0; 關(guān)閉定時(shí)器CLR TR1; 關(guān)閉定時(shí)器LCALL DATAP; 調(diào)數(shù)據(jù)處理子程序LCALL DIS; 調(diào)顯示子程序SJMP MAINTIMER0: MOV TH0,#3CH; T/C0 中斷服務(wù)程序MOV TL0,# 0B0H;DJNZ R7,RE;MOV R7,#0AH;SETB 06H; 1s 定時(shí)時(shí)間到RE:RETI; T/C0 中斷返回CONTER1:RETI; T/C1 中斷返回4.2 鍵盤(pán)輸入部分這個(gè)部分是比較簡(jiǎn)單的一個(gè)部分,在硬件設(shè)計(jì)部分本人對(duì)簡(jiǎn)易鍵盤(pán)做了比較詳細(xì)的介紹,這里就不再重復(fù)。鍵盤(pán)輸入部分采用 2 個(gè)功能鍵,用這 2 個(gè)鍵既可以選擇顯示是單班里程還是總里程。由于機(jī)械開(kāi)關(guān)在狀態(tài)轉(zhuǎn)換時(shí)有信號(hào)的抖動(dòng),故在接入開(kāi)關(guān)的同時(shí),必須考慮防抖動(dòng)的問(wèn)題。防抖動(dòng)的方法之一是軟件延時(shí)去抖動(dòng)。既在開(kāi)關(guān)狀態(tài)改變時(shí),執(zhí)行一個(gè)延時(shí)程序,待電平穩(wěn)定后再讀入開(kāi)關(guān)狀態(tài)信息。鍵的去抖動(dòng)方法由軟件延時(shí)來(lái)解決。鍵盤(pán)分析 程序應(yīng)包括:是否有鍵按下以及識(shí)別哪個(gè)鍵按下。一旦找到某鍵,是否按下此鍵,即可將程序轉(zhuǎn)到該鍵的功能程序段。本系統(tǒng)所采用的鍵盤(pán)輸入程序如下:KEY: MOV R0,#0FHKEY1: MOV P1,R0MOV A,P1 ;輸入鍵盤(pán)信息ANL A,R0CLR CSUBB A,R0JZ KEY1 ;有鍵按下?ACALL D10MS ;有,去抖動(dòng)MOV A,P1 ;讀鍵信息JNB ACC.0,K0 ;為 0 鍵按下,轉(zhuǎn) K0 程

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論