




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
PAGE9傾角測量儀的設計摘要當前,大多數(shù)行業(yè)測量角度時依然沿用傳統(tǒng)的水泡式(條式)水平儀.其檢測方法有諸多缺點,如測量值因人而易、功能單一、測量范圍小等。本傾角測量儀,它與傳統(tǒng)的水泡式(條式)水平儀相比具有電子檢測、即時數(shù)值顯示、測量精度高、測量范圍大、使用及攜帶方便等特點,大大提高了工作效率。本文詳細介紹了一種利用傾角傳感器、AD轉換器、單片機實現(xiàn)高精度傾角測量的方法,它可以測量-45°~+45°范圍內的任意傾角,分辨率可達0.1°。此外,由于該傾角儀輸出為數(shù)字結果,因此它也可以與其他的數(shù)字設備結合起來,組成一個功能更加強大的儀器。該裝置可滿足大量工程上的應用。該數(shù)字傾角儀具有攜帶方便、精度高、功能多等特點。它使用方便,應用范圍廣泛。該數(shù)字傾角儀可廣泛用于建筑、機械、道路、橋梁、石油、煤礦和地質勘探等各種需要測量重力參考系下傾角的場合。關鍵詞:傾角測量;AD轉換器;單片機目錄引言6第1章緒論71.1測試系統(tǒng)方案選擇71.2測試系統(tǒng)一般結構7第2章系統(tǒng)硬件設計92.1系統(tǒng)硬件組成92.2傾角傳感器選擇92.2.1選擇傳感器的的基本原則92.2.2傾角傳感器原理102.2.3本設計選用的傳感器112.3單片機的選擇及其外圍電路設計162.3.189S52單片機的原理與結構172.3.289S52在本設計中的應用192.4A/D轉換電路設計222.4.1AD574A的A/D轉換原理222.4.2AD574A在本設計中的應用232.4.3AD574A在本系統(tǒng)中的應用262.5顯示模塊設計272.5.1LED驅動器功能簡介282.5.2本設計LED顯示器的應用32第3章系統(tǒng)軟件設計353.1系統(tǒng)主流程圖353.2系統(tǒng)初始化設計353.3A/D轉換子程序設計363.4數(shù)制轉換程序設計373.5LED顯示模塊子程序設計383.6X5045模塊程序設計39致謝43參考文獻44附錄A電氣原理圖45附錄C主要參考文獻及其摘要51附錄D程序清單53引言當前,大多數(shù)行業(yè)測量角度時依然沿用傳統(tǒng)的水泡式(條式)水平儀.其檢測方法依然是―水泡移動,肉眼分辨‖。這種原始的檢測方法有諸多缺點,如測量值因人而易(由于是用肉眼觀察水泡的位置來估計值,所以測量誤差偏大,且測量誤差主要有認為因素導致)、功能單一(其只能在一定的環(huán)境下測量角度,而不能完成其他測量)、測量范圍小(傳統(tǒng)的水泡式水平儀由于是靠觀察水泡的位置來估計值的,所以其測量范圍受到很大的限制)等[9]。本傾角測量儀,它與傳統(tǒng)的水泡式(條式)水平儀相比具有電子檢測、即時數(shù)值顯示、測量精度高、測量范圍大、使用及攜帶方便等特點,徹底擺脫了―看水泡移動、估計值‖的傳統(tǒng)測量方法,大大提高了工作效率。此外,由于該傾角儀輸出為數(shù)字結果,因此它也可以與其他的數(shù)字設備結合起來,組成一個功能更加強大的儀器。該裝置測量誤差小于0.1°,可滿足大量工程上的應用。該數(shù)字傾角儀具有攜帶方便、精度高、功能多等特點。它使用方便,應用范圍廣泛,該傾角測量儀可廣泛用于建筑、機械、道路、橋梁、石油、煤礦和地質勘探等各種需要測量重力參考系下傾角的場合。所以該傾角儀有良好的發(fā)展前景和使用價值。它與傳統(tǒng)的一些測量角度的儀器相比有著很大的優(yōu)越性,所以其必將逐漸取代傳統(tǒng)的水泡式(條式)水平儀。本文分3章對本設計進行了闡述。第1章緒論介紹了系統(tǒng)整體方案的選擇,提出了系統(tǒng)的整體結構及設計思路。第2章為系統(tǒng)硬件的設計,對傾角傳感器、主控模塊、A/D轉換模塊和顯示模塊的選擇及應用分別做了說明。第3章為系統(tǒng)軟件的設計,介紹了系統(tǒng)各個模塊的軟件設計思想及程序。嵌入式應用軟件園,版權所有,請勿轉載/銷售。-7-第1章緒論1.1測試系統(tǒng)方案選擇本設計采用了單片機測試系統(tǒng)。隨著超大規(guī)模集成電路技術的發(fā)展,微型計算機正以驚人的速度飛速發(fā)展。目前,微型計算機的發(fā)展有兩個大的趨向:一個發(fā)展是向128位以上的巨型機邁進,另一個發(fā)展方向是向更加微型化、多功能化,使其在一塊芯片是構成一臺完整的微型計算機,即所謂的單片機。單片機只要用于工業(yè)過程控制及智能控制儀器中,特別是在傳感器智能儀器發(fā)展中,已顯示出巨大的優(yōu)越性,因而深受人們的歡迎,成為近年來最為活躍的領域[3]。單片機之所以在智能儀器中廣泛采用,主要是因為其具有以下特點[11]。①體積小、價格低廉目前的單片機不但把CPU、存儲器及I/O接口集成在一塊芯片上,而且集成了用戶常用的硬件內容,使用起來特別方便、靈活。例如,目前剛傳入國內不久的高速SOC(systemonchip,片上系統(tǒng))美國CYGNAL公司的80C51系列單片機,全兼容51指令集、最高配置為芯片上集成了高達64KB的Flash存儲器、4352B的RAM、12位ADC(轉換速率為500kb/s,32通道輸入)、兩路12位DAC(帶基準電源)、兩路模擬電壓比較器、溫度傳感器等,采用TQ48、TQ64、TQ100和MLP11封裝。芯片的輸入、輸出口由用戶自定義,而且直接在線仿真編程、擦除、校驗、加密,大大簡化了傳統(tǒng)的―仿真器+編程器‖結構。②便于產品小型化、智能化由于單片機體積小、功能強、用它不僅能代替常規(guī)的控制邏輯,而且還具有計算和處理功能,因而被廣泛用于智能化儀器、自動化測控裝置、家用電器和機器人等廣大領域。③研發(fā)周期短、可靠性高一般微型機用于過程控制和智能儀器的研制周期都比較長,需要二次開發(fā);而單片機通過簡單的開發(fā)裝置,即可實現(xiàn)所謂在線開發(fā),因而大大縮短了研制周期。此外,由于單片機都集成在一塊芯片上,所以節(jié)省了大量的外部連線,簡化了印刷線路板的設計和加工,因而減小了外部干擾,其可靠性大大提高。單片機集成度高、運算速度快、體積小、運行可靠、價格低廉,因此在非電量測控、傳感器智能化儀器儀表中得到了廣泛應用[9]?;谝陨蠁纹瑱C的優(yōu)點和使用范圍,本設計采用了單片機為傾角測量系統(tǒng)的微處理器。1.2測試系統(tǒng)一般結構傳感器與單片機相結合構成的檢測系統(tǒng),本質上就是單片機控制系統(tǒng)。一般說來,采用單片機做智能控制部件的測控系統(tǒng),為了對被測控非電量實施控制,對其參數(shù)和狀態(tài)進行檢測是必不可少的。單片機控制是以自動化控制理論和計算機技術為基礎的??厍度胧綉密浖@,版權所有,請勿轉載/銷售。-8-制對象從小到大,從簡單到復雜,都可以有單片機參與控制。傳感器與單片機相結合構成的檢測系統(tǒng),根據(jù)其用途和功能的不同可以采用各種不同的類型。但是,實際上這些系統(tǒng)的基本結構是完全相同的,如圖1-1所示。收集信息端把從傳感器得到的信息通過輸入接口送給單片機,把結果通過輸出接口送給顯示器、記錄設備等[11]。根據(jù)本設計的任務要求:測量范圍:-45°~+45°測量精度:≤0.1°本傾角測量儀的設計按照圖1-1系統(tǒng)結構進行設計。檢測對象傳感器輸入接口單片機輸出接口顯示/記錄設備圖1-1單片機測試系統(tǒng)的一般結構嵌入式應用軟件園,版權所有,請勿轉載/銷售。-9-第2章系統(tǒng)硬件設計前面我們對測試系統(tǒng)的一般結構有了個大概的了解,在接下來的一章中我們將對傾角測量儀的傳感器、A/D轉換電路、單片機電路、LED顯示以及驅動電路等進行設計和分析并給出以上各部分的實際電路,為系統(tǒng)軟件開發(fā)打下堅實的基礎。2.1系統(tǒng)硬件組成系統(tǒng)硬件結構主要包括以下組成部分:傾角傳感器、A/D轉換模塊、單片機、顯示模塊、如圖2-1所示。其中,傾角傳感器作為測試單元輸出電壓信號;A/D轉換模塊則將調理過的電壓模擬信號轉換為數(shù)字信號,以便送給單片機進行數(shù)據(jù)的處理;單片機是整個系統(tǒng)的核心,負責協(xié)調各部分的工作,以及進行數(shù)據(jù)處理;顯示模塊則是人機交互的通道。2.2傾角傳感器選擇從單片機誕生的最初年代開始,非電量測量技術和儀器儀表行業(yè)就成為單片機應用的重要領域。傳統(tǒng)的儀器儀表配以單片機做智能部件,構成了當今各種的所謂智能化儀器儀表。這些智能化儀器儀表主要由硬件和軟件兩部分組成。其中的硬件主要由傳感器(包括信號的采集和放大)和單片機兩部分組成。二者通過一定的接口進行連接,構成典型的智能化儀表。所以選擇一個合適的傾角傳感器對本設計至關重要[12]。2.2.1選擇傳感器的的基本原則實現(xiàn)非電量測量的關鍵技術之一就是正確地選擇和使用好傳感器。傳感器處于系統(tǒng)前向通道的最前端,是構成系統(tǒng)信息輸入的主要窗口,為系統(tǒng)提供進行處理和決策控制所必須原始信息。傾角傳感器的精度直接影響整個自動測試系統(tǒng)的精度,能否找到一些恰當?shù)膫鞲衅鱽頊蚀_、迅速、全面反映傾角的特性,并把它變換成便于識別、傳輸、接收、處理和控制的信息,即盡可能地選擇性能優(yōu)異有價格低廉的合適傾角傳感器至關重要[13]。傾角傳感器單片機A/D轉換模塊顯示模塊圖2-1系統(tǒng)硬件結構框圖嵌入式應用軟件園,版權所有,請勿轉載/銷售。-10-傳感器種類繁多,性能各異。從測量角度看,根據(jù)輸出電信號形式的不同,可以把傳感器分為開關式、數(shù)字式和模擬式3大類[11]。(1)開關式傳感器其工作特性是:當輸入位移量高于某一設定值(閾值)時,傳感器處于接通狀態(tài),輸出高電平(或低電平);當輸入位移量低于某一設定值(閾值)時,傳感器處于斷開狀態(tài),輸出低電平(或高電平)。所以這類傳感器輸出是高、低電平變化的。(2)數(shù)字式傳感器采用數(shù)字式傳感器可將被測參數(shù)直接轉換成數(shù)字信號輸出,因此它具有以下特點:①精確度和分辨率高;②抗干擾能力強,便于遠距離傳送;③信號易于處理和存儲,便于與計算機接口;④可以減小讀數(shù)誤差。正因為如此,數(shù)字式傳感器引起了人們的普遍重視。然而到目前為止,數(shù)字式傳感器的種類還不多。根據(jù)工作原理不同可分為脈沖數(shù)字式傳感器(如光電編碼傳感器、光柵傳感器、感應同步器、磁柵傳感器等)和頻率輸出式數(shù)字傳感器(如振弦式傳感器、振筒式傳感器和振膜式傳感器等)。(3)模擬式傳感器其輸出以各種連續(xù)量的形式變化,可以是電壓、電流、電阻、電感、電容等。連續(xù)變化量與數(shù)字系統(tǒng)連接,需要通過模擬通道,再經(jīng)A/D轉換器把模擬信號轉換成數(shù)字信號。實際應用中,選擇傳感器的基本原則可概括為以下幾方面:①具有確定的傳感特性,即能保證一定的靈敏度、精確度、重視性和長時間的工作穩(wěn)定性;②具有高的可靠性,能在價格適中的前提下有較長的工作壽命;③具有良好的工作環(huán)境適應性,受外界因素如高低溫沖擊、振動、潮濕等的影響??;④具有高的非電量識別和抑制能力,即在多個非電量環(huán)境中,要求傳感器對不屬于它們的自然輸入量應有較強的識別和抑制能力;⑤具有較小或者適宜的幾何尺寸和形狀,便于使用。2.2.2傾角傳感器原理傾角傳感器經(jīng)常用于系統(tǒng)的水平測量,從工作原理上可分為―固體擺‖式、―液體擺‖式、―氣體擺‖三種傾角傳感器[1],下面就它們的工作原理進行介紹。(1)―固體擺‖式慣性器件固體擺在設計中廣泛采用力平衡式伺服系統(tǒng),其由擺錘、擺線、支架組成,擺錘受重力G和擺拉力T的作用,其合外力F為:F=Gsinθ=mgsinθ(2-1)其中,θ為擺線與垂直方向的夾角。在小角度范圍內測量時,可以認為F與θ成線性關系。如應變式傾角傳感器就是基于此原理。(2)―液體擺‖式慣性器件液體擺的結構原理是在玻璃殼體內裝有導電液,并有三根鉑電極和外部相連接,三嵌入式應用軟件園,版權所有,請勿轉載/銷售。-11-根電極相互平行且間距相等。當殼體水平時,電極插入導電液的深度相同。如果在兩根電極之間加上幅值相等的交流電壓時,電極之間會形成離子電流,兩根電極之間的液體相當于兩個電阻R1和R2。若液體擺水平時,則R1=R2。當玻璃殼體傾斜時,電極間的導電液不相等,三根電極浸入液體的深度也發(fā)生變化,但中間電極浸入深度基本保持不變。左邊電極浸入深度小,則導電液減少,導電的離子數(shù)減少,電阻R1增大,相對極則導電液增加,導電的離子數(shù)增加,而使電阻R2減少,即R1>R2。反之,若傾斜方向相反,則R1<R2。在液體擺的應用中也有根據(jù)液體位置變化引起應變片的變化,從而引起輸出電信號變化而感知傾角的變化。在實用中除此類型外,還有在電解質溶液中留下一氣泡,當裝置傾斜時氣泡會運動使電容發(fā)生變化而感應出傾角的―液體擺‖。(3)―氣體擺‖式慣性器件氣體在受熱時受到浮升力的作用,如同固體擺和液體擺也具有的敏感質量一樣,熱氣流總是力圖保持在鉛垂方向上,因此也具有擺的特性。―氣體擺‖式慣性元件由密閉腔體、氣體和熱線組成。當腔體所在平面相對水平面傾斜或腔體受到加速度的作用時,熱線的阻值發(fā)生變化,并且熱線阻值的變化是角度θ或加速度的函數(shù),因而也具有擺的效應。其中熱線阻值的變化是氣體與熱線之間的能量交換引起的。―氣體擺‖式慣性器件的敏感機理基于密閉腔體中的能量傳遞,在密閉腔體中有氣體和熱線,熱線是唯一的熱源。當裝置通電時,對氣體加熱。在熱線能量交換中對流是主要形式[5]?;谝陨蟼鞲衅鞯倪x擇原則及本設計的任務要求,本設計采用了氣體擺式傾角傳感器。在下一目中將做一闡述。2.2.3本設計選用的傳感器本設計采用的是CJRS-A01型氣體擺式傾角傳感器。(1)CJRS-A型氣體擺式傾角傳感器CJRS-A型氣體擺式傾角傳感器是一種新型傳感器。它的工作介質是氣體,敏感元件是熱敏絲。這種傳感器可用于坦克、艦船和機器人的姿態(tài)測控系統(tǒng),也可用于測井斜、房屋建筑等工程中。它具有測量范圍寬、響應快、精度高、壽命長和成本低等優(yōu)點。在重力場內,密度大的氣體下沉,密度小的氣體上浮。利用熱敏絲加熱空氣,其周圍空氣密度減小,由于浮升力的存在,熱空氣上浮,熱氣流力圖保持在豎直向上方向,這就形成一個具有單擺特性的―氣體擺‖。
VhRRr2r1V0敏感軸方向圖2-2A型氣體擺式傾角傳感器敏感頭示意圖嵌入式應用軟件園,版權所有,請勿轉載/銷售。-12-利用一對熱敏絲作敏感元件,既可形成―氣體擺‖,又可以檢測敏感元件的傾斜角度。熱敏絲裝在敏感元件內,敏感元件內腔內為圓柱形或球形。圖2-2示出采用平行絲結構的敏感元件電路示意圖。熱敏電阻r1和r2是電橋的兩臂。敏感元件平直并無振動時,r1和r2在同一水平面內,r1=r2=r,電橋平衡,輸出為零。當有傾角θ輸入時,由于r1和r2的溫度相互影響,r1≠r2,輸出信號為V0,其大小與傾角θ呈線性關系,即V0=Kθ(2-2)式中,K為比例常數(shù)。通過信號處理,根據(jù)終端信號的大小和極性,就可以得知傾角θ的大小及方向。傾角傳感器的電路包括電源、電橋電源、放大、濾波、補償、限幅等電路,其電路框圖如圖2-3所示[8]。①工作原理:CJRS型氣體擺式傾角傳感器是一種新型傳感器,它的工作介質是氣體,敏感元件是熱敏絲。在重力場內,密度大的氣體下降,密度小的氣體上升。利用熱敏絲加熱空氣,其周圍空氣密度減小,由于浮力的存在,熱空氣上升,熱氣流力圖保持在豎直向上方向。這就形成一個具有單擺特性的―氣體擺‖。利用熱敏絲既可以產生―氣體擺‖又可以檢測―擺‖的傾斜角度。②特點:輸出電壓敏感元件零位補償靈敏度補償零位補償非線性補償濾波傾角圖2-3傾角傳感器電路原理圖補償電路放大電路嵌入式應用軟件園,版權所有,請勿轉載/銷售。-13-它具有測量范圍寬、響應快、精度高、交叉耦合小、壽命長和成本低等優(yōu)點。采用氣體作為敏感質量,由于氣體質量極小,在高過載和強沖擊情況下引入的慣性力小,因此可以承受高過載和強沖擊。試驗表明,氣體擺式傾角傳感器承受16000g沖擊后還能正常工作。并且,此種類型的傳感器不受電磁干擾的影響。③應用范圍:可廣泛用于坦克、艦船、汽車和機器人的姿態(tài)測控系統(tǒng),也可應用于測井斜、海上石油平臺、建筑、橋梁、交通(鐵路和公路)等工作。④主要性能指標:表2-1CJRS-A型一維氣體擺式傾角傳感器的主要性能指標指標型號測量范圍分辨率非線性度滿量程輸出供電電源響應時間質量工作溫度外形尺寸(mm)CJRS-A1±45°0.01°<1%±5V±15VDC<75mA<100ms350g-40~+50℃60×70CJRS-A2±30°<0.5%CJRS-A3±15°<0.5%(2)CJRS-A01型氣體擺式傾角傳感器本設計要求傾角儀的測量范圍為-45°~+45°,精度為0.1°。所以選擇CJRS-A01型做為本設計的傾角傳感器。CJRS-A01型氣體擺式傾角傳感器工作原理如圖2-4所示,在密閉腔體中設置一熱源,熱敏電阻構成電橋的兩個敏感臂,當傳感器水平放置時,熱氣流垂直通過兩個熱敏電阻組成的平面,兩個熱敏電阻吸收的熱量相同,溫度也相同,電橋平衡;當傳感器傾斜時,熱氣流由于擺的特性,仍然保持垂直向上,但偏離熱敏電阻平面法線方向,從而使熱敏電阻吸收的熱量不一樣。溫度不相同,導致電橋失去平衡,輸出與傾角成正比的電壓信號。θ法線a)b)圖2-4CJRS-A01型氣體擺式傾角傳感器工作原理θ熱敏絲熱敏絲氣流法線熱敏絲熱敏絲氣流嵌入式應用軟件園,版權所有,請勿轉載/銷售。-14-CJRS-A01型氣體擺式傾角傳感器結構如圖2-6所示。敏感元件是圓柱的密閉腔體,兩電極通過玻璃絕緣子向外引出。熱敏電阻r1和r2既起加熱作用,使密閉腔體內氣體產生自然對流,又起敏感傾角的作用。密閉腔體內的氣體為干燥空氣。傳感器殼體平行于水平面時,密閉腔體內兩個幾何對稱的熱敏電阻r1和r2所產生的熱氣流均垂直向上,兩者互不影響,故由它們分別使電橋電路臂的電橋平衡,輸出為零。若傳感器殼體相對于水平面產生傾角θ時,由于自然對流氣體的浮升力(方向與重力相反)作用,兩個熱敏絲產生的熱氣流仍然保持在鉛直方向,而兩束熱氣流對彼此的氣流源(r1和r2)產生作用。當θ角為正時,r2產生的熱氣流作用在r1上,電橋失去平衡,輸出與傾角θ大小成正比的正模擬電壓;當θ為負時,r1產生的熱氣流作用在r2上,電橋失去平衡,輸出與傾角θ大小成正比的負模擬電壓。即V0=Kθ,CJRS-A01型氣體擺式傾角傳感器的比例系數(shù)K為(100±1)mV/(°),本設計以K=100mV/(°)來進行計算。如:當傾角θ=25°時,V0=Kθ=2.5V則經(jīng)A/D轉換后輸送給單片機的數(shù)字量:D=2048(1+2VIN/VFS)=2048(1+2×2.5V/10V)=3072=C00H當傾角θ=0°時,V0=Kθ=0V則經(jīng)A/D轉換后輸送給單片機的數(shù)字量:D=2048(1+2VIN/VFS)=2048(1+2×0V/10V)=2048=800H當傾角θ=-25°時,V0=Kθ=-2.5V則經(jīng)A/D轉換后輸送給單片機的數(shù)字量:D=2048(1+2VIN/VFS)=2048[1+2×(-2.5V)/10V]=1024=400H嵌入式應用軟件園,版權所有,請勿轉載/銷售。-15-本設計中,傾角傳感器的1腳接+12V,2腳接-12V,3腳接地,5腳懸空。由于CRJS-A1型氣體擺式傾角傳感器內部電路包括放大、濾波、補償、限幅等電路,輸出電壓為-5V~+5V,所以將4腳直接與A/D轉換器件的輸入端相連。CJRS-A01型氣體擺式傾角傳感器主要技術指標見表2-2。表2-2CJRS-A01型氣體擺式傾角傳感器主要技術指標測量范圍±45°非線性度≤1%分辨率≤0.01°Vhr2電極RRV0敏感軸方向敏感元件外殼r1圖2-6CJRS-A01型氣體擺式傾角傳感器結構原理124531(紅)—+12V2(黑)—地3(黃)—-12V4(綠)—輸出5(白)—外殼圖2-5CJRS-A01型氣體擺式傾角傳感器插座接點分配圖嵌入式應用軟件園,版權所有,請勿轉載/銷售。-16-比例系數(shù)(100±1)mv/(°)顯示時間≤100ms準備時間≤5min零位電壓±50mV工作電源DC±15V,≤250mA工作溫度-40~+65℃外形尺寸Φ60mm×70mm輸出電壓-5V~+5V2.3單片機的選擇及其外圍電路設計單片機就是單片微型計算機,它是把微型計算機的主要部件CPU、存儲器、I/O接口電路部分及其他功能部件,如定時/計數(shù)器、中斷系統(tǒng)和串、并行口,都集成在一片半導體芯片上,它具有微型計算機最基本的功能。MCS-51系列單片機是美國Intel公司在1980年繼MCS-48系列8位單片機之后推出的8位單片機。具有性價比高、穩(wěn)定性可靠、通用性強、體積小及價格低等優(yōu)點,目前是國內單片機應用及教學的主流產品。MCS-51系列單片機的典型產品有8031、8051、8751和89S52,它們的功能、內部邏輯部件基本相同,引腳都一樣(40個引腳),可以互換,不同的是8031內部沒有程序存儲器ROM,8051內部有4KB的ROM,8751內部有4KB的紫外線可擦除可編程只讀存儲器EPROM,而89S52內部有8KB的電擦除可編程只讀存儲器[6]。本次設計選用的單片機是AT89S52,下面對AT89S52單片機的硬件結構、引腳功能用法以及在本設計中的應用作一闡述。AT89S52是一種低功耗、高性能CMOS八位微控制器,具有8K在系統(tǒng)可編程Flash存儲器,使用ATMEL公司高密度非易失性存儲器技術制造,與工業(yè)80C51產品指令和引腳完全兼容。片上Flash允許ROM在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使其為眾多嵌入式控制應用系統(tǒng)提供靈活的解決方案。其主要特性為:●與MCS-51單片機產品兼容;●8K字節(jié)在系統(tǒng)可編程Flash存儲器;●1000次擦寫周期;●全靜態(tài)操作:0Hz~33Hz;●三級加密程序存儲器;●32個可編程I/O口線;●三個16位定時器/計數(shù)器;●八個中斷源;●全雙工UART串行通道;●低功耗空閑和掉電模式;●掉電后中斷可喚醒;嵌入式應用軟件園,版權所有,請勿轉載/銷售。-17-●看門狗定時器;●雙數(shù)據(jù)指針;●掉電標識符。單片機是本設計的核心,它要負責系統(tǒng)個模塊的協(xié)調工作和數(shù)據(jù)處理。選擇AT89S52完全滿足本設計的要求。2.3.189S52單片機的原理與結構(1)89S52單片機的內部結構89S52單片機內部的主要功能部件有CPU,4KB的程序存儲器ROM,256B的數(shù)據(jù)存儲器RAM,兩個16位的定時/計數(shù)器T0和T1,4個8位的并行I/O接口P0、P1、P2、P3,1個串行接口;5個中斷源。其功能結構示意圖2-7所示[2]。其中,CPU是單片機內部最核心的部件,它是單片機的大腦和心臟,單片機的性能主要取決于CPU的性能。CPU的主要功能是控制程序的運行、數(shù)據(jù)的傳送和運算,其主要功能部件如下:①控制器:程序計數(shù)器PC(16位,用戶不可用指令改變其內容、數(shù)據(jù)(地址)指針寄存器DPTR(16位,用戶可用指令改變其內容)等。②運算器:算術邏輯運算單元(ALU)、累加器(ACC)、程序狀態(tài)寄存器(PSW)等。(2)89S52單片機引腳及功能89S52單片機有40個引腳,采用雙列直插(DIP)封裝形式,其引腳見圖2-8所示。VCC(40腳):接+5V電源線。VSS(20腳):接地線。外部計數(shù)脈沖總線復位電路CPU晶振電路8KBROM256BRAM16位×2定時/計數(shù)器并行接口串行接口中斷系統(tǒng)P0P1P2P3RXDTXDINT0圖2-7單片機內部結構圖嵌入式應用軟件園,版權所有,請勿轉載/銷售。-18-XTAL1(19腳)、XTAL2(18腳):外接晶振引腳。51系列單片機的晶振頻率fosc的范圍在1.2~12MHz。RST(9腳):復位引腳。信號輸入引腳(即該引腳功能受輸入信號控制),高電平有效,就是該引腳高電平使單片機復位,當該引腳輸入的高電平信號保持至少兩個機器周期以上時即可使單片機復位(如晶振頻率fosc為12MHz,機器周期就等于1μs,也就是說,只要RST引腳有2μs以上的電平,就可以使單片機復位)。單片機正常工作期間該引腳應該為低電平。PSEN(29腳):CPU訪問片外程序存儲器輸出信號。低電平有效。該引腳在CPU要從某片外程序存儲器讀取指令時,輸出負脈沖作為讀該片外程序存儲器的選通信號。ALE(30腳):低8位地址鎖存允許引腳。信號輸出引腳,高電平有效。當CPU訪問片外存儲器時,在ALE引腳輸出高電平期間用于將低8位地址鎖存起來。平常ALE引腳輸出矩形脈沖,頻率為晶振頻率的1/6。因此ALE引腳也可用來作時鐘脈沖。例如:當晶振頻率fosc為12MHz時,ALE引腳輸出2MHz的方波。EA(31腳):低電平時CPU訪問片外程序存儲器;高電平時CPU先訪問片內程序存儲區(qū)4KB的地址范圍,若訪問片內程序存儲器的地址超過4KB范圍時,CPU會自動使PC指向片外程序存儲器。4個8位并行I/O接口:用來輸入/輸出數(shù)據(jù)。P0口(P0.0~P0.7):39~32腳;作低8位地址線和8位數(shù)據(jù)線用。程序中用到外部存儲器時,不能作I/O接口。P0口在不作數(shù)據(jù)/地址總線時可作I/O口用,當作為輸出口用時要外接上拉電阻。P1口(P1.0~P1.7):1~8腳;是用戶最常用的I/O口。輸出可直接(或通過同相反相驅動集成電路)帶發(fā)光二極管或數(shù)碼管。P2口(P2.0~P2.7):21~28腳;可作為8位I/O接口,又可有第二功能,若某個P389S52EA/VP31X119X218RESET9INT012INT113T014T115P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P0.039P0.138P0.237P0.336P0.435P0.534P0.633P0.732P2.021P2.122P2.223P2.324P2.425P2.526P2.627P2.728RD17WR16PSEN29ALE/P30TXD11RXD10圖2-889S52單片機引腳圖嵌入式應用軟件園,版權所有,請勿轉載/銷售。-19-口位已經(jīng)用作第二功能,就不能再用作I/O接口使用。一般在接有片外數(shù)據(jù)存儲器或I/O芯片的情況下,P3.6(WR)和P3.7(RD)不作為I/O使用。P3口的第二功能如表2-3所示。表2-389S52P3口第二功能2.3.289S52在本設計中的應用由于本設計選用的A/D轉換器AD574A為12位逐次逼近型A/D轉換器。所以單片機的P0口作為數(shù)據(jù)線分別與AD574A高8位輸出接口相連,AD574A的低4位分別與P0.4~P0.7相連。然后通過控制總線RD、WR、PSEN、ALE和EA等信號將采集到的數(shù)據(jù)傳送給單片機。單片機對這些數(shù)據(jù)量處理后在顯示器中顯示對應的角度值。單片機是本設計的核心不但要進行數(shù)據(jù)的處理,而且還要負責系統(tǒng)各部分的協(xié)調工作。單片機是一個復雜的系統(tǒng),它需要有合適的外圍電路和內部程序才能達到整個系統(tǒng)的要求[15-17],下面就介紹一下本設計單片機的外圍電路(1)振蕩器和時鐘電路如果說CPU是單片機的心臟,那么石英晶振就相當于心臟起搏器。單片機系統(tǒng)的各部分都要以時鐘頻率為基準,才能在CPU的指揮下有條不紊一拍一拍地協(xié)調工作。在89S52單片機內部有一個高增益反相放大器,其輸入端為芯片引腳XTAL1,輸出端為引腳XTAL2,在芯片的外部通過這兩個引腳跨接晶體震蕩器和微調電容,形成反饋電路,就構成了一個穩(wěn)定的自激震蕩器。這是單片機時鐘信號產生的方式之一,稱為內部時鐘方式。另一種稱為外部時鐘方式,如圖2-9(b)所示。其是把外部時鐘信號引入到單片機內。本設計單片機的時鐘電路如圖2-9(a)所示。其中C1和C2的作用是穩(wěn)定頻率和快速口線專用功能口線專用功能P3.0RXDP3.4T0P3.1TXDP3.5T1P3.2INT0P3.6WRP3.3INT1P3.7RD(a)C2C1晶振XTAL1XTAL289S52XTAL1XTAL289S52懸空外部時鐘信號(b)圖2-9單片機時鐘電路嵌入式應用軟件園,版權所有,請勿轉載/銷售。-20-起振,電容值為30pF。晶振的振蕩頻率為6MHz。(2)復位電路的設計單片機的RST引腳為主機提供一個外部復位信號輸入端口。復位信號是高電平有效的持續(xù)時間應為2個機器周期以上。復位后,單片機內部各部件恢復到初試狀態(tài),單片機從ROM的0000H開始執(zhí)行程序。單片機復位電路設計的好壞,直接影響到整個系統(tǒng)工作的可靠性。許多人在設計完單片機系統(tǒng),并在實驗室調試成功后,在現(xiàn)場卻出現(xiàn)了―死機‖、―程序走飛‖等現(xiàn)象,這主要是單片機的復位電路設計不可靠引起的??紤]到傾角測量儀的應用環(huán)境,本設計采用了看門狗復位電路??撮T狗型復位電路主要利用CPU正常工作時,定時復位計數(shù)器,使得計數(shù)器的值不超過某一值;當CPU不能正常工作時,由于計數(shù)器不能被復位,因此其計數(shù)會超過某一值,從而產生復位脈沖,使得CPU恢復正常工作狀態(tài)。此復位電路的可靠性主要取決于軟件設計,即將定時向復位電路發(fā)出脈沖的程序放在何處。一般設計,將此段程序放在定時器中斷服務子程序中。然而,有時這種設計仍然會引起程序走飛或工作不正常。原因主要是:當程序―走飛‖發(fā)生時定時器初始化以及開中斷之后的話,這種―走飛‖情況就有可能不能由Watchdog復位電路校正回來。因為定時器中斷一但在產生,即使程序不正常,Watchdog也能被正常復位。為此提出定時器加預設的設計方法。即在初始化時壓入堆棧一個地址,在此地址內執(zhí)行的是一條關中斷和一條死循環(huán)語句。在所有不被程序代碼占用的地址盡可能地用子程序返回指令RET代替。這樣,當程序走飛后,其進入陷阱的可能性將大大增加。而一旦進入陷阱,定時器停止工作并且關閉中斷,從而使Watchdog復位電路會產生一個復位脈沖將CPU復位。當然這種技術用于實時性較強的控制或處理器件中有一定的困難。在選用或自己設計Watchdog型復位電路時,應注意輸入Watchdog的―喂狗‖信號應該是沿信號,而不是電平信號,同時應考慮撤銷復位電壓的電源電壓值應大于系統(tǒng)最小正常電壓值。美國Xicro公司生產的X5045芯片集斷電數(shù)據(jù)保存功能、看門狗功能、上電掉電復位功能、電源電壓監(jiān)控功能于一身,所以這次復位電路的設計用X5045來完成。Ⅰ.X5045芯片介紹X5045芯片的引腳排列如圖2-10所示。VCC8RESET7SCK6SI5CS/WDI1SO2WP3VSS4X5045引腳功能:①串行輸出(SO):SO是串行數(shù)據(jù)輸出引腳。在讀周期內,數(shù)據(jù)在此引腳上輸出,數(shù)據(jù)由串行時鐘的下降沿同步輸出。②串行輸入(SI):SI是串行數(shù)據(jù)輸入引腳。所有操作碼,字節(jié)地址以及寫入存儲器的數(shù)據(jù)在此引腳上輸入。串行時鐘的上升沿鎖存SI數(shù)據(jù)。圖2-10X5045引腳排列圖嵌入式應用軟件園,版權所有,請勿轉載/銷售。-21-③串行時鐘(SCK):串行時鐘控制用于數(shù)據(jù)輸入和輸出的串行總線定時。出現(xiàn)在SI引腳上的操作碼,地址或數(shù)據(jù)在時鐘輸入的上升沿鎖存,而SO引腳上的數(shù)據(jù)在時鐘輸入的下降沿之后發(fā)生改變。④芯片選擇(CS):當CS為高電平時,將X5045置于等待電源方式,SO輸出引腳處于高阻狀態(tài)。CS為低電平將X5045置于工作電源方式。上電之后,在任何操作開始之前需要CS從高電平至低電平的跳變。⑤寫保護(WP):當WP為低電平時,禁止向X5045的非易失性寫操作,但是器件的其它功能還正常。當WP保持高電平時,所有的功能都正常。在CS仍為低電平時,WP變?yōu)榈碗娖綄⒅袛鄬5045的寫操作。如果內部寫周期已經(jīng)開始,則WP變?yōu)榈碗娖綄⒉挥绊憣懖僮?。⑥復?RESET):X5045的復位是高電平有效。CS的下降沿將復位看門狗定時器。另有接地端和電源端,X5045芯片的電源電壓有兩種規(guī)格,一種是4.5~5.5V,另一種是2.7~5.5V。X5045為4K位串行EEPROM芯片,可編程的看門狗定時器。低電壓VCC檢測,直至VCC=1V復位輸出有效;SPI接口方式;低功耗,待機電流為10μA,工作電流為3mA,工作電壓為2.7~5V;具有塊鎖定保護功能,可以保護1/4、1/2,或所有EEPROM陣列;片內異常事件寫保護:上電、掉電保護電路,寫鎖存,寫保護引腳;1MHz時鐘頻率;可擦寫次數(shù)100000次,數(shù)據(jù)保存期為100年;ESD靜電放電保護;有8引腳DIP和SOIC或14引腳TSSOP封裝三種形式;高電平復位信號輸出。(最高有效位)在前方式傳送。讀寫指令中3位的A8是高位地址,此位用于選擇器件的上半部或下半部[13]。表2-4X5045指令寄存器指令集指令名稱指令格式操作WREN00000110設置寫使能鎖存器,允許寫操作WRDI00000100復位寫使能鎖存器,禁止寫操作RDSR00000101讀狀態(tài)寄存器WRSR00000001寫狀態(tài)寄存器READ0000A8011從所選地址開始的存儲器中讀數(shù)據(jù)WRITE0000A8010把數(shù)據(jù)寫入所選地址開始的存儲器中Ⅱ.X5045芯片與AT89S52單片機接口電路本設計X5045芯片與AT89S52單片機的接口電路如圖2-11所示。該電路為AT89S52擴展了上電復位、可編程看門狗定時、電源電壓監(jiān)控、串行EEPROM等功能。該芯片在其上電后自動產生復位信號,這樣就實現(xiàn)單片機的上電自動復位;當電源VCC低于規(guī)定值時,(如VCC=5V,則規(guī)定值為4.25-2.5V),將產生復位信號。這樣就實現(xiàn)系統(tǒng)電源的掉電復位;當程序在編程選擇的時間里沒有訪問X5045時,即設有一個看WDT的語句——FeedDOG語句,則看門狗(WDT)將起作用RST將產生復位信號,迫使單片機復位。電阻R1選擇為10KΩ。CS1SI6SCK5SO2RESET7Vss4Vcc8WP3X5045+5VR10KP1.0P1.1P1.2P1.3RST嵌入式應用軟件園,版權所有,請勿轉載/銷售。-22-2.4A/D轉換電路設計在一些信號處理電路中,輸出往往是連續(xù)變化的模擬量,由于計算機只能處理離散的數(shù)字量,需要將連續(xù)變化的模擬量轉換為數(shù)字量,這一操作過程就是A/D轉換。目前,市場上A/D轉換器芯片種類繁多,為了適應各種需要,不同的廠家生產了很多不同類型、不同性能和檔次的A/D轉換芯片。根據(jù)本設計的要求,傾角測量儀的測量范圍為-45°~+45°,精度要求0.1°。則由[45°-(-45°)]/212=0.022°知選擇12位的A/D轉換器可以滿足設計精度的要求。而且要求A/D轉換器內部必須具有雙極性輸入電路。這里選擇美國模擬數(shù)字公司(Analog)推出的單片高速12位逐次比較型A/D轉換器AD574A。它內置雙極性電路構成的混合集成轉換顯片,具有外接元件少,功耗低,精度高(≤0.05%)等特點,并且具有自動校零和自動極性轉換功能,只需外接少量的阻容件即可構成一個完整的A/D轉換器。所以選擇AD574A完全能夠滿足本設計的要求。2.4.1AD574A的A/D轉換原理A/D轉換的原理很多,常見的有雙積分式、逐次逼近式、計數(shù)式等,輸出碼制有二進制、BCD碼等,輸出數(shù)據(jù)寬度有8位、12位、16位、20位等(二進制)。根據(jù)設計的需要,我們這里只介紹12位逐次逼近式A/D轉換器。由于在本設計中選擇的是逐次逼近式A/D轉換器,所以我們這里簡單闡述一下逐次逼近式A/D轉換器原理。原理如圖2-12所示,當轉換器接收到啟動信號后,逐次逼近寄存器清0,通過內部D/A轉換器輸出使輸出電壓V0為0,啟動信號結束后開始A/D轉換[10]??刂齐娐?位D/A轉換器逐次逼近寄存器CLK啟動信號轉換結束Vi比較器:Vi>V0輸出為“1”Vi≤V0輸出為“0”輸出模擬電壓V0嵌入式應用軟件園,版權所有,請勿轉載/銷售。-23-2.4.2AD574A在本設計中的應用為了說明AD574A在本設計中的應用,這里先對AD574A芯片的部分引腳作個說明。AD574A為28引腳雙列直插式封裝,各個引腳功能如下:①DB11~DB0:12位數(shù)據(jù)輸出線,DB11為最高位,DB0為最低位,它們可由控制邏輯決定是輸出數(shù)據(jù)還是對外呈高阻狀態(tài)。在本設計中,將此12位數(shù)據(jù)線接到單片機的P0口,將轉換的結果傳送給單片機。AD574A的DB口與單片機連接如圖2-13所示。在本設計,AD574A在輸出數(shù)據(jù)時采用12位輸出,所以先傳送高8位數(shù)據(jù)DB4~DB11,再傳送低4位DB0~DB3。②12/8:數(shù)據(jù)模式選擇。當此引腳輸入為高電平時,12數(shù)據(jù)并行輸出;當此引腳輸入為低電平時,與引腳A0配合,把12位數(shù)據(jù)分兩次輸出,見表2-3所示。應該注意,此引腳不與TTL兼容,若要此引腳為高電平,則應接腳1,若要此引腳為低電平,則應接腳15。由于本設計采用的是8位單片機,所以這里是把12位數(shù)據(jù)分兩次輸出,即此引腳接低電平,也就是與腳15相接。AD574ADBR/CCS74LS373D0~D7ALE單片機AD574ADB0~DB3DB4~DB11P0.0P0.7A0圖2-13的口連接圖嵌入式應用軟件園,版權所有,請勿轉載/銷售。-24-③A0:字節(jié)選擇控制。此引腳有兩個功能,一個功能是決定方式是12位還是8位。若A0=0,進行全12位轉換,轉換時間為25uS;若A0=1,僅進行8位轉換,轉換時間為16uS。另一個功能是決定輸出數(shù)據(jù)是高8位還是低4位。若A0=0,高8位數(shù)據(jù)有效;若A0=1,低4位有效,中間4位為―0‖,高4位為高阻狀態(tài)。因此,低4位讀出時,應遵循左對齊原則(即:高8位+低4位+中間4位的?0000‘)。本設計為了提高精度,在這進行全12位轉換。此腳的應用很靈活,在后面將給出詳細的介紹。④CS:芯片選擇。當CS=0時,AD574A被選中,否則AD574A不進行任何操作。⑤R/C:讀/轉換選擇。當R/C=1時,允許讀取結果,當R/C=0時,允許A/D轉換。在本設計中,我們將R/C、A0、CS三個引腳接到74LS373鎖存器的Q0、Q1、Q2三個引腳上,通過地址的選擇來連接并實現(xiàn)轉換的要求。如圖2-14所示。要想芯片AD574A保持在工作狀態(tài),Q2必須為0,以使AD574A芯片處于選中狀態(tài)。在輸出數(shù)據(jù)時,先輸出高8位數(shù)據(jù),這時A0=0;接著輸出低4位,這時A0=1,所以在讀取轉換結果期間,A0的狀態(tài)是變化的。當系統(tǒng)在A/D轉換時,74LS373的Q0輸出為0,允許A/D轉換;當系統(tǒng)讀取結果時,74LS373的Q0輸出為1,讀取A/D轉換結果。這樣系統(tǒng)在整個的過程中Q2Q1Q0的變化是:000-001-011。第一個狀態(tài)000表示,芯片片選,AD574A進行全12位轉換,系統(tǒng)允許A/D轉換;第二個狀態(tài)001表示,芯片片選,AD574A輸出高8位數(shù)據(jù),系統(tǒng)允許讀取結果;第三個狀態(tài)011表示,芯片片選,AD574A輸出低4位數(shù)據(jù),系統(tǒng)允許讀取結果。⑥CE:芯片啟動信號。當CE=1時,允許讀取結果,到底是轉換還是讀取結果與R/C有關。⑦STS:狀態(tài)信號。STS=1表示正在進行A/D轉換,STS=0表示轉換已完成。本設計中利用此引腳對單片機進行中斷方式響應,判斷STS端口是0還是1來對單片機進行中斷。AD574A的CE和STS端口與單片機的連接如圖2-15所示。在這里還需說明的是,STS口還可以與單片機的P2.7口相連,這樣,系統(tǒng)就進行查詢方式來讀取轉換結果。在74LS373AD574AQ0Q1Q2R/CA0CS圖2-1474LS373與AD574A的連接嵌入式應用軟件園,版權所有,請勿轉載/銷售。-25-后面的軟件設計中,我們將給出兩種方式的程序,然后進行比較選擇出最佳方式。只有當單片機的外部RAM讀選通和寫選通信號同時有效時,即同時為低電平,AD574A的CE端口為1,這時啟動AD574A芯片。⑧REFOUT:+10V基準電壓輸出。⑨REFIN:基準電壓輸入。只有由此腳把從―REFOUT‖腳輸出的基準電壓引入到AD574A內部的12位DAC,才能進行正常的A/D轉換。本設計采用雙極性輸入,所以此腳將與―REFOUT‖和―BIPOFF‖兩引腳結合使用。⑩BIPOFF:雙極性補償。此引腳適當連接,可實現(xiàn)單極性或雙極性輸入?!?110VIN:10V量程模擬信號輸入端。本設計所采用的是雙極性輸入,所以這里的輸入范圍是-5V~+5V,而信號處理電路出來的電壓范圍是-5V~+5V。滿足設計要求。AD574A各控制輸入腳功能說明如表2-5示。這里需要注意的是,AD574A的各引腳的功能不是某個單獨的引腳決定系統(tǒng)的功能,而是多數(shù)引腳聯(lián)合起來共同決定系統(tǒng)的功能。表2-5AD574A各控制輸入腳功能CECSR/C12/8A0功能說明0××××不起作用×1×××不起作用100×0啟動12位轉換100×1啟動8位轉換101接引腳1×12位數(shù)據(jù)并行輸出101接引腳150高8位數(shù)據(jù)輸出101接引腳151低4位數(shù)據(jù)尾接4位0輸出AD574A在本設計中的極性輸入方式:AD574A有兩種極性輸入方式,即為單極性和雙極性輸入。如圖2-16所示。本設計所采用的是雙極性輸入方式,如圖2-16(b)所示。R1用于調整雙極性輸入INT189S52WRRDCESTS圖2-15CE和STS端口與單片機連接圖嵌入式應用軟件園,版權所有,請勿轉載/銷售。-26-電路的零點。如果輸入信號VIN在-5V~+5V之間,應從10VIN引腳輸入;當VIN在-10V~+10V之間,應從20VIN引腳輸入。雙極性輸入時輸出數(shù)字量D與輸入模擬電壓VIN之間的關系:D=2048(1+2VIN/VFS)(2-3)或:VIN=(D/2048-1)VFS/2(2-4)式中VIN為輸入模擬量(V),VFS為滿量程值10V。(a)單極性輸入(b)雙極性輸入由上式求出的數(shù)字量D是12位偏移二進制碼。把D的最高位求反便得到補碼。補碼對應模擬量輸入的符號和大小。同樣,從AD574A讀到的或應代到式中的數(shù)字量D也是偏移二進制碼。例如,當模擬信號從10VIN引腳輸入,則VFS=10V,若讀得D=FFFH,即111111111111B=4095,代入式中可求得VIN=4.9976V。在本設計中,傳感器所采集的信號,經(jīng)信號放大電路放大后,輸入A/D轉換器的電壓為-5~+5V,所以這里A/D轉換器采用雙極性輸入方式時,信號由―10VIN‖端口輸入。2.4.3AD574A在本系統(tǒng)中的應用AD574A是具有三態(tài)輸出鎖存器的12位逐次比較ADC芯片,轉換速度快(25us),是目前國內使用最廣泛的ADC芯片之一。ADC574A可并行輸出12位數(shù)據(jù),也可以分兩次輸出(先高8位,后低4位)數(shù)據(jù);既可進行8位轉換,也可進行12位A/D轉換。這在上面的芯片介紹中已經(jīng)提到了。AD574A與本系統(tǒng)連接如圖2-17所示。本設計采用雙極性輸入方式,可對范圍-5V~+5V的模擬信號進行轉換。當AD574A與單片機配置時,由于AD574A輸出12位數(shù)據(jù),所以當單片機讀取轉換結果時,應分兩次進行:當A0=0時,讀取高8位;當A0=1時,讀取低4位。根據(jù)STS信號線的三種不同接法,轉換結果的讀取有三種方式:(a)如果STS空著不接,單片機就只能在啟動AD574A轉換后延時25μS以上再讀取轉換結果,即延時方式;(b)如果STS接到單片機的一條端口線上,單片機就可以采用查詢方式。當查得STS為低電平時,表示轉換結束;(c)如果STS接到單片機的中斷端,則可以采用中斷+15V-15V100kΩ100kΩ100Ω100Ω0~10V0~20VDGAG10VIN20VINBIPOFFREFINREFOUTAD574-5V~+5V-10V~+10VDGAG10VIN20VINAD574REFIN100ΩREFOUTBIPOFF100ΩR2R1R2R1圖2-16AD574A的極性輸入方式嵌入式應用軟件園,版權所有,請勿轉載/銷售。-27-方式讀取轉換結果。本設計中AD574A的STS與AT89S52的外部中斷端口相連,故采用中斷方式讀取轉換結果。也可以用查詢方式設計編制相應的服務程序,即將AD574A中的STS端與單片機中的P2.7端口相連,如圖2-18所示。在本章我們就不介紹查詢方式,在下一章的軟件設計中,我們將給出中斷和查詢兩種方式服務程序,以用來作比較。在系統(tǒng)硬件調試時,AD574A中的R1用于調整雙極性輸入電路的零點,R2用于調整增益。2.5顯示模塊設計單片機應用系統(tǒng)中,通常都需要進行人—機對話。這包括人對應用系統(tǒng)的狀態(tài)干預與數(shù)據(jù)輸入,以及應用系統(tǒng)向人們顯示運行結果等。顯示器、鍵盤電路就是用來完成人機對話的人—機通道。本設計LED由ZLG7289A驅動。下一目將LED驅動器ZLG7289A在本設計中的應用作一介紹。-10V-+10VALEP0.7P0.089S52VccEAGD7D0Q7Q0DGA0DB11DB4DB3DB0REFINREFOUTBIPOFFR1AD574A74LS373CESTSAG10VIN20VIN-5V-+5V+WRRDINT112/8CSR/COESTS圖2-17AD574A與單片機接口電路圖P2.789S52圖2-18采用查詢方式的連接圖嵌入式應用軟件園,版權所有,請勿轉載/銷售。-28-2.5.1LED驅動器功能簡介ZLG7289A是廣州周立功單片機發(fā)展有限公司自行設計的具有SPI串行接口功能的、可同時驅動8位共陰式數(shù)碼管或64只獨立LED的智能顯示驅動芯片,該芯片同時還可連接多達64鍵的鍵盤矩陣,單片即可完成LED顯示﹑鍵盤接口的全部功能。ZLG7289A內部含有譯碼器,可直接接受BCD碼或16進制碼,并同時具有2種譯碼方式,此外,還具有多種控制指令,如消隱﹑閃爍﹑左移﹑右移﹑段尋址等。ZLG7289A具有片選信號,可方便地實現(xiàn)多于8位的顯示或多于64鍵的鍵盤接口[19]。(1)典型應用儀器儀表工業(yè)控制器條形顯示器控制面板(2.)特點●串行接口無需外圍元件可直接驅動LED●各位獨立控制譯碼/不譯碼及消隱和閃爍屬性●(循環(huán))左移/(循環(huán))右移指令●具有段尋址指令方便控制獨立LED●64鍵鍵盤控制器內含去抖動電路(3)ZLG7289的引腳排列如圖2-19所示,引腳說明如表2-6所示。23Title/RESOSC2OSC1DIG0DIG7DIG6DIG5DIG4DIG3DIG2DIG1RTCCVCCNCNCVSS/CSCLKDATA/KEYSGSFSESDSCSBSADPZLG7289A12345678910111213141516171819202122232425272826表2-6ZLG7289A引腳說明引腳名稱說明1,2VDD正電源3,5NC懸空4VSS接地6/CS片選輸入端,此引腳為低電平時,可向芯片發(fā)送指令及讀取鍵盤數(shù)據(jù)圖2-19ZLG7289A的引腳排列圖嵌入式應用軟件園,版權所有,請勿轉載/銷售。-29-7CLK同步時鐘輸入端,向芯片發(fā)送數(shù)據(jù)及讀取鍵盤數(shù)據(jù)時,此引腳電平上升沿表示數(shù)據(jù)有效8DATA串行數(shù)據(jù)輸入/輸出端,當芯片接收指令時,此引腳為輸入端;當讀取鍵盤數(shù)據(jù)時,此引腳在?讀‘指令最后一個時鐘的下降沿變?yōu)檩敵龆?/KEY按鍵有效輸出端,平時為高電平,當檢測到有效按鍵時,此引腳變?yōu)榈碗娖?0-16SG-SA段g—段a驅動輸出17DP小數(shù)點驅動輸出18-25DIG0-DIG7數(shù)字0—數(shù)字7驅動輸出26OSC2振蕩器輸出端27OSC1振蕩器輸入端28/RESET復位端(4)控制指令ZLG7289A的控制指令分為二大類純指令和帶有數(shù)據(jù)的指令。在此只對帶有數(shù)據(jù)的指令作一簡介①下載數(shù)據(jù)且按方式0譯碼D7D6D5D4D3D2D1D0DPXXXd3d2d1d0X=無影響命令由二個字節(jié)組成,前半部分為指令,其中a2,a1,a0為位地址,具體分配如下:表2-7位地址分配表d0—d3為數(shù)據(jù),收到此指令時,ZLG7289A按以下規(guī)則(譯碼方式0)進行譯碼,如下表:表2-8ZLG7289A譯碼方式0D7D6D5D4D3D2D1D010000a2a1a0a2a1a0顯示位00010012010301141005101611071118嵌入式應用軟件園,版權所有,請勿轉載/銷售。-30-小數(shù)點的顯示由DP位控制,DP=1時,小數(shù)點顯示,DP=0時小數(shù)點不顯示。②下載數(shù)據(jù)且按方式1譯碼D7D6D5D4D3D2D1D0DPXXXd3d2d1d0X=無影響此指令與上一條指令基本相同,所不同的是譯碼方式,該指令的譯碼按下表進行表2-9ZLG7289A譯碼方式1d0—d3(十六進制)d3d2d1d07段顯示00H0000001H0001102H0010203H0011304H0100405H0101506H0110607H0111708H1000809H100190AH1010-0BH1011E0CH1100H0DH1101L0EH1110P0FH1111空(無顯示)D7D6D5D4D3D2D1D011001a2a1a0嵌入式應用軟件園,版權所有,請勿轉載/銷售。-31-(5)ZLG7289A在本設計中應用ZLG7289A采用串行方式與單片機相連,如圖2-20示。串行數(shù)據(jù)從DATA引腳送入芯片,并由CLK端同步。當片選信號變?yōu)榈碗娖胶?,DATA引腳上的數(shù)據(jù)在CLK引腳的上升沿被寫入ZLG7289A的緩沖寄存器。ZLG7289A的指令結構有三種類型:1.不帶數(shù)據(jù)的純指令指令的寬度為8個BIT,即微處理器需發(fā)送8個CLK脈沖。2.帶有數(shù)據(jù)的指令,寬度為16個BIT,即微處理器需發(fā)送16個CLK脈沖。3.讀取鍵盤數(shù)據(jù)指令寬度為16個BIT,前8個為微處理器發(fā)送到ZLG7289A的指令,后8個BIT為ZLG7289A返回的鍵盤代碼。執(zhí)行此指令時,ZLG7289A的DATA端在第9個CLK脈沖的上升沿變?yōu)檩敵鰻顟B(tài),并與第16個脈沖的下降沿恢復為輸入狀態(tài),等待接收下一個指令。ZLG7289A應連接共陰式數(shù)碼管,應用中,無需用到的數(shù)碼管和鍵盤可以不連接,省去數(shù)碼管和對數(shù)碼管設置消隱屬性均不會影響鍵盤的使用。ZLG7289A需要一外接晶體振蕩電路供系統(tǒng)工作。其典型值分別為F=16MHz,C=15P,其RESET復位端在一般應用情況下,可以直接和VCC相連,在需要較高可靠性的情況下,可以連接一外部復位電路,或直接由MCU控制。在上電或RESET端由低電平變?yōu)楦唠娖胶螅琙LG7289A大約要經(jīng)過18-25MS的時間才會進入正常工作狀態(tài)。d0—d3(十六進制)d3d2d1d07段顯示00H0000001H0001102H0010203H0011304H0100405H0101506H0110607H0111708H1000809H100190AH1010A0BH1011B0CH1100C0DH1101D0EH1110E0FH1111F嵌入式應用軟件園,版權所有,請勿轉載/銷售。-32-2316M/RESOSC2OSC1DIG0DIG7DIG6DIG5DIG4DIG3DIG2DIG1RTCCVCCNCNCVSS/CSCLKDATA/KEYSGSFSESDSCSBSADPZLG7289A+5P1.5P1.6P1.7DGDFDEDDDCDBDADDP1234567891011121314151617181920212223242526272815P15PP本設計LED顯示器的應用通常與單片機接口的顯示器主要是LED顯示器和LCD顯示器兩種。LCD顯示器好控制、節(jié)能,但是其成本較高,考慮到傾角測量儀個工作環(huán)境主要在工程建設中,需要有較強機械強度和光亮度,還有就是考慮傾角測量儀的設計成本,本設計選擇了LED顯示器。本次設計中要求用到4位LED顯示,LED顯示器的控制方式為靜態(tài)顯示和動態(tài)顯示兩種,因此在選擇LED驅動時,一定要先確定顯示方式。若選擇靜態(tài)顯示,則LED驅動器的選擇較為簡單,只要驅動器的驅動能力與顯示器電流相匹配即可。而且只須要考慮段的驅動因為共陽極接+5V,而共陰接地,所以位的驅動不要考慮。動態(tài)顯示則不同,由于一位數(shù)據(jù)的顯示是由段選和位選信號共同配合完成的,因此,要同時考慮段和位的驅動能力,而且段的驅動能力決定位的驅動能力。動態(tài)顯示就是一位一位地輪流點亮顯示器的各個位(掃描),在同一時刻只有一位顯示器在工作(點亮)。由于本設計用到了4位LED,所以為了節(jié)省系統(tǒng)的功耗,本設計選擇了動態(tài)顯示。LED顯示器由7個發(fā)光二極管組成,因此也稱之為七段LED顯示器。此外,顯示器中還有一個圓點型發(fā)光二極管,用于顯示小數(shù)點。通過七個發(fā)光二極管亮暗的不同組合,可以顯示多種數(shù)字、字母以及其它符號。其排列形狀如圖2-21所示。圖2-20ZLG7289A與89S52的接口嵌入式應用軟件園,版權所有,請勿轉載/銷售。-33-abcefgdpCOMdabcdfegdpLED顯示器中的發(fā)光二極管共有兩種連接方法:●共陽極接法把發(fā)光二極管的陽極連在一起構成公共陽極。使用時公共陽極接+5V。這樣陰極端輸入低電平的段發(fā)光二極管就導通點亮,而輸入高電平的則不點亮?!窆碴帢O接法把發(fā)光二極管的陰極連在一起構成公共陰極。使用時公共陰極接地,這樣陽極端輸入高電平的段發(fā)光二極管就導通點亮,而輸入低電平的則不點亮。使用LED顯示器時要注意區(qū)分這兩種不同的接法。為了顯示數(shù)字或符號,要為LED顯示器提供代碼,因為這些代碼是為顯示字形的,因此稱之為字形代碼。字形代碼需要七段發(fā)光二極管,再加上一個小數(shù)點位,共計八段。因此提供給LED顯示器的字形代碼正好一個字節(jié)。各代碼位的關系如表2-10所示。在驅動LED顯示器時需要將BCD碼轉換成七位段碼,有很多LED數(shù)碼管顯示驅動的譯碼器,如CD4051/CD4061等,也可以采用軟件譯碼的方式,通過指令將原有的二進制數(shù)轉換成BCD碼,再轉換成數(shù)碼管的七位段碼。表2-10LED顯示器字形代碼代碼位D7D6D5D4D3D2D1D0顯示段dpgFedcba用LED顯示器顯示十六進制數(shù)的字形代碼在表2-11中列出。表2-11十六進制數(shù)字形代碼表字型共陽極代碼共陰極代碼字型共陽極代碼共陰極代碼0C0H3FH990H6FH1F9H06HA88H77H2A4H5BHb83H7CH3B0H4FHCC6H39H499H66HDA1H5EH592H6DHE86H79H682H7DHF8EH71H7F8H07H滅FFH00H880H7FH本設計由于選用的LED驅動器為ZLG7289A,其只能驅動共陰極接法的LED,所以選用了共陰極接法LED。其構成了本設計的顯示模塊如圖2-22。其中ZLG7289A的SA~SG和DP為輸出口(段控位),以輸出8位字型代碼(段控線)連接于各LED的a~g和DP位。DIG0~DIG7也為輸出口(位控口),輸出位控線連接于個LED的COM端口。由傾角傳感器CJRS-A01輸出的模擬電壓V0,經(jīng)A/D轉換器AD574A轉換為數(shù)字圖2-21LED顯示器嵌入式應用軟件園,版權所有,請勿轉載/銷售。-34-量輸送給單片機,單片機調用子程序把數(shù)字量轉換為對應所測傾角角度值的BCD碼,然后在輸送給LED驅動器ZLG7289A的緩沖寄存器,最終在LED中顯示出所測量的角度值。123123DCBATitleSizeNumberA4Date:14-Dec-2007File:C:\DocumentsandSettings\MS\2827268M/RESOSC2OSC1DIG0DIG7DIG6DIG5DIG4DIG3DIG2DIG1RTCCVCCNCNCVSS/CSCLKDATA/KEYSGSFSESDSCSBSADPZLG7289A252423222120COM019COM118COM217COM3161514DA1312DB11DC10DD9DE8DF7DG6DDP54321VCCP1.5P1.6P1.7DGDFDEDDDCDBDADDPabcdefgDPCOM4COM3COM2COM1COM3270*8COM2COM1COM0由于本設計測量的傾角范圍為-45°~+45°,精度為0.1°。本設計只用了4片LED顯示器,所以要用軟件方法使第3片LED的DP為一直置1。如果測量的傾角值為負值(本設計規(guī)定向重力參考線左側傾斜的傾角為負值,反之則為正值),則第1片LED的g段發(fā)光二極管點亮表示負號。若測量的傾角值為正值,則第1片各段發(fā)光二極管均不亮。軟件設計均在下一章中作一闡述。例如:當所測傾角θ=+25°時,傾角傳感器的輸出電壓為:V0=Kθ=100mV/(°)×25°=2.5V則,A/D轉換器的輸出數(shù)字量為:D=2048(1+2VIN/VFS)=2048(1+2×2.5V/10V)=3072=C00H式中K為CJRS-A01型氣體擺式傾角傳感器的比例系數(shù)K=100mV/(°);VIN為輸入模擬量VIN=V0;VFS為滿量程值10V。經(jīng)單片機處理后,把數(shù)據(jù)傳送到LED驅動器中,并最中在4組LED顯示器中顯示出對應的傾角值,如圖2-23所示。圖2-22顯示模塊圖2-23LED顯示的角度值嵌入式應用軟件園,版權所有,請勿轉載/銷售。-35-第3章系統(tǒng)軟件設計系統(tǒng)軟件設計采用模塊化設計方法,采用匯編語言編程。整個軟件系統(tǒng)由初始化模塊、A/D轉換模塊、數(shù)制轉換模塊、LED顯示模塊。下面我們對整個軟件系統(tǒng)做詳細的介紹。3.1系統(tǒng)主流程圖系統(tǒng)軟件流程圖如圖3-1所示。3.2系統(tǒng)初始化設計在本設計中,首先對單片機進行初始化設計,然后通過單片機對LED顯示的驅動器進行控制,使LED有顯示角度的變化。單片機初始化完成后,將進行中斷等待狀態(tài),即是否A/D轉換結束。A/D轉換結束后再控制LED的顯示,以達到設計目的。(1)單片機的初始化ORG0000HSTART:AJMPMAINORG0013H;外部中斷1入口地址AJMPWZ1;外中斷服務子程序入口地址堆棧設置ORG0030HORG0100H圖3-1系統(tǒng)軟件流程圖開始初始化啟動A/D轉換啟動顯示子程序數(shù)制轉換嵌入式應用軟件園,版權所有,請勿轉載/銷售。-36-MAIN:MOVSP,#70H;設置堆棧指針SP=70H在本設計中,將A/D轉換器轉換的結果進行堆棧,保護轉換結果的準確性。設置中斷方式SETBEA;開總中斷SETBEX1;開外部中斷1SETBIT1;邊沿觸發(fā)在本設計中,利用外部中斷來判斷A/D轉換器轉換是否結束。(2)延時子程序DELAY:MOVR1,#40;延時20msD1:MOVR2,#248NOPD2:DJNZR2,D2;498DJNZR1,D13.3A/D轉換子程序設計本設計是以中斷方式讀取轉換結果的,但這里我們也將查詢方式讀取轉換結果的程序流程圖寫出來,以用來比較。查詢方式程序流程圖如圖3-2所示,中斷方式如圖3-3所示[15]。AD574A的中斷方式轉換程序段如下:ORG0000HMOVR7,#41HMOVDPTR,#0FFF8H;端口地址送DPTRMOVX@DPTR,A;啟動A/D轉換SETBEASETBEX1;開外中斷1SETBIT1;外中斷請求信號為下跳沿觸發(fā)方式LOOP:SJMPLOOP;等待中斷;中斷服務程序:WZ1:MOVDPTR,#0FFF9HMOVXA,@DPTR;讀高8位數(shù)據(jù)MOV@R0,A;存高8位數(shù)據(jù)INCDPTRINCDPTRMOVXA,@DPTR;讀低4位數(shù)據(jù)ANLA,#0FH;屏蔽高4位隨機數(shù)DECR1MOV@R1,A;存低4位數(shù)據(jù)LCALLHB2;跳至數(shù)制轉換子程序嵌入式應用軟件園,版權所有,請勿轉載/銷售。-37-LCALLSET_DOGRETI3.4數(shù)制轉換程序設計入口條件:待轉換的雙字節(jié)十六進制整數(shù)在R6、R7中。出口信息:轉換后的三字節(jié)BCD碼整數(shù)在R3、R4、R5中。影響資源:PSW、A、R2~R7堆棧需求:2字節(jié)HB2:CLRA;BCD碼初始化MOVR3,A執(zhí)行主程序啟動A/D轉換P2.7=0?數(shù)據(jù)處理高8位41H低8位40H返回YN圖3-2A/D轉換查詢方式服務程序流程圖執(zhí)行主程序啟動A/D轉換等待中斷中斷返回轉換結果處理程序保護現(xiàn)場讀取轉換結果高8位41H低8位40H圖3-3A/D轉換中斷方式服務程序流程圖嵌入式應用軟件園,版權所有,請勿轉載/銷售。-38-MOVR4,AMOVR5,AMOVR2,#10H;轉換雙字節(jié)十六進制整數(shù)HB4:MOVA,R7;從高端移出待轉換數(shù)的一位到CY中RLCAMOVR7,AMOVA,R6RLCAMOVR6,AMOVA,R5;BCD碼帶進位自身相加,相當于乘2ADDCA,R5DAA;十進制調整MOVR5,AMOVA,R4ADDCA,R4DAAMOVR4,AMOVA,R3ADDCA,R3MOVR3,A;雙字節(jié)十六進制數(shù)的萬位數(shù)不超過6,不用調整DJNZR2,HB3;處理完16bitLCALLDISPLAYS;跳至顯示子程序RETI3.5LED顯示模塊子程序設計程序中使用單片機內RAM位尋址的29H單元。29H單元的位地址為48H~4FH。1)發(fā)送29H單元中的數(shù)據(jù)到ZLG7289A,高位在前,程序入口條件為CS=1,CLK=0。DISPLAYS:MOVR2,#08H;發(fā)送8位數(shù)據(jù)CLRP1.5;=0LCALLDELY1;延時32μs(T1)LOOP1:MOVC,4FH;29H單元的D7位傳至ZLG7289AMOVP1.7,C;數(shù)據(jù)出現(xiàn)在DATA引腳上SETBP1.6;置CLK為高電平,數(shù)據(jù)寫入ZLG7289AMOVA,29H;待發(fā)數(shù)據(jù)左移1位RLAMOV29H,ALCALLDELY2;延時8μs(T2)CLRP1.6;置CLK為低電平LCALLDELY2;延時8μs(T3)嵌入式應用軟件園,版權所有,請勿轉載/銷售。-39-DJNZR2,LOOP1;檢測8位數(shù)據(jù)是否發(fā)送完畢CLRP1.2;發(fā)送完畢,DATA為低(輸出狀態(tài))2)查詢方式顯示程序。MOVP1,#0F9H;=1,KEY=1,CLK=0,DATA=0LCALLDELY3;延時24msMOV29H,#0A4H;復位指令LCALLDISPLAYS3.6X5045模塊程序設計1.X5045看門狗復位電路的程序框圖產生復位信號的條件要滿足:①該芯片在其上電后自動產生復位信號,這樣就實現(xiàn)單片機的上電自動復位;②當電源VCC低于規(guī)定值時,(如VCC=5V,則規(guī)定值為4.25-2.5V),將產生復位信號。這樣就實現(xiàn)系統(tǒng)電源的掉電復位;③當程序在編程選擇的時間里沒有訪問X5045時,即設有一個看WDT的語句——FeedDOG語句,則看門狗(WDT)將起作用RST將產生復位信號,迫使單片機復位。只要滿足其一,就將使系統(tǒng)產生復位,迫使程序從起點執(zhí)行,因此在軟件設計方案中必須區(qū)分開上電復位、故障復位啟動這兩種情況,分別處理。其程序框圖如圖3-5所示SET_DOG:MOVB,A;存入BMOVA,#10H;設置看門狗定時溢出時間為600msMOVC,ACC.4開始寫入數(shù)據(jù)到ZLG7289AYesNoLED顯示數(shù)據(jù)是否寫完?結束圖3-4顯示程序流程圖嵌入式應用軟件園,版權所有,請勿轉載/銷售。-40-MOVB.4,CMOVC,ACC.5MOVB.5,CCLRSCKCLRCSMOVA,#01HMOVA,B;送出狀態(tài)寄存器內容CLRSCKSETBCSRETDELY1:MOVR5,#4DEL
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 財務制度合同管理范例
- 公司汽車租賃協(xié)議合同
- 有關個人和企業(yè)借款合同
- 小區(qū)門口門面租賃合同
- 進口銷售合同
- 金融行業(yè)投資產品風險提示合同
- 湖南環(huán)境生物職業(yè)技術學院《ntroductontoMarketng》2023-2024學年第二學期期末試卷
- 運城師范高等專科學?!渡鐣喿x》2023-2024學年第二學期期末試卷
- 上海師范大學天華學院《展具設計》2023-2024學年第二學期期末試卷
- 中山職業(yè)技術學院《工程流體學》2023-2024學年第二學期期末試卷
- 人教版小學四年級下冊《體育與健康》全冊教案
- 法律文書寫作(第五版)PPT完整全套教學課件
- 半導體制造技術導論
- 人教版四年級數(shù)學下冊教材分析精講課件
- 7S目視化管理標準
- 酒店成本管理系統(tǒng)PICC
- 產品手繪設計表現(xiàn)技法PPT完整全套教學課件
- GA/T 1988-2022移動警務即時通信系統(tǒng)功能及互聯(lián)互通技術要求
- 文科學術規(guī)范與學術論文寫作課件
- 人教版小學二年級體育下冊全冊教案
- 農業(yè)政策學PPT完整全套教學課件
評論
0/150
提交評論