單片機(jī)溫度控制
《單片機(jī)溫度控制》由會(huì)員分享,可在線閱讀,更多相關(guān)《單片機(jī)溫度控制(28頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、摘 要 隨著電子產(chǎn)品向智能化和微型化的不斷發(fā)展,單片機(jī)已成為電子產(chǎn)品研制和開(kāi)發(fā) 中首選的控制器。為了更好地推廣單片機(jī)在實(shí)際生活和生產(chǎn)中的應(yīng)用,本文從硬件和 軟件兩個(gè)方面介紹了基于 AT89C52 單片機(jī)溫度控制系統(tǒng)的設(shè)計(jì),以實(shí)現(xiàn)系統(tǒng)能自主 調(diào)節(jié)溫度的功能。 該系統(tǒng)的硬件部分由溫度采集模塊、鍵盤(pán)掃描及按鍵處理模塊、溫度顯示模塊、 繼電器控制模塊組成。其中溫度采集模塊采用溫度傳感器DS18B20來(lái)采集當(dāng)前溫度, 并對(duì)采集的溫度信號(hào)進(jìn)行AD轉(zhuǎn)換以數(shù)字信號(hào)的方式傳送給單片機(jī)。鍵盤(pán)掃描及按 鍵處理模塊由34矩陣鍵盤(pán)、反相驅(qū)動(dòng)器74LS06、顯示驅(qū)動(dòng)芯片8279組成,完成掃 描鍵盤(pán),形成鍵碼,并將其送至
2、單片機(jī)處理。溫度顯示模塊由顯示驅(qū)動(dòng)芯片8279和 數(shù)碼管組成,輸入的溫度值進(jìn)行比較,并通過(guò)液晶顯示器LCD顯示出來(lái)。繼電器控制 模塊由繼電器和升溫電爐、降溫風(fēng)扇組成。如果采集溫度低于設(shè)置溫度,系統(tǒng)將通 過(guò)繼電器模塊自動(dòng)控制升溫;如果采集溫度高于設(shè)置溫度,系統(tǒng)將通過(guò)繼電器模塊 自動(dòng)控制降溫。 該系統(tǒng)的軟件設(shè)計(jì)部分由系統(tǒng)主程序流程框圖、溫度處理子程序流程框圖、鍵 盤(pán)處理子程序框圖組成,其中系統(tǒng)主程序由初始化程序、掃描鍵盤(pán)程序及溫度處理 子程序組成。溫度采集子程序由對(duì)溫度傳感器的初始化和溫度處理程序組成。鍵盤(pán) 處理子程序由8279芯片的初始化程序及掃描處理程序組成。 關(guān)鍵詞:?jiǎn)纹瑱C(jī)AT89C52;溫
3、度控制;溫度傳感器DS18B20;液晶顯示器LCD 。 ABSTRACT With the electronic products developing to intelligent and miniaturization, single chip has become the first chosen controller which is used to develop and explore the electronic product. In order to promote single chip applicating in real life and production, th
4、e paper will introduce a temperature control system which is based on a kind of single chip AT89C52, and it can achieve the function that the system can regulate the temperature independently. The hardware of the system by the temperature acquisition module, keyboard scan and key processing module,
5、temperature display module, relay control module. Wherein the temperature sensor DS18B20 temperature acquisition module to acquire the current temperature, and the acquisition of the temperature signal to the A / D converted digital signal is transferred to the microcontroller. Keyboard scan and key
6、 processing module consists of a 3 4 matrix keyboard, inverting driver 74LS06 display driver chip 8279, to complete the scan keyboard, a key code, and sent to the microcontroller processing. The temperature display module consists of a display driver chip 8279 and digital tubes, the input temperatu
7、re values are compared, and through the liquid crystal display LCD display. Relay control module relay and heating furnace, cooling fan. If the acquisition temperature is below the set temperature, the system will automatically controlled by the relay module temperature; the collecting temperature i
8、s higher than the set temperature, the system will automatically control the cooling relay module. Software design of the system by the system main program flow block diagram temperature processing the subroutine flow diagram, keyboard handling subroutine block diagram form, the system main program
9、initialization procedure, scanning keyboard program and temperature processing subroutines.The temperature acquisition subroutine by the temperature sensor the initialization and temperature handler. The keyboard handling routine by the 8279 chip initialization procedures and scanning process. Keywo
10、rds: Single Chip AT89C52;Temperature Control;Temperature Sensor- DS18B20;Liquid Crystal Display. 目 錄 緒 論 1 選題背景與意義 .......................................................1 選題介紹 .............................................................1 1 單片機(jī)溫度控制系統(tǒng)總體設(shè)計(jì) .........................................2
11、1.1 系統(tǒng)的特征 .......................................................2 1.2 系統(tǒng)的設(shè)計(jì)目標(biāo)和原則 .............................................2 1.3 系統(tǒng)模塊設(shè)計(jì) .....................................................2 1.4 系統(tǒng)層次框圖 .....................................................2 2 硬件系統(tǒng)設(shè)計(jì) ..............................
12、..........................4 2.1 單片系統(tǒng)設(shè)計(jì) .....................................................4 2.1.1 主要性能參數(shù) .................................................4 2.1.2 功能特性概述 .................................................5 2.1.3 管腳說(shuō)明 .....................................................5 2.1.4 定時(shí)與計(jì)數(shù)
13、...................................................6 2.1.5 復(fù)位電路 .....................................................6 2.1.6 時(shí)鐘電路 .....................................................6 2.2 溫度傳感模塊的設(shè)計(jì) ...............................................7 2.2.1 DS18B20 的性能特點(diǎn) ................................
14、............7 2.2.2 DS18B20 控制方法 ..............................................7 2.2.3 DS18B20 使用中注意事項(xiàng) ........................................8 2.2.4 高速暫存存儲(chǔ)器 ...............................................9 2.3 鍵盤(pán)顯示模塊的設(shè)計(jì) ...............................................9 2.3.1 鍵盤(pán)顯示驅(qū)動(dòng)芯片 8279..........
15、..............................10 2.3.2 8279 內(nèi)部結(jié)構(gòu) ................................................11 2.3.3 鍵盤(pán)和數(shù)碼管 ................................................12 2.4 繼電器控制模塊的設(shè)計(jì) ............................................12 2.4.1 繼電器接點(diǎn)說(shuō)明 ..............................................13 2.4.2 繼電器控制
16、升溫 ..............................................13 2.4.3 繼電器控制降溫 ...............................................13 3 系統(tǒng)軟件設(shè)計(jì) ......................................................14 3.1 系統(tǒng)主程序流程圖 ................................................14 3.2 鍵盤(pán)處理子程序 ..........................................
17、........15 3.3 DS18B20 子程序圖 ...............................................15 體 會(huì) .................................................................17 致 謝 .................................................................18 參考文獻(xiàn) ...............................................................19 附 錄 ...
18、..............................................................20 緒 論 選題背景與意義 在生產(chǎn)的管理過(guò)程中,溫度的控制是十分常見(jiàn)的。國(guó)內(nèi)已相繼出現(xiàn)各種以微機(jī) 為核心的溫度控制系統(tǒng)。這種系統(tǒng)控制精度高、重復(fù)性好、自動(dòng)化程度高。 在日常生活中,人們?yōu)榱藫碛幸粋€(gè)更舒適的生活環(huán)境,往往需要室內(nèi)擁有一個(gè) 合適的溫度,而單片機(jī)的準(zhǔn)確性高、價(jià)格低、功耗低等一系列優(yōu)點(diǎn),可結(jié)合升溫和 降溫設(shè)備,有效的應(yīng)用到實(shí)際生活中。 單片機(jī)溫度控制系統(tǒng)是單片機(jī)控制的一項(xiàng)簡(jiǎn)單應(yīng)用。近幾年來(lái)單片機(jī)因其獨(dú)特 的,方便,快捷的優(yōu)勢(shì)被廣泛的應(yīng)用于各個(gè)領(lǐng)域之中。 選題簡(jiǎn)
19、介 課題名稱:?jiǎn)纹瑱C(jī)溫度控制系統(tǒng)設(shè)計(jì) 主要任務(wù):將溫度控制在設(shè)定的溫度值,設(shè)定范圍為0-99度,針對(duì)在生產(chǎn)和日 常生活中溫度智能化控制系統(tǒng)的實(shí)現(xiàn)。 開(kāi)發(fā)環(huán)境:本環(huán)境溫度控制系統(tǒng)的軟件部分是通過(guò)KEIL進(jìn)行編譯。 技術(shù)指標(biāo): (1)以AT89C52系列單片機(jī)為核心部件 (2)以數(shù)字電路和模擬電路為硬件基礎(chǔ) (3)以C語(yǔ)言為軟件實(shí)現(xiàn)語(yǔ)言 功能概述:在該環(huán)境溫度控制系統(tǒng)中,單片機(jī)作為核心部件進(jìn)行檢測(cè)控制,增 強(qiáng)了設(shè)計(jì)的通用性,適時(shí)性。在該環(huán)境溫度控制系統(tǒng)中溫度檢測(cè)采用 DS18B20 溫度 傳感器,它不僅具有較高的精度,而且適用電壓寬。同時(shí)采用了 3X4 矩陣掃描鍵盤(pán) 輸入,顯示設(shè)備等外圍擴(kuò)展芯片。
20、軟件部分采用流程圖來(lái)表示。 1 單片機(jī)溫度控制系統(tǒng)總體設(shè)計(jì) 1.1 系統(tǒng)的特征 從功能上講單片機(jī)溫度控制系統(tǒng)應(yīng)該能夠快速提供真實(shí)準(zhǔn)確的溫度數(shù)據(jù),并能 實(shí)現(xiàn)斷開(kāi)操作,從而使糧倉(cāng)保持在一個(gè)恒定的溫度。同時(shí)單片機(jī)溫度控制系統(tǒng)也具 有如下特征: (1) 糧倉(cāng)溫度需要不間斷測(cè)量。 (2) 必須有效地測(cè)量的精度。 (3) 系統(tǒng)反應(yīng)時(shí)間短,穩(wěn)定性高。 (4) 執(zhí)行裝置可靠 。 1.2 系統(tǒng)的設(shè)計(jì)目標(biāo)和原則 單片機(jī)溫度控制系統(tǒng)的建立是一個(gè)系統(tǒng)工程,包括硬件和軟件兩個(gè)方面,從技 術(shù)角度看,系統(tǒng)設(shè)計(jì)必須進(jìn)行充分的需求調(diào)查,對(duì)運(yùn)作機(jī)制、信息流程、現(xiàn)有儀器 狀態(tài)、用戶要求等做詳盡的了解,在從系統(tǒng)工程的角度出發(fā)、采用快
21、速原型法,進(jìn) 行從上而下的系統(tǒng)詳細(xì)設(shè)計(jì)。根據(jù)單片機(jī)溫度控制系統(tǒng)的特點(diǎn),確定如下設(shè)計(jì)原則: (1) 實(shí)用性原則:要求最大限度地滿足實(shí)際工作的需要,充分考慮其實(shí)用性。 (2) 可靠性原則:設(shè)計(jì)要簡(jiǎn)潔,保證長(zhǎng)時(shí)間工作的可靠性。 (3) 準(zhǔn)確性原則:保證測(cè)量數(shù)據(jù)的準(zhǔn)確性。 1.3 系統(tǒng)模塊設(shè)計(jì) (1) 單片機(jī)控制模塊 (2) 溫度傳感模塊 (3) 鍵盤(pán)、顯示模塊 (4) 繼電器控制模塊 1.4 系統(tǒng)層次框圖 本文所研究的溫度控制系統(tǒng)硬件部分按功能大致可以分為以下幾個(gè)部分:?jiǎn)纹?機(jī)主控模塊、溫度傳感模塊、鍵盤(pán)顯示模塊、繼電器控制模塊。其中,溫度控制系 統(tǒng)以 AT89C52 單片機(jī)為核心,并擴(kuò)展外部存儲(chǔ)
22、器構(gòu)成主控模塊。利用溫度傳感器 DS18B20 檢測(cè)并轉(zhuǎn)換成微弱的電壓信號(hào)。它具有精度高可靠性好和能直接將模擬 被測(cè)量轉(zhuǎn)換成數(shù)字量輸出,因此不需要加 A/D 轉(zhuǎn)換,電路更加簡(jiǎn)單。鍵盤(pán)掃描及顯 示模塊主要由顯示驅(qū)動(dòng)芯片 8279、反相驅(qū)動(dòng)器 74LS06、數(shù)碼管和 34 組成,完成了 溫度設(shè)定值的輸入和顯示溫度的功能。繼電器控制模塊完成對(duì)升溫電爐和降溫風(fēng)扇 的控制。對(duì)上述各項(xiàng)功能需求進(jìn)行集中、分塊、按照結(jié)構(gòu)化程序設(shè)計(jì)的要求,得到 溫度測(cè)量保護(hù)系統(tǒng)層次框圖,如圖 1-1 所示。 圖 1-1 單片機(jī)溫度控制系統(tǒng)層次框圖 2 單片機(jī)溫度控制系統(tǒng)的電路設(shè)計(jì) 單片機(jī)溫度控制系統(tǒng)的電路設(shè)計(jì)在整個(gè)系統(tǒng)中占有非
23、常重要的地位,電路結(jié)構(gòu) 設(shè)計(jì)的好壞將直接對(duì)應(yīng)用系統(tǒng)的效率以及實(shí)現(xiàn)的效果產(chǎn)生的影響。合理的電路結(jié)構(gòu) 設(shè)計(jì)可以大大提高工作的效率,保證數(shù)據(jù)系統(tǒng)的可靠性。同時(shí)合理的電路結(jié)構(gòu)也將 有利于程序的實(shí)現(xiàn)。 2.1 單片機(jī)模塊 單片機(jī)模塊主要由單片機(jī)芯片 AT89C52 組成,本模塊負(fù)責(zé)與溫度傳感器、鍵盤(pán) 顯示驅(qū)動(dòng)傳遞命令和數(shù)據(jù),并進(jìn)行數(shù)據(jù)的處理。單片機(jī)從 8279 讀入鍵盤(pán)掃描得到的 溫度設(shè)定值,并將數(shù)據(jù)保存在存儲(chǔ)器某一單元。單片機(jī)還負(fù)責(zé)從 DS18B20 的數(shù)據(jù)引 腳讀入實(shí)際的溫度值,保存在某一單元。最后,單片機(jī)對(duì)兩者進(jìn)行比較,從而確定 執(zhí)行的操作。單片機(jī)引腳圖如圖 2-1 所示 圖 2-1 89C52單
24、片機(jī)引腳圖 2.1.1 主要性能參數(shù) 與 MCS-51 產(chǎn)品指令和引腳完全兼容 256*8 位內(nèi)部 RAM 32 可編程 I/O 線 3 個(gè) 16 位定時(shí)器/計(jì)數(shù)器 8 個(gè)中斷源 可編程串行 UART 通道 片內(nèi)振蕩器和時(shí)鐘電路 8K 字節(jié)可重擦寫(xiě) flash 閃爍存儲(chǔ)器 全靜態(tài)工作:0Hz-24Hz 三級(jí)加密程序存儲(chǔ)器 1000 次擦寫(xiě)周期 2.1.2 功能特性概述 AT89C52 具有以下標(biāo)準(zhǔn)功能: 8k 字節(jié) Flash,256 字節(jié) RAM,32 位 I/O 口線, 看門(mén)狗定時(shí)器,2 個(gè)數(shù)據(jù)指針,三個(gè) 16 位定
25、時(shí)器 /計(jì)數(shù)器,一個(gè) 6 向量 2 級(jí)中斷結(jié) 構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。另外,AT89C52 可降至 0Hz 靜態(tài)邏輯操 作,支持 2 種軟件可選擇節(jié)電模式??臻e模式下,CPU 停止工作,允許 RAM、定時(shí)器 /計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM 內(nèi)容被保存,振蕩器被凍結(jié), 單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。 2.1.3 管腳說(shuō)明 (1) VCC:供電電壓。 (2) GND:接地。 (3) P0 口:P0 口為一個(gè) 8 位漏級(jí)開(kāi)路雙向 I/O 口,每腳可吸收 8TTL 門(mén)電流。當(dāng) P1 口的管腳第一次寫(xiě) 1 時(shí),被定義為高阻輸入。P0 口能
26、夠用于外部程序數(shù)據(jù)存儲(chǔ)器, 它可以被定義為數(shù)據(jù)/地址的第八位。在 FIASH 編程時(shí),P0 口作為原碼輸入口,當(dāng) FIASH 進(jìn)行校驗(yàn)時(shí),P0 輸出原碼,此時(shí) P0 外部必須被拉高。 (4) P1 口:P1 口是一個(gè)內(nèi)部提供上拉電阻的 8 位雙向 I/O 口,P1 口緩沖器能接 收輸出 4TTL 門(mén)電流。P1 口管腳寫(xiě)入 1 后,被內(nèi)部上拉為高電平,可用作輸入,P1 口被外部下拉為低電平時(shí),將輸出電流。在 FLASH 編程和校驗(yàn)時(shí),P1 口作為第八位 地址接收。 (5) P2 口:P2 口為一個(gè)內(nèi)部上拉電阻的 8 位雙向 I/O 口,P2 口緩沖器可接收, 輸出 4 個(gè) TTL 門(mén)電流,當(dāng)
27、 P2 口被寫(xiě)“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為 輸入。P2 口的管腳被外部拉低,將輸出電流,這是由于內(nèi)部上拉的緣故。P2 口當(dāng)用 于外部程序存儲(chǔ)器或 16 位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2 口輸出地址的高八 位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行 讀寫(xiě)時(shí),P2 口輸出其特殊功能寄存器的內(nèi)容。P2 口在 FLASH 編程和校驗(yàn)時(shí)接收高八 位地址信號(hào)和控制信號(hào)。 (6) P3 口:P3 口管腳是 8 個(gè)帶內(nèi)部上拉電阻的雙向 I/O 口,可接收輸出 4 個(gè) TTL 門(mén)電流。當(dāng) P3 口寫(xiě)入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入, 由
28、于外部下拉為低電平,P3 口將輸出電流,這是由于上拉的緣故。P3 口也可作為 AT89C52 的一些特殊功能口,管腳備選功能如下: P3.0 RXD(串行輸入口) P3.1 TXD(串行輸出口) P3.2 /INT0(外部中斷 0) P3.3 /INT1(外部中斷 1) P3.4 T0(記時(shí)器 0 外部輸入) P3.5 T1(記時(shí)器 1 外部輸入) P3.6 /WR(外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通) P3.7 /RD(外部數(shù)據(jù)存儲(chǔ)器讀選通) P3 口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。 (7) RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持 RST
29、 腳兩個(gè)機(jī)器周期的高電平。 (8) ALE/PROG:當(dāng)訪問(wèn)外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地 位字節(jié)。在 FLASH 編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE 端以不變的 頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的 1/6。因此它可用作對(duì)外部輸出 的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過(guò)一 個(gè) ALE 脈沖。如想禁止 ALE 的輸出可在 SFR8EH 地址上置 0。此時(shí), ALE 只有在執(zhí)行 MOVX,MOVC 指令時(shí) ALE 才起作用。另外,該引腳被略微拉高。如果微處理器在外部 執(zhí)行狀態(tài) ALE 禁止,置位無(wú)效。 (9) /PSE
30、N:外部程序存儲(chǔ)器的選通信號(hào)。在外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器 周期兩次/PSEN 有效。但在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),兩次有效的/PSEN 信號(hào)將不出現(xiàn)。 (10) /EA/VPP:當(dāng)/EA 保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000H- FFFFH)工作,不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式 1 時(shí),/EA 將內(nèi)部鎖定為 RESET;當(dāng)/EA 端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在 FLASH 編程期間,此引腳 也用于施加 12V 編程電源(VPP) 。 (11) XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。 (12) XTAL2:來(lái)自反向振蕩器的輸出。 2.1.
31、4 定時(shí)與記數(shù) AT89C52 單片機(jī)內(nèi)部設(shè)有 3 個(gè) 16 位的可編程定時(shí)器/計(jì)數(shù)器,簡(jiǎn)稱為定時(shí)器 O(T0)、定時(shí)器 l(T1)和定時(shí)器 2(T2)??删幊淌侵钙涔δ?如工作方式,定肘時(shí)間、 量程、啟動(dòng)方式等)均可由指令來(lái)確定和改變。在定時(shí)器/計(jì)數(shù)器中除了有 3 個(gè) 16 位 的計(jì)數(shù)器之外,還有兩個(gè)特殊功能寄存器(控制寄存器和方式寄存器)。 2.1.5 復(fù)位電路 AT89C52 單片機(jī)復(fù)位是使 CPU 和系統(tǒng)中的其他芯片處于一個(gè)確定的初始狀態(tài),無(wú) 論在系統(tǒng)剛開(kāi)始接通電源時(shí),還是在斷開(kāi)電源或者發(fā)生故障后都需要復(fù)位。單片機(jī) 的復(fù)位條件是在復(fù)位引腳 RST 加上持續(xù)的 2 個(gè)機(jī)器周期以上的高電位
32、。復(fù)位電路如 圖 2-2 所示 圖 2-2復(fù)位電路 2.1.6 時(shí)鐘電路 時(shí)鐘電路是系統(tǒng)的心臟,它控制著系統(tǒng)的工作節(jié)奏,時(shí)鐘頻率因型號(hào)而異,典 型值為 12MHz。AT89C52 單片機(jī)內(nèi)部有一個(gè)帶反饋的線形反相放大器,XTAL1,XTAL2 分別為反相器輸入和輸出端,外接晶振和電容組成震蕩器。震蕩器在加電以后延遲 一段時(shí)間(約 10ms)起振產(chǎn)生時(shí)鐘。時(shí)鐘電路如圖 2-3 所示 圖 2-3時(shí)鐘電路圖 2.2 溫度傳感模塊 3 溫度傳感模塊主要由單線數(shù)字溫度傳感器 DS18B20 組成,主要完成溫度的測(cè)量, 并將其轉(zhuǎn)換成數(shù)字量,傳送給單片機(jī)。溫度傳感模塊如圖 2-4 所示 圖 2-4 溫度傳感
33、模塊圖 2.2.1 DS18B20性能特點(diǎn) 采用單總線專用技術(shù),既可通過(guò)串行口線,也可通過(guò)其它 I/O 口線與微機(jī)接 口,無(wú)須經(jīng)過(guò)其它變換電路,直接輸出被測(cè)溫度值(9 位二進(jìn)制數(shù),含符號(hào)位)。 測(cè)溫范圍為-55-+125,測(cè)量分辨率為 0.0625。 內(nèi)含 64 位經(jīng)過(guò)激光修正的只讀存儲(chǔ)器 ROM。 適配各種單片機(jī)或系統(tǒng)機(jī)。 用戶可分別設(shè)定各路溫度的上、下限。 內(nèi)含寄生電源。 2.2.2 DS18B20控制方法 在硬件上,DS18B20 與單片機(jī)的連接有兩種方法,一種是 Vcc 接外部電源,GND 接地,I/O 與單片機(jī)的 I/O 線相連;另一種是用寄生電源供電,此時(shí) Vcc、GN
34、D 接地, I/O 接單片機(jī) I/O。無(wú)論是內(nèi)部寄生電源還是外部供電,I/O 口線要接 5K 左右的 上拉電阻。 DS18B20 有六條控制命令,如表 2-1 所示: 表 2-1 DS18B20的六條控制命令 2.2.3 DS18B20使用中注意事項(xiàng) DS18B20 雖然具有測(cè)溫系統(tǒng)簡(jiǎn)單、測(cè)溫精度高、連接方便、占用口線少等優(yōu)點(diǎn), 但在實(shí)際應(yīng)用中也應(yīng)注意以下幾方面的問(wèn)題: (1)每一次讀寫(xiě)之前都要對(duì) DS18B20 進(jìn)行復(fù)位,復(fù)位成功后發(fā)送一條 ROM 指 令,最后發(fā)送 RAM 指令,這樣才能對(duì) DS18B20 進(jìn)行預(yù)定的操作。復(fù)位要求主 CPU 將數(shù)據(jù)線下拉 500 us,然后釋放, DS18
35、B20 收到信號(hào)后等待16 60 us 左右,后 發(fā)出60240 us 的存在低脈沖,主 CPU 收到此信號(hào)表示復(fù)位成功。(所有的讀寫(xiě)時(shí) 序至少需要 60us ,且每個(gè)獨(dú)立的時(shí)序之間至少需要 1us 的恢復(fù)時(shí)間。在寫(xiě)時(shí)序時(shí), 主機(jī)將在下拉低總線 15us 之內(nèi)釋放總線,并向單總線器件寫(xiě) 1 ;若主機(jī)拉低總線 后能保持至少 60us 的低電平,則向單總線器件寫(xiě)0 。單總線僅在主機(jī)發(fā)出讀寫(xiě)時(shí) 序時(shí)才向主機(jī)傳送數(shù)據(jù),所以,當(dāng)主機(jī)向單總線器件發(fā)出讀數(shù)據(jù)指令后,必須馬上 產(chǎn)生讀時(shí)序,以便單總線器件能傳輸數(shù)據(jù)。) (2)在寫(xiě)數(shù)據(jù)時(shí),寫(xiě) 0 時(shí)單總線至少被拉低 60us, 寫(xiě) 1 時(shí),15us 內(nèi)就得 釋放
36、總線。 (3)轉(zhuǎn)化后得到的12 位數(shù)據(jù),存儲(chǔ)在 DS18B20 的兩個(gè)8 比特的RAM 中,二進(jìn) 制中的前面 5 位是符號(hào)位,如果測(cè)得的溫度大于 0 ,這 5 位為 0 ,只要將測(cè)到 的數(shù)值乘于0.0625 即可得到實(shí)際溫度;如果溫度小于0 ,這5 位為1 ,測(cè)到的數(shù)值 需要取反加 1 再乘于 0.0625 即可得到實(shí)際溫度。 (4)較小的硬件開(kāi)銷(xiāo)需要相對(duì)復(fù)雜的軟件進(jìn)行補(bǔ)償,由于 DS18B20 與微處理 器間采用串行數(shù)據(jù)傳送,因此,在對(duì) DS1820 進(jìn)行讀寫(xiě)編程時(shí),必須嚴(yán)格的保證讀 寫(xiě)時(shí)序,否則將無(wú)法讀取測(cè)溫結(jié)果。在使用PL/M 、 C 等高級(jí)語(yǔ)言進(jìn)行系統(tǒng)程序設(shè) 計(jì)時(shí),對(duì) DS18B20
37、操作部分最好采用匯編語(yǔ)言實(shí)現(xiàn)。 (5)在 DS18B20 的有關(guān)資料中均未提及單總線上所掛DS18B20 數(shù)量問(wèn)題,容 易使人誤認(rèn)為可以掛任意多個(gè) DS18B20 ,在實(shí)際應(yīng)用中并非如此。當(dāng)單總線上所掛 DS18B20 超過(guò)8 個(gè)時(shí),就需要解決微處理器的總線驅(qū)動(dòng)問(wèn)題,這一點(diǎn)在進(jìn)行多點(diǎn)測(cè) 指 令 約定代碼 操 作 說(shuō) 明 溫度轉(zhuǎn)換 44H 啟動(dòng) DS18B20 進(jìn)行溫度轉(zhuǎn)換 讀暫存器 BEH 讀暫存器 9 個(gè)字節(jié)內(nèi)容 寫(xiě)暫存器 4EH 將數(shù)據(jù)寫(xiě)入暫存器的 TH、TL 字節(jié) 復(fù)制暫存器 48H 把暫存器的 TH、TL 字節(jié)寫(xiě)到 E2RAM 中 重新調(diào) E2RAM B8H 把 E2RAM
38、 中的 TH、TL 字節(jié)寫(xiě)到暫存器 TH、TL 字節(jié) 讀電源供電方式 B4H 啟動(dòng) DS18B20 發(fā)送電源供電方式的信號(hào)給主 CPU 溫系統(tǒng)設(shè)計(jì)時(shí)要加以注意。 (6)連接DS18B20 的總線電纜是有長(zhǎng)度限制的。試驗(yàn)中,當(dāng)采用普通信號(hào)電纜 傳輸長(zhǎng)度超過(guò) 50m 時(shí),讀取的測(cè)溫?cái)?shù)據(jù)將發(fā)生錯(cuò)誤。當(dāng)將總線電纜改為雙絞線帶屏 蔽電纜時(shí),正常通訊距離可達(dá) 150m ,當(dāng)采用每米絞合次數(shù)更多的雙絞線帶屏蔽電 纜時(shí),正常通訊距離進(jìn)一步加長(zhǎng)。這種情況主要是由總線分布電容使信號(hào)波形產(chǎn)生 畸變?cè)斐傻摹R虼?,在?DS1B820 進(jìn)行長(zhǎng)距離測(cè)溫系統(tǒng)設(shè)計(jì)時(shí)要充分考慮總線分布 電容和阻抗匹配問(wèn)題。測(cè)溫電纜線建議采用屏
39、蔽 4 芯雙絞線,其中一對(duì)線接地線與 信號(hào)線,另一組接 VCC 和地線,屏蔽層在源端單點(diǎn)接地。 (7)在 DS18B20 測(cè)溫程序設(shè)計(jì)中,向 DS18B20 發(fā)出溫度轉(zhuǎn)換命令后,程序 總要等待 DS18B20 的返回信號(hào),一旦某個(gè) DS18B20 接觸不好斷線,當(dāng)程序讀該 DS18B20 時(shí),將沒(méi)有返回信號(hào),程序進(jìn)入死循環(huán)。這一點(diǎn)在進(jìn)行 DS18B20 硬件連接 和軟件設(shè)計(jì)時(shí)也要給予重視。 2.2.4 高速暫存存儲(chǔ)器 在 DS18B20 內(nèi)部結(jié)構(gòu)中有一個(gè)高速暫存存儲(chǔ)器,該存儲(chǔ)器由 9 個(gè)字節(jié)組成,其 分配如表 2.2 所示。當(dāng)溫度轉(zhuǎn)換命令發(fā)布后,經(jīng)轉(zhuǎn)換所得的溫度值以二進(jìn)制補(bǔ)碼形 式存放在高速暫
40、存存儲(chǔ)器的第 0 和第 1 個(gè)字節(jié)。單片機(jī)可通過(guò)單線接口讀到該數(shù)據(jù), 讀取時(shí)低位在前,高位在后,數(shù)據(jù)格式如表 2-2 所示。對(duì)應(yīng)的溫度計(jì)算:當(dāng)符號(hào)位 S=0 時(shí),直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng) S=1 時(shí),先將補(bǔ)碼變?yōu)樵a,再計(jì)算成 十進(jìn)制值。 表 2-2 DS18B20暫存器分布 CPU 對(duì) DS18B20 的訪問(wèn)流程是:先對(duì) DS18B20 初始化,再進(jìn)行 ROM 操作命令, 最后才能對(duì)存儲(chǔ)器和數(shù)據(jù)進(jìn)行操作。DS18B20 每一步操作都要遵循嚴(yán)格的工作時(shí)序 和通信協(xié)議。如主機(jī)控制 DS18B20 完成溫度轉(zhuǎn)換這一過(guò)程,根據(jù) DS18B20 的通訊協(xié) 議,須經(jīng)三個(gè)步驟:每一次讀寫(xiě)之前都要對(duì)
41、DS18B20 進(jìn)行復(fù)位,復(fù)位成功后發(fā)送一 條 ROM 指令,最后發(fā)送 RAM 指令,這樣才能對(duì) DS18B20 進(jìn)行預(yù)定的操作。 2.3 鍵盤(pán)、顯示模塊 鍵盤(pán)、顯示模塊主要由鍵盤(pán)、顯示驅(qū)動(dòng)芯片 8279、數(shù)碼管、34 鍵盤(pán)矩陣、反 相驅(qū)動(dòng)器 74LS06 組成,完成溫度設(shè)定數(shù)值的輸入和溫度的顯示功能。鍵盤(pán)、顯示驅(qū) 動(dòng)芯片 8279 主要完成和單片機(jī)芯片進(jìn)行數(shù)據(jù)的交換,將單片機(jī)送來(lái)的、需要顯示的 數(shù)據(jù)經(jīng)反相驅(qū)動(dòng)器 74LS06 反相后驅(qū)動(dòng)數(shù)碼管,譯碼掃描輸出信號(hào) SL0-SL3 完成對(duì)數(shù) 碼管的選擇,并且自動(dòng)刷新顯示數(shù)據(jù)。8279 還負(fù)責(zé)掃描鍵盤(pán),形成鍵碼,并將其送 至單片機(jī)。數(shù)碼管顯示設(shè)定溫
42、度和實(shí)際溫度,鍵盤(pán)完成溫度數(shù)據(jù)的設(shè)定??傮w電路 如圖 2-5 所示: 圖 2-5 鍵盤(pán)、顯示模塊電路圖 2.3.1 鍵盤(pán)、顯示驅(qū)動(dòng)芯片 8279 8279 芯片是一種通用的可編程鍵盤(pán)顯示器接口器件,單個(gè)芯片就能完成鍵盤(pán)輸 入和七段碼顯示控制兩種功能。引腳如圖 2-6 IRQ:中斷請(qǐng)求,高電平有效。為輸出線。 D0D7:數(shù)據(jù)總線,為雙向三態(tài)總線,和單片機(jī)的數(shù)據(jù)總線相連接,用于傳送 CPU 和 8279 之間的命令、數(shù)據(jù)和狀態(tài)等信息。 圖 2-6 8279芯片引腳圖 、 :讀寫(xiě)選通信號(hào),來(lái)自 CPU,低電平有效??刂?8279 讀、寫(xiě)操作。RDW :片選信號(hào)。 =0 時(shí)選中 8279,為輸入線。
43、CSCS A0:數(shù)據(jù)選擇線,A0=1 時(shí),CPU 寫(xiě)入 8279 的數(shù)據(jù)為命令字、從 8279 讀出的數(shù) 據(jù)為狀態(tài);A0=0 時(shí),CPU 讀寫(xiě)的字節(jié)均為數(shù)據(jù)。 RESET:復(fù)位端。RESET=1 時(shí) 8279 復(fù)位,復(fù)位時(shí)芯片有關(guān)狀態(tài)是:程序時(shí)鐘編 程為 31、外部譯碼鍵掃描方式,雙鍵互鎖,16 個(gè)字符顯示。 CLK:系統(tǒng)時(shí)鐘。外部時(shí)鐘輸入,經(jīng)分頻后產(chǎn)生 100kHz,作為 8279 的內(nèi)部時(shí)鐘。 RL0RL7:反饋輸入線。平時(shí)保持“1” ,當(dāng)鍵盤(pán)矩陣結(jié)點(diǎn)上有鍵閉合時(shí),邊為 “0”。在選通方式時(shí)作為 8 位輸入線。 SHIFT:移位信號(hào)。高電平有效,可用它擴(kuò)充鍵盤(pán)功能,作為上、下檔功能選擇 鍵
44、。在傳感器方式或選通方式中無(wú)效。 CNTL/STB:控制/選通輸入線。高電平有效,常用于擴(kuò)充鍵的控制功能,該信號(hào) 的上升沿可將來(lái)自 RL0RL7 的數(shù)據(jù)存入 FIFO RAM 中。 SL0SL7:掃描輸出線,用于鍵盤(pán)、顯示器或傳感器的掃描線。 OUTA0OUTA3:A 組段顯示數(shù)據(jù)輸出線。 OUTB0OUTB3:B 組段顯示數(shù)據(jù)輸出線。 A、B 兩組可以單獨(dú)使用,也可合并使用。與多位數(shù)字顯示的掃描線 SL0SL3 同步。 :消隱輸出線,低電平有效。當(dāng)有顯示切換或消隱命令時(shí),使顯示器消滅。D 2.3.2 8279內(nèi)部結(jié)構(gòu) 1I/O 控制和數(shù)據(jù)緩沖器 數(shù)據(jù)緩沖器是雙向緩沖器,連接內(nèi)部總線和外部總
45、線 D7D0,用于傳送 CPU 和 8279 之間的命令狀態(tài)和數(shù)據(jù)。 I/O 控制線是 CPU 對(duì) 8279 進(jìn)行控制的引線, 是片選信號(hào),A0 用于區(qū)別信息CS 的特征。 2控制邏輯 控制與定時(shí)寄存器用來(lái)寄存鍵盤(pán)和顯示器的工作方式以及由 CPU 編程的其他操 作方式。這些寄存器一旦接受鎖存送來(lái)的命令,就通過(guò)譯碼產(chǎn)生相應(yīng)的信號(hào),從而 完成相應(yīng)的控制功能。 定時(shí)和控制包含一些計(jì)數(shù)器,其中有一個(gè) 5 位計(jì)數(shù)器,對(duì) CLK 引線輸入的時(shí)鐘 信號(hào)進(jìn)行分頻,產(chǎn)生 100kHz 的定時(shí)信號(hào),然后再經(jīng)過(guò)分頻為鍵盤(pán)掃描提供適當(dāng)?shù)闹?行掃描頻率和顯示掃描時(shí)間。 3掃描計(jì)數(shù)器 掃描計(jì)數(shù)器有編碼和譯碼兩種
46、工作方式。按編碼方式工作時(shí),掃描計(jì)數(shù)器的狀 態(tài)從 SL0SL3 輸出,通過(guò)外部譯碼器,可以外接 16 位顯示器和 88 鍵盤(pán);按譯碼 方式工作時(shí),掃描計(jì)數(shù)器的低 2 位的狀態(tài)從 SL0SL3 輸出,狀態(tài)為 00,SL0 輸出低 電平,SL1SL3 輸出高電平;狀態(tài)為 01,SL1 輸出為低電平,其他輸出為高電平 此時(shí)只能外接 4 位顯示器和 48 鍵盤(pán)。 4鍵輸入控制和 FIFO(先進(jìn)先出)RAM 這部分電路可以完成對(duì)鍵盤(pán)的自動(dòng)掃描,鎖存 RL0RL 7的輸入信號(hào),搜索閉合 鍵,去除鍵抖動(dòng),并將鍵輸入數(shù)據(jù)寫(xiě)入先進(jìn)先出存儲(chǔ)器(FIFO RAM) 。8279 具有 8 個(gè)字節(jié)先進(jìn)先出的鍵輸入存儲(chǔ)器
47、,當(dāng) FIFO RAM 中存有鍵盤(pán)上閉合鍵的鍵碼時(shí),IRQ 變?yōu)楦唠娖?,?CPU 請(qǐng)求中斷:當(dāng) CPU 從 FIFO RAM 中讀取數(shù)據(jù)時(shí),IRQ 變?yōu)榈碗娖健?若 RAM 中仍有數(shù)據(jù),則 IRQ 再次恢復(fù)高電平;當(dāng) CPU 將 RAM 中的輸入數(shù)據(jù)全部讀出 時(shí),IRQ 下降為低電平。 鍵盤(pán)掃描方式中,8279 輸入數(shù)據(jù)按下列格式存放: D7 D6 D5 D4 D3 D2 D1 D0 CNTL SHITF SCAN RETURN CNTL(D7):控制鍵 CNTL 的狀態(tài)。 SHITF(D6):控制鍵 SHITF 的狀態(tài)。 SCAN(D5D3):輸入鍵的行數(shù),由 SLO
48、SL2 的狀態(tài)確定。 RETURN(D2D0):指出輸入鍵的列數(shù),由 RL0RL7 狀態(tài)確定。 5顯示 RAM和顯示地址寄存器 8279 中有 16 個(gè)字節(jié)的顯示寄存器。CPU 將段數(shù)據(jù)寫(xiě)入顯示存儲(chǔ)器,存儲(chǔ)的顯示 數(shù)據(jù)輪流從顯示寄存器輸出,CPU 將顯示數(shù)據(jù)寫(xiě)入存儲(chǔ)器有左端送入和右端送入兩 種方式。左端送入為依次填入方式,右端送入為移位方式,顯示寄存器的輸出與顯 示掃描配合,不斷的將顯示 RAM 中的數(shù)據(jù)在顯示器上顯示出來(lái),也可以合送一個(gè) 8 位的二進(jìn)制數(shù)據(jù)。 顯示地址寄存器用來(lái)寄存由 CPU 進(jìn)行讀/寫(xiě)顯示 RAM 的地址,它可以由命令設(shè)定, 也可以設(shè)置成每次讀出或?qū)懭胫笞詣?dòng)遞增。 2.3
49、.3 鍵盤(pán)和數(shù)碼管 在本模塊中鍵盤(pán)向單片機(jī)芯片輸入用戶準(zhǔn)備設(shè)定的溫度值,顯示部分的數(shù)碼管 顯示設(shè)定的溫度值和實(shí)際溫度值?,F(xiàn)規(guī)定設(shè)定溫度值在 0到 99之間,故需要顯 示的數(shù)碼位數(shù)為兩位數(shù),需要的數(shù)碼管總數(shù)為 4,用于溫度設(shè)定的鍵盤(pán)采用 34 鍵 盤(pán)矩陣。 結(jié)合上述 8279 芯片的介紹,顯示電路采用譯碼掃描、4 字符顯示、左進(jìn)工作方 式,數(shù)碼管采用共陽(yáng)極 LED 數(shù)碼管。掃描輸出 SL0SL 3已經(jīng)過(guò)譯碼,故可直接作為 4 個(gè)數(shù)碼管的選通信號(hào),輪流刷新 4 個(gè)數(shù)碼管。OUTA 03 與 OUTB03 共同作為顯示輸 出,經(jīng) 74LS06 反相驅(qū)動(dòng)后接至 LED 顯示器,每個(gè)輸出驅(qū)動(dòng)一段,各個(gè)數(shù)
50、碼管相同的 段連接在一起。顯示內(nèi)容來(lái)自顯示 RAM?,F(xiàn)規(guī)定第一位數(shù)碼管顯示設(shè)定溫度的十位 數(shù)字,第二位數(shù)碼管顯示設(shè)定溫度的個(gè)位數(shù)字,第三位數(shù)碼管顯示實(shí)際溫度的十位 數(shù)字,第四位顯示實(shí)際溫度的個(gè)位數(shù)字。鍵盤(pán)的 12 個(gè)鍵中,10 個(gè)鍵用于設(shè)定溫度 值的 0-9 這 10 個(gè)數(shù),一個(gè)鍵用于刪除輸入錯(cuò)誤的數(shù)字,一個(gè)用于確定所輸入的溫度 值。按鍵及相關(guān)說(shuō)明如表 2-3 所示: 表 2-3 按鍵及相關(guān)說(shuō)明 行掃描信號(hào) 列掃描信號(hào)按鍵 SL2 SL1 SL0 RL3 RL2 RL1 RL0 鍵盤(pán)掃描數(shù) 據(jù) 鍵碼 S0 1 1 0 1 1 1 0 11000000 0 S1 1 0 1 1 1 1 0 11
51、001000 1 S2 0 1 1 1 1 1 0 11010000 2 S3 1 1 0 1 1 0 1 11000001 3 S4 1 0 1 1 1 0 1 11001001 4 S5 0 1 1 1 1 0 1 11010001 5 S6 1 1 0 1 0 1 1 11000010 6 S7 1 0 1 1 0 1 1 11001010 7 S8 0 1 1 1 0 1 1 11010010 8 S9 1 1 0 0 1 1 1 11000011 9 S10 1 0 1 0 1 1 1 11001011 10 S11 0 1 1 0 1 1 1 11010011 11 2.4 繼電器
52、控制模塊 本模塊主要是用來(lái)控制溫度高低,當(dāng)環(huán)境的溫度高于或低于設(shè)定的溫度值,繼 電器開(kāi)始工作,進(jìn)行降溫或升溫以達(dá)到設(shè)定溫度值。繼電器模塊電路圖如圖 2-7 所 示 圖 2-7 繼電器模塊 2.4.1 繼電器接點(diǎn)說(shuō)明 NC:常閉點(diǎn),以 COM 為共同點(diǎn),NC 與 COM 在平時(shí)是呈導(dǎo)通狀態(tài)的。 COM:共通點(diǎn),輸出控制接點(diǎn)的共同接點(diǎn)。 NO:常開(kāi)點(diǎn),NO 和 COM 平時(shí)呈開(kāi)路的狀態(tài),當(dāng)繼電器工作時(shí),NO 和 COM 導(dǎo)通, NC 和 COM 則呈開(kāi)路狀態(tài)。 在本設(shè)計(jì)中為了達(dá)到降溫或升溫的目的, 在單片機(jī)的 P1.1 和 P1.7 腳分別接 一個(gè)繼電器,一個(gè)繼電器的 2 腳和
53、3 腳間接加熱電爐另一個(gè)繼電器的 2 腳和 3 腳間 接風(fēng)扇,當(dāng)繼電器 P1 腳輸入一個(gè)低電平時(shí),C8550B 處于截至狀態(tài),繼電器不工作, 當(dāng)給一個(gè)高電平時(shí),由于磁場(chǎng)的吸合作用使得繼電器開(kāi)始工作,同時(shí) 1 腳和 3 腳斷 開(kāi),2 腳和 3 腳接通。從外面可以看到發(fā)光二極管點(diǎn)亮,說(shuō)明繼電器在正常的工作。 2.4.2 繼電器控制升溫 在單片機(jī)的 P1.1 接一個(gè)繼電器,繼電器的 3 腳和 2 腳間接加熱電爐, 當(dāng)繼電 器 P1 腳輸入一個(gè)低電平時(shí),C8550B 處于截至狀態(tài),繼電器不工作,當(dāng)給一個(gè)高電 平時(shí),由于磁場(chǎng)的吸合作用使得繼電器開(kāi)始工作,同時(shí) 1 腳和 3 腳斷開(kāi),2 腳和 3 腳接通
54、說(shuō)明此時(shí)電爐升溫。從外面可以看到發(fā)光二極管點(diǎn)亮,說(shuō)明繼電器在正常的 工作。 2.4.3 繼電器控制降溫 在單片機(jī)的 P1.7 接一個(gè)繼電器,繼電器的 3 腳和 2 腳間接降溫風(fēng)扇, 當(dāng)繼電 器 P1 腳輸入一個(gè)低電平時(shí),C8550B 處于截至狀態(tài),繼電器不工作,當(dāng)給一個(gè)高電 平時(shí),由于磁場(chǎng)的吸合作用使得繼電器開(kāi)始工作,同時(shí) 1 腳和 3 腳斷開(kāi),2 腳和 3 腳接通說(shuō)明此時(shí)使用風(fēng)扇降溫。從外面可以看到發(fā)光二極管點(diǎn)亮,說(shuō)明繼電器在正 常的工作。 3 系統(tǒng)軟件設(shè)計(jì) 3.1 系統(tǒng)主程序框圖 本系統(tǒng)的流程框圖中,Ts 設(shè)定溫度 Tr 實(shí)際溫度,系統(tǒng)主程序要做的主要工作 是上電后對(duì)系統(tǒng)初始化
55、和構(gòu)建系統(tǒng)整體軟件框架,主要完成 AT89C52 芯片、8279 芯 片和 DS18B20 的初始化,對(duì)繼電器、數(shù)碼顯示管的初始化,完成對(duì)鍵盤(pán)處理子程序、 18B20 子程序、顯示子程序的調(diào)用,并完成對(duì)溫度值的比較判斷,然后等待溫度設(shè)定, 若溫度已經(jīng)設(shè)定好了,判斷系統(tǒng)運(yùn)行鍵是否按下,若系統(tǒng)運(yùn)行,則依次調(diào)用各個(gè)相 關(guān)模塊,循環(huán)控制直到系統(tǒng)停止運(yùn)行。如圖 3-1 所示(溫度處理中,允許最大的溫差 為 3) 圖 3-1 主程序框圖 3.2 鍵盤(pán)處理子程序框圖 鍵盤(pán)處理子程序流程框圖主要完成對(duì)鍵盤(pán)設(shè)置溫度值進(jìn)行處理,如圖 3-2 所示。 本課題中共需要設(shè)置兩位數(shù)字。框圖將數(shù)字位數(shù)送入 R1,將讀入的鍵
56、盤(pán)值送入緩 沖單元 28H,完成初始化后,循環(huán)判斷是否有按鍵,有,則讀入鍵碼值并將其轉(zhuǎn)換 成二進(jìn)制數(shù)并存儲(chǔ)在指定單元,計(jì)數(shù)器減 1,地址增 1;無(wú),則返回繼續(xù)判斷是否 存在按鍵。 圖 3-2 鍵盤(pán)處理子程序框圖 3.3 DS18B20子程序框圖 DS18B20 子程序框圖主要完成對(duì)溫度傳感器 DS18B20 的初始化和從 18B20 中讀 出數(shù)據(jù)的操作,負(fù)責(zé)溫度信號(hào)的采集以及將采集到的模擬量通過(guò) AD 轉(zhuǎn)換器轉(zhuǎn)化為 相應(yīng)的數(shù)字量提供給單片機(jī)。如圖 3-3 所示。單片機(jī)對(duì) DS18B20 的數(shù)據(jù)引腳進(jìn)行 500uS 的低電平復(fù)位,并判斷復(fù)位是否成功。沒(méi)有成功則繼續(xù)進(jìn)行復(fù)位;復(fù)位成功 則進(jìn)行讀操
57、作。每一次對(duì) DS18B20 進(jìn)行讀寫(xiě)操作先必須依次經(jīng)過(guò)復(fù)位、ROM 指令。 圖 3-3 DS18B20子程序框 體會(huì) 單片機(jī)溫度控制系統(tǒng)采用了高性能的單片機(jī),其豐富的片內(nèi)源,使得外圍擴(kuò)展 器件少,體積小,降低了成本,也降低了故障率。 通過(guò)兩個(gè)多月的畢業(yè)設(shè)計(jì),我對(duì)AT89C52系列單片機(jī)和數(shù)字溫度傳感器DB1280 有了初步了解,從中獲得了很多課堂上學(xué)習(xí)不到的知識(shí),其中我對(duì)以下幾點(diǎn)有比較深 的體會(huì): (1)電路的設(shè)計(jì)要細(xì)致認(rèn)真,對(duì)于使用芯片的特點(diǎn)要熟知。 (2)編程一定要規(guī)范,必要時(shí)應(yīng)加上注解。不要想當(dāng)然地定義某個(gè)變量、常量。 標(biāo)準(zhǔn)的定義方法和習(xí)慣,用助于其他程序員理解程序代碼,以便今后進(jìn)行維
58、護(hù)。 (3)查閱資料是必不可少的一個(gè)環(huán)節(jié),如果能找到與設(shè)計(jì)有關(guān)的合適參考文獻(xiàn), 將對(duì)所做的編程工作有極大的幫助,可以避免走許多不必要的彎路。在互聯(lián)網(wǎng)上搜 索相關(guān)資料,往往會(huì)有意想不到的驚喜,大大提高效率。 (4)程序編寫(xiě)好后,對(duì)它的調(diào)試也是及其重要的一步。調(diào)試程序的意義在于,可 以逐步改正程序中的錯(cuò)誤,努力使程序達(dá)到最佳的狀態(tài)。在調(diào)試的過(guò)程中應(yīng)該盡量 以普通用戶的思想去測(cè)試,而不是程序設(shè)計(jì)者。 這次畢業(yè)實(shí)習(xí)與畢業(yè)設(shè)計(jì)對(duì)我來(lái)講是一次難得實(shí)踐機(jī)會(huì),在真正的工作中加深 了對(duì)專業(yè)知識(shí)的理解,積累了經(jīng)驗(yàn)!無(wú)論是自己的意志品質(zhì)還是適應(yīng)社會(huì)的能力都 得到了磨練,為今后走向社會(huì)打下了堅(jiān)實(shí)的基礎(chǔ)。 致 謝 在論
59、文完成之際,回顧大學(xué)的成長(zhǎng)道路,我在學(xué)業(yè)和生活上得到了眾多老師、 同學(xué)和朋友們的熱心幫助和大力支持。在此,我要向你們表示我最誠(chéng)摯的謝意! 本論文是在林剛勇教授的悉心指導(dǎo)下完成的,在此我首先對(duì)林教授表示誠(chéng)摯的 謝意。 在我的整個(gè)學(xué)習(xí)階段,無(wú)論在專業(yè)學(xué)習(xí),還是在課題研究和論文撰寫(xiě)上,林 教授都給予了極大的關(guān)心、指導(dǎo)和鼓勵(lì)。林教授求真務(wù)實(shí)的治學(xué)精神、淵博的知識(shí)、 豐富的實(shí)踐經(jīng)驗(yàn)、勇于開(kāi)拓的科學(xué)精神和平易近人的態(tài)度,是我終身難忘,并將深 深影響我以后的工作和學(xué)習(xí),再次感謝林教授對(duì)我不倦的栽培! 在畢業(yè)設(shè)計(jì)期間,教研組的所有老師都給予我非常大的關(guān)心和指導(dǎo),感謝你們。 使我能順利的完成畢業(yè)論文。 最后感謝
60、所有對(duì)我有過(guò)幫助在我人生中知遇的許許多多匆匆過(guò)客,愿他們能心 想事成! 參考文獻(xiàn) 1 秦實(shí)宏,徐春輝. MCS-51 單片機(jī)原理及應(yīng)用M . 武漢:華中科技大學(xué)出版社, 2010. 2 陳明熒. 8051 單片機(jī)課程設(shè)計(jì)實(shí)訓(xùn)教材M . 北京:清華大學(xué)出版,2004. 3 凌玉華. 單片機(jī)原理與應(yīng)用系統(tǒng)設(shè)計(jì)M . 長(zhǎng)沙: 中南大學(xué)出版社,2006. 4 李軍. 檢測(cè)技術(shù)及儀表M . 北京:中國(guó)輕工業(yè)出版社,2002. 5 欒桂東,金歡陽(yáng). 傳感器及其應(yīng)用M . 西安:西安電子科技大學(xué),2002. 6 康華光. 電子技術(shù)基礎(chǔ)模擬部分(第四版)M.北京:高等教育出版社,1999. 7 譚浩強(qiáng). C
61、程序設(shè)計(jì)(第三版)M.北京:清華大學(xué)出版社.2005-7-3. 8 侯玉寶. 基于 Proteus 的 51 系列單片機(jī)設(shè)計(jì)與仿真M.電子工業(yè)出版社. 2008 9 劉鳴,車(chē)立新,陳興梧,趙煜. 溫度傳感器 DS18B20 的特性及程序設(shè)計(jì)方法J. 電測(cè)與儀表,2001,(10). 10 周月霞,孫傳友. DS18B20 硬件連接及軟件編程J. 傳感器世界,2001,(12) 11 陳濤. DS18B20 芯片與單片微控制器的接口設(shè)計(jì)與應(yīng)用J. 山東煤炭科技. 2002,(03). 12 陳躍東. DS18B20 集成溫度傳感器原理及其應(yīng)用J. 安徽工程科技學(xué)院學(xué)報(bào), 2002(04). 附
62、錄 單片機(jī)內(nèi)存分配申明: TEMPES EQU 27H ;用于保存設(shè)定溫度值 TEMPER_L EQU 29H ;用于保存實(shí)際溫度 Tr 的低 8 位 TEMPER_H EQU 28H ;用于保存實(shí)際溫度 Tr 的高 8 位 FLAG1 EQU 38H ;是否檢測(cè)到 DS18B20 標(biāo)志未 LO EQU #0F60H ;定時(shí)器低字節(jié) HI EQU #0F6H ;定時(shí)器高字節(jié) FLAG2 EQU 39H ;按鍵標(biāo)志位 A_BIT EQU 20H ;數(shù)碼管實(shí)際溫度 Tr 個(gè)位數(shù)存放位置 B_BIT EQU 21H ;數(shù)碼管實(shí)際溫度 Tr 十位數(shù)存放位置 C_BI
63、T EQU 18H ;數(shù)碼管設(shè)定溫度 Ts 個(gè)位數(shù)存放位置 D_BIT EQU 19H ;數(shù)碼管設(shè)定溫度 Ts 十位數(shù)存放位置 SDWD EQU 30H ;轉(zhuǎn)換后的設(shè)置溫度 SJWD EQU 31H ;轉(zhuǎn)換后的實(shí)際溫度 SW1 EQU P1.1 ;繼電器 1 控制引腳,加熱繼電器 SW2 EQU P1.7 ;繼電器 2 控制引腳,降溫繼電器 DS18 EQU P1.0 ;DS18B20 的數(shù)據(jù)引腳 SJK EQU FFE8H ;8279 的數(shù)據(jù)口 MLK EQU FFEAH ;8279 的命令口 8CLK EQU ALK ;8279 的時(shí)鐘信號(hào)輸入端 ORG 00H JMP MAIN ORG
64、0BH MAIN: CLR SW1 ;關(guān)繼電器 1 CLR SW2 ;關(guān)繼電器 2 MOV A_BIT,#0 MOV B_BIT,#0 MOV C_BIT,#0 MOV D_BIT,#0 MOV TEMPES,#0 MOV TEMPER_L,#0 MOV TEMPER_H,#0 INIT_1820:SETB DS18 NOP CLR DS18 ;主機(jī)發(fā)出延時(shí) 537 微妙的復(fù)位低脈沖 MOV R1,#3 TER1:MOV R0,#107 DJNZ R0,$ DJNZ R1,TSR1 SETB DS18 ;拉高數(shù)據(jù)線 NOP NOP NOP NOP MOV R0,#25H TSR2: J
65、NB DS18,TSR3 ;等待 DS18B20 回應(yīng) DJNZ R0,TSR2 ;延時(shí) LJMP TSR4 TSR3: SETB FLAG1 ;置標(biāo)志位,表示 DS18B20 存在 LJMP TSR5 TSR4: CLR FLAG1 ;清標(biāo)志位,表示 DS18B20 不存在 LJMP TSR7 TSR5: MOV R0,#117 TDR6: DJNZ R0,TSR6 ;時(shí)序要求延時(shí)一端時(shí)間 TSR7: SETB DS18 RET LP: MOVX A, DPTR JB ACC.7,LP MOV A,#2AH ;S 時(shí)鐘十分頻成 100KHz MOVX DPTR,A MOVX DPTR,#DI
66、SHBH ;提示符 0000 代碼首地址 LCALL DIS MOV 27H,#80H SETB IT SETB EA SETB EX1 INIT_TIMTR:MOV TMOD,#22H ;定時(shí)器初始化,使用定時(shí)器 0 模式 2 MOV IE,#00H ;啟用定時(shí)器 0 中斷產(chǎn)生 MOV TL0,#L0 ;加載低字節(jié) MOV TH0,#HI ;加載高字節(jié) SETB TR0 ;啟動(dòng)定時(shí)器 0 開(kāi)始記時(shí) SETB EA SETB ET0 JNB TF0,$ CPL 8CLK MOV SP,#60H CLR EA MOV DPTR,#MLK MOV A, #0D1H MOVX DPTR,A ZHUCHXU:LCALL JPCL LCALL DISPLAY AA: LCALL GET_TEMPER MOV A,SJWD ;溫度比較 CJNE A,SDWD,PD XD: LCALL DISPLAY LJMP ZHUCHXU PD: JC PD1 SUB A,3 CJNE A,SDWD,PD2 LCALL XD PD2: JNC JW LCALL XD PD1: ADD A,#3 CJNE A,S
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識(shí)競(jìng)賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫(kù)試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫(kù)試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫(kù)試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識(shí)測(cè)試題庫(kù)及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測(cè)工種技術(shù)比武題庫(kù)含解析
- 1 礦山應(yīng)急救援安全知識(shí)競(jìng)賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案