基于單片機(jī)的電子式轉(zhuǎn)速里程表的設(shè)計(jì) 介紹一種新型的基于單片機(jī)的電子式汽車(chē)轉(zhuǎn)速里程表的實(shí)現(xiàn)方案。討論了里程計(jì)數(shù)的原理和轉(zhuǎn)速指示原理。針對(duì)機(jī)械式里程表缺點(diǎn)結(jié)構(gòu)復(fù)雜,精度不高,并且價(jià)格較昂貴,設(shè)計(jì)了數(shù)字式汽車(chē)轉(zhuǎn)速里程表。這里以AT89C2051單片機(jī)為核心,利用SPI串行總線開(kāi)發(fā)了電子式里程表。該里程表利用磁電式傳感器采樣汽車(chē)行駛所得到的信號(hào);采用LCD數(shù)碼管顯示汽車(chē)總行駛里程數(shù),本次里程采EEPROM 芯片X25045,利用其通電可改寫(xiě),掉電信息可保存的特點(diǎn)存儲(chǔ)汽車(chē)行駛的總里程數(shù)。本設(shè)計(jì)的轉(zhuǎn)速里程表具有結(jié)構(gòu)簡(jiǎn)單,精度較高,誤差較小,顯示清楚醒目,穩(wěn)定可靠等特點(diǎn),另外對(duì)該系統(tǒng)的軟件也作了相應(yīng)的說(shuō)明。 關(guān)鍵詞: 汽車(chē); 轉(zhuǎn)速里程表 單片機(jī) Single Chip Microcomputer Controll ing Displaying of Automobile Odometer Abstract : This article mainly introduces a new -type electric automobile odometer. Its core is 2051 single chip microcom2 puter ; L ED digital tube is used to display the total and present running distance. Comparing with the mechanical automo2 bile odometer , it has following features : higher accuracy and less error , and it also can be displayed more clearly and pro2 duced with simpler technology. 目 錄 摘要…………………………………………………………………………………… Abstract……………………………………………………………………………… 第一章:緒論………………………………………………………………………… 1.1研究的目的與意義……………………………………………………………… 1.2 國(guó)內(nèi)外研究概況及發(fā)展趨勢(shì)…………………………………………………… 第二章:系統(tǒng)的總體設(shè)計(jì)…………………………………………………………… 2.1系統(tǒng)的總體結(jié)構(gòu)…………………………………………………………………… 2.2.轉(zhuǎn)速里程表的介紹……………………………………………………………… 2. 3轉(zhuǎn)速里程表的工作原理………………………………………………………… 第三章:系統(tǒng)的硬件設(shè)計(jì)…………………………………………………………… 3.1.系統(tǒng)CPU的選擇………………………………………………………………… 3.2輔助芯片的選取………………………………………………………………… 3.3LM1819在轉(zhuǎn)速里程表中的應(yīng)用………………………………………………… 3.3. 1電動(dòng)里程表結(jié)構(gòu)……………………………………………………………… 3.3.2LM1819驅(qū)動(dòng)線路工作原理………………………………………………… 3..4液晶顯示器LCM1010的應(yīng)用…………………………………………………… 3.5傳感器的選擇……………………………………………………………………… 第四章系統(tǒng)的軟件設(shè)計(jì)……………………………………………………………… 4.1主程序模塊………………………………………………………………………… 4.2串行中斷服務(wù)程序模塊…………………………………………………………… 第五章印制板圖的繪制……………………………………………………………… 結(jié)束語(yǔ)……………………………………………………………………………… 附錄…………………………………………………………………………………… 參考文獻(xiàn)…………………………………………………………………………… 致謝…………………………………………………………………………………… 第一章:緒論 1.1研究的目的與意義 自1886年發(fā)明汽車(chē)以來(lái),汽車(chē)走過(guò)了100多年的發(fā)展歷程。汽車(chē)的出現(xiàn)和發(fā)展,使汽車(chē)儀表也在不斷開(kāi)發(fā)和發(fā)展之中。隨著光學(xué)、電子技術(shù)的迅速發(fā)展,特別是計(jì)算機(jī)技術(shù)在汽車(chē)儀表中的廣泛應(yīng)用,汽車(chē)儀表正向數(shù)字化和智能化方向展。汽車(chē)儀表的發(fā)展趨勢(shì),從一個(gè)側(cè)面反映出汽車(chē)電子化水平的快速提高。 傳統(tǒng)的汽車(chē)轉(zhuǎn)速里程表的功能有兩個(gè),一是用指針指示汽車(chē)行駛的瞬時(shí)車(chē)速,二是用機(jī)械計(jì)數(shù)器記錄汽車(chē)行駛的累計(jì)里程,F(xiàn)代汽車(chē)正向高速化方向發(fā)展,隨著車(chē)速的提高,用軟軸驅(qū)動(dòng)的傳統(tǒng)車(chē)速里程表受到前所未有的挑戰(zhàn)。這是因?yàn)檐涊S在高速旋轉(zhuǎn)時(shí),由于受鋼絲交變應(yīng)力極限的限制而容易斷裂,同時(shí),軟軸布置過(guò)長(zhǎng)會(huì)出現(xiàn)形變過(guò)大或運(yùn)動(dòng)遲滯等現(xiàn)象,而且,對(duì)于不同的車(chē)型,轉(zhuǎn)速里程表的安裝位置也會(huì)受到軟軸長(zhǎng)度及彎曲度的限制。凡此種種,使得基于非接觸式轉(zhuǎn)速傳感器的電子式轉(zhuǎn)速里程表得以迅速發(fā)展。 1.2國(guó)內(nèi)外研究概況及發(fā)展趨勢(shì) 為了充分了解汽車(chē)儀表發(fā)展現(xiàn)狀,準(zhǔn)確地把握其未來(lái)發(fā)展趨勢(shì),有必要對(duì)其發(fā)展過(guò)程作一簡(jiǎn)單回顧。按汽車(chē)儀表在工作原理上取得的重大技術(shù)創(chuàng)新來(lái)分,可以劃分為4個(gè)階段,或稱(chēng)為經(jīng)過(guò)4代。第1代汽車(chē)儀表是基于機(jī)械作用力而工作的機(jī)械式儀表,人們習(xí)慣稱(chēng)這類(lèi)儀表為機(jī)械機(jī)心表;第2代汽車(chē)儀表的工作原理基于電測(cè)原理,即通過(guò)各類(lèi)傳感器將被測(cè)的非電量變換成電信號(hào)加以測(cè)量,通常稱(chēng)這類(lèi)儀表為電氣式儀表;第3代為模擬電路電子式;第4代為數(shù)字汽車(chē)儀表。 1 現(xiàn)代汽車(chē)儀表的現(xiàn)狀 汽車(chē)儀表正在經(jīng)歷由第3代向第4代轉(zhuǎn)型時(shí)期。第3代汽車(chē)用儀表工作原理與電氣式儀表基本相同,只不過(guò)是用電子器件取代原來(lái)的電氣器件。其出現(xiàn)的時(shí)間大致在20世紀(jì)50~60年代,隨著集成電路技術(shù)突飛猛進(jìn)的發(fā)展,這種儀表現(xiàn)在均采用各種專(zhuān)用集成電路(為汽車(chē)儀表專(zhuān)門(mén)設(shè)計(jì)的集成電路),國(guó)內(nèi)汽車(chē)儀表目前的主流產(chǎn)品就是這種儀表,經(jīng)過(guò)20多年的發(fā)展,其結(jié)構(gòu)形式經(jīng)歷了動(dòng)圈式機(jī)心(線圈連同指針一起轉(zhuǎn)動(dòng))和動(dòng)磁式機(jī)心(磁鋼連同指針一起轉(zhuǎn)動(dòng))2個(gè)基本階段。電子器件經(jīng)歷了分立器件和專(zhuān)用集成電路2個(gè)階段。在整個(gè)發(fā)展過(guò)程中,國(guó)內(nèi)外工程技術(shù)人員一直從未停止對(duì)其進(jìn)行改進(jìn)。如圍繞降低成本,不斷改進(jìn)制作工藝,機(jī)械零件起初以金屬件為主,發(fā)展到今天以塑料件為主;圍繞提高指示精度和指針平穩(wěn)性,由動(dòng)圈式發(fā)展成動(dòng)磁式等。雖然,每次較大改進(jìn)后整體性能價(jià)格比都有所提高,但受其工作原理的限制,其線性、精度、重復(fù)性、響應(yīng)速度等性能指標(biāo)難以有根本的突破。 嚴(yán)格地說(shuō),第4代全數(shù)字式汽車(chē)儀表從其應(yīng)用的技術(shù)手段上看,還是電子技術(shù)范疇,也屬于電子式儀表,但信號(hào)處理方式已從模擬變成數(shù)字。僅憑信號(hào)處理方式的改變還不足以將全數(shù)字式汽車(chē)儀表劃分成一個(gè)新階段,其最顯著的特征是工作原理與第3代汽車(chē)儀表完全不同。如果一個(gè)產(chǎn)品在工作原理上有創(chuàng)新和突破,則其設(shè)計(jì)思路、組成形式、功能和性能的改變將是根本性的。鑒于此,將全數(shù)字式汽車(chē)儀表暫且列入第4代。關(guān)于全數(shù)字式汽車(chē)儀表早在20世紀(jì)80年代就已經(jīng)被提出,最初為“數(shù)字顯示”形式的汽車(chē)儀表。雖然該儀表的工作方式是全數(shù)字式,技術(shù)水平和儀表的性能遠(yuǎn)遠(yuǎn)超過(guò)了第3代汽車(chē)儀表,但其致命的缺點(diǎn)是只能顯示一組孤立的數(shù)字,沒(méi)有動(dòng)感,在被測(cè)物理量(如車(chē)速、發(fā)動(dòng)機(jī)轉(zhuǎn)速)發(fā)生變化時(shí),只有數(shù)字翻動(dòng),而沒(méi)有指示上升、下降直觀感,再加上讀數(shù)時(shí)間比較長(zhǎng),容易分散駕駛員的注意力等,這種形式的汽車(chē)儀表很難被駕駛員接受,因而國(guó)內(nèi)外都沒(méi)有普及與推廣。為了克服上述不足,后來(lái)出現(xiàn)了采用光點(diǎn)、光條或光帶模擬動(dòng)態(tài)顯示被測(cè)物理量形式的全數(shù)字汽車(chē)儀表,顯示器件主要有LED、LCD和電致發(fā)光材料等。由于受到成本的限制,目前光顯示汽車(chē)儀表只能選用字段顯示方式的顯示屏,無(wú)法選用顯示分辨率更高的點(diǎn)陣式顯示屏。因此,其視覺(jué)效果和顯示精度還不能令人滿(mǎn)意。 隨著電子技術(shù)的發(fā)展,特別是單片機(jī)性能的提高,主要表現(xiàn)在抗強(qiáng)電磁干擾、工作溫度范圍和對(duì)工作電源穩(wěn)定性要求等方面的改善,再加上價(jià)格的大幅度降低,目前有條件在汽車(chē)儀表上使用單片機(jī)控制的全數(shù)字儀表。雖然全數(shù)字式汽車(chē)儀表曾經(jīng)出現(xiàn)多種款式,但業(yè)內(nèi)人士和專(zhuān)家一致看好“基于單片機(jī)的數(shù)字式汽車(chē)儀表”。它是針對(duì)目前廣泛使用的模擬電子式汽車(chē)儀表機(jī)心存在多方面不足,在其工作原理上作出技術(shù)創(chuàng)新,即徹底放棄了“動(dòng)磁式”或“動(dòng)圈式”模擬電子式汽車(chē)儀表,通過(guò)線包與磁鋼間產(chǎn)生電磁轉(zhuǎn)矩驅(qū)動(dòng)指針工作的形式。該汽車(chē)儀表由傳感器完成各種被測(cè)物理量的采集,經(jīng)過(guò)換算后直接送入單片機(jī),再由驅(qū)動(dòng)器驅(qū)動(dòng)指針,在刻度盤(pán)上指示被測(cè)物理量,同時(shí)輔以被測(cè)物理量LCD數(shù)字顯示。該汽車(chē)儀表在指示方式上仍然保留了第3代儀表指示直觀、有動(dòng)感、符合駕駛員習(xí)慣等特點(diǎn),而且批量生產(chǎn)的成本有望低于同等功能的模擬電子式汽車(chē)儀表,更可貴的是在工作原理上的創(chuàng)新和突破,帶來(lái)了技術(shù)性能質(zhì)的提高。 2 汽車(chē)儀表的發(fā)展趨勢(shì) 繼全數(shù)字式汽車(chē)儀表后,未來(lái)汽車(chē)儀表應(yīng)向何方向發(fā)展呢?雖然具體過(guò)程不清楚,但總的趨勢(shì)還是比較明朗的,那就是充分應(yīng)用光技術(shù)和機(jī)、電一體化技術(shù),并突出現(xiàn)代信息技術(shù)和網(wǎng)絡(luò)技術(shù)的應(yīng)用,其功能將極大拓寬,指示形式將演變成計(jì)算機(jī)終端顯示器。雖然人們對(duì)未來(lái)汽車(chē)儀表作出種種預(yù)測(cè),并賦予它遠(yuǎn)遠(yuǎn)超出現(xiàn)在汽車(chē)儀表多得多的功能。個(gè)人認(rèn)為僅從技術(shù)本身的角度出發(fā),就目前技術(shù)條件而言,實(shí)現(xiàn)這些功能并沒(méi)有什么問(wèn)題,制約新技術(shù)在汽車(chē)儀表上應(yīng)用的主要因素是制造成本。因?yàn)槠?chē)儀表是一個(gè)量大、對(duì)成本極為敏感的產(chǎn)品,在其改進(jìn)和創(chuàng)新的過(guò)程中,不僅要考慮技術(shù)的可行性、功能的拓寬、性能的改善、使用的可靠性等,更重要的是其制造成本。脫離制造成本談汽車(chē)儀表,那只能是概念性的汽車(chē)儀表。在有關(guān)技術(shù)使用費(fèi)用,特別是其依賴(lài)硬件成本進(jìn)一步降低的前提下,汽車(chē)儀表未來(lái)可能發(fā)展趨勢(shì)如下。 1 從近期來(lái)看,未來(lái)汽車(chē)儀表的功能將不局限于現(xiàn)在的車(chē)速、里程、發(fā)動(dòng)機(jī)轉(zhuǎn)速、油量、水溫、方向燈指示,可能增添如下功能。 (1) 能指示安全系統(tǒng)運(yùn)行狀態(tài),如輪胎氣壓、制動(dòng)裝置、安全氣囊、安全帶等。這些信號(hào)傳輸形式,將不再是簡(jiǎn)單的開(kāi)關(guān)接通和斷開(kāi)直流信號(hào),而是包含反映這些安全裝置工作狀態(tài)較多信息的調(diào)制信號(hào),供單片機(jī)讀取,以便單片機(jī)能準(zhǔn)確地綜合判斷這些安全裝置的工作狀態(tài),并給出故障顯示提醒駕駛員,或指導(dǎo)維修人員排除故障,也就是說(shuō)帶基于單片機(jī)的汽車(chē)儀表將有一定水平的智能化。 (2) 將防盜系統(tǒng)納入汽車(chē)儀表單片機(jī)的監(jiān)管下,如車(chē)門(mén)、后行李箱等處防盜鎖指紋識(shí)別開(kāi)啟系統(tǒng),防撬振動(dòng)報(bào)警裝置,防盜點(diǎn)火起動(dòng)裝置等。 2 隨著顯示器件,如液晶顯示器件的性能,特別是工作溫度范圍的拓寬,在價(jià)格進(jìn)一步降低的前提下,汽車(chē)儀表的功能將被極大地拓寬,形式將發(fā)生根本改變,外觀上就是一個(gè)高清晰度的計(jì)算機(jī)顯示器。 3 電光學(xué)技術(shù)將在汽車(chē)儀表上得到廣泛應(yīng)用。 (1) 顯示和內(nèi)照明器件不再用白熾燈泡,而是選用高效冷光源發(fā)光器件,如LCD、LED、電致發(fā)光器件等。導(dǎo)光系統(tǒng)更多體現(xiàn)出光學(xué)領(lǐng)域的新技術(shù),如儀表面板顏色可變等滿(mǎn)足個(gè)性化要求設(shè)計(jì)等。 (2) CCD攝像后視系統(tǒng),現(xiàn)在的后視光學(xué)反光鏡有可能被取消,而改用電子攝像顯示后視系統(tǒng),駕駛員的視野范圍將更寬。 4 自動(dòng)導(dǎo)航和定位系統(tǒng)可能也是未來(lái)汽車(chē)儀表上不可缺少的部分,包括全球衛(wèi)星定位系統(tǒng)和電子地圖等。 5 具備完善的通訊系統(tǒng),將來(lái)汽車(chē)上的計(jì)算機(jī)系統(tǒng)會(huì)與公共互連網(wǎng)相連,以便充分共享信息資源,處理通訊作業(yè)將是汽車(chē)儀表計(jì)算機(jī)系統(tǒng)工作內(nèi)容的一部分。 6 汽車(chē)儀表的計(jì)算機(jī)系統(tǒng)具備對(duì)娛樂(lè)、空調(diào)等舒適性設(shè)備進(jìn)行監(jiān)管的功能, 可以自動(dòng)控制這些設(shè)備或支持駕駛員遠(yuǎn)程操縱。以上在基于當(dāng)今成熟技術(shù)的基礎(chǔ)上,對(duì)未來(lái)汽車(chē)儀表的發(fā)展方向做些簡(jiǎn)單設(shè)想。也許,未來(lái)汽車(chē)儀表的發(fā)展將遠(yuǎn)遠(yuǎn)超出我們今天的想象。 在當(dāng)今世界范圍內(nèi),汽車(chē)儀表正處于技術(shù)更新的轉(zhuǎn)型期。為此,業(yè)內(nèi)人士和專(zhuān)家對(duì)此都給予極大關(guān)注。什么樣的儀表是今后汽車(chē)儀表的主流產(chǎn)品,什么技術(shù)是今后汽車(chē)儀表的主導(dǎo)技術(shù),對(duì)于這些問(wèn)題業(yè)內(nèi)人士的看法可能不盡相同,但有一點(diǎn)是肯定的,帶有基于單片機(jī)的數(shù)字技術(shù)在汽車(chē)儀表上的廣泛應(yīng)用,將是汽車(chē)表發(fā)展的必然。原因主要有4點(diǎn): 1 儀表的功能由軟件和硬件共同實(shí)現(xiàn),而且主要是通過(guò)軟件實(shí)現(xiàn)。這對(duì)于量大且對(duì)成本極為敏感的汽車(chē)儀表有特殊意義,因?yàn)檐浖拈_(kāi)發(fā)費(fèi)用分?jǐn)偟矫總(gè)儀表上是非常少的。 2 與僅由電子線路硬件組成的汽車(chē)儀表相比,帶有基于單片機(jī)的汽車(chē)儀表,其功能的實(shí)現(xiàn)手段更加靈活多樣。 3 產(chǎn)品的“柔性”更好,即在推出新款產(chǎn)品時(shí),能最大限度地利用以前產(chǎn)品的硬、軟件設(shè)計(jì)成果,僅做少量修改便可,這在產(chǎn)品更新?lián)Q代很快的今天和未來(lái)特別重要。 4 隨著汽車(chē)電子化水平的提高,必須要求汽車(chē)儀表與汽車(chē)上其它裝置交換數(shù)據(jù),即要求接入到汽車(chē)的計(jì)算機(jī)系統(tǒng)總線上。 第二章 系統(tǒng)的總體設(shè)計(jì) 2.1 系統(tǒng)的總體結(jié)構(gòu) 本系統(tǒng)以單片機(jī)AT89C205為核心,由液晶顯示、WATCHDOG及復(fù)位電路等部分組成。單片機(jī)采用美國(guó)ATME公司生產(chǎn)的AT89C2051單片機(jī)。該芯片不僅具M(jìn)CS-51系列單片機(jī)的所有特性,而且片內(nèi)集成2K字節(jié)的電擦除閃爍存儲(chǔ)器(Flash EPROM)。其價(jià)格低,引腳少(20腳),是目前性能價(jià)格比較高的單片機(jī)芯片之一。它為很多嵌入式控制應(yīng)用提供了一個(gè)高度靈活的有效的解決方案。AT89C2051的工作頻率為12/24 MHz,本系統(tǒng)利用單片機(jī)的內(nèi)部振蕩器外加石英晶體構(gòu)成時(shí)鐘源,為了工作可靠,晶體振蕩頻率選為12MHz。顯示驅(qū)動(dòng)電路為簡(jiǎn)化硬件設(shè)計(jì),減少使用系統(tǒng)I/O口,節(jié)約系統(tǒng)硬件資源的基礎(chǔ)上,顯示部分由驅(qū)動(dòng)器LM1819驅(qū)動(dòng)雙線圈汽車(chē)轉(zhuǎn)速表頭顯示轉(zhuǎn)速,通過(guò)單片機(jī)編程液晶顯示模塊LCM1010顯示累計(jì)里程和本次里程. 2.2 轉(zhuǎn)速里程表的介紹 單片機(jī)自從推出以來(lái),以其超小型化、結(jié)構(gòu)緊湊、可靠性高、成本低等優(yōu)點(diǎn)被人們廣泛接受,從而應(yīng)用于工業(yè)、電訊、數(shù)據(jù)處理、儀器儀表等多方面。汽車(chē)?yán)锍瘫硎瞧?chē)的重要配件,在汽車(chē)儀表中占重要位置。這里講述的是一種以2051單片機(jī)為核心,10位LCD作為顯示器,再加上其掉電信息不丟失,并且數(shù)據(jù)可方便改寫(xiě),利用此特性在其中存放汽車(chē)總里程數(shù)據(jù). 2.3轉(zhuǎn)速里程表的工作原理 1里程計(jì)數(shù)實(shí)現(xiàn)原理 1 霍爾傳感器輸出的脈沖信號(hào)是傳感器轉(zhuǎn)輪旋轉(zhuǎn)時(shí)磁場(chǎng)使舌簧管分開(kāi)閉合而產(chǎn)生的脈沖。每一個(gè)脈沖代表行駛了一定的距離,設(shè)汽車(chē)行駛1km時(shí)驅(qū)動(dòng)輪轉(zhuǎn)數(shù)為N,霍爾傳感器轉(zhuǎn)數(shù)為NF則NF=N×I其中I為傳動(dòng)比。設(shè)輪胎外徑為D,則汽車(chē)行駛1km驅(qū)動(dòng)輪轉(zhuǎn)數(shù)為N = 1 000/ Πd,實(shí)際中由于輪胎承載變形使得輪胎外徑D變化,此時(shí)NXI = 1 000/ πμD,其中μ為變形系數(shù),一般為0.93~ 0。96磁電式傳感器在汽車(chē)行駛1km時(shí)轉(zhuǎn)數(shù)N F = (1 000/ πμD)I,傳感器轉(zhuǎn)輪勻安排m個(gè)磁片時(shí),汽車(chē)行駛1 km ,傳感器輸出脈沖為mNF個(gè)。 2 序中以INT1的輸入為里程計(jì)數(shù)脈沖,2051斷1置為高中斷優(yōu)先級(jí)以保證計(jì)數(shù)準(zhǔn)確。定時(shí)器T0置為低中斷優(yōu)先級(jí),T0每10ms中斷1次,中斷1次送1位顯示。每行駛1km向5045中寫(xiě)1次數(shù)據(jù)。 3 以60H~62H單元為計(jì)數(shù)脈沖暫存單元。68H、69H單元為判斷數(shù)據(jù)暫存單元,6CH中為本次里程小數(shù)點(diǎn)位數(shù)值。當(dāng)6CH單元內(nèi)容達(dá)到0AH時(shí)清零。70~72H單元為讀出的總里程數(shù)。 2速測(cè)量實(shí)現(xiàn)原理 車(chē)速指示可采用雙線圈汽車(chē)轉(zhuǎn)速表頭,它由空氣軸表芯和驅(qū)動(dòng)電路組成,空氣軸表芯通常由三部分組成:磁鐵、與轉(zhuǎn)軸相連的指針和兩個(gè)互成九十度的線圈。轉(zhuǎn)軸是表芯唯一的可動(dòng)部件,磁鐵的轉(zhuǎn)角總是趨向于兩個(gè)線圈的磁場(chǎng)強(qiáng)度矢量的合成方向,磁場(chǎng)強(qiáng)度正比于加在線圈上的電壓,因此,通過(guò)改變電壓的極性和幅度,可在理論上使轉(zhuǎn)軸組件在0~360度范圍內(nèi)轉(zhuǎn)動(dòng)。 顯然,只要能按一定的規(guī)律驅(qū)動(dòng)兩個(gè)線圈,就可以使指針偏轉(zhuǎn)位置與輸入量成線性關(guān)系,即滿(mǎn)足下列公式: θ= KVin 其中θ為指針偏轉(zhuǎn)角,單位為度;K為轉(zhuǎn)角常數(shù),單位為度/V ;Vin是輸入電壓,單位為V。 每個(gè)線圈的磁場(chǎng)強(qiáng)度矢量之和必須跟隨偏轉(zhuǎn)角θ?紤]到轉(zhuǎn)軸組件總是指向Hsine和Hcosine這兩個(gè)正交矢量之和的方向,則其方向可由下式求得: θ= arctan Hsine / Hcosine 并由此可以得出: θ= arctan sinθ/cosθ 由上述公式可見(jiàn),當(dāng)Hsine按θ的正弦函數(shù)變化,而Hcosine按θ的余弦數(shù)變化時(shí),所得到的總磁場(chǎng)強(qiáng)度的方向與θ角的方向相同,由于轉(zhuǎn)軸組件與磁場(chǎng)強(qiáng)度矢量和的方向相同,因此,指針將始終指向θ角的方向。 file:///C:\Users\junjie\AppData\Local\Temp\ksohtml\wps5D1B.tmp.png 圖1.1 LM1819內(nèi)部組成原理圖 圖1 所示是LM1819驅(qū)動(dòng)器的內(nèi)部組成原理框圖,它由電荷泵、整形器、函數(shù)發(fā)生器等組成,輸入的轉(zhuǎn)速信號(hào)通過(guò)內(nèi)部的三極管緩沖后,輸入到電荷泵即可進(jìn)行F/V頻率電壓轉(zhuǎn)換,兩個(gè)輸出端按輸入量的正弦和余弦函數(shù)變化,2腳和12腳的最小驅(qū)動(dòng)能力為±20mA(±4V),線圈的公共端接到1腳可為內(nèi)部函數(shù)發(fā)生器提供反饋信號(hào),同時(shí)為5.1V齊納二極管提供參考電壓。在該電路中,K=54°/V ,輸入Vin實(shí)際上是4腳和8腳的電位差,8腳既是諾頓放大器的輸出,又是函數(shù)發(fā)生器的輸入,一般4 腳的電壓是2.1V,所以有: θ= K(V8 -Vref) = 54(V8 -2. 1) 由于V8是在2.1V~7.1V的范圍內(nèi)變化的,故LM1819可以驅(qū)動(dòng)十字表頭以使其在0°~270°范圍內(nèi)轉(zhuǎn)動(dòng)。 當(dāng)然也可以通過(guò)軟件來(lái)實(shí)現(xiàn): 時(shí)速表的編程思想如下:里程表程序中,每計(jì)數(shù)1次,汽車(chē)行駛0.001 602 564 1 km ,T0每10ms中斷1次,送顯示,其中斷100次時(shí)間為1s,計(jì)算這1s計(jì)數(shù)次數(shù),乘3 600再乘0. 001 602 564 1 即可求出時(shí)速.公式為:時(shí)速= 次數(shù)×5.7692.此算法可精確到0.001位.然后將求得的時(shí)速送顯示。 時(shí)速表顯示以P1.1及外接按鍵來(lái)控制,P1.1腳為高電平,P3.0為低電平時(shí)顯示汽車(chē)時(shí)速.此時(shí)速表可顯示到小數(shù)點(diǎn)后2位,精度較傳統(tǒng)汽車(chē)時(shí)速表提高2個(gè)數(shù)量級(jí)。(具體程序本設(shè)計(jì)就不在獒述) 第三章 系統(tǒng)的硬件設(shè)計(jì) 本系統(tǒng)以單片機(jī)AT89C2051為核心,由液晶顯示、WATCHDOG及復(fù)位電路等部分組成。 1單片機(jī) 單片機(jī)采用美國(guó)ATMEL公司生產(chǎn)的AT89C2051單片機(jī)。該芯片不僅具有MCS51系列單片機(jī)的所有特性,而且片內(nèi)集成有2 K字節(jié)的電擦除閃爍存儲(chǔ)器(Flash EPROM)。其價(jià)格低,引腳少(20 腳),是目前性能價(jià)格比較高的單片機(jī)芯片之一。它為很多嵌入式控制應(yīng)用提供了一個(gè)高度靈活的有效的解決方案。 AT89C2051的工作頻率為12/24 MHz ,本系統(tǒng)利用單片機(jī)的內(nèi)部振蕩器外加石英晶體構(gòu)成時(shí)鐘源,為了工作可靠,晶體振蕩頻率選為12 MHz。 2顯示驅(qū)動(dòng)電路 顯示驅(qū)動(dòng)電路為簡(jiǎn)化硬件設(shè)計(jì),減少使用系統(tǒng)I/O口,節(jié)約系統(tǒng)硬件資源的基礎(chǔ)上,顯示部分由驅(qū)動(dòng)器LM1819驅(qū)動(dòng)雙線圈汽車(chē)轉(zhuǎn)速表頭顯示轉(zhuǎn)速。里程顯示選用LCM1010串行控制業(yè)經(jīng)顯示模塊,它具有以下獨(dú)特特點(diǎn): (1) 它只有3個(gè)輸入端: CS、LOAD、CLK,接線簡(jiǎn)單, 工作可靠。 (2) 被動(dòng)顯示: 液晶顯示器本身不發(fā)光而是靠調(diào)制外界光進(jìn)行顯示,也就是說(shuō),它不象發(fā)光的主動(dòng)型器件那樣,靠發(fā)光刺激人眼而實(shí)現(xiàn)顯示,而是單純依靠對(duì)光的不同反射呈現(xiàn)的對(duì)比度達(dá)到顯示的目的。符合人的視覺(jué)習(xí)慣,不容易引起疲勞,而且外界光亮度越強(qiáng),其顯示內(nèi)容越清晰。特別適用于室外和強(qiáng)光直射的場(chǎng)合。 (3) 低電壓功耗: 極低的工作電壓, 只有3~5V, 工作電流則只有幾個(gè)μA/(cm)2,可以和大規(guī)模集成電路直接匹配。 (4) 液晶顯示器采用平板式結(jié)構(gòu),由兩片玻璃組成夾層盒,目前都將液晶顯示器件制作成液晶顯示模塊(LCM),使用方便。 本顯示器分為兩組: 第一組為6位,用以顯示總行駛里程數(shù),最大顯示值為: 999999 km;第二組為4位,用以顯示本次行駛里程數(shù),最大顯示值為: 999.9 km 3 WATCHDOG及復(fù)位電路 本電路直接選用Xicor公司的X25045芯片。它把3種常用的功能: 看門(mén)狗定時(shí)器,電壓監(jiān)控和EEPROM組合在單個(gè)封裝之內(nèi),這種組合降低了系統(tǒng)成本并減少了對(duì)電路板空間的要求。另外X25045與CPU的連接方式也是采用模擬串行外設(shè)接口(SPI),因此也節(jié)約了系統(tǒng)的口資源。該電路由3個(gè)信號(hào)構(gòu)成: 定時(shí)脈沖提供定時(shí)器時(shí)鐘信號(hào)源、清除信號(hào)復(fù)位定時(shí)器、RESET 信號(hào)產(chǎn)生復(fù)位系統(tǒng)。在工作時(shí), 假定工作軟件循環(huán)周期為T ,如果設(shè)定定時(shí)器定時(shí)長(zhǎng)度為T1( T1<T) , 這樣CPU在每個(gè)工作循環(huán)周期都對(duì)定時(shí)器進(jìn)行一次清零操作,只要系統(tǒng)正常工作, 定時(shí)器永遠(yuǎn)都不會(huì)溢出, 也就不會(huì)使系統(tǒng)復(fù)位; 否則, 當(dāng)系統(tǒng)出現(xiàn)故障時(shí), 在可選超時(shí)周期之后, X25045看門(mén)狗將以RESET 信號(hào)作出響應(yīng)。X25045片還有一個(gè)顯著的特點(diǎn)是它內(nèi)部的閃爍存儲(chǔ)器2 KX8 位的EEPROM,它采用Xicor公司Direct WriteT專(zhuān)利技術(shù), 提供不少于100 000次的使用年限和最小100年的數(shù)據(jù)保存期, 在本系統(tǒng)中,用于存儲(chǔ)汽車(chē)行駛的總里程數(shù)。 3.1系統(tǒng)CPU的選擇 用戶(hù)在使用單片機(jī)時(shí)必須了解單片機(jī)的供應(yīng)狀態(tài)。單片機(jī)的供應(yīng)狀態(tài)決定于片內(nèi)的ROM配置狀態(tài),片內(nèi)ROM狀態(tài)通常分三種: 1 片內(nèi)ROM狀態(tài)既單片機(jī)內(nèi)帶有的是掩腌ROM。由于用戶(hù)無(wú)法自己將程序?qū)懭肫瑑?nèi)ROM,故這種單片機(jī)(如MCS-51中的8051)只是用于某種大批量產(chǎn)品時(shí)使用。此時(shí),用戶(hù)將調(diào)試好的應(yīng)用程序有廠家固化到片內(nèi)ROM中,當(dāng)然,前提是片內(nèi)的ROM容量必須滿(mǎn)足用戶(hù)程序的要求。 2 片內(nèi)EPROM狀態(tài),用戶(hù)自己可以通過(guò)高壓脈沖將程序?qū)懭肫瑑?nèi)EPROM中去。當(dāng)用戶(hù)開(kāi)發(fā)程序不大時(shí)(既不需要外擴(kuò)EPROM),使用這種單片機(jī)可以簡(jiǎn)化整個(gè)系統(tǒng)的組成。它可以作為開(kāi)發(fā)片內(nèi)ROM單片機(jī)的代用芯片,開(kāi)發(fā)成功以后,再改用帶片內(nèi)ROM的芯片(MCS-51系列的8751屬于這種芯片)。此類(lèi)單片機(jī)應(yīng)用最為廣泛。 3 片內(nèi)無(wú)ROM狀態(tài),使用這種單片機(jī)時(shí),必須外部配置程序存儲(chǔ)器EPROM。其容量可視需要靈活配置。 而MCS89-51系列中的2051正屬于第二類(lèi)單片機(jī)下面是針對(duì)2051芯片的介紹。 file:///C:\Users\junjie\AppData\Local\Temp\ksohtml\wps5D3B.tmp.png 功能框圖 3.2輔助芯片的選取 微機(jī)控制系統(tǒng)干擾、電源的波動(dòng)引起的程序飛車(chē)和數(shù)據(jù)丟失, 常造成系統(tǒng)的各種誤動(dòng)作或死機(jī), 直接影響著系統(tǒng)的正常運(yùn)行, 設(shè)計(jì)人員為此倍感頭痛。25045芯片將微機(jī)測(cè)控系統(tǒng)中常用的功能: 看門(mén)狗定時(shí)器、電源電壓監(jiān)控、上電復(fù)位、串行E2PROM 集成在一片8 引腳的芯片內(nèi). 這種組合大大減少了對(duì)電路板的空間要求, 簡(jiǎn)化了硬件設(shè)計(jì), 降低了成本和功耗,大大提高了系統(tǒng)的可靠性和安全性. 1 芯片簡(jiǎn)介 在采用DMX512協(xié)議通信時(shí),換色器的編號(hào)用于從總控制臺(tái)發(fā)送的數(shù)據(jù)包中選擇發(fā)給本設(shè)備的數(shù)據(jù)幀。正常工作時(shí),編號(hào)數(shù)據(jù)不會(huì)掉電丟失,而且必要時(shí)編號(hào)還可修改。因此采用XICOR公司的串行E2PROM器件X25045對(duì)編號(hào)數(shù)據(jù)進(jìn)行存儲(chǔ)。 X25045是帶有串行E2PROM的CPU監(jiān)控器。圖2是它的引腳圖: file:///C:\Users\junjie\AppData\Local\Temp\ksohtml\wps5D3C.tmp.png 5045引腳圖 CS/WDI:片選輸入/看門(mén)狗復(fù)位輸入; SO:串行輸出; WP:寫(xiě)保護(hù)輸入; Vss:地; Vcc:電源; RESET:復(fù)位輸出; SCK:同步時(shí)鐘輸入; SI:串行輸入。 X25045的狀態(tài)寄存器描述器件的當(dāng)前狀態(tài),各位意義如表1所列。
表1 其中,WD1、WD0是看門(mén)狗定時(shí)時(shí)間設(shè)置位;BL1、BL0是存儲(chǔ)單元寫(xiě)保護(hù)區(qū)設(shè)置位;WEL是只讀標(biāo)志,1表明寫(xiě)使能開(kāi)關(guān)打開(kāi);WIP也是只讀標(biāo)志,1代表芯片內(nèi)部正處于寫(xiě)周期。電復(fù)位時(shí),各位都被清零。 X25045芯片功能包括以下4種: (1)上電復(fù)位控制。在對(duì)X25045通電時(shí),ERSET引腳輸出有效的復(fù)位信號(hào),并保持至少200ms,使CPU有效復(fù)位。 (2)電源電壓監(jiān)控。當(dāng)檢測(cè)到電源電壓低于內(nèi)部門(mén)檻電壓VTRIP時(shí),RESET輸出復(fù)位信號(hào),直至電源電壓高于VTRIP并保持至少200ms,復(fù)位信號(hào)才被撤消。VTRIP的出廠值根據(jù)芯片型號(hào)不同共有5個(gè)級(jí)別的電壓范圍。對(duì)于需要電源電壓精確監(jiān)控的應(yīng)用,用戶(hù)可以搭建編程電路,對(duì)芯片內(nèi)VTRIP電壓進(jìn)行微調(diào)。 (3)看門(mén)狗定時(shí)器。芯片內(nèi)部狀態(tài)寄存器的WD1、WD0是看門(mén)狗定時(shí)設(shè)置位,通過(guò)狀態(tài)寄存器寫(xiě)指令WRSR修改這2個(gè)標(biāo)志位,就能在3種定時(shí)間隔中進(jìn)行選擇或關(guān)閉定時(shí)器。對(duì)看門(mén)狗的復(fù)位由CS輸入電平的下降沿完成。表2是WD1、WD0組合的含義。 表2 (4)串行E2PROM。芯片內(nèi)含512字節(jié)存儲(chǔ)單元,10萬(wàn)次可靠寫(xiě),數(shù)據(jù)保持時(shí)間100年。XICOR設(shè)計(jì)了3種保護(hù)方式防止誤寫(xiě)。包括:WP寫(xiě)保護(hù)引腳,當(dāng)引腳被拉低時(shí),內(nèi)部存儲(chǔ)單元狀態(tài)寄存器都禁止寫(xiě)入;存儲(chǔ)區(qū)域?qū)懕Wo(hù)模式,通過(guò)對(duì)狀態(tài)寄存器的BL1、BL0位的設(shè)置,可以選擇對(duì)不同的存儲(chǔ)區(qū)域進(jìn)行寫(xiě)保護(hù);在進(jìn)行任何寫(xiě)操作前都必須打開(kāi)寫(xiě)使能開(kāi)關(guān),而且在上電初始化寫(xiě)操作完成時(shí),寫(xiě)使能開(kāi)關(guān)自動(dòng)關(guān)閉。顯然,在幾方面的保護(hù)之下,產(chǎn)生誤寫(xiě)的可能性極小,表3是BL1、BL0組合的含義。
表3 對(duì)X25045的操作是通過(guò)4根口線CS、SCK、SI和SO進(jìn)行同步串行通信來(lái)完成的。SCK是外部輸入的同步時(shí)鐘信號(hào)。在對(duì)芯片定改指令或數(shù)據(jù)時(shí),時(shí)鐘前沿將SI引腳信號(hào)輸入;在讀郵數(shù)據(jù)時(shí),時(shí)鐘后沿將數(shù)據(jù)位輸出到SO引腳上。數(shù)據(jù)的輸入/輸出都是高位在先。 芯片內(nèi)部共有6條指令,如表4所列。
表4 | | | | | 打開(kāi)寫(xiě)使能開(kāi)關(guān) | | | 關(guān)閉寫(xiě)使能開(kāi)關(guān) | | | | | | | | | | | | |
(1)WREN和WRDI是寫(xiě)使能開(kāi)關(guān)的開(kāi)/關(guān)指令。它們都是單字節(jié)指令。 (2)RDSR和WRSR是狀態(tài)寄存器的讀/寫(xiě)指令。在從SI輸入指令后,RDSR的執(zhí)行結(jié)果,即狀態(tài)寄存器內(nèi)容須從SO讀出;而WRSR需要緊接著輸入修改數(shù)據(jù)。 (3)READ和WEITE是存儲(chǔ)單元的讀/寫(xiě)指令。輸入指令后(指令碼第三代表存儲(chǔ)單元地址的最高位),接著輸入低八位地址,最后就可以連續(xù)讀出或?qū)懭霐?shù)據(jù)。其中,讀指針和寫(xiě)指針的工作方式完全不同,讀指針的全部8位用來(lái)計(jì)數(shù),0FFH溢出后變成00H;寫(xiě)指針只用最低兩位計(jì)數(shù),XXXXXX11B溢出后變成XXXX XX00B,所以連續(xù)寫(xiě)的實(shí)際結(jié)果是在4個(gè)單元中反復(fù)寫(xiě)入。另外,由于E2PROM的寫(xiě)入時(shí)間長(zhǎng),所以在連續(xù)兩條寫(xiě)指令之間應(yīng)讀取WIP狀態(tài),只有內(nèi)部寫(xiě)周期結(jié)束時(shí)才可輸入下一條寫(xiě)指令。 AT89C2051內(nèi)部沒(méi)有SPI接口硬件,因此本系統(tǒng)利用了單片機(jī)的4根口線和軟件模擬讀寫(xiě)時(shí)序的方式與X25045通信。 5045與2051連接圖 file:///C:\Users\junjie\AppData\Local\Temp\ksohtml\wps5D4D.tmp.png 3.3LM1819在轉(zhuǎn)速里程表中的應(yīng)用 目前國(guó)際上流行大轉(zhuǎn)角(0~270°)動(dòng)磁式指示儀表,它克服了一般動(dòng)圈式指示儀表抗震性能差、過(guò)載能力弱、指針易抖動(dòng)等缺點(diǎn)。而引進(jìn)的一些驅(qū)動(dòng)芯片,如KEFA-796專(zhuān)用集成芯片,有成本高、不易國(guó)產(chǎn)化等弱點(diǎn)。我們采用LM1819專(zhuān)用集成芯片(美國(guó)國(guó)家半導(dǎo)體公司新產(chǎn)品),配以適當(dāng)?shù)膽?yīng)用電路,就可以很好地解決以上問(wèn)題。 3.3.1電動(dòng)里程表結(jié)構(gòu) 電動(dòng)里程表接收霍爾傳感器送來(lái)的方波信號(hào),把方波信號(hào)頻率轉(zhuǎn)換成指針的轉(zhuǎn)角。我們選用動(dòng)磁式十字交叉機(jī)芯,實(shí)現(xiàn)瞬間里程指示功能。十字交叉機(jī)芯是一種動(dòng)磁式的轉(zhuǎn)速表,它代表現(xiàn)代轉(zhuǎn)速表的發(fā)展方向,因?yàn)樗c動(dòng)圈式轉(zhuǎn)速表相比有下列優(yōu)點(diǎn): (1) 轉(zhuǎn)動(dòng)組件質(zhì)量小、抗震性能好、指示平穩(wěn); (2) 無(wú)需動(dòng)平衡、裝配簡(jiǎn)單; (3) 機(jī)芯體積小、機(jī)械結(jié)構(gòu)較簡(jiǎn)單。 3.3LM1819專(zhuān)用集成電路簡(jiǎn)介 為了使指針準(zhǔn)確地指示出瞬時(shí)車(chē)速,需要一套電子電路。將霍爾速度傳感器送來(lái)的方波信號(hào)的頻率轉(zhuǎn)化為驅(qū)動(dòng)線圈N1 和N2 的電波信號(hào),使合成磁場(chǎng)H 與水平線夾角θ能根據(jù)車(chē)速變化按線性規(guī)律改變,以便指針均勻、準(zhǔn)確地指示車(chē)速。我們選用LM1819 專(zhuān)用集成電路實(shí)現(xiàn)上述功能。LM1819 是專(zhuān)門(mén)為驅(qū)動(dòng)動(dòng)磁式儀表而設(shè)計(jì)的。LM1819 是由電荷泵、整形器、函數(shù)發(fā)生器、等組成。其集成電路功能框圖如圖1所示。 (5) 下面對(duì)外圍電路和工作原理作較詳細(xì)分析和說(shuō)明。 (1)電流供給部分:該電路單元由二極管D1、電阻R3、穩(wěn)壓管DW1電容C3組成。二極管D1是為了防止電源反接,以保護(hù)LM1819燒毀;電阻R3和穩(wěn)壓管DW1是LM1819 的腳13上電源電壓值限定在18V以下,起過(guò)壓保護(hù)作用;電容C3是電源的吸收電容,以避免電源電壓頻繁波動(dòng)對(duì)LM1819影響。 (2)正弦、余弦繞組公共端基準(zhǔn)電位設(shè)定電路:由電阻R4和穩(wěn)壓管DW2組成,電阻R4是穩(wěn)壓管DW2的限流電阻。穩(wěn)壓管DW2選用5.1V ,使正弦和余弦繞組公共端基準(zhǔn)電位設(shè)在5.1V。 (3)霍爾探頭方波信號(hào)輸入電路:該電路單元由二極管D4 ,電阻R5、R6、R7,電容C4組成。二極管D4作用是防止信號(hào)反接;電阻R5和電容C4組成低通濾波器;電阻R7是輸入電路限流電阻,使加到LM1819的腳10上電流限制在2.5mA 以下;當(dāng)LM1819內(nèi)部NPN開(kāi)關(guān)晶體管關(guān)斷時(shí),電阻R6為電容C4提供一個(gè)放電通路。 (4)方波整形電路:為了提高電路的處理精度,需要將霍爾探頭送入的方波信號(hào)加以整形。整形的目的是使方波正半周幅度恒定,上升沿和下降沿盡可能陡。為了實(shí)現(xiàn)上述目的,LM1819內(nèi)部電壓基準(zhǔn)電路產(chǎn)生一個(gè)非常穩(wěn)定的8.5V電壓由腳11輸出,整形靠LM1819內(nèi)部NPN開(kāi)關(guān)晶體管實(shí)現(xiàn),其具體過(guò)程如圖4所示。 圖4 方波整形示意圖 V10是LM1819腳10的輸入信號(hào),它是霍爾探頭輸出的信號(hào)經(jīng)輸入電路處理而得到的方波;V9是LM1819腳9的輸出信號(hào),即上述整形電路輸出信號(hào)。當(dāng)V10為高電平時(shí),LM1819內(nèi)部NPN開(kāi)關(guān)晶體管導(dǎo)通,V9輸出低電平;V10為低電平時(shí),開(kāi)關(guān)晶體管截止,V9輸出高電平(約等于腳11 輸出電 壓,因V11穩(wěn)定在8.5V 左右). 同時(shí),LM1819內(nèi)部的 NPN開(kāi)關(guān)晶體管導(dǎo)通和關(guān)閉時(shí)間都非常短,因而V9幅值非常穩(wěn)定,上升沿和下降沿都非常陡,為后續(xù)方波頻率與電壓轉(zhuǎn)換電路提供一個(gè)理想的信號(hào)源。 (5)方波頻率與電壓轉(zhuǎn)換電路:該電路單元的功能是將霍爾探頭送來(lái)的反映車(chē)速的方波信號(hào)頻率轉(zhuǎn)換為L(zhǎng)M1819內(nèi)部函數(shù)發(fā)生器輸出的控制電壓。當(dāng)車(chē)速變化(即方波信號(hào)頻率變化)時(shí),控制電壓V 8也將隨之變化,以滿(mǎn)足: θ = 54 ( V 8 - 2. 1) 的最終要求。該電路單元由R1、C1、R2、C2、R8及諾頓放大器組成。R1、C1是諾頓放大器正向輸入端的微分輸入電路,其作用是將幅度恒定的方波信號(hào)轉(zhuǎn)化為加到腳6上的電流信號(hào)。諾頓放大器本質(zhì)上是一個(gè)電流放大器,隨著方波頻率變化, R1、C1構(gòu)成的微分電路充放電電流平均值也隨之變化,諾頓放大器是將正向輸入端的平均充放電電流變化轉(zhuǎn)化成其輸出電壓變化的核心器件。R2、R8、C2是諾頓放大器反饋網(wǎng)絡(luò),R2+R8的大小決定諾頓放大器的增益,C2是抑制輸出脈沖的補(bǔ)償電容。 在電動(dòng)車(chē)速里程表中,選用LM1819專(zhuān)用集成電路驅(qū)動(dòng)動(dòng)磁式電子轉(zhuǎn)速表的十字交叉機(jī)芯。將霍爾速度傳感器送來(lái)的方波信號(hào)的頻率轉(zhuǎn)化為驅(qū)動(dòng)線圈N1和N2 的電流信號(hào),使合成磁場(chǎng)H與水平線夾角θ能根據(jù)車(chē)速變化按線性規(guī)律改變,以便指針均勻、準(zhǔn)確地指示車(chē)速。此裝置具有穩(wěn)定性好、可靠性高、響應(yīng)速度快、指示性能好、精度優(yōu)良等特點(diǎn),其應(yīng)用前景十分廣闊。 3..4液晶顯示器LCM1010的應(yīng)用 液晶顯示器已廣泛應(yīng)用于儀器儀表產(chǎn)品、機(jī)電一體化產(chǎn)品、自動(dòng)化控制系統(tǒng)、智能小區(qū)監(jiān)控系統(tǒng)中。下面是對(duì)LCM1010的介紹: 其引腳如圖所示 (1) 它只有3 個(gè)輸入端: CS、LOAD、CL K, 具有接線簡(jiǎn)單, 工作可靠。 (2) 被動(dòng)顯示: 液晶顯示器本身不發(fā)光而是靠調(diào)制外界光進(jìn)行顯示, 也就是說(shuō), 它不象發(fā)光的主動(dòng)型器件那樣, 靠發(fā)光刺激人眼而實(shí)現(xiàn)顯示, 而是單純依靠對(duì)光的不同反射呈現(xiàn)的對(duì)比度達(dá)到顯示的目的。符合人的視覺(jué)習(xí)慣, 不容易引起疲勞, 而且外界光亮度越強(qiáng), 其顯示內(nèi)容越清晰。特別適用于室外和強(qiáng)光直射的場(chǎng)合。 (3) 低電壓功耗: 極低的工作電壓, 只有3~5V , 工作電流則只有幾個(gè)μA/ (cm) 2 可以和大規(guī)模集成電路直接匹配。 (4) 液晶顯示器采用平板式結(jié)構(gòu), 由兩片玻璃組成夾層盒, 目前都將液晶顯示器件制作成液晶顯示模塊(LCM) , 使用方便。本顯示器分為兩組: 第一組為6 位, 用以顯示總行駛里程數(shù), 最大顯示值為: 999999 km ; 第二組為4 位, 用以顯示本次行駛里程數(shù), 最大顯示值為:99919 km。 3.5傳感器的選擇 3.5.1霍爾傳感器的選擇 傳感器是一種以一定的精度把被測(cè)量轉(zhuǎn)換成為與之有確定對(duì)應(yīng)關(guān)系的便于應(yīng)用的某種物理量的測(cè)量裝置。傳感器的功能是感受被測(cè)信息并傳送出去。 近年來(lái)傳感器的應(yīng)用日益擴(kuò)大,地位也越來(lái)越重要。磁敏式傳感器按其結(jié)構(gòu)可分為體型和結(jié)型兩大類(lèi)。前者有霍爾傳感器,其主要材料有:InSb,InAs,Ge,Si,GaAs等和磁敏電阻(InSb,InAs);后者有磁敏二極管(Ge,Si)和磁敏晶體管(Si)等。它們都是利用半導(dǎo)體材料中的自由電子或空穴隨磁場(chǎng)改變其運(yùn)動(dòng)方向這一特性而制成的一種磁敏傳感器。磁敏傳感器的應(yīng)用范圍可分為模擬用途和數(shù)字用途兩種。例如利用霍爾傳感器測(cè)量磁場(chǎng)強(qiáng)度,用磁敏電阻,磁敏二極管作無(wú)接觸式開(kāi)關(guān)等。 霍爾傳感器是利用霍爾效應(yīng)實(shí)現(xiàn)磁電轉(zhuǎn)換的一種傳感器;魻栃(yīng)自1879年被發(fā)現(xiàn)至今已有100多年的發(fā)展歷史,但是直到本世紀(jì)50年代,由于微電子學(xué)的發(fā)展,才被人們重視和利用,開(kāi)發(fā)了多種霍爾元件。我國(guó)從70年代開(kāi)始研究霍爾元件,經(jīng)過(guò)20余年的研究和開(kāi)發(fā),目前以能生產(chǎn)各種性能的霍爾元件,例如:普通型,高靈敏度型,低溫度系數(shù)型,測(cè)溫測(cè)磁型和開(kāi)關(guān)式的霍爾元件。 由于霍爾傳感器具有靈敏度高,線性度好,穩(wěn)定性高,體積小和耐高溫等特性,它已經(jīng)廣泛應(yīng)用于非電測(cè)量,自動(dòng)控制,計(jì)算機(jī)裝置,和現(xiàn)代軍事技術(shù)等各個(gè)領(lǐng)域。 霍爾傳感器的工作原理主要是在線圈中放置一軟磁(可旋轉(zhuǎn))這樣可以改變線圈內(nèi)的磁通的變化,從而在線圈中產(chǎn)生的頻率與待測(cè)轉(zhuǎn)軸轉(zhuǎn)速成正比。 1基本測(cè)量電路 霍爾元件的基本測(cè)量電路如圖所示: file:///C:\Users\junjie\AppData\Local\Temp\ksohtml\wps5D4E.tmp.png 控制電源I由電源E供給,電位器W調(diào)節(jié)控制電流的大小;魻栐妮敵鼋迂(fù)載電阻R,R可以是放大器的輸入電阻或者是測(cè)量電路的內(nèi)阻。由于霍爾元件必須在磁場(chǎng)與控制電流作用下,才會(huì)產(chǎn)生霍爾電勢(shì)U。所以在測(cè)量中,可以把I和B的乘積,或者I,或者B作為輸入信號(hào),則霍爾元件的輸出電勢(shì)分別正比與IB或I或B。 2連接方式: 除了霍爾元件的基本電路形式之外,如果為了獲得較大的霍爾輸出電勢(shì),可以采用幾片疊加的方式如圖所示。 file:///C:\Users\junjie\AppData\Local\Temp\ksohtml\wps5D5F.tmp.png 下圖為直流供電情況?刂齐娏鞫瞬⒙(lián),由W1,W2調(diào)節(jié)兩個(gè)元件的霍爾輸出電勢(shì),A,B為輸出端則它的輸出電示為單塊的兩倍。 下圖為交流供電情況。控制電流端串聯(lián),各個(gè)元件的輸出端連接輸出變壓器B的初級(jí)繞組,變壓器的次級(jí)便有霍爾輸出電勢(shì)信號(hào)的疊加值輸出。 3霍爾電勢(shì)的輸出電路: 霍爾元件是一種四端器件,本身不帶放大器;魻栯妱(shì)一般在毫伏量級(jí),在實(shí)際使用的時(shí)候必須加差分放大器。輸出電路如圖所示的結(jié)構(gòu)。 file:///C:\Users\junjie\AppData\Local\Temp\ksohtml\wps5D60.tmp.png 第四章系統(tǒng)的軟件設(shè)計(jì) 軟件設(shè)計(jì)在系統(tǒng)設(shè)計(jì)中占很大比重,好的軟件環(huán)境能使單片機(jī)硬件資源得以充分發(fā)揮,在軟件編程時(shí)應(yīng)注重程序的結(jié)構(gòu)化,以簡(jiǎn)化編碼,方便調(diào)試. 本汽車(chē)?yán)锍瘫沓绦蚨绦『?jiǎn)練,結(jié)構(gòu)簡(jiǎn)單,匯編完后為713字節(jié),占用程序空間少,用2716 亦能勝任(采用25045主要為了方便功能擴(kuò)充) . 1)里程計(jì)數(shù)原理:汽車(chē)磁電式傳感器輸出的脈沖信號(hào)是傳感器轉(zhuǎn)輪旋轉(zhuǎn)時(shí)磁場(chǎng)使舌簧管分開(kāi)閉合而產(chǎn)生的脈沖.每一個(gè)脈沖代表行駛了一定的距離.設(shè)汽車(chē)行駛1km時(shí)驅(qū)動(dòng)輪轉(zhuǎn)數(shù)為N,磁電式傳感器轉(zhuǎn)數(shù)為NF 則NF=N×I,其中I為傳動(dòng)比. 設(shè)輪胎外徑為D,則汽車(chē)行駛1km驅(qū)動(dòng)輪轉(zhuǎn)數(shù)為N=1000/πD,實(shí)際中由于輪胎承載變形使得輪胎外徑D變化,此時(shí)NXI=1000/πμD,其中μ為變形系數(shù),一般為0. 93~0.96.則磁電式傳感器在汽車(chē)行駛1km時(shí)轉(zhuǎn)數(shù)NF=(1000/πμD)I.設(shè)傳感器轉(zhuǎn)輪上均勻安排m個(gè)磁片時(shí),汽車(chē)行駛1km,傳感器輸出脈沖為mNF個(gè). 2)程序中以INT1的輸入為里程計(jì)數(shù)脈沖,2051中斷1置為高中斷優(yōu)先級(jí)以保證計(jì)數(shù)準(zhǔn)確.定時(shí)器T0置為低中斷優(yōu)先級(jí),設(shè)T0每10ms中斷1次,中斷1次送1位顯示.每行駛1km向5045中寫(xiě)1次數(shù)據(jù). 3)以60H~62H單元為計(jì)數(shù)脈沖暫存單元.68H,69H單元為判斷數(shù)據(jù)暫存單元,6CH中為本次里程小數(shù)點(diǎn)位數(shù)值.當(dāng)6CH單元內(nèi)容達(dá)到0AH時(shí)清零.70~72H單元為讀出的總里程數(shù). 本程序包括主程序和2個(gè)中斷服務(wù)程序,程序功能如下: 主程序:初始化,清零存儲(chǔ)單元,讀出總里程存入暫存單元,開(kāi)CPU中斷、置中斷優(yōu)先級(jí),啟動(dòng)定時(shí)器,等待中斷. INT1中斷服務(wù)程序:脈沖個(gè)數(shù)加1,判斷是否小數(shù)點(diǎn)數(shù)值為0.1 km,判斷是否行駛1km.不是則返回. T0 中斷服務(wù)程序:判斷是否顯示總里程,顯示方式初始化,顯示里程數(shù),返回. 第五章 印制板圖的繪制 首先根據(jù)轉(zhuǎn)速里程表的結(jié)構(gòu)特點(diǎn),將整個(gè)硬件圖版分為兩部分,即打成主板和立板,主板2051,5045和驅(qū)動(dòng)器LM1819,立板為顯示版,固定LCM1010顯示器,立板和主板用接口模塊固定。 下面就可以用PROTEL中的TRAXED來(lái)繪制和制板圖了 1首先C》CD PROTEL C:PROTEL》TRAXEDIT 進(jìn)入編輯狀態(tài) 2選setup-pads 定義焊接板類(lèi)型 (設(shè)置)setup-toggbe layers 打開(kāi)和關(guān)閉層 默認(rèn)當(dāng)前的線寬,字符尺寸和捕獲柵格的大小。 3選place放置元件component 可以直接輸入元件名,也可以用回車(chē)查找元件表后確定要安置的元件。 型號(hào) 封裝 2051 DIP40 5045 DIP28 LM1819 DIP 4元件進(jìn)行布線(選用手動(dòng)布線) 用place-track 用鼠標(biāo)左鍵定義起點(diǎn),左鍵確認(rèn),用小鍵盤(pán)的 星 改變層。在本次繪制印制圖板中還用到了以下命令。 (塊)Block-copy Block-Define Block-Hide Block-Move Block-Insade Delete (放置)Place-Arc -Pad (庫(kù)管理)Library-Aold -Browse -List -New Library (屏幕控制)Zoom-Expand 印制板圖如圖 結(jié)束語(yǔ) 基于單片機(jī)的電子式轉(zhuǎn)速里程表的設(shè)計(jì)經(jīng)過(guò)了3個(gè)多月的時(shí)間的設(shè)計(jì),現(xiàn)在已經(jīng)結(jié)束。在這次設(shè)計(jì)中我查閱了大量的關(guān)于單片機(jī)及測(cè)試技術(shù)等多方面的書(shū)籍,在老師的幫助下學(xué)到了許多沒(méi)有學(xué)過(guò)的知識(shí),并且把四年來(lái)所學(xué)的MCS-51系列的單片機(jī)原理,單片機(jī)接口等課程重新溫習(xí)了一遍。同時(shí),將其中的部分知識(shí)運(yùn)用到本次設(shè)計(jì)之中,作到了理論與實(shí)際相結(jié)合,并使所學(xué)的理論知識(shí)融會(huì)貫通,提高了學(xué)習(xí)的質(zhì)量。也培養(yǎng)了對(duì)設(shè)計(jì)的分析能力。 致謝 本次設(shè)計(jì)即是對(duì)多門(mén)課程的一次綜合性的運(yùn)用,也是將理論知識(shí)運(yùn)用到實(shí)際當(dāng)中的一次嘗試。在設(shè)計(jì)中由于老師和同學(xué)的熱心幫助,解決了很多問(wèn)題和難點(diǎn)。再次,我向他們表示忠心的感謝。另外由于缺乏經(jīng)驗(yàn),缺點(diǎn)和不足再所難免。懇切的希望老師和同學(xué)們批評(píng)指正。 附錄 //****************************************************************/ //文件:zslcb.c //** //** //** #include<reg51.h> #include <absacc.h> //----------------------------------------------------- //*定義25045端口--------- sbit CS = P1^1; //*片選 sbit SO = P1^0; //*串行輸出 sbit SI = P1^3; //*串行輸入 sbit SCK = P1^2; //*串行時(shí)鐘輸入 char command; //*指令字 //------------------------------------- sbit K1 = P3^0; //計(jì)程開(kāi)關(guān) int pulsdate; //*計(jì)數(shù)脈沖變量 int lengthsdate1; //*保存本次里程數(shù)的整數(shù) int lengthsdate2; //*保存本次里程數(shù)的小數(shù) int totallength; //*總里程數(shù) //------------------------------------------- int timer0date1; //*定時(shí)器0記數(shù)變量變1 int timer0date2; //*定時(shí)器0記數(shù)變量變2 //*初始化2051工作寄存器--------- void init(void) { TMOD = 0x11; //0001 0001B T0:16位定時(shí)中斷;T1:6位定時(shí)中斷,方式1 TL0 = 0xfe; //時(shí)鐘 0.00108506944444444444ms TH0 = 0xdb; //10ms=0x2400,0xffff-0x2400=0xdbff PT0 = 0; //定時(shí)器0中斷優(yōu)先級(jí) PT1 = 0; PX0 = 0; PX1 = 1; //外部中斷1中斷優(yōu)先級(jí) ET0 = 1; //掃描開(kāi)始時(shí)開(kāi)T0中斷 IE1 = 1; //開(kāi)外部中斷1 IT1 = 1; //邊沿觸發(fā) TR0 = 1; //開(kāi)T0 中斷 EA = 1; //開(kāi)總中斷 command= 0x00; pulsdate=0x00; lengthsdate1=0x00; lengthsdate2=0x00; timer0date1=0x00; timer0date2=0x00; } //*把狀態(tài)值State寫(xiě)入25045狀態(tài)寄存器函數(shù) void Write25045State(char State) { int i; SCK=0; CS=0; for(i=0;i<8;i++) { State<<1; SCK=1; SCK=0; SI=CY; } CS=1; } //*讀25045狀態(tài)寄存器函數(shù),返回值為狀態(tài)寄存器的值 char Read25045State(void) { int i; char State0; CS = 0; Write25045State(0x06); Write25045State(0x05); SCK=0; for(i=0;i<8;i++) { SCK=1; SCK=0; CY =SO; State0>>1; } CS=1; return State0; } //*從25045的data1存儲(chǔ)器中讀取數(shù)據(jù) char Read25045MEM(char data1) { int i; char out1; CS = 1; CS = 0; command = 0x03; for(i=0;i<8;i++) { command<<1; SCK=0; SI=CY; SCK=1; } command= data1; for(i=0;i<8;i++) { command<<1; SCK=0; SI=CY; SCK=1; } SCK=0; for(i=0;i<8;i++) { SCK=1; SCK=0; CY =SO; out1>>1; } CS=1; return out1; } //*把date2寫(xiě)出25045MEM void Write25045MEM(char data2,char Memory1) { int i; CS = 1; CS = 0; command = 0x02; for(i=0;i<8;i++) { command<<1; SCK=0; SI=CY; SCK=1; } command= Memory1; for(i=0;i<8;i++) { command<<1; SCK=0; SI=CY; SCK=1; } for(i=0;i<8;i++) { data2<<1; SCK=0; SI=CY; SCK=1; } CS=1; } //*X25045芯片復(fù)位函數(shù) void reset25045(void) { CS=0; CS=1; } // void init25045(void) { int i; char data5; CS=0; Write25045State(0x06); Write25045State(0x01); data5=0x04; for(i=0;i<8;i++) { data5<<1; SCK=0; SI=CY; SCK=1; } CS=1; } //*寫(xiě)LCM1010函數(shù) void Writelcm1010(char data3 , char data6) { ; } //*定義外部中斷1函數(shù) void Int1(void) interrupt 2 { char totall; char totalh; pulsdate++; lengthsdate2+=16; if(lengthsdate2>10000) lengthsdate2-=10000; if(pulsdate>=624) { lengthsdate2=0; lengthsdate1++; pulsdate-=624; } if(pulsdate==0) { totallength++; totall=totallength; Write25045MEM(totall,0x00); totalh=(totallength>>8); Write25045MEM(totalh,0x01); } } //*定義定時(shí)器0中斷函數(shù) void Timer0(void) interrupt 1 { char i; bit j; bit k; char a; timer0date1++; timer0date2++; if(timer0date1>=4) { timer0date1-=4; } if (k==K1) { a++; } else { k=K1; a=0; } if(i>=20) { j=k; a=20; } if(!j) { switch(timer0date1) { case 0: i=lengthsdate2/100; Writelcm1010(i,timer0date1); break; case 1: i=lengthsdate1%10; Writelcm1010(i,timer0date1); break; case 2: i=(lengthsdate1/10)%10; Writelcm1010(i,timer0date1); break; case 3: i=(lengthsdate1/100)%10; Writelcm1010(i,timer0date1); break; default: break; } } else { switch(timer0date1) { case 0: i=totallength%10; Writelcm1010(i,timer0date1); break; case 1: i=(totallength/10)%10; Writelcm1010(i,timer0date1); break; case 2: i=(totallength/100)%10; Writelcm1010(i,timer0date1); break; case 3: i=(totallength/1000)%10; Writelcm1010(i,timer0date1); break; default: break; } } } //*主函數(shù) void main(void) { char totall; char totalh; init(); init25045(); totall=Read25045MEM(0x00); totalh=Read25045MEM(0x01); totallength=totalh; totallength<<8; totallength=totall; while(1) { if(timer0date2>=30) { timer0date2=0; init25045(); } }
|