<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 消費(fèi)電子 > 基于51單片機(jī)的車用數(shù)字儀表設(shè)計(jì)與實(shí)現(xiàn)

          基于51單片機(jī)的車用數(shù)字儀表設(shè)計(jì)與實(shí)現(xiàn)

          ——
          作者:解放軍理工大學(xué)通信工程學(xué)院 張武 顧凱 時(shí)間:2007-10-12 來源:今日電子 收藏

            摘 要:介紹了一種以 為主控器,以ADC0809為核心,以氣壓、油壓、溫度、霍爾元件等為主要外圍元件的(VDI)的設(shè)計(jì)與實(shí)現(xiàn)。該儀表系統(tǒng)具有顯示直觀、準(zhǔn)確,使用方便可靠等優(yōu)點(diǎn),代表了車用儀表的最新發(fā)展趨勢(shì)。

            關(guān)鍵詞: ;;

          引言

          ---車輛儀表是駕駛員與汽車進(jìn)行信息交流的重要接口和界面,是車輛安全行駛的重要保證。隨著電子技術(shù)的廣泛應(yīng)用,傳統(tǒng)汽車儀表逐漸被微處理器為核心的電子控制數(shù)字儀表取代已成為必然趨勢(shì)。然而,目前國(guó)內(nèi)車輛儀表數(shù)字化水平還不高,絕大部分儀表還是模擬式的,而大多數(shù)模擬儀表表頭的體積較大、數(shù)量多,使得顯示系統(tǒng)擁擠不堪,影響美觀;另外一些模擬儀表故障率高,增加了用戶的經(jīng)濟(jì)負(fù)擔(dān),減小了車輛行使的安全系數(shù)。

          ---為克服這些缺點(diǎn),文中提出用、模/數(shù)轉(zhuǎn)換器件ADC0809及霍爾開關(guān)及數(shù)字式溫度DS18B20等對(duì)其進(jìn)行技術(shù)改進(jìn),設(shè)計(jì)并實(shí)現(xiàn)了新型全數(shù)字儀表系統(tǒng),該儀表系統(tǒng)有顯示直觀準(zhǔn)確、靈敏度高、使用壽命長(zhǎng)、靈巧美觀、成本低等優(yōu)點(diǎn)。
           
          1系統(tǒng)組成及工作原理

          ---本系統(tǒng)功能由硬件和軟件兩大部份協(xié)調(diào)完成,硬件部分主要完成各種傳感器信號(hào)的采集、轉(zhuǎn)換,各種信息的顯示等;軟件主要完成信號(hào)的處理及控制功能等。

          ---其工作原理是89C51單片機(jī)依次查詢各傳感器的輸出信號(hào)(氣壓、油壓等模擬傳感器輸出的模擬信號(hào)需要經(jīng)過ADC0809進(jìn)行模數(shù)轉(zhuǎn)換); 然后89C51對(duì)輸入信號(hào)進(jìn)行相應(yīng)處理后通過顯示模塊44780輸出,同時(shí)還可輸出各種告警信號(hào)。

          2硬件構(gòu)成

          ---該系統(tǒng)硬件主要包括以下幾個(gè)模塊: 89C51主控模塊、傳感器模塊、ADC0809模/數(shù)轉(zhuǎn)換模塊、44780顯示模塊等。其中89C51主要完成外圍硬件的控制以及一些運(yùn)算功能,傳感器完成信號(hào)的采樣功能,ADC0809完成將模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)的功能,44780顯示模塊完成字符、數(shù)字的顯示功能。

          2.1 主控模塊

          ---系統(tǒng)采用ATMEL公司生產(chǎn)的AT89C51單片機(jī),它帶有4KB閃速式存儲(chǔ)器、128B內(nèi)存,最大工作頻率24MHz,同時(shí),具有32條輸入輸出線,16位定時(shí)/計(jì)數(shù)器,5個(gè)中斷源,1個(gè)串行口。

          2.2 溫度傳感器DS18B20

          ---DS18B20是Dallas公司推出的單線數(shù)字式測(cè)溫芯片,它能在現(xiàn)場(chǎng)采集溫度數(shù)據(jù),并將溫度數(shù)據(jù)直接轉(zhuǎn)換成數(shù)字量輸出。DS18B20與AT89C51的接口電路圖如圖2所示,其中DS18B20工作在外部電源供電方式,單片機(jī)89C51采用P2.0和DS18B20通信。

          2.3 44780顯示模塊

          ---本系統(tǒng)采用44780驅(qū)動(dòng)的LCD,HD44780(KS0062)是用低功耗CMOS技術(shù)制造的大規(guī)模點(diǎn)陣LCD控制器(兼帶驅(qū)動(dòng)器),和4bit/8bit微處理器相連,它能使點(diǎn)陣LCD顯示大小寫英文字母、數(shù)字和符號(hào)等豐富的信息,同時(shí)有較強(qiáng)的通用性應(yīng)用,使用方便,用戶能用少量元件就可組成一個(gè)完整點(diǎn)陣LCD系統(tǒng),送入相關(guān)的數(shù)據(jù)和指令就可實(shí)現(xiàn)所需的顯示。

          ---44780顯示模塊有8條數(shù)據(jù)線,3條控制線??膳c微處理器或微控制器相連,通過送入數(shù)據(jù)和指令,就可使模塊正常工作,44780顯示模塊和89C51單片機(jī)連接電路如圖3所示。

          ---需要說明的是,真正投入使用的顯示模塊需要根據(jù)車輛生產(chǎn)廠家對(duì)儀表顯示界面的具體需求到液晶生產(chǎn)公司定制。

          2.4 A/D轉(zhuǎn)換模塊

          ---由于本系統(tǒng)需處理多路模擬信號(hào),故采用ADC0809 A/D轉(zhuǎn)換模塊,它采用逐次逼近的方法完成A/D轉(zhuǎn)換;其片內(nèi)帶有鎖存功能的8 路模擬開關(guān),可對(duì)8路0~5V的輸入模擬電壓信號(hào)進(jìn)行轉(zhuǎn)換, 完成一次轉(zhuǎn)換約需100μs。其輸出具有TTL三態(tài)鎖存緩沖器,可直接接到單片機(jī)89C51的P0口。 ADC0809 與89C51接口電路如圖4所示。

          2.5 測(cè)速傳感器

          ---經(jīng)調(diào)查,速度傳感器是車輛傳感器中的易損器件,所以該系統(tǒng)對(duì)測(cè)速傳感器進(jìn)行了改進(jìn),測(cè)速傳感器由霍爾開關(guān)、磁鐵組成。其工作原理是將霍爾開關(guān)和磁鐵分別安裝在車架、車輪的適當(dāng)位置,車輛行駛時(shí),在磁鐵的作用下,霍爾開關(guān)產(chǎn)生開關(guān)信號(hào),通過在單位時(shí)間對(duì)其計(jì)數(shù)可計(jì)算出車輛的行駛的瞬時(shí)速度,累計(jì)開關(guān)信號(hào)可計(jì)算出車輛行使的距離。它具有靈敏度高、價(jià)格低廉、不易損壞等優(yōu)點(diǎn)。

          2.6 其他模擬傳感器

          ---氣壓、油壓、油量等參數(shù)的測(cè)量采用模擬傳感器,其輸出的模擬信號(hào)通過ADC0809模數(shù)轉(zhuǎn)換后輸入單片機(jī)89C51,經(jīng)過相應(yīng)軟件處理后輸出。

          2.7 抗干擾設(shè)計(jì)

          ---由于本儀表系統(tǒng)是為汽車、摩托車設(shè)計(jì)的,而汽車、摩托車的點(diǎn)火系統(tǒng)有較強(qiáng)的電磁干擾,另外車輛移動(dòng)性大,有可能處于較強(qiáng)電磁干擾的環(huán)境中,因此必須采取抗干擾措施,否則系統(tǒng)難以穩(wěn)定、可靠運(yùn)行。本系統(tǒng)采用的是由硬件和軟件相結(jié)合的抗干擾措施。

          ---具體地講,該系統(tǒng)主要采用了以下五個(gè)方面的抗干擾措施。

          ---采用抗干擾電源:

          ---單片機(jī)系統(tǒng)供電線路是干擾的主要來源,本系統(tǒng)的電源由車載電瓶提供,車輛的點(diǎn)火系統(tǒng)、音響設(shè)備等都可能對(duì)本系統(tǒng)產(chǎn)生干擾,為此,可將車載電瓶12V電源經(jīng)磁珠和電容組成π形濾波電路后,再經(jīng)過UA7805C變壓,然后經(jīng)過穩(wěn)壓、濾波得到本系統(tǒng)電源。另外給每個(gè)集成電路芯片都安置一個(gè)0.01mF的陶瓷電容器,來消除大部分高頻干擾。同時(shí),良好接地是系統(tǒng)穩(wěn)定工作的重要條件,由于本系統(tǒng)既有模擬電路又有數(shù)字電路,因此設(shè)計(jì)時(shí)將數(shù)字地與模擬地要分開,最后只在一點(diǎn)相連。

          ---光電隔離:

          ---在I/O通道上采用光電隔離器,將單片機(jī)系統(tǒng)與各種傳感器、開關(guān)從電氣上隔離開來,很大一部分干擾可被阻擋。本系統(tǒng)的測(cè)速子系統(tǒng)輸出的開關(guān)信號(hào)經(jīng)光電隔離器4N33耦合至單片機(jī)P3.2口。

          ---過壓保護(hù)電路:

          ---本系統(tǒng)在輸入輸出通道上也設(shè)計(jì)了過壓保護(hù)電路,它由限流電阻和穩(wěn)壓管組成,以防止引入高電壓,損害單片機(jī)系統(tǒng)?!?/P>

          ---另外,本系統(tǒng)中,為消除按鈕動(dòng)作時(shí)產(chǎn)生抖動(dòng)干擾,在按鍵與89C51間加入一個(gè)Schmitt觸發(fā)器74HC14。

          ---模/數(shù)轉(zhuǎn)換電路的抗干擾措施:

          ---本系統(tǒng)模/數(shù)轉(zhuǎn)換模塊ADC0809送出的數(shù)字信號(hào)經(jīng)鎖存器鎖存后傳送給單片機(jī),鎖存器對(duì)干擾非常敏感,當(dāng)鎖存線上出現(xiàn)干擾時(shí),會(huì)盲目鎖存當(dāng)前數(shù)據(jù),為此可將鎖存器與單片機(jī)設(shè)計(jì)在同一電路板上,使傳輸線上傳送的是已經(jīng)鎖存好的控制信號(hào)。設(shè)計(jì)軟件時(shí),盡可能快地重復(fù)輸出同一個(gè)信號(hào),以減小干擾信號(hào)影響的概率。

          ---CPU抗干擾措施:

          ---當(dāng)干擾信號(hào)作用到單片機(jī)本身時(shí),單片機(jī)將不能按正常狀態(tài)執(zhí)行程序,從而引起混亂。為此本系統(tǒng)采用了以下幾種方法。

          ---人工復(fù)位:當(dāng)微處理器失控時(shí),可使用復(fù)位方法處理,使程序自動(dòng)從0000H開始執(zhí)行。為此系統(tǒng)設(shè)置了復(fù)位鍵,當(dāng)微處理器失控時(shí),只要按下復(fù)位鍵,并持續(xù)10ms以上即可。

          ---掉電保護(hù):因?yàn)楫?dāng)車輛顛簸的路況時(shí),可能引起電源等接觸不良,使系統(tǒng)陷入混亂狀態(tài),電源電壓恢復(fù)正常后,系統(tǒng)難以恢復(fù)正常。為此系統(tǒng)設(shè)計(jì)了掉電保護(hù)。掉電信號(hào)由硬件電路檢測(cè)到,加到單片機(jī)的外部中斷輸入端。將掉電中斷規(guī)定為高級(jí)中斷,使系統(tǒng)及時(shí)對(duì)掉電做出反應(yīng)。在掉電中斷子程序中,首先進(jìn)行現(xiàn)場(chǎng)保護(hù),當(dāng)電源恢復(fù)正常時(shí),單片機(jī)重新復(fù)位,恢復(fù)現(xiàn)場(chǎng),繼續(xù)工作。至于程序跑飛,可以用軟件陷阱和看門狗將程序拉回到復(fù)位狀態(tài)。具體的講,可以在RAM中埋一些標(biāo)志,在每次程序復(fù)位時(shí),通過這些標(biāo)志,可以判斷復(fù)位原因并根據(jù)不同的標(biāo)志直接跳到相應(yīng)的程序。這樣可以使程序運(yùn)行有連續(xù)性,用戶在使用時(shí)也不易察覺到程序被重新復(fù)位過。

          3 軟件設(shè)計(jì)

          ---該系統(tǒng)軟件主要由主程序、中斷子程序、數(shù)據(jù)采集與A/D轉(zhuǎn)換子程序、顯示子程序、告警子程序等六大模塊組成,因?yàn)镃語言編寫的軟件易于實(shí)現(xiàn)模塊化,生成的機(jī)器代碼質(zhì)量高、可讀性強(qiáng)、移植好,所以本系統(tǒng)的軟件采用C語言編寫,在Keil Vision3 Demo版本的集成開發(fā)環(huán)境下進(jìn)行編譯連接。

          3.1主程序設(shè)計(jì)

          ---主程序主要完成硬件初始化、子程序調(diào)用等功能,主程序流程圖如圖5所示。

          3.2數(shù)據(jù)采集子程序設(shè)計(jì)

          ---數(shù)據(jù)采集與A/D轉(zhuǎn)換子程序根據(jù)輸入?yún)?shù)對(duì)相應(yīng)的模擬信號(hào)進(jìn)行采樣、量化及處理,并將相應(yīng)信號(hào)的數(shù)值返回主程序。

          3.3顯示子程序設(shè)計(jì)

          ---顯示子程序完成符號(hào)、數(shù)值的顯示輸出。

          3.4中斷子程序設(shè)計(jì)

          ---中斷子程序有三種中斷源:鍵盤、車輪(車輪每轉(zhuǎn)一圈產(chǎn)生一個(gè)中斷脈沖)及掉電保護(hù)電路,分別完成面板功能設(shè)置、測(cè)速功能和掉電保護(hù)。由于本系統(tǒng)中斷源共有6個(gè),所以用優(yōu)先權(quán)編碼器(74LS148)對(duì)外部中斷源進(jìn)行了擴(kuò)展。

          3.5告警子程序

          ---主要實(shí)現(xiàn)異常情況下控制告警信號(hào)輸出。如當(dāng)冷卻液溫度升高到接近沸點(diǎn)(例如95~98℃)時(shí),或燃油箱內(nèi)的燃油量少于某一規(guī)定值時(shí),音頻告警裝置會(huì)發(fā)出不同頻率的告警信號(hào),同時(shí)相應(yīng)的指示燈發(fā)亮(點(diǎn)亮告警指示燈的任務(wù)由顯示子程序來完成),以引起駕駛員的注意。

          4 仿真與調(diào)試

          4.1仿真器選擇

          ---本系統(tǒng)選用ME-52單片機(jī)仿真開發(fā)系統(tǒng),它實(shí)時(shí)仿真頻率高達(dá)33MHz,提供2~24MHz的時(shí)鐘信號(hào)。同時(shí)它提供64KB程序代碼存儲(chǔ)器,支持仿真所有程序和數(shù)據(jù)地址空間,支持Franklin V3.xx/Keil 6.xx編譯連接工具。具有分別獨(dú)立控制項(xiàng)目文件的項(xiàng)目管理器。另外具有VC++風(fēng)格的窗口駐留,窗口動(dòng)態(tài)切分和工作簿模式窗口界面。

          4.2仿真調(diào)試

          ---在仿真調(diào)試階段,采用“自底向上逐步集成”的策略,逐模塊進(jìn)行仿真測(cè)試,在此基礎(chǔ)上逐步集成。譬如可先仿真顯示模塊、測(cè)速子模塊、測(cè)溫子模塊等,然后將仿真成功的模塊逐個(gè)加入主程序進(jìn)行仿真,在仿真過程中發(fā)現(xiàn)錯(cuò)誤,采用“分塊壓縮策略”,快速找到并改正錯(cuò)誤;注意在集成過程中出現(xiàn)問題,大多是由于模塊間資源使用沖突引起的。當(dāng)軟件模塊仿真成功后,可與硬件一起進(jìn)行在線仿真,此時(shí)在調(diào)試中出現(xiàn)的問題大多是由于連接線連接錯(cuò)誤、虛焊、布線不合理等原因造成的。

          5 結(jié)束語

          ---隨著電子技術(shù)的廣泛應(yīng)用,車輛儀表顯示屏幕的液晶化必將成為一種發(fā)展趨勢(shì),文中提出利用51單片機(jī)和新型傳感器對(duì)車用儀表進(jìn)行改進(jìn),目前原型機(jī)已取得成功。運(yùn)行結(jié)果表明,新型數(shù)字儀表系統(tǒng)可靠性高、使用方便,下一步將在此基礎(chǔ)上開發(fā)綜合信息系統(tǒng),擴(kuò)充顯示和控制的信息種類,如:交通地圖信息、行程信息、網(wǎng)絡(luò)信息、電話信息、控制空調(diào)系統(tǒng)及音響系統(tǒng)等,給用戶提供更大的方便。
           

          液位計(jì)相關(guān)文章:磁翻板液位計(jì)原理




          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();