版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
-.z.電子式里程表摘要里程表廣泛應(yīng)用于各類機(jī)車,傳統(tǒng)的機(jī)械式里程表雖然穩(wěn)定可靠,但功能單一、易受磨損。隨著電子技術(shù)的迅猛發(fā)展,電子式里程表得以廣泛應(yīng)用,現(xiàn)在很多轎車儀表已經(jīng)使用電子車速里程表,本設(shè)計介紹一種基于單片機(jī)的智能電子里程表。該電子式里程表是一種數(shù)字式儀表,主要由車速表和里程表兩部分組成,其傳感器采用無接觸測量的光電傳感器。它不僅可顯示車輛行駛的總里程,也可顯示一段時間的階段里程,還可顯示車速,以及實現(xiàn)超速報警等功能,并具有較強(qiáng)的再開發(fā)能力。它的實現(xiàn)方式是,通過安裝在汽車轉(zhuǎn)軸上的測量盤,用光電式轉(zhuǎn)速傳感器檢測轉(zhuǎn)速的脈沖信息,在脈沖狀態(tài)下,將轉(zhuǎn)速的變化轉(zhuǎn)換成光通量的變化,再通過光電轉(zhuǎn)換元件將光通量的變化轉(zhuǎn)換成電量的變化,接著通過頻率測量電路將脈沖信號輸入到單片機(jī)中,然后依據(jù)電量與轉(zhuǎn)速的函數(shù)關(guān)系實現(xiàn)轉(zhuǎn)速測量,再通過計算,從而得出里程、車速的信息,并由LED顯示器顯示出來。并且該電子式里程表累積的里程數(shù)字存儲在非易失性的EEPROM存儲器內(nèi),在無電狀態(tài)下數(shù)據(jù)也能保存。關(guān)鍵詞:AT89S51單片機(jī);里程表;光電傳感器;LED顯示器;存儲器AbstractVehicleodometerisappliedineachkindofmotorcyclee*tensively,althoughthetraditionalmachinetypeodometerstableandcredible,butthefunctionofitissingleandbeeasilywornaway.Alongwiththetechnicalfastfiercelydevelopinelectronics,theelectronicvehiclecanbeappliede*tensively.Recently,alotofcarappearanceshavealreadyusedtheelectronicvehicleodometer,thisgraduationthesisintroduceakindofintelligenceelectronicvehicleodometer,whichisbasedonaSingle-ChipMicroputersystem.Theelectronics'typevehicleodometerisakindofnumericaltypeappearance,whichmainlyconstitutewithtwoparts,thatisvehiclespeedmeterandodometer,itadoptsthelightsensorthatthesensorhasnocontactmeasure.Itnotonlycanshowthetotalmileagethatvehicledrive,butalsocanshowthestagemileageofaperiodoftime.Moreover,It’scanshowthecarspeed,andtherealizatione*ceedthespeedlimittoreportandsoon.Italsohastheabilityofstrongerlydevelopagain.Thewayofthisvehicleodometercarryoutisasfollows:throughtheinstalledmeasureplateintheautomobileshaft,usethelightsensortomeasuretherotationalspeedinformation.Underthepulseappearance,itmakethevarietyrotationalspeedchangetothevarietyofthelightflu*,afterthatthevarietyofthelightflu*converttoelectricityquantity.Thenthroughthelightelectricityconvertponent,wecanmakethepulsesignalinputtotheSingle-ChipMicroputerbythefrequencymeasurecircuit.Thenintermsofthefunctionrelationshipofelectricityquantityandrotationalspeed,wecanrealizethemeasureofrotationalspeed,aftercalculatebytheSingle-ChipMicropute,wecanobtaintheinformationofmileageandvehiclespeed.Moreover,ThismileageandvehiclespeedinformationcanbedisplayedbytheLEDmonitor.Andthemileagenumeraloftheelectronics'vehicleodometeraccumulationissavinginEEPROM,whichisnoteasilylost,thedataalsocankeepunderthenoelectricappearance.Keyword:AT89S51Single-ChipMicroputer;Odometer;Lightsensor;LED;Memory目錄引言………………………11總體設(shè)計……………………22系統(tǒng)設(shè)計可行性分析…………………22.1總體設(shè)計分析……………………22.2硬件模塊…………32.3軟件模塊…………63硬件單元電路設(shè)計……………………73.1傳感器的設(shè)計……………………73.2單片機(jī)與光電傳感器的接口設(shè)計………………113.3單片機(jī)與外部存儲器的接口設(shè)計………………133.4單片機(jī)與超速報警電路的接口設(shè)計……………133.5單片機(jī)與鍵盤和7段顯示器的接口設(shè)計………134軟件設(shè)計……………………144.1脈沖測量部分……………………164.2鍵盤輸入部分……………………174.3數(shù)據(jù)處理部分……………………184.4存儲器部分………………………214.5超速報警部分……………………244.6顯示部分…………255系統(tǒng)調(diào)試……………………275.1硬件單元電路調(diào)試………………275.2軟件程序調(diào)試……………………295.3整體調(diào)試…………326系統(tǒng)使用說明……………………327系統(tǒng)功能的擴(kuò)展……………………338結(jié)論…………………33謝辭…………………35參考文獻(xiàn)…………………36附錄…………………………37-.z.引言我國汽車工業(yè)走過了五十年的歷程,與國際發(fā)達(dá)國家汽車工業(yè)相比,電子技術(shù)水平相對比較落后,提高國產(chǎn)汽車的電子技術(shù)水平,增加汽車電子裝備的數(shù)量,促進(jìn)汽車電子化是奪取未來汽車市場的關(guān)鍵,提高我國的汽車電子技術(shù)已勢在必行。隨著中國的復(fù)關(guān),國外汽車零部件廠商也大舉進(jìn)入中國參與競爭。電子式儀表及新型傳感器是各類車型汽車的首選配套產(chǎn)品,通用性好,市場前景廣闊。目前國外汽車車速里程表已廣泛采用電子式機(jī)芯結(jié)構(gòu),而國內(nèi)汽車儀表一直是機(jī)械式車速里程表的天下,少數(shù)采用動圈式電子儀表,通過大量市場調(diào)研,我們清楚地看到進(jìn)入20世紀(jì)以來汽車工業(yè)迅速發(fā)展,而電子產(chǎn)品則是汽車提高技術(shù)含量的晴雨表。國外電子產(chǎn)品占整車成本的30%,然而我國汽車行業(yè)起步較晚,技術(shù)十分落后,電子產(chǎn)品僅占整車成本的5%。例如國外汽車早已裝配電子式儀表,而我國汽車仍在應(yīng)用傳統(tǒng)的機(jī)械儀表,可靠性很差。目前汽車儀表控制電子化是一種發(fā)展趨勢,由先進(jìn)的傳感器與顯示裝置構(gòu)成的電子儀表已開始全面取代傳統(tǒng)的機(jī)電式儀表,成為現(xiàn)代汽車的明顯標(biāo)志。一般汽車的常規(guī)儀表有車速里程表、轉(zhuǎn)速表、機(jī)油壓力表、水溫表、燃油表、充電表等。儀表板中最常用的是車速里程表,目前很多轎車儀表已經(jīng)使用電子車速表,它通過變速器上的速度傳感器獲取信號,通過脈沖頻率的變化使指針偏轉(zhuǎn)或者顯示數(shù)字。隨著汽車電子半導(dǎo)體技術(shù)的發(fā)展,多功能、高精度、高靈敏度、讀數(shù)直觀的電子數(shù)字顯示及圖像顯示的儀表已不斷應(yīng)用于汽車。汽車儀表的功能已不僅僅是單純的顯示,而是通過對汽車各部件參數(shù)的監(jiān)測和計算機(jī)處理相配套,從而達(dá)到控制汽車各種運行工況的目的。因而電子式里程表的廣泛應(yīng)用將會很大的提高中國的汽車電子技術(shù)水平。本作品正是順應(yīng)了汽車電子發(fā)展的趨勢,利用安裝在汽車轉(zhuǎn)軸上的測量盤,由光電傳感器輸出采樣脈沖,采取單片機(jī)控制,用一個六位LED數(shù)碼管和一個四位LED數(shù)碼管作為顯示設(shè)備,從而得出里程、車速的信息。在里程信息的存儲功能上,采用了新型轎車中廣泛使用的串行EEPROM芯片24C16。當(dāng)電源正常供電時給電容器充電,電源掉電時,利用電容器電流將單片機(jī)中的數(shù)據(jù)寫入EEPROM中。本作品廉價且功能較強(qiáng),使用方便,實用價值較高,極容易得到推廣。本作品經(jīng)過實驗,完全能達(dá)到設(shè)計要求,顯示的車速、里程和原車機(jī)械里程表的顯示值誤差小于1%,報警值非常準(zhǔn)確。由于采用的芯片都是廣泛使用的通用芯片,成本較低,制作元器件和印刷電路板成本不過七八十元,如果批量生產(chǎn),成本更低。而且該電子式里程表體積小,功耗低,功能多,穩(wěn)定可靠,性價比高,在很多領(lǐng)域都能得到廣泛的應(yīng)用,具有較高的經(jīng)濟(jì)價值??傮w設(shè)計該電子式里程表以AT89S51單片機(jī)為核心,由系統(tǒng)輸入、單片機(jī)部分和系統(tǒng)輸出組成。其主要模塊有報警裝置、鍵盤輸入、光電傳感器、顯示、單片機(jī)以及EEPROM存儲器。其系統(tǒng)組成框圖如圖1.1所示。圖1.1系統(tǒng)組成框圖單片機(jī)控制模塊是該作品的重要組成部分。為了提高單片機(jī)的使用效率,以及可以實現(xiàn)在線編程,而采用了AT89C51單片機(jī)的升級產(chǎn)品AT89S51單片機(jī)。為保證數(shù)據(jù)的安全可靠保存并減少作品的成本,以及使系統(tǒng)的結(jié)構(gòu)簡單,在里程信息的存儲功能上,沒有采用常用的并行EEPROM存儲器,而采用了新型轎車中廣泛使用的串行EEPROM芯片24C16。當(dāng)電源正常供電時給電容器充電,電源掉電時,利用電容器電流將單片機(jī)中的數(shù)據(jù)寫入EEPROM中。超速報警部分本作品采用了簡單的軟件設(shè)計,由程序產(chǎn)生,鈴聲是為了達(dá)到提示的目的,因此,選用了一個簡單的蜂鳴器,通過軟件定時產(chǎn)生的嘀嘀聲作為提示音,并且接一個紅色的發(fā)光二極管,使報警效果更加理想。在車速里程顯示方面,本作品采用了常用的6位共陽極LED顯示器,通過按鍵的轉(zhuǎn)換以及對單片機(jī)的軟件編程,可在一個6位共陽極LED顯示器中實現(xiàn)系統(tǒng)總里程和單班里程的顯示,而車速則通過另一個4位的共陽極LED顯示器實時顯示。而本系統(tǒng)的車速脈沖采樣部分,采用了非接觸式的高靈敏度光電傳感器,它有利于提高脈沖測量的精度,并提高了系統(tǒng)的可靠性,應(yīng)用時將測量盤固定在車輛的轉(zhuǎn)軸上,再通過光電傳感器來測量。系統(tǒng)設(shè)計可行性分析2.1總體設(shè)計分析根據(jù)電子式里程表的具體設(shè)計要求:(1)顯示車輛行駛的總里程,用6位LED顯示;(2)顯示一段時間的階段里程,用6位LED顯示;(3)顯示車速,用4位LED顯示;(4)實現(xiàn)超速報警;本作品設(shè)計的電子式里程表擁有以下單元功能模塊:(1)光電傳感器的脈沖信號檢測與轉(zhuǎn)換;(2)超速報警功能;(3)里程信息存儲功能;(4)車速和里程的LED顯示功能;根據(jù)電子式里程表的一些基本要求,從而結(jié)合實際情況對具體的單元功能模塊作軟件或硬件上的不同分工,具體如下:在車輛轉(zhuǎn)軸上安裝的光電傳感器的脈沖檢測單元必須使用具體硬件電路來實現(xiàn)。鍵輸入和鍵處理、脈沖記數(shù)處理等功能模塊使用軟件編程方式要比硬件電路簡單得多,實現(xiàn)也很容易。超速報警、里程信息存儲、車速和里程的LED顯示都采用硬件電路和軟件編程相結(jié)合的方式。其中超速報警采用一個蜂鳴器和一個紅色發(fā)光二極管的報警方式,通過單片機(jī)的軟件中斷請求,實現(xiàn)蜂鳴器的嘀嘀聲及發(fā)光二極管的閃爍顯示。里程信息的存儲采用單片機(jī)對存儲器的讀寫方式,實現(xiàn)了數(shù)據(jù)信息的保存。車速和里程的LED顯示通過單片機(jī)P0口和P2口,編程恰當(dāng)?shù)剡x擇各個7段LED顯示器的點亮?xí)r間和間隔時間,實現(xiàn)LED的動態(tài)實現(xiàn)。綜上所述,本作品由以上所述的硬件電路和軟件編程來完成。下面就硬件以及軟件實現(xiàn)的單元電路分別進(jìn)行具體分析。2.2硬件模塊2.2.1光電傳感器模塊經(jīng)過比較,本系統(tǒng)采用了透射式光電測速脈沖整形電路。每當(dāng)安裝在汽車轉(zhuǎn)軸上的旋轉(zhuǎn)測量盤上的長方孔與光電傳感器上的透光孔重合,則光敏三極管受光而通過電流,使三極管飽和導(dǎo)通,故用于脈沖整形的施密特觸發(fā)器CD4093輸出高電平,當(dāng)圓盤轉(zhuǎn)至透光孔被遮時,CD4093輸出低電平。隨著圓盤不停地轉(zhuǎn)動,CD4093便輸出脈沖序列。測出輸出脈沖個數(shù),結(jié)合圓盤每一周的孔數(shù),使可算出轉(zhuǎn)軸旋轉(zhuǎn)的轉(zhuǎn)速,進(jìn)而可算出車輛的行駛速度。2.2.2單片機(jī)控制模塊本系統(tǒng)使用了單片機(jī)AT89S51,它是AT89C51的升級產(chǎn)品,能實現(xiàn)在線編程。單片機(jī)AT89S51是由ATMEL公司生產(chǎn)的51單片機(jī)。簡單介紹如下:AT89S51單片機(jī)是一個低電壓,高性能CMOS8位單片機(jī),該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。其片內(nèi)含有4kbytes的可反復(fù)擦寫的只讀程序存儲器(PEROM)和128bytes的隨機(jī)存取數(shù)據(jù)存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲單元,內(nèi)置功能強(qiáng)大的微型計算機(jī)的AT89S51為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。
AT89S51是一個低功耗高性能單片機(jī),40個引腳,32個外部雙向輸入/輸出(I/O)端口,同時內(nèi)含2個外部中斷口,2個16位可編程定時計數(shù)器,2個全雙工串行通信口,AT89S51可以按照常規(guī)方法進(jìn)行編程,也可以在線編程。其將通用的微處理器和Flash存儲器結(jié)合在一起,特別是可反復(fù)擦寫的Flash存儲器可有效地降低開發(fā)成本。其主要特性如下:·與MCS-51兼容·4K字節(jié)可編程FLASH存儲器·1000次擦寫周期·數(shù)據(jù)保留時間:10年·全靜態(tài)工作:0Hz-24Hz
·三級程序存儲器鎖定·支持在系統(tǒng)編程ISP·128*8位內(nèi)部RAM
·32個可編程I/O口·兩個16位定時器/計數(shù)器·5個中斷源·可編程串行通道·低功耗的閑置和掉電模式·片內(nèi)振蕩器和時鐘電路·具有雙工UART串行通道此單片機(jī)主要用于本系統(tǒng)的控制,包括響應(yīng)中斷、延時、定時、記數(shù)、判斷、掃描鍵盤、超速報警、LED數(shù)碼管顯示等等。2.2.3鍵盤模塊單片機(jī)系統(tǒng)所用的鍵盤有編碼鍵盤和編碼鍵盤兩種。編碼鍵盤是只要按下它的*一個鍵,就能產(chǎn)生這個鍵的代碼,與此同時還產(chǎn)生一個脈沖信號,以通知CPU接收鍵碼。編碼鍵盤使用方便,也不用編寫太復(fù)雜的程序。但硬件電路復(fù)雜,比非編碼簡易鍵盤成本要高。非編碼鍵盤也稱簡易鍵盤,它的按鍵是排列成行、列矩陣形式的。按鍵的作用只是簡單地實現(xiàn)接點的接通或斷開,因此必須有一套相應(yīng)的程序與之配合,才能產(chǎn)生相應(yīng)的鍵碼,它基本上不需要附加什么硬件電路。但需要通過軟件來解決按的識別、防抖動以及如何產(chǎn)生鍵碼的問題。本系統(tǒng)的鍵盤輸入部分,采用了2個功能鍵,用這2個鍵既可以選擇6位LED顯示器顯示是單班里程還是總里程。為了節(jié)約成本,本作品選用簡易鍵盤即兩個按鍵開關(guān)來實現(xiàn)車速與里程的轉(zhuǎn)換顯示。2.2.4顯示模塊單片機(jī)所用的顯示有LED和LCD兩種,從設(shè)計的難度和成本造價來說LCD都要高于LED。液晶顯示器LCD的最大優(yōu)點是電源電壓低和功耗低,但液晶為非發(fā)光型物質(zhì),它是利用外界光源的被動式顯示器件,環(huán)境越明亮顯示越清晰,不能用于暗處。白天靠日光顯示,夜間必須使用照明光源。而且它的工作溫度*圍不寬,低溫條件下靈敏度較低,有時甚至不能正常工作。壽命與使用條件有關(guān),強(qiáng)光下使用壽命會減小。此外,它的響應(yīng)速度較低(在10~200ms*圍),這就限制了它在快速系統(tǒng)中的應(yīng)用。LED數(shù)碼管是目前最常用的數(shù)字顯示器,一個LED數(shù)碼管可用來顯示一位0~9十進(jìn)制數(shù)和一個小數(shù)點,在小型專用微機(jī)系統(tǒng)和單板機(jī)等場合,它是主要的顯示器件,在通用微機(jī)系統(tǒng)中,也常用來作為狀態(tài)等顯示。對于共陽極顯示器,要點亮的顯示段引腳需接低電平“0”。本作品要顯示的是總里程、單班里程以及車速,為數(shù)字顯示?;谝壕э@示器的成本以及在實際應(yīng)用中的需要,因此,本作品選用了由LED組成的共陽極7段發(fā)光顯示器,它有簡單、經(jīng)濟(jì)、易于與單片機(jī)接口等優(yōu)點。存儲模塊此部分是整個系統(tǒng)的關(guān)鍵部分之一,它的工作情況直接決定了系統(tǒng)數(shù)據(jù)安全保存的可靠性。EEPROM是電可擦除可編程只讀存儲器。在平常情況下,EEPROM與EPROM一樣是只讀的,需要寫入時,在指定的引腳加上一個高電壓即可寫入或擦除,而且其擦除的速度極快!通常EEPROM芯片又分為串行EEPROM和并行EEPROM兩種,串行EEPROM在讀寫時數(shù)據(jù)的輸入/輸出是通過2線、3線、4線或SPI總線等接口方式進(jìn)行的,而并行EEPROM的數(shù)據(jù)輸入/輸出則是通過并行總線進(jìn)行的。在汽車上串行EEPROM用得最多,防盜汽車音響解碼,液晶里程表,安全氣囊電腦等等單元模塊都大量采用這種芯片。并行EEPROM用的相對少些。經(jīng)過翻閱大量的文獻(xiàn)資料,發(fā)現(xiàn)使用串行EEPROM芯片作為本系統(tǒng)的外部存儲器,是比較常用的一種方法,而且在做電路板時布線簡單,單片機(jī)編程時也穩(wěn)定可靠,當(dāng)失電時數(shù)據(jù)能得以安全的保存,因而采用了串行EEPROM芯片24C16。本系統(tǒng)所用的24C16是美國ATMEL公司的低功耗CMOS串行EEPROM,它是內(nèi)含2K×8位存儲空間,具有工作電壓寬(2.5~5.5V)、擦寫次數(shù)多(大于10000次)、寫入速度快(小于10ms)等特點。24C16的1、2、3腳是三條地址線,用于確定芯片的硬件地址。在AT89S51試驗開發(fā)板上它們都接地,第8腳和第4腳分別為正、負(fù)電源。第5腳SDA為串行數(shù)據(jù)輸入/輸出,數(shù)據(jù)通過這條雙向I2C總線串行傳送,在AT89S51試驗開發(fā)板上和單片機(jī)的P1.4連接。第6腳SCL為串行時鐘輸入線,在AT89C51試驗開發(fā)板上和單片機(jī)的P1.3連接。SDA和SCL都需要和正電源間各接一個10K的電阻上拉。第7腳需要接地。24C02中帶有片內(nèi)地址寄存器。每寫入或讀出一個數(shù)據(jù)字節(jié)后,該地址寄存器自動加1,以實現(xiàn)對下一個存儲單元的讀寫。所有字節(jié)均以單一操作方式讀取。為降低總的寫入時間,一次操作可寫入多達(dá)8個字節(jié)的數(shù)據(jù)。2.3軟件模塊 通過上面分析,設(shè)計中決定選用S51系列單片機(jī)作為控制器,則它的軟件編寫就要按照單片機(jī)語言:C語言或匯編語言來編寫,這里我選用執(zhí)行效率高的匯編語言編寫。開發(fā)工具為keilc51,它的功能強(qiáng)大,支持c語言和匯編語言的編寫與調(diào)試,其軟件模擬I/O口將會給軟件調(diào)試帶來極大的方便。脈沖測量部分本單元需要兩個I/O口,我選用了單片機(jī)的P1.5和P1.6。由于脈沖測量過程中,開始檢測時脈沖寬度已小于機(jī)器周期T,因而會導(dǎo)致脈沖的丟失。為了避免脈沖的丟失,可用門電路實現(xiàn)記數(shù)開始與脈沖上升沿的同步控制。所以在控制時,首先由P1.6發(fā)一個清0負(fù)脈沖,其輸出封鎖與門G1和G2。接著由P1.5發(fā)一個啟動正脈沖,從而將門G2打開。之后,被測脈沖上升沿通過G2送T1計數(shù);同時Q2輸出的高電平使INT0=1,定時器0的門控GATE有效,啟動T/C0開始定時。直到定時結(jié)束時,從P1.6發(fā)出一個負(fù)脈沖,將U2清零,從而封鎖G2,使T/C1停止計數(shù),至此一次頻率采樣過程結(jié)束。計數(shù)器1采用計數(shù)值滿后自然清零再計數(shù)的方法。將T/C0設(shè)為高優(yōu)先級,允許計數(shù)過程中定時中斷。鍵盤輸入部分本單元采用了單片機(jī)的P1.1和P1.2口,通過外接兩個按鍵開關(guān),從而控制一個6位LED顯示器的總里程和單班里程的顯示。由于機(jī)械開關(guān)在狀態(tài)轉(zhuǎn)換時有信號的抖動,故在接入開關(guān)的同時,必須考慮防抖動的問題。防抖動的方法之一是軟件延時去抖動。既在開關(guān)狀態(tài)改變時,執(zhí)行一個延時程序,待電平穩(wěn)定后再讀入開關(guān)狀態(tài)信息。而采用的鍵盤分析程序應(yīng)包括:是否有鍵按下以及識別哪個鍵按下。一旦找到*鍵,是否按下此鍵,即可將程序轉(zhuǎn)到該鍵的功能程序段。存儲器部分本系統(tǒng)采用的是串行EEPROM芯片24C16,24C16的1-3腳分別為器件編址端A0、A1、A2(用于與系統(tǒng)中的同類器件編碼),4腳為電源地,5腳為I2C總線的數(shù)據(jù)線SDA,6腳為I2C總線的時鐘SCL,7腳為測試輸入端,在系統(tǒng)中接地,8腳為電源。當(dāng)時鐘線SCL為高電平時,數(shù)據(jù)線SDA由高電平跳變?yōu)榈碗娖蕉x為“開始”信號;當(dāng)SCL線為高電平時,SDA線發(fā)生低電平到高電平的跳變?yōu)椤敖Y(jié)束”信號。程序中多處調(diào)用了DELAY子程序(僅兩條NOP指令),這是為了滿足I2C總線上數(shù)據(jù)傳送速率的要求,只有當(dāng)SDA數(shù)據(jù)線上的數(shù)據(jù)穩(wěn)定下來之后才能進(jìn)行讀寫(即SCL線發(fā)出正脈沖)。另外,在讀最后一個數(shù)據(jù)字節(jié)時,置應(yīng)答信號為“1”,表示讀操作即將完成。超速報警部分本單元采用一個蜂鳴器和一個紅色發(fā)光二極管與單片機(jī)的P1.0口相接的報警實現(xiàn)方式,光電傳感器檢測汽車轉(zhuǎn)軸的脈沖信號,并經(jīng)過頻率測量電路,輸入到單片機(jī)的T1口,通過單片機(jī)的T1口記數(shù),由單片機(jī)進(jìn)行數(shù)據(jù)處理,轉(zhuǎn)換成車速值。這實時的車速值與單片機(jī)設(shè)定的最大車速值相比較,當(dāng)車速值大于最大車速值時,通過單片機(jī)的軟件中斷請求,以1秒鐘為周期,實現(xiàn)蜂鳴器的嘀嘀聲及發(fā)光二極管的閃爍顯示。當(dāng)車速值回落到最大車速值以下時,則通過單片機(jī)控制,關(guān)閉超速報警功能。顯示部分本單元采用一個6位共陽極LED顯示器中實現(xiàn)系統(tǒng)總里程和單班里程的顯示,而車速則通過另一個4位的共陽極LED顯示器實時顯示。其中LED顯示器的段選碼都由單片機(jī)的P0口連接控制,4位LED顯示器的位選碼由單片機(jī)的P2.6和P2.7口通過譯碼器74LS139控制,譯碼器74LS139對單片機(jī)的P2.6和P2.7口分時選通,這樣任何一個時刻,都只有一位LED在點亮,也即動態(tài)掃描顯示方式。74LS139是一個2-4譯碼器,它將單片機(jī)輸出的地址信號譯碼后動態(tài)驅(qū)動相應(yīng)的LED。但74LS139電流驅(qū)動能力較小,為此,我使用了未級驅(qū)動PNP三極管C9015作為地址驅(qū)動。而6位LED顯示器的位選碼,則由單片機(jī)的P2.0至P2.5口控制。經(jīng)過翻閱大量的技術(shù)資料,對具體要**現(xiàn)的功能進(jìn)行完整的系統(tǒng)分析,我認(rèn)為我的電子式里程表的系統(tǒng)設(shè)計基本符合實際情況,可以完成設(shè)計任務(wù)所要**現(xiàn)的基本功能。3硬件單元電路設(shè)計3.1傳感器的設(shè)計汽車開動后,監(jiān)測傳感器對汽車轉(zhuǎn)軸的轉(zhuǎn)動進(jìn)行采樣,將脈沖采樣信號輸入到單片機(jī)管腳,單片機(jī)的定時計數(shù)器T1工作于計數(shù)器方式,累計脈沖個數(shù),根據(jù)一段時間內(nèi)的脈沖個數(shù)和車輪的大小,就可以由單片機(jī)計算出運行的速度和公里數(shù),并驅(qū)動顯示器進(jìn)行顯示。3.1.1傳感器的選擇轉(zhuǎn)速是指每分鐘內(nèi)旋轉(zhuǎn)軸轉(zhuǎn)動的圈數(shù)。機(jī)械式轉(zhuǎn)速儀和電模擬式測速儀已經(jīng)無法滿足自動化程序日益提高的需要,它們只能測量精度不高的轉(zhuǎn)速,而且輸出不能直接供計算機(jī)使用,因此,非接觸式的光電數(shù)字轉(zhuǎn)速儀表就越來越廣泛地得到應(yīng)用。光電傳感器是采用光電元件作為檢測元件的傳感器。它首先把被測量的變化轉(zhuǎn)換成光信號的變化,然后借助光電元件進(jìn)一步將光信號轉(zhuǎn)換成電信號。光電傳感器一般由光源、光學(xué)通路和光電元件三部分組成。光電檢測方法具有精度高、反應(yīng)快、非接觸等優(yōu)點,而且可測參數(shù)多,傳感器的結(jié)構(gòu)簡單,形式靈活多樣,因此在檢測和控制領(lǐng)域內(nèi)得到廣泛應(yīng)用。由于采用光電傳感器,可以實現(xiàn)非接觸測量。光電式轉(zhuǎn)速測量儀表比較容易作為高頻脈沖頻率傳感器。例如,可在每轉(zhuǎn)中發(fā)出幾萬脈沖,因此分辨率高,可測極低的轉(zhuǎn)速,測量*圍幾乎可從零轉(zhuǎn)開始。其次這種測量方法一般對轉(zhuǎn)軸的附加載荷都很小,不會影響被測對象的正常旋轉(zhuǎn),光電式轉(zhuǎn)速傳感器工作在脈沖狀態(tài)下,它是將轉(zhuǎn)軸的轉(zhuǎn)速變換成相應(yīng)頻率的脈沖,然后測出脈沖頻率就可以測得轉(zhuǎn)速值。這種測速方法具有傳感器結(jié)構(gòu)簡單、可靠、測量精度高等優(yōu)點。光電轉(zhuǎn)速傳感器的性能可歸納如下:(1)傳感器采用無接觸測量,不增加被測物旋轉(zhuǎn)力矩,測量小里矩的旋轉(zhuǎn)物能獲得很高的精度。(2)光電傳感器是利用光波作為媒介來實現(xiàn)轉(zhuǎn)速測量的,抗電磁干擾能力強(qiáng),如果采用調(diào)制光源或調(diào)制型發(fā)光器件,傳感器還可具有抗外界雜光干擾能力。(3)傳感器利用光電效應(yīng)方便地將轉(zhuǎn)速換成電量信號。故此類傳感器測量*圍寬、非接觸檢測距離遠(yuǎn),隨著激光技術(shù)的發(fā)展,使光電檢測技術(shù)獲得了新發(fā)展,能達(dá)到超遠(yuǎn)距離的測量。(4)光電傳感器易受環(huán)境霧塵,粉塵、油塵、水霧及雜光的影響。經(jīng)過比較,由于光電傳感器的結(jié)構(gòu)簡單、可靠、測量精度高等優(yōu)點,因而本設(shè)計中選用了光電傳感器。3.1.2光電傳感器的選擇光電傳感器的類型按照光電傳感器中光電元件輸出電信號的形式可以將光電傳感器分為模擬式和脈沖式兩大類。(1)模擬式光電傳感器這種傳感器中光電元件接受的光通量隨被測量連續(xù)變化,因此,輸出的光電流也是連續(xù)變化的,并與被測量呈確定的函數(shù)關(guān)系。(2)脈沖式光電傳感器在這種傳感器中,光電元件接受的光信號是斷續(xù)變化的,因此光電元件處于開關(guān)工作狀態(tài),它輸出的光電流通常是只有兩種穩(wěn)定狀態(tài)的脈沖形式的信號,多用于光電計數(shù)和光電式轉(zhuǎn)速測量等場合。通過兩種形式的光電傳感器比較,我選用了脈沖式光電傳感器,因其多用于光電計數(shù)和光電式轉(zhuǎn)速測量等場合。脈沖式光電轉(zhuǎn)速傳感器從光路系統(tǒng)看,有透射式和反射式兩種。(1)透射式光電傳感器這種儀表的測量盤裝在被測轉(zhuǎn)軸上,在它旁邊裝有不動的讀數(shù)盤。測量盤沿外緣圓周刻有等距徑向透明光縫,在讀數(shù)盤上刻有同樣間距的透光縫隙,當(dāng)測量盤隨被測軸一起轉(zhuǎn)動時,每轉(zhuǎn)過一個縫隙,由光源射來的光線就將照射到光敏元件上一次,這個光脈沖將引起光敏元件的輸出電脈沖,在孔數(shù)一定時,該列電脈沖數(shù)就和轉(zhuǎn)速成正比。電脈沖經(jīng)測量電路整形放大后再送入頻率計計數(shù)和顯示,經(jīng)核算或標(biāo)定后,就可以得到一個便于測量計數(shù)的信號,此時被測轉(zhuǎn)速為n=f/N式中f——測得的脈沖頻率;N——每轉(zhuǎn)脈沖數(shù),它等于圓周上之縫數(shù)。若在調(diào)制盤上開60個小孔,則可在1秒的記數(shù)值上直接讀出轉(zhuǎn)速大小。它可以測量1r/min的車速。如果開600個孔,則它的測量精度為0.1r/min。(2)反射式光電傳感器在轉(zhuǎn)軸上不便于安裝測量轉(zhuǎn)盤時,還可以采用在測量轉(zhuǎn)軸上加反射鏡的方法。在可能時,為了提高分辨率,可以在轉(zhuǎn)軸圓周方向等距貼數(shù)塊反射鏡。只有光線入射時,轉(zhuǎn)軸每轉(zhuǎn)一周就有數(shù)次光反射作用。再用簡單光學(xué)系統(tǒng)將反射光投到光敏元件上,就可以輸出相應(yīng)的電脈沖。其它部分與透射式一樣,通過測脈沖頻率就可以求出轉(zhuǎn)速。反射式轉(zhuǎn)速表使用方便,它不給轉(zhuǎn)軸帶來附加載荷,可以在距被測物數(shù)十毫米外非接觸地測量其轉(zhuǎn)速,但要求轉(zhuǎn)軸不能太細(xì),便于貼反射鏡,它適于測量的轉(zhuǎn)速*圍為30~4.8×r/min。通過比較,可知透射式光電傳感器比反射式光電傳感器的測量精度高,因而本設(shè)計中我采用了透射式光電傳感器,并且采用了60條縫隙的測量盤。如圖3.1所示,為透射式光電轉(zhuǎn)速傳感器的結(jié)構(gòu)原理圖。圖3.1透射式光電轉(zhuǎn)速傳感器的結(jié)構(gòu)原理測量盤上具有相同間距的縫隙,當(dāng)測量盤轉(zhuǎn)動時,轉(zhuǎn)過一條縫隙,光線便產(chǎn)生一次明暗變化,使光敏元件感光一次,用這種結(jié)構(gòu)可以大大增加轉(zhuǎ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)所采用的透射式光電測速脈沖整形電路圖。每當(dāng)旋轉(zhuǎn)圓盤上的長方孔與光電開關(guān)上的透光孔重合,則光敏三極管受光而通過電流,使三極管飽和導(dǎo)通,故施密特觸發(fā)器CD4093輸出高電平,當(dāng)圓盤轉(zhuǎn)至透光孔被遮時,CD4093輸出低電平。隨著圓盤不停地轉(zhuǎn)動,CD4093便輸出脈沖序列。測出輸出脈沖個數(shù),結(jié)合圓盤每一周的孔數(shù),使可算出旋轉(zhuǎn)的轉(zhuǎn)速及轉(zhuǎn)角。圖中的CD4093用于脈沖整形。圖3.3透射式光電測速脈沖整形電路圖3.2單片機(jī)與光電傳感器的接口設(shè)計單片機(jī)測量頻率有兩種方法:測頻法和測周期法。測量頻率就是在單位定時時間里對被測信號脈沖進(jìn)行計數(shù);測量周期是在被測信號周期時間里對其一基準(zhǔn)時鐘脈沖進(jìn)行計數(shù)。測周期法常用于脈沖頻率較低的場合,所以在本系統(tǒng)中我采用了測頻法。測量頻率最簡單的方法是將被測信號整形為脈沖,然后連接到單片機(jī)的定時器/記數(shù)器(T/C)的外部脈沖輸入端,本系統(tǒng)中將被測信號脈沖AT89S51的T1端。可將AT89S51的一個T/C0用作定時器,另一個T/C1用作計數(shù)器。在T/C0定時時間里,由T/C1對頻率脈沖進(jìn)行計數(shù)。T/C1的計數(shù)值是單位定時時間里的脈沖個數(shù)。但應(yīng)注意如下問題:(1)由于AT895S51對輸入T/C的外部脈沖計數(shù),是通過在每個機(jī)器周期的第10個時鐘周期對輸入端T1采樣,故需要兩個機(jī)器周期(等于24個時鐘周期)識別一個脈沖的負(fù)跳變,每識別到一個脈沖的負(fù)跳變將計數(shù)器加1。因此被測脈沖的最高頻率必須小于。此外,還要求被測頻率脈沖的寬度應(yīng)大于一個機(jī)器周期T。本系統(tǒng)所采用的時鐘頻率為12,則被測脈沖的最高頻率不應(yīng)超過1224500;其寬度必須大于。(2)在定時記數(shù)時會出現(xiàn)如圖3.4所示的丟失脈沖的情況。第一個脈沖的丟失,是由于開始檢測時脈沖寬度已小于機(jī)器周期T;第二個脈沖丟失是由于脈沖的負(fù)跳變在定時之處出現(xiàn)。定時時間里出現(xiàn)脈沖丟失,將引起測量精度降低。脈沖頻率越低,這種誤差越大。圖3.4頻率測量法的脈沖丟失為解決圖3.4中第一個脈沖的丟失,可用門電路實現(xiàn)記數(shù)開始與脈沖上升沿的同步控制。圖3.5是用AT80S51的T/C0作定時器,T/C1作計數(shù)器,對頻率測量的接口電路。圖3.5帶同步控制的頻率測量接口控制時,首先由P1.6發(fā)一個清0負(fù)脈沖,使U1、U2兩個D觸發(fā)器復(fù)位,其輸出封鎖與門G1和G2。接著由P1.5發(fā)一個啟動正脈沖,其有效上升沿使Q1=1,門G1被開放,使被測脈沖得以通過門G1,使Q2置為1,從而將門G2打開。之后,被測脈沖上升沿通過G2送T1計數(shù);同時Q2輸出的高電平使INT0=1,定時器0的門控GATE有效,啟動T/C0開始定時。直到定時結(jié)束時,從P1.6發(fā)出一個負(fù)脈沖,將U2清零,從而封鎖G2,使T/C1停止計數(shù),至此一次頻率采樣過程結(jié)束。在本系統(tǒng)中,為汽車轉(zhuǎn)軸上安裝的測量盤縫隙對應(yīng)的頻率,測量T/C定時時間為1S,這樣長時間的定時,先由T/C0定時100ms,之后軟件循環(huán)10次來完成(10×100ms=1s)。T/C作頻率脈沖的計數(shù)器,若單片機(jī)工作在計數(shù)方式1,最大計數(shù)值為65536。若100ms計數(shù)65536次,則脈沖的頻率為655.36kHz,這已經(jīng)超過了AT89S51的計數(shù)器的最高頻率500kHz,能夠發(fā)揮出T/C的最大計數(shù)能力。T/C0定時100ms的計數(shù)初值設(shè)為3CB0H,并設(shè)定時器/計數(shù)器方式字TMOD=59h。計數(shù)器1采用計數(shù)值滿后自然清零再計數(shù)的方法。將T/C0設(shè)為高優(yōu)先級,允許計數(shù)過程中定時中斷,即定時時間到就中止計數(shù)。3.3單片機(jī)與外部存儲器的接口設(shè)計本系統(tǒng)采用的是串行EEPROM芯片24C16,24C16的1-3腳分別為器件編址端A0、A1、A2(用于與系統(tǒng)中的同類器件編碼),4腳為電源地,5腳為I2C總線的數(shù)據(jù)線SDA,在系統(tǒng)中與單片機(jī)的P1.3口相接,6腳為I2C總線的時鐘SCL,在系統(tǒng)中與單片機(jī)的P1.4口相接,7腳為測試輸入端,在系統(tǒng)中接地,8腳為電源。當(dāng)時鐘線SCL為高電平時,數(shù)據(jù)線SDA由高電平跳變?yōu)榈碗娖蕉x為“開始”信號;當(dāng)SCL線為高電平時,SDA線發(fā)生低電平到高電平的跳變?yōu)椤敖Y(jié)束”信號。在5腳SDA,6腳SCL上分別接兩個10K的上拉電阻,并外接了一個瓷介電容,當(dāng)電源正常供電時給電容器充電,電源掉電時,利用電容器電流將單片機(jī)中的數(shù)據(jù)寫入EEPROM中。3.4單片機(jī)與超速報警電路的接口設(shè)計本部分采用一個蜂鳴器和一個紅色發(fā)光二極管與單片機(jī)的P1.0口相接的報警實現(xiàn)方式,。若實時的車速值與單片機(jī)設(shè)定的最大車速值相比較,當(dāng)車速值大于最大車速值時,通過單片機(jī)的軟件中斷請求,以1秒鐘為周期,從而實現(xiàn)P1.0口高低電平的通斷。當(dāng)P1.0口為高電平時,輸出正5V的電壓,使紅色發(fā)光二極管得以導(dǎo)通。而且電流由另一條通路使NPN三極管導(dǎo)通,射極輸出電流驅(qū)動蜂鳴器工作。當(dāng)P1.0為低電平時,則不能使紅色發(fā)光二極管和NPN三極管導(dǎo)通,因而不能工作。正因為P1.0口高低電平的通斷作用,實現(xiàn)蜂鳴器的嘀嘀聲及發(fā)光二極管的閃爍顯示,從而實現(xiàn)了系統(tǒng)超速報警的功能。其電路圖如下圖3.6所示:圖3.6超速報警電路圖3.5單片機(jī)與鍵盤和7段顯示器的接口設(shè)計本系統(tǒng)的鍵盤輸入部分,采用2個功能鍵,用這2個鍵,既可以選擇顯示是單班里程還是總里程。本系統(tǒng)采用的是常見的按鈕開關(guān)。開關(guān)的接入方法是先將按鈕開關(guān)的狀態(tài)轉(zhuǎn)變?yōu)檫壿嬰娖剑缓罂芍苯咏拥絾纹瑱C(jī)的*一條I/O線。但由于機(jī)械開關(guān)在狀態(tài)轉(zhuǎn)換時有信號的抖動,故在接入開關(guān)的同時,必須考慮防抖動的問題。其圖3.7如下所示:圖3.7鍵盤輸入電路圖而七段LED顯示器一般都是同時使用幾個LED顯示器,它有兩種連用方法:一是每一位都用各自的8位輸出口控制,在顯示*一字符時,相應(yīng)的段恒定發(fā)光或不發(fā)光,這種顯示方法屬于靜態(tài)顯示,它占用較多的I/O口線。二是動態(tài)顯示,即將多個7段LED的段選端復(fù)接在一起,只用一個8位輸出控制段選,段選同時加到各個7段LED顯示器上,通過控制各個顯示器公共陽極/陰極輪流接電/接地的方法,逐一輪流地啟動各個LED。這種方法中,只要恰當(dāng)?shù)剡x擇點亮?xí)r間和時間間隔,就會給人以為是各位LED同時顯示的假象。這里使用了一個6位和一個4位動態(tài)顯示的共陽極數(shù)碼管顯示器。其中LED顯示器的段選碼都由單片機(jī)的P0口連接控制,4位LED顯示器的位選碼由單片機(jī)的P2.6和P2.7口通過譯碼器74LS139控制,譯碼器74LS139對單片機(jī)的P2.6和P2.7口分時選通,這樣任何一個時刻,都只有一位LED在點亮,也即動態(tài)掃描顯示方式。74LS139是一個2-4譯碼器,它將單片機(jī)輸出的地址信號譯碼后動態(tài)驅(qū)動相應(yīng)的LED。但74LS139的電流驅(qū)動能力較小,為此,使用了未級驅(qū)動PNP三極管C9015作為地址驅(qū)動。而6位LED顯示器的位選碼,則由單片機(jī)的P2.0至P2.5口控制。再通過軟件編程,從而控制各自的7節(jié)LED是否被點亮(由于本模塊電路較大,就沒有在這里列出,但可以參考本作品的完整電路原理圖)。4軟件設(shè)計系統(tǒng)的主程序流程如圖4.1所示。圖4.1系統(tǒng)主程序流程圖本系統(tǒng)的控制、運算和管理功能都要通過軟件設(shè)計來完成,本系統(tǒng)采用模塊式設(shè)計技術(shù)來進(jìn)行軟件設(shè)計,整個軟件在功能上可分為初始化模塊,鍵輸入和鍵處理模塊,脈沖計數(shù)處理模塊,顯示模塊,段碼表子程序塊,存儲模塊。AT89S51單片機(jī)硬件中斷人口地址為0013H,并且在這里按鍵輸入、顯示子程序和脈沖計數(shù)均用到了T/C(計時/計數(shù)器)中斷功能。系統(tǒng)的初始化,除了分配一些功能寄存器、定義一些常量、設(shè)置AT89S51單片機(jī)的輸人輸出口的工作模式外,還要將24C16設(shè)置為串行傳輸模式,清除P0、P2、P13個口的寄存器以及接收計數(shù)器等一些功能寄存器及開中斷等。下面,就各單元功能模塊分別進(jìn)行說明。4.1脈沖測量部分由于脈沖測量過程中,開始檢測時脈沖寬度已小于機(jī)器周期T,因而會導(dǎo)致脈沖的丟失。為了避免脈沖的丟失,可用門電路實現(xiàn)記數(shù)開始與脈沖上升沿的同步控制。所以在控制時,首先由P1.6發(fā)一個清0負(fù)脈沖,其輸出封鎖與門G1和G2。接著由P1.5發(fā)一個啟動正脈沖,從而將門G2打開。之后,被測脈沖上升沿通過G2送T1計數(shù);同時Q2輸出的高電平使INT0=1,定時器0的門控GATE有效,啟動T/C0開始定時。直到定時結(jié)束時,從P1.6發(fā)出一個負(fù)脈沖,將U2清零,從而封鎖G2,使T/C1停止計數(shù),至此一次頻率采樣過程結(jié)束。計數(shù)器1采用計數(shù)值滿后自然清零再計數(shù)的方法。將T/C0設(shè)為高優(yōu)先級,允許計數(shù)過程中定時中斷。電路圖在圖3.5。下面是初始化和同步控制程序及中斷服務(wù)程序。位地址06H作定時1s時間到標(biāo)志位,R7作軟件計數(shù)器,計數(shù)10個100ms。ORG0000H;;AJMPMAIN;ORG000BH;定時器T0中斷AJMPTIMER0;ORG001BH;定時器T1中斷AJMPCONTER1;MAIN:CLR06H;清定時時間到標(biāo)志位CLRP1.6;產(chǎn)生清0用負(fù)脈沖NOPSETBP1.5MOVTMOD,*59H;MOVTH0,*3CH;T/C0外部啟動定時,T/C1計數(shù)MOVTL0,*0B0H;MOVTH1,*00H;T/C1方式1由00H開始計數(shù)MOVTL1,*00H;MOVR7,*0AH;計數(shù)10個100msSETBTR0;T/C0啟動SETBTR1;T/C1啟動SETBPT0;定時器0為高中斷優(yōu)先級SETBET0;開T/C0中斷SETBET1;開T/C1中斷SETBEA;CPU開中斷NOP;CLRP1.5;HE:JNB06H,HE;產(chǎn)生時1s時間到CLRP1.6;產(chǎn)生負(fù)脈沖,封鎖G2NOP;SETBP1.6;CLRTR0;關(guān)閉定時器CLRTR1;關(guān)閉定時器LCALLDATAP;調(diào)數(shù)據(jù)處理子程序LCALLDIS;調(diào)顯示子程序SJMPMAINTIMER0:MOVTH0,*3CH;T/C0中斷服務(wù)程序MOVTL0,*0B0H;DJNZR7,RE;MOVR7,*0AH;SETB06H;1s定時時間到RE:RETI;T/C0中斷返回CONTER1:RETI;T/C1中斷返回4.2鍵盤輸入部分這個部分是比較簡單的一個部分,在硬件設(shè)計部分本人對簡易鍵盤做了比較詳細(xì)的介紹,這里就不再重復(fù)。鍵盤輸入部分采用2個功能鍵,用這2個鍵既可以選擇顯示是單班里程還是總里程。由于機(jī)械開關(guān)在狀態(tài)轉(zhuǎn)換時有信號的抖動,故在接入開關(guān)的同時,必須考慮防抖動的問題。防抖動的方法之一是軟件延時去抖動。既在開關(guān)狀態(tài)改變時,執(zhí)行一個延時程序,待電平穩(wěn)定后再讀入開關(guān)狀態(tài)信息。鍵的去抖動方法由軟件延時來解決。鍵盤分析程序應(yīng)包括:是否有鍵按下以及識別哪個鍵按下。一旦找到*鍵,是否按下此鍵,即可將程序轉(zhuǎn)到該鍵的功能程序段。本系統(tǒng)所采用的鍵盤輸入程序如下:KEY:MOVR0,*0FHKEY1:MOVP1,R0MOVA,P1;輸入鍵盤信息ANLA,R0CLRCSUBBA,R0JZKEY1;有鍵按下"ACALLD10MS;有,去抖動MOVA,P1;讀鍵信息JNBACC.0,K0;為0鍵按下,轉(zhuǎn)K0程序JNBACC.1,K1;為1鍵按下,轉(zhuǎn)K1程序SJMPKEY其中0FH為置P1口的P1.0~P1.3為輸入方式字,并且也是讀入鍵盤信息的屏蔽字。判斷有無鍵按下的方法是:輸入鍵盤信息,如果低4位為全1,則無鍵按下,否則一定有鍵按下。何鍵按下的確定是通過識別P1.0~P1.1中的哪一位為“0”來完成的。標(biāo)號K0、K1分別為相應(yīng)鍵功能程序的入口地址。D10MS為延時10ms的子程序(機(jī)械開關(guān)的抖動過程約為數(shù)毫秒)。4.3數(shù)據(jù)處理部分平均轉(zhuǎn)速測量中,最普通的方法是當(dāng)旋轉(zhuǎn)體每轉(zhuǎn)一圈,由脈沖轉(zhuǎn)換器發(fā)生60或600個脈沖,并將它在一秒鐘之內(nèi)通過門,用計數(shù)器計數(shù),從而用r/min直流值表示的方法。若設(shè)計數(shù)器的計數(shù)值為C,脈沖轉(zhuǎn)換器每轉(zhuǎn)的檢測脈沖數(shù)為P,計數(shù)時間為t秒,轉(zhuǎn)速為N(r/min),則有如下關(guān)系式成立:本系統(tǒng)中采用t=1S,P=60,則C=N;取P為60時,則在1S內(nèi)可測量1r/min單位的轉(zhuǎn)速。而要從轉(zhuǎn)速算出車速值和里程值,就要知道輪胎的規(guī)格,得出輪胎外直徑,從而獲得輪胎的周長。根據(jù)輪胎的ISO國際標(biāo)準(zhǔn),可知:輪胎規(guī)格的ISO表示方法為:ABCDEFG其含義為:A:斷面寬。B:高寬比(斷面高除以斷面寬乘以100%)。C:輪胎結(jié)構(gòu)代號。D:內(nèi)輪轂直徑。E:單胎負(fù)荷指數(shù)。F:雙胎負(fù)荷指數(shù)。G:速度符號。如輪胎規(guī)格:195/65R1591V,本設(shè)計中由于不涉及A、E、F、G,所以沒有提及。輪胎外直徑的計算公式:(斷面寬*高寬比%*2)+(內(nèi)輪轂直徑*25.4)示例:195/60R14=(195*0.6*2)+(14*25.4)=589.6mm本系統(tǒng)采用的輪胎為小型汽車的輪胎,規(guī)格為145/70R12真空胎因而輪胎外直徑為145/70R12=(145*0.7*2)+(12*25.4)=507.8mm根據(jù)周長計算公式可得:輪胎周長C=507.8*3.14=1594.492mm≈1.6m假設(shè)系統(tǒng)的脈沖計數(shù)值設(shè)為K,車速為N,周長為C,則車速計算公式為:N=K×C×60/1000=____千米/小時同樣可得出1秒鐘脈沖計數(shù)的里程值:S=K×C/60=____米,通過累計,就能得到總的里程數(shù)。由汽車在行駛過程中的輪胎磨損,不在本設(shè)計能預(yù)計的*圍之內(nèi),因而系統(tǒng)的數(shù)值不可避免會有一定的微小誤差。以下為雙字節(jié)二進(jìn)制無符號數(shù)乘法程序MULD以及無符號除法程序D457,本程序可套用為以上的計算程序。
入口條件:被乘數(shù)在R2、R3中,乘數(shù)在R6、R7中。
出口信息:乘積在R2、R3、R4、R5中。
影響資源:PSW、A、B、R2~R7堆棧需求:2字節(jié)
MULD:MOVA,R3;計算R3乘R7
MOVB,R7
MULAB
MOVR4,B;暫存部分積
MOVR5,A
MOVA,R3;計算R3乘R6
MOVB,R6
MULAB
ADDA,R4;累加部分積
MOVR4,A
CLRA
ADDCA,B
MOVR3,A
MOVA,R2;計算R2乘R7
MOVB,R7
MULAB
ADDA,R4;累加部分積MOVR4,A
MOVA,R3
ADDCA,B
MOVR3,A
CLRA
RLCA
*CHA,R2;計算R2乘R6
MOVB,R6
MULAB
ADDA,R3;累加部分積
MOVR3,A
MOVA,R2
ADDCA,B
MOVR2,A
RET入口條件:被除數(shù)在R4、R5中,除數(shù)在R7中。
出口信息:商在R6中。
影響資源:PSW、A、R3~R7堆棧需求:2字節(jié)D457:CLRCMOVA,R4SUBBA,R7JCDV50SETBOV;商溢出RETDV5O:MOVR0,*8;求平均值DV51:MOVA,R5RLCAMOVR5,AMOVA,R4RLCAMOVR4,AMOVF0,CCLRCSUBBA,R7ANLC,/F0JCDV52MOVR4,ADV52:CPLCMOVA,R6RLCAMOVR6,ADJNZR0,DV51MOVA,R4ADDA,R4JCDV53SUBBA,R7JCDV54DV53:INCR6DV54:CLROVRET4.4存儲器部分存儲器部分主要解決單片機(jī)的里程數(shù)據(jù)的保存,因而要處理好24C16的字節(jié)讀寫問題。當(dāng)24C16的時鐘線SCL為高電平時,數(shù)據(jù)線SDA由高電平跳變?yōu)榈碗娖蕉x為“開始”信號;當(dāng)SCL線為高電平時,SDA線發(fā)生低電平到高電平的跳變?yōu)椤敖Y(jié)束”信號。開始和結(jié)束信號都是單片機(jī)產(chǎn)生。在開始信號以后,總線即被認(rèn)為處于忙狀態(tài);在結(jié)束信號以后的一段時間內(nèi),總線被認(rèn)為是空閑的。對于24C16的數(shù)據(jù)傳送,在24C16的I2C總線上每次傳送的數(shù)據(jù)字節(jié)數(shù)不限,但每一個字節(jié)必須為8位,而且每個傳送的字節(jié)后面必須跟一個認(rèn)可位(第9位),也叫應(yīng)答位(ACK)。每次都是先傳最高位,通常從單片機(jī)上接收到每個字節(jié)后都會做出響應(yīng),即釋放SCL線返回高電平,準(zhǔn)備接收下一個數(shù)據(jù)字節(jié),單片機(jī)可繼續(xù)傳送。當(dāng)單片機(jī)發(fā)送完一個字節(jié)的數(shù)據(jù)后,接著發(fā)出對應(yīng)于SCL線上的一個時鐘(ACK)認(rèn)可位,在此時鐘內(nèi)單片機(jī)釋放SDA線,一個字節(jié)傳送結(jié)束,而從器件的響應(yīng)信號將SDA線拉成低電平,使SDA在該時鐘的高電平期間為穩(wěn)定的低電平。從器件的響應(yīng)信號結(jié)束后,SDA線返回高電平,進(jìn)入下一個傳送周期。24C16芯片的讀寫子程序如下:;寫串行E2PROM子程序EEPW;R3=10100000(命令1010+器件3位地址+讀/寫。器件地址一個芯片,是000);(R4)=片內(nèi)字節(jié)地址;(R1)=欲寫數(shù)據(jù)存放地址指針;(R7)=連續(xù)寫字節(jié)數(shù)nEEPW:MOVP1,*0FFHCLRP1.0;發(fā)開始信號MOVA,R3;送器件地址ACALLSUBSMOVA,R4;送片內(nèi)字節(jié)地址ACALLSUBSAGAIN:MOVA,R1ACALLSUBS;調(diào)發(fā)送單字節(jié)子程序INCR1DJNZR7,AGAIN;連續(xù)寫n個字節(jié)CLRP1.0;SDA置0,準(zhǔn)備送停止信號ACALLDELAY;延時以滿足傳輸速率要求SETBP1.1;發(fā)停止信號ACALLDELAYSETBP1.0RETSUBS:MOVR0,*08H;發(fā)送單字節(jié)子程序LOOP:CLRP1.1RLCAMOVP1.0,CNOPSETBP1.1ACALLDELAYDJNZR0,LOOP;循環(huán)8次送8個bitCLRP1.1ACALLDELAYSETBP1.1REP:MOVC,P1.0JCREP;判應(yīng)答到否,未到則等待CLRP1.1RETDELAY:NOPNOPRET;讀串行E2PROM子程序EEPR;(R1)=欲讀數(shù)據(jù)存放地址指針;R3=10100001(命令1010+器件3位地址+讀/寫。器件地址一個芯片,是000);(R4)=片內(nèi)字節(jié)地址;(R7)=連續(xù)讀字節(jié)數(shù)EEPR:MOVP1,*0FFHCLRP1.0;發(fā)開始信號MOVA,R3;送器件地址ACALLSUBS;調(diào)發(fā)送單字節(jié)子程序MOVA,R4;送片內(nèi)字節(jié)地址ACALLSUBSMOVP1,*0FFHCLRP1.0;再發(fā)開始信號MOVA,R3SETBACC.0;發(fā)讀命令A(yù)CALLSUBSMORE:ACALLSUBSMOVR1,AINCR1DJNZR7,MORECLRP1.0ACALLDELAYSETBP1.1ACALLDELAYSETBP1.0;送停止信號RETSUBR:MOVR0,*08H;接受單字節(jié)子程序LOOP2:SETBP1.1ACALLDELAYMOVC,P1.0RLCACLRP1.1ACALLDELAYDJNZR0,LOOP2CJNER7,*01H,LOWSETBP1.0;若是最后一個字節(jié)置A=1AJMPSETOKLOW:CLRP1.0;否則置A=0SETOK:ACALLDELAYSETBP1.1ACALLDELAYCLRP1.1ACALLDELAYSETBP1.0;應(yīng)答畢,SDA置1RET程序中多處調(diào)用了DELAY子程序(僅兩條NOP指令),這是為了滿足I2C總線上數(shù)據(jù)傳送速率的要求,只有當(dāng)SDA數(shù)據(jù)線上的數(shù)據(jù)穩(wěn)定下來之后才能進(jìn)行讀寫(即SCL線發(fā)出正脈沖)。另外,在讀最后一個數(shù)據(jù)字節(jié)時,置應(yīng)答信號為“1”,表示讀操作即將完成。這存儲器部分還有一個重要的環(huán)節(jié),就是要延長EEPROM的工作壽命。以下就此做介紹:CPU頻繁地擦寫串行EEPROM,EEPROM擦寫次數(shù)典型值為100萬次,這是指*一位由1寫為0或由0寫為1的次數(shù)。而實際上寫入EEPROM的數(shù)據(jù),對于*一位來說,寫入的數(shù)據(jù)并不是每次都是要變化的,實際測試可證明,擦寫次數(shù)大于500萬次。按300萬次算,若5s寫一次,只能寫150天左右,顯然,這是不能滿足要求的。為此,可采用一種利用存儲器空間延長EEPROM工作壽命的方法。其方法為:數(shù)據(jù)存放的地址不是固定的,而是用一個固定的基地址加上EEPROM內(nèi)的一個單元的內(nèi)容(即偏移地址)作為真正的地址;若發(fā)現(xiàn)存儲單元已壞(寫入和讀出的內(nèi)容不同),則偏移地址加一,重新寫入。如果采用100倍的存儲器空間冗余,可將EEPROM的實際壽命延長100倍。4.5超速報警部分本超速報警部分采用內(nèi)部T0外部計數(shù),外部輸入脈沖,使LED以1s周期閃爍,蜂鳴器以1s周期發(fā)出嘀嘀聲,由P1.0輸出信號,其程序如下:START:MOVTMOD,*01H;置T0為方式1外部計數(shù)MOVTH0,*3CH;置寄存器初值MOVTL0,*0B0HCLRTF0;定時器溢出清0SETBTR0;啟動T0LP1:MOVTF0,*0AHLP2:JNBTF0,LP2MOVTH0,*3CH;重置計數(shù)初值MOVTL0,*0B0HCLRTF0DJNZTF0,LP2CPLP1.0;輸出取反AJMPLP1;重復(fù)循環(huán)END4.6顯示部分本功能模塊主要是完成LED的動態(tài)顯示,而動態(tài)掃描的頻率有一定的要求,頻率太低,LED將出現(xiàn)閃爍現(xiàn)象。如頻率太高,由于每個LED點亮的時間太短,LED的亮度太低,肉眼無法看清,所以一般均取幾個ms左右為宜,這就要求在編寫程序時,選通*一位LED使其點亮并保持一定的時間,程序上常采用的是調(diào)用延時子程序。在C51指令中,延時子程序是相當(dāng)簡單的,并且延時時間也很容易更改。動態(tài)顯示子程序的設(shè)計要點:(1)建立顯示數(shù)據(jù)緩沖區(qū)——存放待顯示數(shù)字,字符在字型編碼表中的序號;(2)軟件譯碼——利用查表方法獲得字型編碼(段選碼);(3)位掃描輸出——采用移位方法逐位點亮LED顯示器;(4)延時子程序——控制點亮?xí)r間和時間間隔。本系統(tǒng)的顯示程序設(shè)計成子程序的形式,每調(diào)用一次,可以將緩沖區(qū)中的數(shù)據(jù)顯示一次,每個字符顯示時間為10ms,為了使顯示的字符穩(wěn)定下來,必須反復(fù)調(diào)用該顯示子程序。本系統(tǒng)用到了一個6位LED來顯示里程信息,一個4位LED來顯示車速?,F(xiàn)在,我以4位LED來舉例,說明其應(yīng)用。將4只LED的段位都連在一起,它們的公共端則由74LS138分時選通,這樣任何一個時刻,都只有一位LED在點亮,也即動態(tài)掃描顯示方式。以下圖4.2為顯示子程序的流程框圖:圖4.2顯示子程序的流程框圖下面為顯示車速的4位LED的顯示子程序,其用到了單片機(jī)的P2.0和P2.1口,并通過3-8譯碼器74LS138將單片機(jī)輸出的地址信號譯碼后動態(tài)驅(qū)動相應(yīng)的LED。具體的情況我都寫了注釋。ORG0100HMOVSCON,*00H;串行口工作方式0MAIN:MOVR3,*00H;字型碼初始地址LOOP:MOVR4,*0E8H;循環(huán)顯示*個字符DELAY:ACALLDISPLAY;顯示DJNZR4,DELAY;延時時間未到繼續(xù)INCR3;顯示下個字符CJNER3,*0AH,LOOP;未顯示到“9”繼續(xù)AJMPMAIN;返回主程序DISPLAY:CLRP2.0CLRP2.1;選中第一位ACALLDISP;顯示ACALLDELAY1;延時10msSETBP2.1;選中第二位ACALLDISPACALLDELAY1SETBP2.0;選中第三位CLRP2.1ACALLDISPACALLDELAY1SETBP2.0;選中第四位SETBP2.1ACALLDISPACALLDELAY1RETDISP:MOVA,R3MOVDPTR,*TABLEMOVCA,A+DPTR;查表MOVBUFF,A;送發(fā)送緩沖器WAIT:JNBTI,WAIT;等待串行中斷CLRTI;清中斷標(biāo)志RETDELAY1:MOVR6,*10H;延時子程序LOOP1:MOVR7,*38HLOOP2:DJNZR7,LOOP2DJNZR6,LOOP1RETTABLE:DB0C0H,0F9H,0A4H,0B0H,99HDB92H,82H,0F8H,80H,90HEND;程序結(jié)束在整個的軟件設(shè)計過程中,最麻煩的是R寄存器的選取,由于只有7個R寄存器能使用,而本系統(tǒng)完成的功能比較強(qiáng)大,簡單一個延時程序都會用到兩個或兩個以上的R寄存器,這使在很多調(diào)用的時候出現(xiàn)R寄存器不夠用的情況,特別是在中斷的時候,有些寄存器在用后的值會發(fā)生改變,可能會使得系統(tǒng)出現(xiàn)混亂情況。解決的辦法也就只好在不夠用的時候把寄存器先存起來,用完后再存回去。到此軟件程序設(shè)計完畢。5系統(tǒng)調(diào)試本系統(tǒng)調(diào)試單元所使用的測試儀器儀表和工具:(1)微機(jī)一臺;(2)示波器;(3)萬用表;(4)直流穩(wěn)壓電源;(5)單片機(jī)開發(fā)系統(tǒng)一套。本裝置的調(diào)試主要分為硬件調(diào)試、軟件調(diào)試和整體調(diào)試三大部分。以下作具體介紹。5.1硬件單元電路調(diào)試5.1.15V穩(wěn)壓電源本裝置使用單5V穩(wěn)壓直流電源供電。經(jīng)過示波器測量5V穩(wěn)壓電源輸出端,其交流部分電壓的峰--峰值為6mV,符合本裝置電源的要求,穩(wěn)壓電源調(diào)試完畢。5.1.2光電傳感器光電傳感器模塊完全是硬件電路,為了達(dá)到預(yù)期的目的,先在面包板上進(jìn)行了模擬,按照電路圖的要求以及元器件的選取,接好了電路圖,并在一小電機(jī)上安裝了測量盤,接好+5V直流電源后,通過示波器的觀測,發(fā)現(xiàn)隨著電機(jī)轉(zhuǎn)速的變化,示波器里的脈沖波形電壓也在不停的正負(fù)跳變,并且脈沖寬度也不斷的調(diào)整,反應(yīng)速度相當(dāng)?shù)撵`敏,至此,光電傳感器模塊調(diào)試成功。5.1.3鍵盤輸入和顯示在調(diào)試前,值得提到的是三極管的幾個極的判斷和數(shù)碼管的a至g所對應(yīng)的管腳的測試,這直接關(guān)系到此部分的成敗。1、判斷基極和管子類型(PNP或NPN):由于基極與發(fā)射極、基極與集電極,分別是兩上PN結(jié),它們之間的反向電阻值都很小,所以用萬用表歐姆檔(R×100或R×1K)測量時,先將任一支表筆接到*一個認(rèn)定的管腳上,另一表筆先后接到其余兩個管腳上。如果測量得到的阻值都很大(或都很?。缓髮Q表筆,重復(fù)上述測量時,阻值恰好與上述相反。都很小(或都很大)。則可斷定所認(rèn)定的管腳為基極。若不符合上述結(jié)果,應(yīng)另換一個認(rèn)定管腳重新測量,直至符合上述結(jié)果為止。測量時注意管腳和表筆的極性。當(dāng)黑表筆接在基極,紅表筆分別接在其它兩極時,測得的電阻值都較小,則可判定該三極管為NPN型,反之即為PNP型。2、判斷集電極和發(fā)射極:判斷集電極和發(fā)射極的基本原理是把三極管接成基本單管放大電路。利用測量管子的電流放大系數(shù)β的大小來判斷集電極和發(fā)射極。對于常用的NPN型小功率硅管。若集電極接電源正極,發(fā)射極接電源負(fù)極,這時表針偏得較大。如果電壓極性反接,則表針偏轉(zhuǎn)就比較小。由此即可判斷出集電極和發(fā)射極。另一種更可靠的辦法是,當(dāng)肯定被測為NPN型硅管后,將黑表筆接于一個待測的管腳,紅表筆接另一個管腳,基極懸空,觀察表針偏轉(zhuǎn)情況。然后將黑表筆所接管腳與已斷定的基極用手捏?。ㄗ⒁獠荒苁蛊湎嗯觯?,這時人體電阻相當(dāng)于電阻Rb,比較測量出的阻值變化。然后更換黑、紅表筆,再觀察阻值變化。如前者的變化比較大,則前者黑表筆所接管腳就是集電極。紅表筆所接管腳為發(fā)射極。如為PNP管子與上述情況相反。根據(jù)上面的方法,測得所使用的三極管是PNP管,其管腳平面對向自己,管腳從左到右為e,b,c。數(shù)碼管腳的測試就顯得比較簡單:如果是共陰極的數(shù)碼管就讓位選接地,然后電亮其它的管腳,通過顯示結(jié)果來斷定引腳是a,b,c等,位選也是拿萬用表的黑表筆去探試的。如果是共陽極的話就用紅表筆來探試位選,其他的與共陰極的一致。經(jīng)過以上的判斷,就能得到正確的管腳接入電路中。鍵盤輸入和顯示是本作品的一個重要組成部分,其硬件調(diào)試花了不少的時間。當(dāng)按鍵時,顯示器能較好的轉(zhuǎn)換,這部分基本上沒有問題,但是顯示部分的調(diào)試,當(dāng)接好電源時,6位的LED顯示器顯示亂碼,經(jīng)過仔細(xì)的分析,查看電路板的線路,結(jié)果硬件電路沒有錯誤,就只可能是軟件上出現(xiàn)錯誤了,最后是因為顯示器的公共端接線與軟件的編程混亂了。而4位的LED顯示器的第一位總是顯示8,把驅(qū)動的三級管拆下來檢查發(fā)現(xiàn)并不是三極管的問題,這花了比較長的時間,經(jīng)過仔細(xì)的分析,結(jié)果發(fā)現(xiàn)是二-四譯碼器74LS139的問題,原因是用P2.6和P2.7口來驅(qū)動4位LED,而鎖存端/EN接地,結(jié)果無論這兩個口是否關(guān)斷,都有一個LED是全部顯示的,于是把鎖存端/EN接到P1.7
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年高考物理一輪復(fù)習(xí)之相互作用
- 行政后勤員工福利政策
- 銀行工作總結(jié)務(wù)實高效創(chuàng)造價值
- 銀行工作總結(jié)協(xié)同合作共同發(fā)展
- IT行業(yè)客服工作技巧
- 2024年琵琶行原文
- 2024年美術(shù)教案經(jīng)典(9篇)
- 《宮腔鏡的臨床應(yīng)用》課件
- 到期不續(xù)合同范本(2篇)
- 2024年荊門職業(yè)學(xué)院單招職業(yè)技能測試題庫及解析答案
- 《阿爾茨海默病康復(fù)》課件
- 2022-2023學(xué)年福建省泉州市惠安縣三年級(上)期末數(shù)學(xué)試卷
- 校企聯(lián)合實驗室的運營與維護(hù)
- 統(tǒng)編版語文2024-2025學(xué)年六年級上冊語文期末專題訓(xùn)練:字音字形(有答案)
- 機(jī)器人課件模板下載
- 江蘇省蘇州市2023-2024學(xué)年高二上學(xué)期期末學(xué)業(yè)質(zhì)量陽光指標(biāo)調(diào)研試題 物理 含答案
- 2024年安防監(jiān)控系統(tǒng)技術(shù)標(biāo)準(zhǔn)與規(guī)范
- 軟件正版化概念培訓(xùn)
- 工程結(jié)算業(yè)務(wù)咨詢服務(wù)協(xié)議書
- 運輸公司安全生產(chǎn)隱患排查制度
- 譯林新版(2024)七年級英語上冊Unit 5 Reading課件
評論
0/150
提交評論