摘要:針對(duì)日常生活中的溫度采集提出了一種設(shè)計(jì)方案,詳細(xì)介紹了系統(tǒng)結(jié)構(gòu)組成和軟硬件設(shè)計(jì)方案。系統(tǒng)采用AT89C51單片機(jī)為控制核心,以LM35為溫度傳感器,將溫度信號(hào)轉(zhuǎn)換為電壓信號(hào)后輸出給ADC0809。ADC0809再將模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)輸入到單片機(jī)中,經(jīng)過單片機(jī)的控制處理最后再通過74LS595驅(qū)動(dòng)輸出到數(shù)碼管中顯示。實(shí)驗(yàn)結(jié)果表明,系統(tǒng)穩(wěn)定可靠,并且體積小、成本低,有較高的使用價(jià)值和參考價(jià)值。
工業(yè)生產(chǎn)、農(nóng)業(yè)生產(chǎn)和人們的日常生活都與溫度息息相關(guān),因此設(shè)計(jì)一個(gè)高效、可靠的溫度采集系統(tǒng)具有重要的現(xiàn)實(shí)意義。采用51系列單片機(jī)對(duì)溫度進(jìn)行測(cè)量,能夠使控制靈活方便,并且價(jià)格低廉可以使開發(fā)成本大大降低。據(jù)此設(shè)計(jì)了以溫度傳感器LM35、AT89C51單片機(jī)為基礎(chǔ)的溫度采集顯示系統(tǒng)。為提高數(shù)碼管的顯示亮度以及減少單片機(jī)引腳的使用,采用74LS595實(shí)現(xiàn)對(duì)數(shù)碼管的驅(qū)動(dòng)。該系統(tǒng)的溫度測(cè)量范圍為0~50℃,精確到一位小數(shù),可適用于日常生活。
1系統(tǒng)整體結(jié)構(gòu)
該系統(tǒng)由溫度采集模塊、放大模塊、模數(shù)轉(zhuǎn)換模塊、處理器模塊和顯示模塊組成。溫度采集模塊采集現(xiàn)場(chǎng)環(huán)境溫度并將其轉(zhuǎn)換成電壓信號(hào),由于轉(zhuǎn)換后的電壓信號(hào)較微弱,所以要先經(jīng)過放大電路的放大,然后再送入模數(shù)轉(zhuǎn)換模塊轉(zhuǎn)換成數(shù)字信號(hào),轉(zhuǎn)換后的數(shù)字信號(hào)再送入處理器模塊,處理器模塊根據(jù)實(shí)際需要對(duì)數(shù)字量進(jìn)行處理,最后再送入顯示模塊顯示。其中選用LM35為溫度傳感器,放大電路選用LM385,選用ADC0809作為模數(shù)轉(zhuǎn)換模塊,選用常見的AT89C51單片機(jī)為控制核心,為了防止數(shù)碼管閃爍和節(jié)省單片機(jī)引腳,在單片機(jī)和數(shù)碼管之間接入74LS595帶驅(qū)動(dòng)、鎖存、移位寄存器的芯片實(shí)現(xiàn)串行輸入并行輸出。系統(tǒng)設(shè)計(jì)框圖如圖1所示。
圖1系統(tǒng)設(shè)計(jì)框圖
2系統(tǒng)硬件及功能電路設(shè)計(jì)
2.1集成運(yùn)放電路設(shè)計(jì)
2.1.1硬件簡(jiǎn)介
(1)LM35傳感器
LM35系列傳感器是精密集成電路溫度傳感器,其轉(zhuǎn)換電壓與攝氏溫度成正比,0℃時(shí)輸出為0V,每升高1℃,輸出電壓增加10mV,計(jì)算公式如下:
Vout_LM35(T)=10mV/℃×T℃(1)
因此,相對(duì)于按絕對(duì)溫標(biāo)校準(zhǔn)的線性溫度傳感器優(yōu)越得多,并且LM35系列傳感器生成制作時(shí)已校準(zhǔn),輸出電壓與攝氏溫度一一對(duì)應(yīng),使用極為方便。LM35傳感器有單電源和雙電源兩種接法,單電源供電模式下,在25℃時(shí)電流約為50mA,非常省電,所以該設(shè)計(jì)采用的是單電源供電模式。
(2)LM358放大器
LM358內(nèi)部包括兩個(gè)獨(dú)立的、高增益、內(nèi)部頻率補(bǔ)償?shù)碾p運(yùn)算放大電路,它也有單電源和雙電源兩種供電模式。功耗小,可用電池供電。
2.1.2實(shí)現(xiàn)電路
因?yàn)長(zhǎng)M35的輸出電壓是毫伏級(jí),而ADC0809的輸入電壓范圍為0~5V,雖然在ADC0809的電壓允許范圍內(nèi),但電壓信號(hào)較弱,直接進(jìn)行模數(shù)轉(zhuǎn)換會(huì)導(dǎo)致數(shù)字量太小、精度低等不足,因此需要經(jīng)過放大后再輸入到ADC0809進(jìn)行轉(zhuǎn)換。放大10倍后,LM35的輸出電壓范圍為0~0.5V,測(cè)溫范圍為0~50℃,完全可以滿足日常生活的需要,所以設(shè)計(jì)放大倍數(shù)為10倍。根據(jù)同相輸入放大原理各電阻選擇阻值及連接情況如圖2所示。
圖2LM358連接電路圖
2.2A/D轉(zhuǎn)換電路
2.2.1硬件簡(jiǎn)介
(1)ADC0809ADC0809是CMOS逐次逼近型A/D轉(zhuǎn)換器,具有8路模擬量輸入通道,有轉(zhuǎn)換起停控制,模擬輸入電壓范圍為0V~+5V,轉(zhuǎn)換時(shí)間為100μs,可以與單片機(jī)直接連接。
(2)AT89C51單片機(jī)采用AT89C51作為處理器。AT89C51是一種高性能CMOS8位微處理器,帶有4KB閃爍可編程可擦除只讀存儲(chǔ)器,低電壓即可滿足其供電要求。該芯片采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,并與工業(yè)標(biāo)準(zhǔn)的MCS—51指令集和輸入輸出管腳相兼容。由于其多方面的優(yōu)越性能,為很多工控系統(tǒng)提供了一種性價(jià)比高且靈活的實(shí)現(xiàn)方案。
2.2.2實(shí)現(xiàn)電路
ADC0809的轉(zhuǎn)換時(shí)鐘由AT89C51的ALE信號(hào)提供。因?yàn)锳DC0809的最高時(shí)鐘頻率為640kHz,而ALE信號(hào)的頻率是晶振頻率的1/6,晶振頻率為12MHz,則ALE的頻率為2MHz,所以ALE信號(hào)要經(jīng)過四分頻后再送給ADC0809。本設(shè)計(jì)中采用74LS74雙觸發(fā)器作為分頻器。AT89C51通過P2.7引腳和讀寫信號(hào)線來控制ADC0809的鎖存信號(hào)ALE、啟動(dòng)信號(hào)START和輸出允許信號(hào)OE。由于本設(shè)計(jì)中只有一路輸入信號(hào),所以直接將C、B、A通道選擇地址線接地。ADC0809的轉(zhuǎn)換結(jié)束信號(hào)EOC與AT89C51的外中斷INT0連接,由于邏輯關(guān)系相反所以通過反相器連接。轉(zhuǎn)換的數(shù)字量通過D0~D7輸出。當(dāng)P2.7和寫信號(hào)同為低電平時(shí),鎖存信號(hào)ALE和啟動(dòng)信號(hào)START同時(shí)有效,鎖存的同時(shí)啟動(dòng);當(dāng)要讀取轉(zhuǎn)換結(jié)果時(shí),只需要P2.7和讀信號(hào)同時(shí)為低電平,輸出允許信號(hào)OE有效,CPU響應(yīng)中斷后,在中斷服務(wù)程序中通過讀操作來取得轉(zhuǎn)換的結(jié)果。根據(jù)邏輯關(guān)系連接方式如圖3所示。
圖3單片機(jī)與ADC0809的電路連接圖
2.3顯示電路
2.3.1硬件簡(jiǎn)介
(1)數(shù)碼管
發(fā)光二極管顯示器又叫LED顯示器,也稱為數(shù)碼管,其價(jià)格低廉、功耗較小、性能可靠。由于該設(shè)計(jì)的測(cè)溫范圍是0~50℃,精確到一位小數(shù),所以采用3位八段數(shù)碼管,分別用來顯示溫度的十位、個(gè)位和小數(shù)位。本設(shè)計(jì)中采用的是共陰極數(shù)碼管。
(2)74LS595帶鎖存移位寄存器
74LS595是帶有鎖存功能的寄存器,內(nèi)含八位串入、串/并出移位寄存器和八位三態(tài)輸出鎖存器。寄存器和鎖存器分別有各自的時(shí)鐘輸入脈沖SH_CP和ST_CP,都是上升沿有效。由于具有數(shù)據(jù)鎖存寄存器,在移位的過程中可以使輸出端的數(shù)據(jù)保持不變,這在串行速度慢的場(chǎng)合很有用處,使數(shù)碼管沒有閃爍感,并且有較強(qiáng)的驅(qū)動(dòng)能力,代替了專用的高成本的LED驅(qū)動(dòng)器。74LS595只需3條控制線就可以完成8路信號(hào)的輸出,直接控制數(shù)碼管的8個(gè)段,有利于節(jié)省單片機(jī)的I/O端口,便于以后擴(kuò)展。
2.3.2實(shí)現(xiàn)電路
該部分采用74LS595實(shí)現(xiàn)LED的靜態(tài)顯示。每個(gè)74LS595控制一位數(shù)碼管,將74LS595的8個(gè)并行輸出端和每位數(shù)碼管的段選線相連,所以需要3個(gè)74LS595。這樣每位數(shù)碼管可以獨(dú)立顯示,在同一時(shí)間里可以分別顯示不同的字符。雖然占用的外設(shè)芯片資源較多,成本較高,對(duì)于驅(qū)動(dòng)顯示多位數(shù)碼管不利,但是它的編程簡(jiǎn)單,顯示亮度高,占用的單片機(jī)引腳少,對(duì)于數(shù)碼管位數(shù)不高的情況是不錯(cuò)的選擇。
每個(gè)74LS595的串行輸出口Q7′和下一個(gè)74LS595的串行輸入口DS相連。數(shù)據(jù)從DS口送入74LS595,在每個(gè)SH_CP的上升沿,DS口上的數(shù)據(jù)移入寄存器,在SH_CP的第9個(gè)上升沿,數(shù)據(jù)開始從Q7′移出,這樣數(shù)據(jù)便移入下一個(gè)74LS595。數(shù)據(jù)輸入完畢后,給ST_CP一個(gè)上升沿,因?yàn)檩敵鲈试S控制端OE一直是低電平允許輸出,所以數(shù)據(jù)即從并口Q0~Q7輸出到數(shù)碼管,實(shí)現(xiàn)數(shù)據(jù)的顯示。電路連接圖如圖4所示。
圖4顯示電路圖
3系統(tǒng)軟件設(shè)計(jì)
3.1程序流程圖
在主程序中實(shí)現(xiàn)對(duì)中斷的設(shè)置,數(shù)據(jù)的處理以及顯示,在中斷程序中實(shí)現(xiàn)對(duì)數(shù)據(jù)的讀取。因?yàn)閿?shù)據(jù)的處理需要一定的時(shí)間,為防止處理過程中中斷的出現(xiàn)使數(shù)據(jù)出現(xiàn)不一致的情況,所以數(shù)據(jù)處理之前先關(guān)中斷,處理完后再開中斷。主程序流程圖和中斷流程圖分別如圖5、圖6所示。
3.2顯示驅(qū)動(dòng)程序設(shè)計(jì)
該系統(tǒng)軟件部分是在Kiel公司的μVision集成開發(fā)環(huán)境下采用C51語(yǔ)言編寫開發(fā)的。AT89C51的P0、P2口作為外部擴(kuò)展使用,P2口對(duì)應(yīng)高位地址,P0口對(duì)應(yīng)低位地址,P0口同時(shí)也作為數(shù)據(jù)線。用地址指針XBYTE定義,在使用該指針時(shí)要把a(bǔ)bsacc.h頭文件引入到程序中。本設(shè)計(jì)中只使用P2.7端口控制ADC0809,P0只是作為數(shù)據(jù)接口。根據(jù)電路的設(shè)計(jì)定義XBYTE[0x7FFF](只要確保P2.7為低電平,其他任意設(shè)置)。
根據(jù)LM35的輸出電壓和溫度的關(guān)系,0~50℃對(duì)應(yīng)0~0.5V,通過LM358放大10倍后對(duì)應(yīng)0~5V,再通過ADC0809轉(zhuǎn)換后對(duì)應(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)換得到的溫度值進(jìn)行十位、個(gè)位和小數(shù)位的拆分。因?yàn)榈玫降臏囟戎凳歉↑c(diǎn)數(shù),直接取出難以使用,為了便于利用拆分?jǐn)U大10倍后再取整,這樣原來的十位、個(gè)位和小數(shù)位分別對(duì)應(yīng)變換后的百位、十位和個(gè)位。因?yàn)橹虚g一位需要顯示小數(shù)點(diǎn)所以在送入數(shù)碼管之前先和0X10相與。部分C51程序如下:
該設(shè)計(jì)實(shí)現(xiàn)了基于74LS595驅(qū)動(dòng)的溫度采集與顯示,經(jīng)過實(shí)測(cè),該測(cè)溫系統(tǒng)工作穩(wěn)定,靈敏度高。此外,該系統(tǒng)所用器件均為常規(guī)器件,成本低廉,有較高的應(yīng)用價(jià)值。雖然該系統(tǒng)只對(duì)溫度進(jìn)行了采集,但是稍加改動(dòng),即可以很方便地?cái)U(kuò)展為集溫度采集、控制為一體的產(chǎn)品,還可以實(shí)現(xiàn)利用異步串行接口與PC機(jī)進(jìn)行數(shù)據(jù)通信,把采集到的溫度等值保存到PC機(jī)中。
74ls595相關(guān)文章:74ls595應(yīng)用電路圖大全(五款74ls595驅(qū)動(dòng)數(shù)碼管/計(jì)時(shí)顯示/超聲波測(cè)距儀電路)
74ls595相關(guān)下載:74ls595芯片中文資料
評(píng)論