摘要:針對日常生活中的溫度采集提出了一種設(shè)計方案,詳細(xì)介紹了系統(tǒng)結(jié)構(gòu)組成和軟硬件設(shè)計方案。系統(tǒng)采用AT89C51單片機為控制核心,以LM35為溫度傳感器,將溫度信號轉(zhuǎn)換為電壓信號后輸出給ADC0809。ADC0809再將模擬信號轉(zhuǎn)換成數(shù)字信號輸入到單片機中,經(jīng)過單片機的控制處理最后再通過74LS595驅(qū)動輸出到數(shù)碼管中顯示。實驗結(jié)果表明,系統(tǒng)穩(wěn)定可靠,并且體積小、成本低,有較高的使用價值和參考價值。
工業(yè)生產(chǎn)、農(nóng)業(yè)生產(chǎn)和人們的日常生活都與溫度息息相關(guān),因此設(shè)計一個高效、可靠的溫度采集系統(tǒng)具有重要的現(xiàn)實意義。采用51系列單片機對溫度進行測量,能夠使控制靈活方便,并且價格低廉可以使開發(fā)成本大大降低。據(jù)此設(shè)計了以溫度傳感器LM35、AT89C51單片機為基礎(chǔ)的溫度采集顯示系統(tǒng)。為提高數(shù)碼管的顯示亮度以及減少單片機引腳的使用,采用74LS595實現(xiàn)對數(shù)碼管的驅(qū)動。該系統(tǒng)的溫度測量范圍為0~50℃,精確到一位小數(shù),可適用于日常生活。
1系統(tǒng)整體結(jié)構(gòu)
該系統(tǒng)由溫度采集模塊、放大模塊、模數(shù)轉(zhuǎn)換模塊、處理器模塊和顯示模塊組成。溫度采集模塊采集現(xiàn)場環(huán)境溫度并將其轉(zhuǎn)換成電壓信號,由于轉(zhuǎn)換后的電壓信號較微弱,所以要先經(jīng)過放大電路的放大,然后再送入模數(shù)轉(zhuǎn)換模塊轉(zhuǎn)換成數(shù)字信號,轉(zhuǎn)換后的數(shù)字信號再送入處理器模塊,處理器模塊根據(jù)實際需要對數(shù)字量進行處理,最后再送入顯示模塊顯示。其中選用LM35為溫度傳感器,放大電路選用LM385,選用ADC0809作為模數(shù)轉(zhuǎn)換模塊,選用常見的AT89C51單片機為控制核心,為了防止數(shù)碼管閃爍和節(jié)省單片機引腳,在單片機和數(shù)碼管之間接入74LS595帶驅(qū)動、鎖存、移位寄存器的芯片實現(xiàn)串行輸入并行輸出。系統(tǒng)設(shè)計框圖如圖1所示。

圖1系統(tǒng)設(shè)計框圖
2系統(tǒng)硬件及功能電路設(shè)計
2.1集成運放電路設(shè)計
2.1.1硬件簡介
?。?)LM35傳感器
LM35系列傳感器是精密集成電路溫度傳感器,其轉(zhuǎn)換電壓與攝氏溫度成正比,0℃時輸出為0V,每升高1℃,輸出電壓增加10mV,計算公式如下:
Vout_LM35(T)=10mV/℃×T℃(1)
因此,相對于按絕對溫標(biāo)校準(zhǔn)的線性溫度傳感器優(yōu)越得多,并且LM35系列傳感器生成制作時已校準(zhǔn),輸出電壓與攝氏溫度一一對應(yīng),使用極為方便。LM35傳感器有單電源和雙電源兩種接法,單電源供電模式下,在25℃時電流約為50mA,非常省電,所以該設(shè)計采用的是單電源供電模式。
?。?)LM358放大器
LM358內(nèi)部包括兩個獨立的、高增益、內(nèi)部頻率補償?shù)碾p運算放大電路,它也有單電源和雙電源兩種供電模式。功耗小,可用電池供電。
2.1.2實現(xiàn)電路
因為LM35的輸出電壓是毫伏級,而ADC0809的輸入電壓范圍為0~5V,雖然在ADC0809的電壓允許范圍內(nèi),但電壓信號較弱,直接進行模數(shù)轉(zhuǎn)換會導(dǎo)致數(shù)字量太小、精度低等不足,因此需要經(jīng)過放大后再輸入到ADC0809進行轉(zhuǎn)換。放大10倍后,LM35的輸出電壓范圍為0~0.5V,測溫范圍為0~50℃,完全可以滿足日常生活的需要,所以設(shè)計放大倍數(shù)為10倍。根據(jù)同相輸入放大原理各電阻選擇阻值及連接情況如圖2所示。

圖2LM358連接電路圖
2.2A/D轉(zhuǎn)換電路
2.2.1硬件簡介
?。?)ADC0809ADC0809是CMOS逐次逼近型A/D轉(zhuǎn)換器,具有8路模擬量輸入通道,有轉(zhuǎn)換起??刂疲M輸入電壓范圍為0V~+5V,轉(zhuǎn)換時間為100μs,可以與單片機直接連接。
?。?)AT89C51單片機采用AT89C51作為處理器。AT89C51是一種高性能CMOS8位微處理器,帶有4KB閃爍可編程可擦除只讀存儲器,低電壓即可滿足其供電要求。該芯片采用ATMEL高密度非易失存儲器制造技術(shù)制造,并與工業(yè)標(biāo)準(zhǔn)的MCS—51指令集和輸入輸出管腳相兼容。由于其多方面的優(yōu)越性能,為很多工控系統(tǒng)提供了一種性價比高且靈活的實現(xiàn)方案。
2.2.2實現(xiàn)電路
ADC0809的轉(zhuǎn)換時鐘由AT89C51的ALE信號提供。因為ADC0809的最高時鐘頻率為640kHz,而ALE信號的頻率是晶振頻率的1/6,晶振頻率為12MHz,則ALE的頻率為2MHz,所以ALE信號要經(jīng)過四分頻后再送給ADC0809。本設(shè)計中采用74LS74雙觸發(fā)器作為分頻器。AT89C51通過P2.7引腳和讀寫信號線來控制ADC0809的鎖存信號ALE、啟動信號START和輸出允許信號OE。由于本設(shè)計中只有一路輸入信號,所以直接將C、B、A通道選擇地址線接地。ADC0809的轉(zhuǎn)換結(jié)束信號EOC與AT89C51的外中斷INT0連接,由于邏輯關(guān)系相反所以通過反相器連接。轉(zhuǎn)換的數(shù)字量通過D0~D7輸出。當(dāng)P2.7和寫信號同為低電平時,鎖存信號ALE和啟動信號START同時有效,鎖存的同時啟動;當(dāng)要讀取轉(zhuǎn)換結(jié)果時,只需要P2.7和讀信號同時為低電平,輸出允許信號OE有效,CPU響應(yīng)中斷后,在中斷服務(wù)程序中通過讀操作來取得轉(zhuǎn)換的結(jié)果。根據(jù)邏輯關(guān)系連接方式如圖3所示。

圖3單片機與ADC0809的電路連接圖
2.3顯示電路
2.3.1硬件簡介
?。?)數(shù)碼管
發(fā)光二極管顯示器又叫LED顯示器,也稱為數(shù)碼管,其價格低廉、功耗較小、性能可靠。由于該設(shè)計的測溫范圍是0~50℃,精確到一位小數(shù),所以采用3位八段數(shù)碼管,分別用來顯示溫度的十位、個位和小數(shù)位。本設(shè)計中采用的是共陰極數(shù)碼管。
?。?)74LS595帶鎖存移位寄存器
74LS595是帶有鎖存功能的寄存器,內(nèi)含八位串入、串/并出移位寄存器和八位三態(tài)輸出鎖存器。寄存器和鎖存器分別有各自的時鐘輸入脈沖SH_CP和ST_CP,都是上升沿有效。由于具有數(shù)據(jù)鎖存寄存器,在移位的過程中可以使輸出端的數(shù)據(jù)保持不變,這在串行速度慢的場合很有用處,使數(shù)碼管沒有閃爍感,并且有較強的驅(qū)動能力,代替了專用的高成本的LED驅(qū)動器。74LS595只需3條控制線就可以完成8路信號的輸出,直接控制數(shù)碼管的8個段,有利于節(jié)省單片機的I/O端口,便于以后擴展。
2.3.2實現(xiàn)電路
該部分采用74LS595實現(xiàn)LED的靜態(tài)顯示。每個74LS595控制一位數(shù)碼管,將74LS595的8個并行輸出端和每位數(shù)碼管的段選線相連,所以需要3個74LS595。這樣每位數(shù)碼管可以獨立顯示,在同一時間里可以分別顯示不同的字符。雖然占用的外設(shè)芯片資源較多,成本較高,對于驅(qū)動顯示多位數(shù)碼管不利,但是它的編程簡單,顯示亮度高,占用的單片機引腳少,對于數(shù)碼管位數(shù)不高的情況是不錯的選擇。
每個74LS595的串行輸出口Q7′和下一個74LS595的串行輸入口DS相連。數(shù)據(jù)從DS口送入74LS595,在每個SH_CP的上升沿,DS口上的數(shù)據(jù)移入寄存器,在SH_CP的第9個上升沿,數(shù)據(jù)開始從Q7′移出,這樣數(shù)據(jù)便移入下一個74LS595。數(shù)據(jù)輸入完畢后,給ST_CP一個上升沿,因為輸出允許控制端OE一直是低電平允許輸出,所以數(shù)據(jù)即從并口Q0~Q7輸出到數(shù)碼管,實現(xiàn)數(shù)據(jù)的顯示。電路連接圖如圖4所示。

圖4顯示電路圖
3系統(tǒng)軟件設(shè)計
3.1程序流程圖
在主程序中實現(xiàn)對中斷的設(shè)置,數(shù)據(jù)的處理以及顯示,在中斷程序中實現(xiàn)對數(shù)據(jù)的讀取。因為數(shù)據(jù)的處理需要一定的時間,為防止處理過程中中斷的出現(xiàn)使數(shù)據(jù)出現(xiàn)不一致的情況,所以數(shù)據(jù)處理之前先關(guān)中斷,處理完后再開中斷。主程序流程圖和中斷流程圖分別如圖5、圖6所示。

3.2顯示驅(qū)動程序設(shè)計
該系統(tǒng)軟件部分是在Kiel公司的μVision集成開發(fā)環(huán)境下采用C51語言編寫開發(fā)的。AT89C51的P0、P2口作為外部擴展使用,P2口對應(yīng)高位地址,P0口對應(yīng)低位地址,P0口同時也作為數(shù)據(jù)線。用地址指針XBYTE定義,在使用該指針時要把absacc.h頭文件引入到程序中。本設(shè)計中只使用P2.7端口控制ADC0809,P0只是作為數(shù)據(jù)接口。根據(jù)電路的設(shè)計定義XBYTE[0x7FFF](只要確保P2.7為低電平,其他任意設(shè)置)。
根據(jù)LM35的輸出電壓和溫度的關(guān)系,0~50℃對應(yīng)0~0.5V,通過LM358放大10倍后對應(yīng)0~5V,再通過ADC0809轉(zhuǎn)換后對應(yīng)數(shù)字量0~255,所以要顯示的溫度與轉(zhuǎn)換后的數(shù)字量的關(guān)系為:
T=50×X/255=10×X/51
其中T為要顯示的溫度值,X為經(jīng)過ADC0809轉(zhuǎn)換后的數(shù)字量。
根據(jù)數(shù)碼管的顯示原理,需要將顯示的數(shù)字轉(zhuǎn)換成相應(yīng)的字段碼后才能在數(shù)碼管中正確顯示,所以要把轉(zhuǎn)換得到的溫度值進行十位、個位和小數(shù)位的拆分。因為得到的溫度值是浮點數(shù),直接取出難以使用,為了便于利用拆分?jǐn)U大10倍后再取整,這樣原來的十位、個位和小數(shù)位分別對應(yīng)變換后的百位、十位和個位。因為中間一位需要顯示小數(shù)點所以在送入數(shù)碼管之前先和0X10相與。部分C51程序如下:

該設(shè)計實現(xiàn)了基于74LS595驅(qū)動的溫度采集與顯示,經(jīng)過實測,該測溫系統(tǒng)工作穩(wěn)定,靈敏度高。此外,該系統(tǒng)所用器件均為常規(guī)器件,成本低廉,有較高的應(yīng)用價值。雖然該系統(tǒng)只對溫度進行了采集,但是稍加改動,即可以很方便地擴展為集溫度采集、控制為一體的產(chǎn)品,還可以實現(xiàn)利用異步串行接口與PC機進行數(shù)據(jù)通信,把采集到的溫度等值保存到PC機中。
74ls595相關(guān)文章:74ls595應(yīng)用電路圖大全(五款74ls595驅(qū)動數(shù)碼管/計時顯示/超聲波測距儀電路)
74ls595相關(guān)下載:74ls595芯片中文資料
電子發(fā)燒友App




















評論