freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于單片機的智能溫度監(jiān)控畢業(yè)設(shè)計正文-文庫吧資料

2024-11-25 21:30本頁面
  

【正文】 l。 wei 0xff。 if sel! 0xfe wei sel。i++ sel ~sel。 for i 0。 圖 顯示子程序 void display0 uchar idata *p /*不顯示數(shù)碼管左起第 4 位 */ uchar sel,i。 顯示子程序 顯示子程序是對數(shù)碼管進行逐位掃描,顯示先從顯示緩沖區(qū)取出要顯示的數(shù)據(jù),再根據(jù)該數(shù)據(jù)從 table 表中取出相應的段碼完成顯示。 /*將采集溫度值轉(zhuǎn)換為十進制數(shù) */ duzhi+ 。 duzhi/ 2。 wendz| am。 wendz bm。 /*DS18B20 暫存器值 */ am read_zi 。 write_zi 0xCC 。 /*跳過 DS18B20 片內(nèi) ROM*/ write_zi 0x44 。i++ /*采集兩次溫度值 */ RST18B20 。 for i 0。 /*am,bm分別是從 DS18B80讀取的溫度低 8位和高 8 位值 */ int wendz 0,i。 /*高于溫度上限,第 7 個發(fā)光二極管亮 */ 溫度采集子程序流程圖 程序在采集溫度時,測量兩次取平均值,已達到精確的目的。 /*顯示溫度,第 1 個發(fā)光二極管亮*/ if wd WL deng 0x7B。 display tem+3 。 tem[2] m%100/10。 /*溫度為正值,數(shù)碼管第 1 位不顯示 */ tem[1] wd/10。 tem[0] 16。 wd cewen 。 /*wd 為采集的溫度值 */ int m。 /*WH、 WL 用于存儲上、下限溫度 */ void showT void /*溫度顯示子程序 */ uchar idata tem[4]。溫度顯示子程序流程圖如圖 所示。當測定溫度低于設(shè)定溫度下限值時,第 7 個發(fā)光二極管點亮;當測定溫度高于設(shè)定溫度上限值時,第 7 個發(fā)光二極管亮。 溫度顯示子程序 溫度顯示子程序主要完成溫度的讀出和顯示的功能。 delay 4 。 DQ 1。i++ DQ 0。 for i 0。因此,總線控制器在讀時序開始后必 須停止把 I/O 腳驅(qū)動為低電平 15us,以讀取 I/O 腳狀態(tài)。當傳輸邏輯 0結(jié)束后,總線將被釋放,通過上拉電阻回到上升沿狀態(tài)。當總線控制器把數(shù)據(jù)線從高電平拉到低電平時,讀時序開始,數(shù)據(jù)線必須至少保持 1us,然后總線被釋放。因此,總線控制器在發(fā)出讀暫存器指令 [BEh]或讀電源模式指令 [B4h]后必須立刻開始讀時序, DS18B20 可以提供請求信息。 wr 1。 delay 5 。 DQ wramp。i++ DQ 0。 for i 0。 DS18B20 寫字節(jié)程序流程圖如圖 所示。如果線上是高電平,就是寫 1??偪刂破饕梢粋€寫 0 時序,必須把數(shù)據(jù)線拉到低電平并持續(xù)保持(至少 60us)。當總線控制器把數(shù)據(jù)線從邏輯高電平拉到低 電平的時候,寫時序開始總線控制器要生產(chǎn)一個寫時序,必須把數(shù)據(jù)線拉到低電平然后釋放,在寫時序開始后的 15us 釋放總線??偩€控制器通過寫 1 時序?qū)戇壿?1 到 DS18B20,寫 0 時序?qū)戇壿?0 到 DS18B20。 do while DQ 0 。 delay 2 。 delay 15 。DS18B20 初始化子程序流程如圖 所示。完成對 DS18B20 的初始化操作,在每次測溫前必須對其進行初始化,否則系統(tǒng)無法正常運行。單總線由 5K 上拉電阻拉到高電平。主程序流程圖如圖 所示。系統(tǒng)采用 89S52 和 DS18B20 的連接進行實時控制和數(shù)據(jù)處理。當溫度超過設(shè)定溫度范圍時,進行報警。下面是主程序和各個子程序的流程圖。其中,復位鍵部分放入主程序中,作為主程序的一部分。本系統(tǒng)有五個按鍵,依次是:復位鍵、 K1鍵、 K2 鍵、 K3 鍵、 K4 鍵。 DS18B20通信程序主要由 DS18B20 初始化程序, DS18B20 讀字節(jié)程序, DS18B20 寫字節(jié)程序組成。主程序可分為系統(tǒng)的初始化,自檢子程序,溫度顯示子程序三部分。 4 智能溫度控制系統(tǒng)軟件設(shè)計 課題的程序用 Keil C51 語言編寫,由于使用了 C 語言,寄存器的分配、不同的存儲器的尋址及數(shù)據(jù)類型等細節(jié)可由編譯器管理,尤其是數(shù)學運算不必人工干預,大大縮短了變成與調(diào)試的時間,提高了效率,降低了編成難度,使編程更加簡便。但隨著大規(guī)模集成電路的發(fā)展,目前已有能自動對顯示器進行掃描 的專用顯示芯片,使電路既簡單又占用 CPU 時間。這種顯示的優(yōu)點是使用硬件少,占用 I/O口少。缺點是,當顯示的位數(shù)較多時,占用的 I/O 口較多。因此,靜態(tài)顯示系統(tǒng)在每一次顯示輸出后能 夠保持顯示不變,僅在待顯示數(shù)字需要改變時,才更新其數(shù)字顯示鎖存器中的內(nèi)容。它是由若干個發(fā)光二極管組成的,當發(fā)光二極管導通時,相應一個筆畫劃發(fā)光,控制某段發(fā)光二極管導通,就能顯示出某個數(shù)碼或字符。然后才得到內(nèi)部復位操作所需要的信號。整個復位電路包括芯片內(nèi)外兩部分。除了進入系統(tǒng)的 正常初始化之外,當由于程序運行出錯或者操作錯誤使系統(tǒng)處于死鎖狀態(tài)時,為擺脫困境,也需按復位鍵以重新啟動。因此在實際使用時,總是先按需要優(yōu)先選用它的二功能,剩下不用的才作為口線使用。 P3 口在作為第二功能(控制功 能)使用時,它的每一位功能定義如表 所示。在實際應用中, P0 口先送出外部存儲器 16 位地址中的低 8 位至地址鎖存器鎖存,然后再由 P0 口進行 8 位數(shù)據(jù)的輸入或輸出; b、 P1 口: P1口作為 通用 I/O 接口,它的每一位都可以別編程為通用 I/O 接口線; c、 P2 口:P2 口也是一個多功能口,與 P0 口相似,它除可被用作 I/O 接口外,在進行系統(tǒng)擴展時,還可以輸 16 位地址總線中的高 8 位,和 P0 口共同構(gòu)成 16 位的地址總線。在 MCS51 的進行系統(tǒng)擴展時,它作為地址 /數(shù)據(jù)總線口。 MCS51 系列中的 8031 單片機,因其內(nèi)部在結(jié)構(gòu)上無程序存儲器,所以它 的應用系統(tǒng)必定為一個擴展的系統(tǒng)。 2 I/O 接口電路功能匯總 MCS51 單片機內(nèi)部屬單總線結(jié)構(gòu),因此使系統(tǒng)在結(jié)構(gòu)上增加了靈活性。 b、 4 個并行口的 32 條 I/O 接口線都可以獨立地用于輸入或輸出操作。它們的特點如下: a、 4 個并行 I/O 接口都是雙向的。此外,它還有一個全雙工串行通信口。 在對 EPROM 編寫固化程序時,需對此引腳施加 21V 的編程電壓。 若 EA 非引腳接低電平時, CPU 只訪問外部程序存儲器,而不管片內(nèi)是否有程序存儲器。要檢查 8051 上電平后 CPU 能否正常到程序存儲器中讀取指令碼,可以用示波器觀察引腳 PSEN 非有 無脈沖輸出,若有說明正常。 對片內(nèi)帶有4 kbyteEPROM 的8751 編寫固化程序時, PROG 非作為編程脈沖輸入端。 2 ALE/PROG 非( 30 腳);地址鎖存允許信號/編程脈沖輸入端 在系統(tǒng)擴展時, ALE 用于控制把 P0 口輸出的低 8 位地址送 入鎖存器鎖存起來,以實現(xiàn)低位地址和數(shù)據(jù)的分時傳送。下面分別對其進行介紹: 1 RST/Vpd(腳) pd 是備用電源輸入端( Vpd 接+ 5V 備用電源)。外部振蕩器的頻率應低于 12MHz。 2 外時鐘方式, XTAL1 接地, XTAL2 接外部振蕩器。 1 內(nèi)時鐘引腳 8052 單片機片內(nèi)有振蕩電路,只需在 XTAL1 和 XTAL2 間外接石英晶體和電容組成的并聯(lián)振蕩電路(晶振器),晶體可以在固有頻率 ~12MHz 的晶振器之間任選晶體,電容可以在 20~ 60pF 的電容之間任選,通常選擇 30pF 的瓷片電容。 MCS51 系列單片機特點如下: 1 專為控制應用所設(shè)計的八位 CPU ; 2 具有布爾代數(shù)的運算能力; 3 32 條雙項且可被獨立尋址的I\O 口; 4 芯片內(nèi)有 128 字節(jié)可供存儲數(shù)據(jù)的 RAM( 8052: 256 字節(jié)); 5 內(nèi)部有兩組 16 位定時器( 8052 有 3 個); 6 具有全多工傳輸信號 UART; 7 5 個中斷源,且具有兩級(高/低)優(yōu)先權(quán)順序的中斷結(jié)構(gòu); 8 芯片內(nèi)有 4KB( 8KB/8052)的程序存儲器( ROM); 9 芯片內(nèi)有時鐘( CLOCK)振蕩器電路; 10 程序存儲器可擴展至 64KB( ROM); 11 數(shù)據(jù)存儲器可擴展至 64KB( RAM)。 MCS51 系列單片機研制于 1980 年,由 Intel 公司所開發(fā),其結(jié)構(gòu)是 8048 的延伸,改進了 8048 的缺點,其 ROM、 RAM 都可擴充至 64KB,也增添了如乘( MUL)、除( DIV)、減( SUBB)、比較( CJNE)、棧入( PUSH)、棧出( POP)、 16 位數(shù)據(jù)指針、布爾代數(shù)運算等指令,以及串行通信能力和 5 個中斷源。 在 DS1820 測溫程序設(shè)計中,向 DS1820 發(fā)出溫度轉(zhuǎn)換命令后,程序總要等待DS1820 的返回信號,一旦某個 DS1820 接觸不好或斷線,當程序讀該 DS1820 時,將沒有返回信號,程序進入死循環(huán)。這種情況主要是由總線分布電容使信號波形產(chǎn)生畸變造成的。試驗中,當采用普通信號電纜傳輸 長度超過 50m 時,讀取的測溫數(shù)據(jù)將發(fā)生錯誤。當單總線上所掛 DS1820超過 8 個時,就需要解決微處理器的總線驅(qū)動問題,這一點在進行多點測溫系統(tǒng)設(shè)計時要加以注意。在使用 PL/M、 C 等高級語言進行系統(tǒng)程序設(shè)計時,對 DS1820 操作部分最好采用匯編語言實現(xiàn)。在此采用外部電源供電,占用 89S52 的 口。T2 距 T0 為 15us,也就是說, T2 時刻前主機必需完成讀位,并在 T0 后的 60us~120us 內(nèi)釋放總線。 圖 寫時間隙 c 讀時間隙 如圖 ,總線 T0 時刻從高拉至低電平時,總線只需保持低電平 1us。若為低電平,則寫入的是 0,如圖 ;若為高電平,則寫入的位是 1,見圖 。 a 初始 化 主機總線 T0 時刻發(fā)送復位脈沖(最短為 480us 的低電平信號),接著在 T1時刻釋放總線并進入接受狀態(tài), DS18B20 再檢驗到總線的上升沿之后,等待15us~ 60us,接著在 T2 時刻發(fā)出存在脈沖( 60us~ 240us),如圖 所示。此項命令發(fā)送給 DS18B20 之后,對主 CPU 發(fā)出的每條讀命令, DS18B20 都向主 CPU 提供電源方式信號“ 0”(表示由寄生電源供電)或者“ 1”(表示由外部電源供電)。若 主 CPU 在發(fā)出該命令之后又進行讀操作,只要 DS18B20正忙于進行調(diào)出,主 CPU 就讀得“ 0”(表示“忙碌”);完成調(diào)出操作后 DS18B20既返回“ 1”(表示“操作完畢”)。該命令是把存儲器在 E2RAM 溫度觸發(fā)器 TH、 TL 內(nèi)的數(shù)據(jù)重新調(diào)入暫存器的 TH、 TL 字節(jié)。如果是寄生電源供電,主 CPU 在發(fā)出該命令后就把單線總線拉到高電平,并保持 10ms。該命令把觸發(fā)寄存器中的 TH、TL 字節(jié)分別復制到 EERAM 的 TH、 TL 的字節(jié)上。主 CPU 也可以在寫暫存存儲器期間發(fā)出一個復位脈沖來終止寫操作。 3 寫暫存存儲器( WRITE SCRATCHPAD) 4EH 。從字節(jié) 0 開始讀,直至讀到字節(jié) 8。 2 讀暫存存儲器( READ SCRATCHPAD) BEH 。如果住CPU 在該命令之后為讀時序,如果 DS18B20 正忙于進行溫度轉(zhuǎn)換,即讀得“ 0”;當溫度轉(zhuǎn)換完成時, DS18B20 則返回“ 1”。 c 存儲器操作命令 存儲器操作命令共有 6 條,具體如下: 1 溫度轉(zhuǎn)換命令( CONVERT T) 44H 。報警的條件定義為溫度超過上限( T TH),或者低于下限( T TL)。僅在最后一次溫度測量出現(xiàn)報警的情況下。 5 報警搜索命令( ALARAM SEARCH,有約定代碼 ECH)。該命令主要用于向所有的 DS18B20 同時發(fā)出溫度轉(zhuǎn)換命令,從而大大節(jié)省訪問各個器件的時間。 4 跳過 ROM 命令( SKIP ROM,約定代碼為 CCH)。為以后對各個
點擊復制文檔內(nèi)容
教學課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1