如題 51單片機設(shè)計,內(nèi)有文檔代碼解釋
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png (10.09 KB, 下載次數(shù): 11)
下載附件
2019-6-25 03:32 上傳
本文介紹的是一個由單片機構(gòu)成的溫度控制系統(tǒng),主要用來提供測溫的解決方案,同時還能實時監(jiān)控溫度變化趨勢,以及報警功能。它利用STC89C52RC單片機,DS18B20,蜂鳴器報警電路和LCD1602來實現(xiàn)溫度檢測控制功能。溫度檢測是使用的DS18B20溫度傳感器,將檢測得到的溫度通過單片機單總線的協(xié)議讀取并將其顯示在LCD1602液晶屏上。除此之外,它還能通過按鍵設(shè)置溫度的上限值,如果溫度超過上限,則蜂鳴器報警,大大提高了系統(tǒng)的安全性。本文在后續(xù)章節(jié)詳細(xì)介紹了系統(tǒng)的總體方案設(shè)計,硬件設(shè)計,軟件設(shè)計等。
傳感器主要大體經(jīng)過了三個發(fā)展階段:模擬集成溫度傳感器。該傳感器是采用硅半導(dǎo)體集成工藝制成,因此亦稱硅傳感器或單片集成溫度傳感器。此種傳感器具有功能單一(僅測量溫度)、測溫誤差小、價格低、響應(yīng)速度快、傳輸距離遠(yuǎn)、體積小、微功耗等,適合遠(yuǎn)距離測溫、控溫,不需要進(jìn)行非線性校準(zhǔn),外圍電路簡單。它是目前在國內(nèi)外應(yīng)用最為普遍的一種集成傳感器,典型產(chǎn)品有AD590、AD592、TMP17、LM135等;模擬集成溫度控制器。模擬集成溫度控制器主要包括溫控開關(guān)、可編程溫度控制器,典型產(chǎn)品有LM56、AD22105和MAX6509。某些增強型集成溫度控制器(例如TC652/653)中還包含了A/D轉(zhuǎn)換器以及固化好的程序,這與智能溫度傳感器有某些相似之處。但它自成系統(tǒng),工作時并不受微處理器的控制,這是二者的主要區(qū)別;智能溫度傳感器。智能溫度傳感器(亦稱數(shù)字溫度傳感器)是在20世紀(jì)90年代中期問世的。它是微電子技術(shù)、計算機技術(shù)和自動測試技術(shù)(ATE)的結(jié)晶。智能溫度傳感器內(nèi)部都包含溫度傳感器、A/D轉(zhuǎn)換器、信號處理器、存儲器(或寄存器)和接口電路。有的產(chǎn)品還帶多路選擇器、中央控制器(CPU)、隨機存取存儲器(RAM)和只讀存儲器(ROM)。智能溫度傳感器的特點是能輸出溫度數(shù)據(jù)及相關(guān)的溫度控制量,適配各種微控制器(MCU);并且它是在硬件的基礎(chǔ)上通過軟件來實現(xiàn)測試功能的,其智能化程度也取決于軟件的開發(fā)水平。
系統(tǒng)總體方案設(shè)計溫度檢測系統(tǒng)有著共同的特點:測量點多、環(huán)境復(fù)雜、布線分散、現(xiàn)場離監(jiān)控室遠(yuǎn)等。若采用一般溫度傳感器采集溫度信號,則需要設(shè)計信號調(diào)理電路、A/D 轉(zhuǎn)換及相應(yīng)的接口電路,才能把傳感器輸出的模擬信號轉(zhuǎn)換成數(shù)字信號送到計算機去處理。這樣,由于各種因素會造成檢測系統(tǒng)較大的偏差;又因為檢測環(huán)境復(fù)雜、測量點多、信號傳輸距離遠(yuǎn)及各種干擾的影響,會使檢測系統(tǒng)的穩(wěn)定性和可靠性下降。所以溫度檢測系統(tǒng)的設(shè)計的關(guān)鍵在于兩部分:溫度傳感器的選擇和主控單元的設(shè)計。溫度傳感器應(yīng)用范圍廣泛、使用數(shù)量龐大,也高居各類傳感器之首。 2.1、傳感器部分方案一:采用熱敏電阻,利用其感溫效應(yīng),可滿足40攝氏度至90攝氏度測量范圍,但熱敏電阻精度、重復(fù)性、可靠性較差,對于檢測1攝氏度的信號是不適用的。而且在溫度測量系統(tǒng)中,采用單片溫度傳感器,比如AD590,LM35等。但這些芯片輸出的都是模擬信號,必須經(jīng)過A/D轉(zhuǎn)換后才能送給計算機,這樣就使得測溫裝置的結(jié)構(gòu)較復(fù)雜,一定程度上也增加了軟件實現(xiàn)的難度。 方案二:在溫度控制系統(tǒng)中,傳統(tǒng)的測溫方法是將模擬信號遠(yuǎn)距離采樣進(jìn)行A/D轉(zhuǎn)換,而為了獲得較高的測溫精度,就必須采用措施解決由長線傳輸、放大電路零點漂移等造成的誤差補償問題。采用數(shù)字溫度芯片DS18B20測量溫度,輸出信號全數(shù)字化,便于單片機處理及控制,省去傳統(tǒng)的測溫方法的很多外圍電路。且該芯片的物理化學(xué)性很穩(wěn)定,它能用做工業(yè)測溫元件,此元件線形較好。在0—100攝氏度時,最大線形偏差小于1攝氏度。DS18B20的最大特點之一采用了單總線的數(shù)據(jù)傳輸,由數(shù)字溫度計DS1820和微控制器STC89C52RC構(gòu)成的溫度測第一章總體設(shè)計方案4量裝置,它直接輸出溫度的數(shù)字信號,可直接與計算機連接。這樣,測溫系統(tǒng)的結(jié)構(gòu)就比較簡單,體積也不大,且由于STC89C52RC可以帶多個DSB1820,可實現(xiàn)多點測量,輕松的組建傳感器網(wǎng)絡(luò),本次設(shè)計用于大棚溫度檢測比較適合方便。 2.2、主控制部分方案一:此方案采用PC機實現(xiàn),它可在線編程,可在線仿真的功能,這讓調(diào)試變得方便,且人機交互友好。但是PC機輸出信號不能直接與DS18B20通信,需要通過RS232電平轉(zhuǎn)換兼容,硬件的合成在線調(diào)試,較為繁瑣,很不簡便。而且在一些環(huán)境比較惡劣的場合,PC機的體積大,攜帶安裝不方便,性能不穩(wěn)定,給工程帶來很多麻煩。 方案二:此方案采用STC89C52RC八位單片機實現(xiàn)。單片機軟件編程的自由度大,可通過編程實現(xiàn)各種各樣的算術(shù)算法和邏輯控制。而且體積小,硬件實現(xiàn)簡單,安裝方便。既可以單獨對多DS18B20控制工作,還可以與PC機通信,運用主從分布式思想,由一臺上位機(PC微型計算機),下位機(單片機)實現(xiàn)溫度數(shù)據(jù)采集,組成兩級分布式溫度測量的巡回檢測系統(tǒng),實現(xiàn)遠(yuǎn)程控制。另外STC89S51在農(nóng)業(yè)控制上也有著廣泛的應(yīng)用,編程技術(shù)及外圍功能電路的配合使用都很成熟。 總體設(shè)計綜上所述,溫度傳感器以及主控部分都采用第二方案。首先由溫度傳感器DS18B20采集溫度數(shù)據(jù),經(jīng)單片機I/O模擬單總線讀取后送入STC89C52RC單片機中進(jìn)行運算處理,并LCD1602液晶顯示當(dāng)前溫度,同時與鍵盤輸入的設(shè)定溫度值(上限)進(jìn)行比較,由單片機控制是否發(fā)出報警信號。在整個過程中,溫度始終都能得以顯示。設(shè)定溫度過程中顯示設(shè)定溫度值,以便于操作。 本系統(tǒng)的總體設(shè)計方框圖如圖2-1所示,它主要由五部分組成: ①主控制部分主芯片采用單片機STC89C52RC(包括時鐘和復(fù)位電路); ②顯示部分采用3位LED數(shù)碼管以動態(tài)掃描方式實現(xiàn)溫度顯示; ③溫度采集部分采用DS18B20溫度傳感器; ④按鍵輸入部分主要功能是實現(xiàn)設(shè)定溫度值的輸入; ⑤人體紅外傳感器用來檢測人體信息 DS18B20檢測溫度,將溫度信息傳送到單片機內(nèi),單片機檢測到溫度信號,對其進(jìn)行處理,將處理得到的數(shù)據(jù)在LCD1602液晶上顯示出來。可以通過按鍵來設(shè)置溫度的上下限值,當(dāng)溫度超過范圍時,單片機控制蜂鳴器報警,同時當(dāng)人體紅外傳感器檢測到人體時,也會觸發(fā)蜂鳴器報警。 圖2-1 系統(tǒng)總體設(shè)計框圖
3、系統(tǒng)硬件設(shè)計硬件電路部分包括51單片機主控模塊的設(shè)計,單片機最小系統(tǒng)的設(shè)計,DS18B20溫度檢測模塊,按鍵設(shè)置模塊,蜂鳴器報警模塊,LCD1602液晶顯示模塊。各模塊電路的詳細(xì)介紹將在后續(xù)給出。 主程序流程圖設(shè)計如下圖4-2所示是系統(tǒng)主程序流程圖。 
圖4-2 主程序流程圖 如圖4.2所示,程序開始后,進(jìn)行初始化,初始化包括LCD1602液晶初始化,DS18B20初始化;然后在LCD1602液晶上顯示固定信息,再給DS18B20溫度傳感器發(fā)送讀取數(shù)據(jù)命令,則模塊開始測溫。然后進(jìn)入主循環(huán),顯示當(dāng)前溫度,再進(jìn)入按鍵設(shè)置子程序設(shè)置當(dāng)前溫度上限值,最后比較當(dāng)前溫度是否超過范圍,若是則蜂鳴器報警,否則不報警。 4.3各子程序設(shè)計子程序設(shè)計包括按鍵設(shè)置子程序、DS18B20溫度檢測子程序、LCD1602液晶顯示子程序、。各子程序的具體介紹將在如下部分詳細(xì)給出。 4.3.1按鍵設(shè)置子程序

圖4-3 按鍵設(shè)置子程序流程圖 如圖4-3所示為按鍵設(shè)置子程序流程圖,程序當(dāng)分別按下按鍵K1、K2時,則上限值Tmpup加1和減1,然后結(jié)束,Tmpup表示溫度上限,程序當(dāng)分別按下按鍵K3、K4時,則上限值Tmpdowm加1和減1,然后結(jié)束,Tmpdowm表示溫度下限。
如上為DS18B20讀取溫度子函數(shù),read_18b20()是用來讀取DS18B20溫度傳感器中的一字節(jié)數(shù)據(jù),通過DQ數(shù)據(jù)總線時序來實現(xiàn)。read_temp()是用來處理從DS18B20讀取的數(shù)據(jù)并轉(zhuǎn)換成溫度值的函數(shù),通過調(diào)用read_temp()函數(shù)得到兩字節(jié)溫度數(shù)據(jù),分為高8位和低8位,將其整合在一起得到溫度完整的數(shù)據(jù)。
如上LCD_Init()函數(shù)為1602液晶初始化程序,write_com(0x38)用來設(shè)置初始化顯示模式為0x38,write_com(0x0c)用來顯示開和光標(biāo)設(shè)置,write_com(0x06)用來顯示光標(biāo)移動設(shè)置。Wite_com()用來寫命令,write_data()用來寫數(shù)據(jù),write_string()則用來給1602寫入顯示的字符串?dāng)?shù)據(jù)。 如上為按鍵設(shè)置子程序,當(dāng)按鍵KEY0或KEY1、KEY2或KEY3按下時LCD顯示的設(shè)置上限值也會隨之加減,改變報警溫度上限,從而實時判斷當(dāng)前溫度,當(dāng)溫度超出范圍則蜂鳴器報警。 附錄一 系統(tǒng)原理圖

全部資料51hei下載地址:
設(shè)計方案.7z
(666.59 KB, 下載次數(shù): 65)
2019-6-25 03:36 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|