基于單片機的汽包液位檢測與顯示_第1頁
基于單片機的汽包液位檢測與顯示_第2頁
基于單片機的汽包液位檢測與顯示_第3頁
基于單片機的汽包液位檢測與顯示_第4頁
基于單片機的汽包液位檢測與顯示_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、基于單片機的汽包液位檢測與顯示摘 要本次設(shè)計是以煤氣發(fā)生爐中汽包為背景的,煤氣發(fā)生爐生成的水煤氣作為燃料,具有解決冒黑煙,二氧化硫超標和燃油,天然氣鍋爐運行成本高的優(yōu)點,在生產(chǎn)中具有重要作用,汽包是煤氣發(fā)生爐的重要組成部分,汽包液位在正常范圍內(nèi)是設(shè)備正常運行的一項重要的工作指標和安全性能指標,所以液位的準確檢測與顯示就尤為重要。本文介紹了以液位傳感器,A/D轉(zhuǎn)換芯片ADC0809,以及MCS51單片機作為主控元件的液位檢測系統(tǒng)的設(shè)計方法。本文分別從液位檢測,A/D轉(zhuǎn)換,LED顯示,超限報警等幾個方面對硬件電路進行了比較詳細的介紹,然后對A/D轉(zhuǎn)換程序,LED顯示程序,超限報警程序等做了比較詳細

2、的闡述,并用流程圖做進一步的解釋。通過軟件和硬件的聯(lián)合調(diào)試,實現(xiàn)了在一定范圍內(nèi)對液位的調(diào)節(jié),動態(tài)顯示出液位結(jié)果,完全實現(xiàn)了任務(wù)書上的要求。關(guān)鍵詞:液位檢測、A/D轉(zhuǎn)換、液位傳感器目錄第1章 緒論11.1應(yīng)用環(huán)境簡介 11.2本次課程設(shè)計的意 11.3 本次課程設(shè)計的任務(wù) 2第2章 硬件電路設(shè)計32.1 硬件電路工作原理 32.2 硬件電路設(shè)計 32.2.1 系統(tǒng)總體設(shè)計框圖 32.2.2 核心部件的介紹 42.3 硬件電路各模塊設(shè)計102.3.1 電源電路設(shè)計102.3.2 單片機最小系統(tǒng)電路設(shè)計102.3.3 顯示電路設(shè)計112.3.4 液位傳感器的接口電路設(shè)計122.3.5 AT89C51

3、與ADC0809的接口電路設(shè)計132.3.6 報警電路設(shè)計142.4 硬件電路總結(jié)14第3章 軟件設(shè)計 153.1 AT89C51的I/O口應(yīng)用 153.1.1 P0口的信號輸入 153.1.2 P1口的信號輸入 163.1.3 P2口的信號輸入 163.1.4 P3口的信號輸入 163.2 軟件模塊設(shè)計173.2.1 主程序的設(shè)計173.2.2 A/D轉(zhuǎn)換的設(shè)計183.2.3 顯示子程序的設(shè)計203.2.4 報警子程序的設(shè)計223.3 軟件設(shè)計總結(jié)24第4章 調(diào)試254.1 仿真電路調(diào)試 254.2軟件程序調(diào)試264.3軟件程序調(diào)試出現(xiàn)的問題及解決方法 27第5章 結(jié)論28參考文獻 28附錄

4、 29第1章 緒 論 1.1 應(yīng)用環(huán)境簡介 此次課程設(shè)計是應(yīng)用與煤氣發(fā)生爐中汽包的液位檢測與顯示。煤氣發(fā)生爐是為機械、冶金、建材、輕工、化工、耐材等行業(yè)熱加工車間提供混合發(fā)生爐煤氣的設(shè)備。煤氣發(fā)生爐工作原理是以煤為原料生產(chǎn)煤氣,供燃氣設(shè)備使用的裝置。固體原料煤從爐頂部加入,隨煤氣爐的運行向下移動,在與從爐底進入的氣化劑(空氣、蒸汽)逆流相遇的同時,受爐底燃料層高溫氣體加熱,發(fā)生物理、化學(xué)反應(yīng),產(chǎn)生粗煤氣。此粗煤氣(即熱煤氣)經(jīng)粗除塵后可直接供燃燒設(shè)備使用。汽包的概念是指氣壓通過水循環(huán)導(dǎo)致氣壓下降或上升,也可以理解為汽包是氣體和水分融合后形成的氣壓變化,極限壓力中的空氣與水分子會提高氣體的壓力上

5、升,導(dǎo)致高壓達到一定數(shù)值后產(chǎn)生的壓力集分子。工業(yè)中汽包罐是能夠承受汽包產(chǎn)生的空氣壓力和水位壓力的一種工業(yè)設(shè)備。汽包的作用主要有:1:是工質(zhì)加熱、蒸發(fā)、過熱三過程的連接樞紐,保證鍋爐正常的水循環(huán);2:內(nèi)部有汽水分離裝置和連續(xù)排污裝置,保證鍋爐蒸汽品質(zhì);3:有一定水量,具有一定蓄熱能力,緩和汽壓的變化速度;4:汽包上有壓力表、水位計、事故放水、安全閥等設(shè)備,保證鍋爐安全運行。1.2 本次課程設(shè)計的意義本次設(shè)計是以煤氣發(fā)生爐中汽包為背景的,煤氣發(fā)生爐生成的水煤氣作為燃料,具有解決冒黑煙,二氧化硫超標和燃油,天然氣鍋爐運行成本高的優(yōu)點,在生產(chǎn)中具有重要作用,汽包是煤氣發(fā)生爐的重要組成部分,汽包液位在正

6、常范圍內(nèi)是設(shè)備正常運行的一項重要的工作指標和安全性能指標,所以液位的準確檢測與顯示就尤為重要。1.3 本次課程設(shè)計的任務(wù)以煤氣發(fā)生爐汽包水位控制為背景,利用單片機技術(shù)實現(xiàn)對汽包水位的采集與顯示。具體要求如下:1. 掌握計算機控制系統(tǒng)中模擬量輸入通道的的設(shè)計方法,以及程序設(shè)計方法。2. 選擇合適的液位傳感器,量程為01.2m,要求測量精度不超過±1%。3. 掌握常用接口芯片的工作原理與接口設(shè)計。4. 選用MCS-51單片機,完成對汽包水位的定時采樣和處理,并通過LED電路顯示。5. 繪制硬件系統(tǒng)原理和軟件程序流程圖,并編寫用戶程序。6. 撰寫課程設(shè)計報告一份,要求字數(shù)3000-5000

7、字。第2章 硬件電路設(shè)計2.1 硬件電路工作原理該系統(tǒng)以AT89C51作為核心控制部件,外加傳感器,一片A/D轉(zhuǎn)換芯片和數(shù)碼管來完成系統(tǒng)的預(yù)期任務(wù),即液位的檢測、顯示和超限報警。傳感器實現(xiàn)液位信號到電壓信號的轉(zhuǎn)換,再由8位A/D轉(zhuǎn)換芯片ADC0809將模擬信號轉(zhuǎn)換為數(shù)字信號,實現(xiàn)液位信息的輸入,AT89C51從ADC0809讀取液位信息后進行數(shù)據(jù)處理和超限判斷,隨后將處理過的數(shù)據(jù)輸出到數(shù)碼管顯示,設(shè)置最高液位和最低液位,若液位超限則由單片機報警。2.2 硬件電路設(shè)計2.2.1 系統(tǒng)總體設(shè)計框圖圖21 系統(tǒng)總體設(shè)計框圖各部分功能:1. 電源部分提供+5V電壓供系統(tǒng)各部分使用。2. 傳感器實現(xiàn)液位

8、信息到電壓信號的轉(zhuǎn)換。3. ADC0809將傳感器輸出的電壓信號經(jīng)A/D轉(zhuǎn)換后送到單片機。4. MCS51為處理器,實現(xiàn)液位信息的接收、數(shù)據(jù)處理、和輸出到數(shù)碼管。5. 蜂鳴器部分在單片機檢測到液位超限是由單片機驅(qū)動LED燈亮滅報警。6. 單片機對液位數(shù)據(jù)處理后輸出,數(shù)碼管顯示。2.2.2 核心芯片的介紹(1)單片機AT89C51MCS-51單片機是在一塊芯片中集成了CPU,RAM,ROM、定時器/計數(shù)器和多種功能的I/O線等一臺計算機所需要的基本功能部件。MCS-51單片機內(nèi)包含下列幾個部件: 一個8位CPU; 一個片內(nèi)振蕩器及時鐘電路; 4K字節(jié)ROM程序存儲器; 128字節(jié)RAM數(shù)據(jù)存儲器

9、; 兩個16位定時器/計數(shù)器; 可尋址64K外部數(shù)據(jù)存儲器和64K外部程序存儲器空間的控制電路; 32條可編程的I/O線(四個8位并行I/O端口); 一個可編程全雙工串行口; 具有五個中斷源、兩個優(yōu)先級嵌套中斷結(jié)構(gòu)。振蕩器及定時電路8051CPU4K字節(jié)ROM128字節(jié)RAM2個16位定時器/計數(shù)器64K總線擴展控制可編程I/O可編程串行串行口頻率基準源 計數(shù)器 中斷 控制 并行 I/O 口 串行輸入 串行輸出 圖2-2 8051單片機框圖(2)A/D轉(zhuǎn)換器ADC0809A/D轉(zhuǎn)換芯片ADC0809為8路模擬信號的分時采集,片內(nèi)有8路模擬選通開關(guān),以及相應(yīng)的通道抵制鎖存用譯碼電路,其轉(zhuǎn)換時間為

10、100s左右。1 ADC0809的內(nèi)部結(jié)構(gòu):圖23 ADC0809的內(nèi)部邏輯結(jié)構(gòu)圖圖中多路開關(guān)可選通8個模擬通道,允許8路模擬量分時輸入,共用一個A/D轉(zhuǎn)換器進行轉(zhuǎn)換,這是一種經(jīng)濟的多路數(shù)據(jù)采集方法。地址鎖存與譯碼電路完成對A、B、C 3個地址位進行鎖存和譯碼,其譯碼輸出用于通道選擇,其轉(zhuǎn)換結(jié)果通過三態(tài)輸出鎖存器存放、輸出,因此可以直接與系統(tǒng)數(shù)據(jù)總線相連,圖24 ADC0809的通道選擇表 圖25 ADC0809引腳圖2 ADC0809功能介紹:分辨率為8位;最大不可調(diào)誤差小于+_1LSB;單一+5V供電,模擬輸入范圍05V;具有鎖存控制的8路模擬開關(guān);可鎖存三態(tài)輸出,輸出與TTL兼容;功耗為

11、15mw;不必進行零點和滿度調(diào)整;轉(zhuǎn)換速度取決芯片的始終頻率,它的時鐘為10kHZ1.2MHZ.當(dāng)時鐘為500KHZ,轉(zhuǎn)換速度為100us。3 ADC0809的原理ADC0809是一款8位AD轉(zhuǎn)換器,數(shù)據(jù)獲取的關(guān)鍵部分是它的8位模/數(shù)轉(zhuǎn)換器。這個部分主要由N位逐次逼近寄存器SAR,D/A轉(zhuǎn)換器,比較器,置數(shù)選擇電路組成。轉(zhuǎn)換過程如下:A選選置數(shù)電路置SAR的最高位為“1”,其余位為“0”,經(jīng)D/A轉(zhuǎn)換器轉(zhuǎn)換成的模擬電壓Uo與輸入模擬電壓Ui在電壓比較器進行比較,若Ui大于等于Uo,則保留最高位“1”,若Ui小于Uo,則最高位為“0”。B置次高位為“1”,低位全為“0”,按上述步驟進行轉(zhuǎn)換,比較

12、,判斷。C重復(fù)此過程,直到確定SAR的最低位的值取“1”,還是“0”為止。此時,SAR內(nèi)容就是對應(yīng)的輸入模擬電壓轉(zhuǎn)換后的數(shù)字量。(3)液壓傳感器常用基本的液位傳感器原理,分為差壓式水位計,電極式水位計和電容式液壓傳感器1.差壓式水位計根據(jù)液體靜力學(xué)原理,通過測量變動水位和恒定水位之間的靜壓差,將差壓值轉(zhuǎn)換為水位值,再通過差壓變送器將汽包水位轉(zhuǎn)換為隨水位連續(xù)變化的電信號,作為自動給水控制系統(tǒng)中的重要參數(shù)。實際應(yīng)用中差壓式水位計存在的問題是:測量鍋爐汽包水位時,汽包壓力變化使得“水位差壓”的關(guān)系也發(fā)生變化,因而給測量帶來很大的誤差?,F(xiàn)在普遍采用具有汽包壓力補償作用的平衡容器測量方法,但其準確度仍受

13、到很大限制。因為設(shè)計計算的平衡容器補償裝置是按水位處于零水位情況下得出的,而運行中鍋爐水位偏離零水位時,就會引起測量誤差。當(dāng)蒸汽壓力突然下降時,正壓容器內(nèi)的凝結(jié)水被蒸發(fā)掉還會導(dǎo)致儀表指示失常。這些都給鍋爐運行操作造成很大困難,尤其投入自動給水調(diào)節(jié)時將產(chǎn)生錯誤動作,導(dǎo)致鍋爐事故發(fā)生。差壓式水位計比較適合于鍋爐穩(wěn)定運行時的水位測量,當(dāng)運行參數(shù)變化很大時誤差也就很大。因此在實際運行中盡量避免在差壓測量系統(tǒng)上工作( 例如排污、校驗時等) 。如必須工作時,須與鍋爐操作人員聯(lián)系好,盡量減少對差壓測量的影響,例如,在2號窯余熱鍋爐運行初期,曾因在差壓水位計的平衡容器上拆除保溫引起汽包水位指示錯誤產(chǎn)生了鍋爐事

14、故( 因未與鍋爐運行人員事先聯(lián)系,自動給水系統(tǒng)未解除) 。2.電極式水位計利用飽和蒸汽與飽和蒸汽凝結(jié)水的電導(dǎo)率的差異,將非電量的鍋爐水位變化轉(zhuǎn)換為電信號,并由二次儀表遠距離地顯示水位。電極式水位計基本上克服了汽包壓力變化的影響,可用于鍋爐啟停及變參數(shù)運行中。電極式水位計離汽包很近,電極至二次儀表全部是電氣信號傳遞,所以這種儀表不僅遲延小而且誤差小,不需要進行誤差計算與調(diào)整,使得儀表的檢修與校驗大為簡化。3.電容式液壓傳感器圖3-1-2 為傳感器部分的結(jié)構(gòu)原理圖。它主要是由細長的不銹鋼管(半徑為R1 ) 、同軸絕緣導(dǎo)線(半徑為R0 ) 以及其被測液體共同構(gòu)成的金屬圓柱形電容器構(gòu)成。該傳感器主要利

15、用其兩電極的覆蓋面積隨被測液體液位的變化而變化, 從而引起對應(yīng)電容量變化的關(guān)系進行液位測量 圖2-6由圖2-6可知, 當(dāng)可測量液位H = 0 時, 不銹鋼管與同軸絕緣導(dǎo)線構(gòu)成的金屬圓柱形電容器之間存在電容C0 , 根據(jù)文獻得到電容量為: (1)(1)式中, C0 為電容量, 單位為F ; 0 為容器內(nèi)氣體的等效介電常數(shù),單位為F/ m; L 為液位最大高度; R1 為不銹鋼管半徑;R0 為絕緣導(dǎo)線半徑, 單位為m。當(dāng)可測量液位為H 時, 不銹鋼管與同軸絕緣電線之間存在電容CH : (2)(2)式中, 為容器內(nèi)液體的等效介電常數(shù), 單位為F/ m。因此, 當(dāng)傳感器內(nèi)液位由零增加到H 時, 其電容

16、的變化量C 可由式(1) 和式(2) 得 (3)由式(3)式可知, 參數(shù)0 , , R1 , R0 都是定值。所以電容的變化量C 與液位變化量H 呈近似線性關(guān)系。因為參數(shù)0 , , R1 , R0 , L 都是定值, 由式(2) 變形可得:CH = a0 + b0 H ( a0 和b0 為常數(shù)) (4)。可見, 傳感器的電容量值CH 的大小與電容器浸入液體的深度H 成線性關(guān)系。由此, 只要測出電容值便能計算出水位。我們這次選擇電容式液壓傳感器為CR-603系列智能電容式鍋爐汽包液位計,是基于電容測量原理的液位計。它采用斷層掃描技術(shù),通過測量分析桶內(nèi)的液態(tài),氣態(tài)介質(zhì)的介電常數(shù),補償溫度、壓力等變

17、化帶來的影響。經(jīng)過微處理器運算處理后輸出符合工業(yè)標準的4-20mA電流信號,也可輸出RS485數(shù)字信號供給使用。液位計在運行過程中實時動態(tài)補償,將溫度、壓力變化等因素減少到最小,長期穩(wěn)定性好,是一款全工況,高性價比的汽包液位計。技術(shù)特點:1、兩線制電流環(huán); 2、具有全工況條件( 鍋爐啟、停、排污、工況等)下液位準確連續(xù)測控功能;3、采取斷層掃描技術(shù),能夠?qū)σ簯B(tài)、汽態(tài)介質(zhì)的介電常數(shù)變化連續(xù)測量補償;4、長期穩(wěn)定性好;5、經(jīng)C E 認證的良好的電磁兼容特性;6、耐高溫、高壓、長壽命;CR-6031技術(shù)指標工作電壓: 最大:28V     最?。?0V輸出電壓

18、:05V(±0.5%)防爆參數(shù):Ui=30V,Ii=100mA ,Pi=0.75W  Ci=100pF,Li=10uH   工作壓力:22MPa  max測量范圍:1500mm                              &#

19、160;  測量周期:0.5秒                            介質(zhì)溫度:500 max.            防護等級: IP652.3 硬件電路各模塊設(shè)計2.3.1 電源電路設(shè)計圖27 電源電

20、路本系統(tǒng)供電為市電AC220v,經(jīng)變壓器TR1降為交流6v,經(jīng)整流橋堆BR1整流后得到脈動直流電壓6v,再經(jīng)三端穩(wěn)壓器LM7805得到VCC(+5v) ,其中電解電容C4、C6、起濾波作用,C5、C7是旁路電容,起抑制干擾的作用。2.3.2 單片機最小系統(tǒng)電路設(shè)計圖28 單片機最小系統(tǒng)電路RST:復(fù)位輸入。在單片機工作期間,當(dāng)此引腳上出現(xiàn)連接2個機器周期的高電平時可實現(xiàn)復(fù)位操作。復(fù)位電路除了具有上電復(fù)位功能外,還可通過復(fù)位鍵迫使RESET為高電平。當(dāng)系統(tǒng)通電時,RESET引腳獲得高電平,隨著電容的充電,RESET引腳的高電平將逐漸下降。RESET的高電平只有保持足夠的時間(2個機械周期),單片

21、機才可以進行復(fù)位操作 。時鐘電路采用12MHz的晶振,因為ADC0809的工作時鐘最高允許值為12MHz,單片機ALE管腳2分頻后為500KHz,可以作為ADC0809轉(zhuǎn)換器的時鐘信號CLK。XTAL1:反向放大振蕩器的輸入及內(nèi)部時鐘工作電路的輸入。XTAL2:來自反向振蕩器的輸出。XTAL1腳是內(nèi)部反相放大器的輸入端,而XTAL2腳是該放大器的輸出端。在晶體振蕩中,晶體工作于基本響應(yīng)模式,它作為一個感抗與外部電容形成并聯(lián)諧振,使正反饋放大器維持震蕩。所選電容為瓷片電容22PF,因為22PF對于工作于1MHZ以上的晶振都能獲得良好的效果。2.3.3 顯示電路設(shè)計圖29 顯示電路本設(shè)計由P1口控

22、制七段發(fā)光二極管亮或滅,使用共陰極8段數(shù)碼管,由圖2.9可知,要使七段顯示器的某一段亮,則應(yīng)該是與該段相連的段選寄存器即P1口的某位線輸出為1。若使某段熄滅,則必須輸出0。例如要顯示數(shù)字4。則應(yīng)使P1口的P1.7-P1.0輸出為11100110B,若用一個字節(jié)表示該輸出值,即字形代碼為66H,依此類推,可以得到09一共10個十進制數(shù)的字形代碼依次為3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH。本設(shè)計由P2.0,P2.1,P2.2,P2.3做位選,以控制哪一位七段數(shù)碼管顯示,例如,要求第一位數(shù)碼管顯示,則應(yīng)設(shè)置P2.0為“1”,P2.1,P2.2,P2.3為“0

23、”。PNP型三極管9012起到增加驅(qū)動電流的目的。電阻R12R19控制通過數(shù)碼管的電流,R20R23控制通過三極管9012的電流,R4R11為單片機P1口的上拉電阻。2.3.4 液位傳感器的接口電路設(shè)計圖210 電位器RV1與ADC0809接口設(shè)計所選液位傳感器能夠根據(jù)不同的液位產(chǎn)生不同的電壓,電壓值大小范圍為0.54.5V,且能夠便于遠距離傳輸。由于芯片ADC0809的輸入為05V的電壓,仿真時需要將輸入信號轉(zhuǎn)換為電壓信號,為此外接一電位器R=1k,把電壓轉(zhuǎn)換成05V電壓。在設(shè)計中,把電位器的1,3腳接+5V電壓和地線,調(diào)節(jié)滑鈕2能夠很好的得到05V電壓,因此可以用電位器模擬液位傳感器。2.

24、3.5 AT89C51與ADC0809的接口電路設(shè)計圖211 AT89C51與ADC0809的接口電路ADC0809與AT89C51相連接,ADC0809中的START與ALE相連通,ALE地址鎖存允許信號,對應(yīng)ALE上跳沿,A、B、C地址狀態(tài)送入地址鎖存器中。START轉(zhuǎn)換啟動信號。START上升沿時,復(fù)位ADC0809;START下降沿時啟動芯片,開始進行A/D轉(zhuǎn)換;在A/D轉(zhuǎn)換期間,START應(yīng)保持 低電平。當(dāng)ALE上升沿時,ALE鎖存數(shù)據(jù),A/D轉(zhuǎn)換截止,當(dāng)ALE下降沿時,START低電平,ALE低電平,不鎖存,A/D轉(zhuǎn)換開始。P2.4,P2.5,P2.6,P2.7分別控制CLK,ST

25、ART和ALE,EOC,OE信號,其控制A/D轉(zhuǎn)換的開始和截止。CLK使用AT89C51內(nèi)部時鐘信號。ADDA,ADDB,ADDC相連通接地,信號輸入為000,表示輸入通道選擇為IN0口。8位數(shù)據(jù)信號線2-12-8與單片機的P1.0P1.7相連,實現(xiàn)ADC0809與AT89C51的數(shù)據(jù)傳輸。Vref參考電源參考電壓用來與輸入的模擬信號進行比較,作為逐次逼近的基準。其典型值為+5V(Vref(+)=+5V, Vref(-)=0V)。2.3.6 報警電路設(shè)計圖212 報警電路本電路的P3.0,P3.1作為高位和低位的報警控制線,通過設(shè)置高低液位報警線來實現(xiàn)報警功能。如果當(dāng)前液位高于設(shè)置的高位報警線

26、時,P3.0置低電平,高位報警燈亮。如果當(dāng)前液位低于于設(shè)置的低位報警線時,P3.1置低電平,低位報警燈亮。如果當(dāng)前液位低于設(shè)置的高位液位且高于低位液位時,高位報警燈和低位報警燈滅。2.4 硬件電路總結(jié)在本章中主要講述了硬件電路的結(jié)構(gòu),電路原理和部分芯片的功能,根據(jù)電路組成情況分成六個電路模塊,分別介紹了各個電路模塊的工作原理和功能,通過本次設(shè)計掌握了更多的基本硬件電路設(shè)計原理及其工作特點。并自行繪制電路原理圖: 圖213 電路原理圖第3章 軟件設(shè)計3.1 AT89C51的I/O口應(yīng)用AT89C51共有P0,P1,P2,P3,4個8位的并行雙向I/O口。各個I/O口實現(xiàn)不同的功能,詳細情況如下。

27、3.1.1 P0口的信號輸入在程序中將P0口做為段選口使用,顯示十位數(shù)字的段選信號,下例為顯示十位數(shù)字的指令:MOV DPTR,#TABLE ;取段碼表首址。MOV A,LED_2 ;取顯示的十位數(shù)字。MOVC A,A+DPTR ;取段碼。MOV P0,A ;輸出段碼的顯示。TABLE: DB 3FH,06H,5BH,4FH,66H ;共陰極數(shù)碼管表DB 6DH,7DH,07H,7FH,6FH3.1.2 P1口的信號輸入在程序中將P0口作為輸入口,用來讀A/D轉(zhuǎn)換值。設(shè)計中,要求選通通道0,并把轉(zhuǎn)化后得到數(shù)字量存入內(nèi)部RAM的35H單元中,下例為把轉(zhuǎn)化后的數(shù)字量存入內(nèi)部RAM中的指令:CLR

28、P2.5, ;SRART置0,MOV A,P1 ;MOV R7,AMOV 35H,R73.1.3 P2口的信號輸入P2.0,P2.1,P2.2,P2.3做數(shù)碼管的位選信號用,要哪個數(shù)碼管亮,則置相應(yīng)位高電平,就可將其選中。例如要求顯示第一個數(shù)碼管,端口設(shè)置指令為:CLR P2.0CLR P2.1CLR P2.2CLR P2.3P2.4,P2.5,P2.6,P2.7作為通用I/O口使用,與ADC0809連接。P2.4作為A/D轉(zhuǎn)換的CLK信號,P2.5作為開始A/D轉(zhuǎn)換的啟動信號,P2.6作為查詢A/D轉(zhuǎn)換是否完成的判斷信號,P2.7作為輸出A/D轉(zhuǎn)換的數(shù)字量允許信號。下例為P2.4,P2.5,

29、P2.6,P2.7作為通用I/O口使用的指令:CLOCK BIT P2.4ST BIT P2.5EOC BIT P2.6OE BIT P2.73.1.4 P3口的信號輸入P3.0、P3.1、P3.7作為通用I/O口使用,與LED燈和蜂鳴器相連,輸出報警信號,如果當(dāng)前液位高于設(shè)置的高位報警線時,P3.0置低電平,高位報警燈亮。如果當(dāng)前液位低于于設(shè)置的低位報警線時,P3.1置低電平,低位報警燈亮。如果當(dāng)前液位低于設(shè)置的高位液位且高于低位液位時,高位報警燈和低位報警燈滅。H_ALM BIT P3.0L_ALM BIT P3.1LALM: CLR L_ALM ;低位報警 SETB TR1 CLR FL

30、AG LJMP PROCHALM: CLR H_ALM ;高位報警 SETB TR1 SETB FLAG LJMP PROC3.2 軟件模塊設(shè)計3.2.1 主程序的設(shè)計系統(tǒng)分為初始化,A/D轉(zhuǎn)換,十進制轉(zhuǎn)換,LED顯示,電機控制和報警電路。因此整個程序需要包含上述六個子程序。其中,LED_0 定義地址30H,以存放顯示十進制的小數(shù)點后十位數(shù)字。LED_1 定義地址31H,以存放顯示十進制的小數(shù)點后個位數(shù)字。LED_2 定義地址32H,以存放顯示十進制的個位數(shù)字。ADC 定義地址35H,以存放經(jīng)A/D轉(zhuǎn)換后的數(shù)字。流程圖如下:圖31 主程序流程圖3.2.2 A/D轉(zhuǎn)換的設(shè)計ADC0809芯片實現(xiàn)

31、A/D轉(zhuǎn)換的時間為0.1ms左右,A/D轉(zhuǎn)換后得到的數(shù)字量應(yīng)及時傳送到單片機進行處理。OE輸出允許信號。用于控制三態(tài)輸出鎖存器向單片機輸出轉(zhuǎn)換得到的數(shù)據(jù)。OE=0,輸出數(shù)據(jù)線呈高阻;OE=1,輸出轉(zhuǎn)換得到的數(shù)據(jù)。ALE地址鎖存允許信號。對應(yīng)ALE上跳沿,A、B、C地址狀態(tài)送入地址鎖存器中。START轉(zhuǎn)換啟動信號。START上升沿時,復(fù)位ADC0809;START下降沿時啟動芯片,開始進行A/D轉(zhuǎn)換;在A/D轉(zhuǎn)換期間,START應(yīng)保持 低電平。本信號有時簡寫為ST。CLK時鐘信號。ADC0809的內(nèi)部沒有時鐘電路,所需時鐘信號由外界提供,因此有時鐘信號引腳。通常使用頻率為500KHz的時鐘信號。

32、EOC轉(zhuǎn)換結(jié)束信號。EOC=0,正在進行轉(zhuǎn)換;EOC=1,轉(zhuǎn)換結(jié)束。使用中該狀態(tài)信號即可作為查詢的狀態(tài)標志,又可作為中斷請求信號使用。CLOCK BIT P2.4ST BIT P2.5EOC BIT P2.6OE BIT P2.7CLR STSETB STCLR ST ;啟動轉(zhuǎn)換JNB EOC,$ ;等待輸出結(jié)果SETB OE ;允許輸出MOV ADC,P1 ;讀取A/D轉(zhuǎn)換結(jié)果CLR OE ;關(guān)閉輸出MOV A,ADC ;將A/D轉(zhuǎn)換結(jié)果轉(zhuǎn)換成BCD碼圖32 A/D轉(zhuǎn)換程序流程圖3.2.3 顯示子程序的設(shè)計設(shè)計中采用動態(tài)掃描法,實現(xiàn)四位數(shù)碼管的數(shù)值顯示,并顯示小數(shù)點。數(shù)碼管動態(tài)顯示接口是單片

33、機中應(yīng)用最為廣泛的一種顯示方式之一,動態(tài)驅(qū)動是將所有數(shù)碼管的8個顯示筆劃"a,b,c,d,e,f,g,dp"的同名端連在一起,另外為每個數(shù)碼管的公共極COM增加位選通控制電路,位選通由各自獨立的I/O線控制,當(dāng)單片機輸出字形碼時,所有數(shù)碼管都接收到相同的字形碼,但究竟是那個數(shù)碼管會顯示出字形,取決于單片機對位選通COM端電路的控制,只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會亮。通過分時輪流控制各個數(shù)碼管的的COM端,就使各個數(shù)碼管輪流受控顯示,這就是動態(tài)驅(qū)動。在輪流顯示過程中,每位數(shù)碼管的點亮?xí)r間為12ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極

34、管的余輝效應(yīng),盡管實際上各位數(shù)碼管并非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會有閃爍感,動態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O端口,而且功耗更低通過逐次選通P2.0,P2.1 ,P2.2,P2.3依次送十進制的相應(yīng)字段碼給P1口,并延時5ms完成顯示。顯示程序:MOV LED_0,#00HMOV LED_1,#00HMOV LED_2,#00HMOV LED_3,#00HMOV DPTR,#TABLE ;送段碼表首地址DISP: MOV A,LED_2 MOVC A,A+DPTRORL A,#80H ;顯示小數(shù)點 MOV BUFFER+2,A ;

35、送顯示緩存 CLR P2.1 MOV P0,A LCALL DELAY SETB P2.1SETB P2.0 MOV A,LED_1 MOVC A,A+DPTR CLR P2.0 MOV P0,A LCALL DELAY RETDELAY: MOV R6,#10 ;延時5ms圖33 顯示子程序流程圖3.2.4 報警子程序的設(shè)計本電路的P3.0,P3.1作為高位和低位的報警控制線,通過設(shè)置高低液位報警線來實現(xiàn)報警功能。本設(shè)計要求為:液位在小于1.5米時低位報警燈亮進行低位報警,液位在1.54米時燈都不亮,液位在大于4米時高位報警燈亮進行高位報警。報警程序:MOV H_TEMP,#153 ;204

36、/255=0.6 高于80%報警MOV L_TEMP,#77 ;77/255=0.3 低于30%報警MOV A,ADC ;將A/D轉(zhuǎn)換結(jié)果轉(zhuǎn)換成BCD碼 SUBB A,L_TEMP ;判斷是否低于下限 JC LALM MOV A,H_TEMP MOV R0,ADC SUBB A,R0 ;判斷是否高于上限 JC HALM CLR TR1 LJMP PROCLALM: CLR L_ALM ;低位報警 SETB TR1 CLR FLAG LJMP PROCHALM: CLR H_ALM ;高位報警 SETB TR1 SETB FLAG LJMP PROC圖34 報警子程序流程圖3.3 軟件設(shè)計總結(jié)在

37、本章中主要講述了軟件設(shè)計的一些情況,對軟件的一些功能進行了解釋,根據(jù)程序組成情況分成六個程序模塊,分別介紹了各個程序模塊的工作原理和功能,對部分程序進行了簡單的注釋,通過流程圖直觀的表現(xiàn)出各個模塊的作用及程序運行過程。在本次的軟件設(shè)計中,運用Keil進行編程,將編輯好的程序進行編譯,查看是否語法錯誤,如果沒有錯誤,設(shè)置晶振頻率,編譯生成.Hex文件,進行仿真。在此過程中,我收益良多,熟悉了單片機匯編語言的使用,對單片機的編程有了進一步的理解,通過和同學(xué)的交流,學(xué)會了很多以前自己不能解決的問題。第4章 調(diào) 試4.1 仿真電路調(diào)試在仿真程序中通過模塊編程,用Proteus軟件與Keil軟件相結(jié)合進

38、行調(diào)試,(調(diào)試程序見附錄I)1建立工程文件1)點擊菜單project,選擇new project:2)然后選擇要保存的路徑,輸入工程文件的名字,比如保存到論文目錄里,工程文件的名字為yang.uv2.3)這時會彈出一個對話框,選擇單片機的型號,你可以根據(jù)你使用的單片機來選擇,keil c51幾乎支持所有要求你的51核的單片機,這里選AT89S51。這時要新建一個源程序文件,建立一個匯編文件,輸入編寫好的程序。保存。選擇要保存的路徑,在文件名里輸入文件名,注意一定要輸入擴展名,這里有匯編語言,文件名為:yang.asm。2. 調(diào)試程序(1)點擊Target 1前面的+號,展開里面的內(nèi)容sourc

39、e Group1:(2)用右鍵點擊Sourece Group 1(注意用鼠標的右鍵,而不是左鍵),將彈出一個菜單,選擇Add Files to Guoup'Source Group 1'.(3)選擇剛才的文件yang.asm.這時在source group 1 里就有yang.asm文件(4)單擊“Project”菜單,再在下拉菜單中單擊“Built Target”選項(或者使用快捷鍵F7),編譯成功后,再單擊“Project”菜單,在下拉菜單中單擊“Start/Stop Debug Session”(或者使用快捷鍵Ctrl+F5)。硬件仿真原理圖如下圖圖41 仿真原理圖3.

40、仿真結(jié)果通過改變電位器阻值的變化來模擬液位的變化,液位數(shù)值在數(shù)碼管上顯示,液位在小于1.5米時低位報警燈報警,液位在1.5米到4.0米時不報警,液位大于4.0米時高位報警燈報警。芯片ADC0809的轉(zhuǎn)換精度為1/256,所以本電路的最小分辨率為0.05V。4.2 軟件程序調(diào)試本設(shè)計調(diào)試程序使用的是Keil編譯軟件和Proteus仿真軟件。先將編輯好的程序進行編譯,檢查程序是否有語法上的錯誤。在編譯、連接無錯誤和警告后,把程序進行分塊調(diào)試。然后用單步調(diào)試的方法進行檢查寄存器中的內(nèi)容是否與預(yù)期結(jié)果一致。例如:顯示部分,在調(diào)試中,可以用相關(guān)窗口查看相應(yīng)寄存器的內(nèi)容,35H單元存放采樣值,30H,31

41、H,32H,33H單元內(nèi)容則為其轉(zhuǎn)換值,再對比顯示的數(shù)據(jù)就可以知道是否正確。運行編譯生成.hex文件,然后在Proteus中加入.hex文件,進行仿真,查看顯示是否正確,能否達到要求。進行單步調(diào)試,查看硬件電路的電平是否和預(yù)期結(jié)果一致。用STC_ISP_V3.1軟件將.hex文件燒寫進單片機中,與硬件相連接。通電后,用萬用表檢查電路的電壓是否與仿真圖中的電壓一致,用仿真結(jié)果驗證硬件電路是否正確。4.3 軟件程序調(diào)試出現(xiàn)的問題及解決方法1在仿真時,ADC0809不能進行仿真。解決方法:在仿真時使用Proteus軟件,芯片ADC0809不能進行仿真,系統(tǒng)提示是沒有模型,于是仿真時采用ADC0808

42、芯片進行。由于ADC0809與ADC0808的區(qū)別在于:ADC0808的輸出數(shù)據(jù)線D0D7是從高位依次到低位,ADC0809的輸出數(shù)據(jù)線D0D7是從低位依次到高位。于是采用ADC0808進行仿真,ADC0809用在實物電路上。2在Keil中編輯程序時,程序出現(xiàn)有錯誤,其不能運行。解決方法:在Keil中運行后雙擊出現(xiàn)的錯誤,錯誤行被指出來,根據(jù)程序的上下文,改正出現(xiàn)的錯誤。由于在程序中START后少添加了“:”,使得程序不能運行,改正后程序運行正常。第5章 結(jié) 論在本次畢業(yè)設(shè)計中完成了電路原理圖設(shè)計,PCB板設(shè)計,電路焊接,程序的設(shè)計,軟、硬件的聯(lián)機調(diào)試。硬件電路的各個模塊,包括單片機最小系統(tǒng)電

43、路,A/D轉(zhuǎn)換電路,數(shù)碼管顯示電路,報警電路等都能夠正常工作。在與軟件進行聯(lián)機調(diào)試時,通過改變電位器阻值的變化來模擬液位的變化,液位數(shù)值在數(shù)碼管上顯示,液位在小于1.5米時低位報警燈報警,液位在1.5米到4.0米時不報警,液位大于4.0米時高位報警燈報警。芯片ADC0809的轉(zhuǎn)換精度為1/256,所以本電路的最小分辨率為1/256V。本次畢業(yè)設(shè)計完成了任務(wù)書下達的所有任務(wù),實現(xiàn)了液位的檢測及液位的顯示,并實現(xiàn)了超限報警。顯示液位范圍為05m,顯示的最小分辨率為1/256V。它是一個可以應(yīng)用于一般工業(yè)的液位檢測及顯示系統(tǒng)的設(shè)計方案,測量范圍和測量精度滿足課程設(shè)計需要。 參考文獻【1】 王再英等,

44、過程控制與儀表,機械工業(yè)出版社,2006【2】 潘新民,王燕芳,微型計算機控制技術(shù),高等教育出版社,2001【3】 李建忠,單片機原理及應(yīng)用,西安電子科技大學(xué)出版社,2008【4】 楊居義,單片機課程設(shè)計指導(dǎo),清華大學(xué)出版社,2009【5】 王錦標,方崇智,過程計算機控制,清華大學(xué)出版社,1992附錄2:參考程序LED_0 EQU 30HLED_1 EQU 31HLED_2 EQU 32HLED_3 EQU 33HBUFFER EQU 34H ;顯示緩存ADC EQU 35HTCNTA EQU 36HTCNTB EQU 37HH_TEMP EQU 38H ;液位上限L_TEMP EQU 39H ;液位下限FLAG BIT 00HH_ALM BIT P3.0L_ALM BIT P3.1SOUND BIT P3.7CLOCK BIT P2.4ST BIT P2.5EOC BIT P2.6OE BIT P2.7 ORG 00H SJMP START ORG 0BH LJMP INT_T0 ORG 1BH LJMP INT_

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論