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