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

正文內容

基于單片機的dsb多點測溫系統lcd顯示(完全免費)精品-wenkub

2022-11-23 14:57:51 本頁面
 

【正文】 存器 )和接口電路。 進入 21 世紀后,溫度傳感器正朝著高精度、多功能、總線標準化、高可靠性及安全性、開發(fā)虛擬傳感器和網絡傳感器、研制單片測溫系統等高科技的方向迅速發(fā)展。此種產品測溫范圍大都在 200℃ ~800℃ 之間,分辨率 12 位,最小分辨溫度在 ~ 之間。多點溫度測量儀表,相對與單點的測量精度有一定的差距,雖然實現了多路溫度的測控,但價格昂貴。比較有代表性的數字溫度傳感器有 DS18B MAX657 DS172 MAX663SMT16030等。以上特性使得 DS18B20非常適用于構建高精度、多點溫度測量系統。 系統整體目標 利用 STC89C52 單片機設計一個能夠對不同環(huán)境多點溫度同時進行測量的系統。 方案設計 方案一 方案一 DS18B20 一對一連接方案,就是一個 I/O 口連接一個 DS18B20,這種方案雖然占用單片機的三個 I/O 口,但采用這種方案大大的簡化了編程難度,縮短了設計周期,同時也能保證系統的穩(wěn)定,方案一的框圖如圖 所示。 圖 DS18B20 單線連接方案 方案的比較與選擇 方案一是把 DS18B20 的三個 DQ端分別接到單片機的三個不同的 I/O 口,這種接法雖然占用的 I/O 口比較多,但是它的時序比較簡單,不需要讀取 ROM 序列號程序,搜索 ROM序列號程序,匹配 ROM 序列號程序,軟件上簡化了很多。 本設計由于功能比較簡單 I/O 口資源豐富,同時時間比較緊張,所以通過兩個方案的比較,決定選用方案一。時鐘可以由內部方式產生或外部方式產生。 外部方式的時鐘電路如圖 ( b) 所示, RXD 接地, TXD 接外部振蕩器。其主要功能是把 PC初始化為 0000H,使單片機從 0000H單元開始執(zhí)行程序。復位信號是高電平有效,其有效時間應持續(xù) 24 個振蕩周期 (即二個機器周期 )以上。 復位操作有上電自動復位相按鍵手動復位兩種方式。其中,按鍵電平復位是通過使復位端經電阻與 Vcc 電源接通而實現的,其電路如圖 ( b) 所示;而按鍵脈沖復位則是利用RC 微分電路產生的正脈沖來實現的, 其電路如圖 ( c)所示: 7 ( a)上電復位 ( b)按鍵電平復位 ( c)按鍵脈沖復位 圖 復位電路 上述電路圖中的電阻、電容參數適用于 6MHz 晶振,能保證復位信號高電平持續(xù)時間大于 2 個機器周期。 ④可編程輸入 /輸出引腳( 32 根) STC89C52 單片機有 4 組 8 位的可編程 I/O 口,分別位 P0、 P P P3 口,每個口有 8 位( 8 根引腳),共 32 根。 2) 獨特的單線接口方式,它與微處理器連接時僅需要一條口線即可實現微處理器與DS18B20 的雙向通信。 ℃。 9) 負壓特性。 3) 汽車空調、冰箱、冷柜以及中低緯度干燥箱等。表 列出了 DS18B20 的引腳定義。并且工作電源 VCC必須保證在 5V,當電源電壓下降時,寄生電 源能夠汲取的能量也降低,會使溫度誤差變大。注意:在外部供電的方式下, DS18B20的 GND引腳不能懸空,否則不能轉換溫度,讀取的溫度總是 85℃ 。 2) 55H— 匹配 ROM。 4) CCH— 跳過 ROM。 以上這些指令設計的存儲器是 64 位光刻 ROM,表 列出了它的含義。 下面介紹以上幾條指令的用法。啟動 DS18B20 進行溫度轉換, 12 位轉換時最長為 750ms( 9 位為)。 3) 4EH— 寫暫存器。 5) B8H— 重調 E2ROM 中內容回復到 RAM中的第 3, 4字節(jié)。 以上這些指令涉及的存儲器為高速暫存器 RAM 和可電擦出 E2ROM,見表 。 表 列出了溫度數據在高速暫存器 RAM 的第 0 和第 1個字節(jié)中的存儲格式。前 5 位為 1 時,讀取的溫度為負值,且測到的數值需要取反加 1 再乘以 才可得到實際溫度值。 3) 數據線拉到低電平 0。如果初始化成功則在 15~ 60us內產生一個有 DS18B20返回的低電平 0,據該狀態(tài)可以確定它的存在。 ② DS18B20寫數據時序圖如圖 圖 寫數據時序圖 15 1) 數據線先置低電平 0。 5) 將數據線拉高到高電平 1。 2) 延時 2us。 6) 延時 4us。 16 系統電路設計 單片機最小系統如圖 如圖 所示 圖 系統電路圖 這部分為單片機復位電路和時鐘電路。晶體振蕩頻率高,則系統的時鐘頻率也越高,單片機運行速速也就越快。 18 三點測溫電路 三個 DS18B20 接線如圖 所示,每個傳感器接一個 I/O 口。 機器語言用二進 制編碼表示每一條指令,是計算機能直接識別和執(zhí)行的語言。 為了克服機器語言的上述缺點,可采用有一定含義的符號,即指令助記符來表示,一般都采用某些有關的英文單詞的縮寫。用匯編語言編寫的程序稱為19 匯編語言程序。為此,又出現了對單片機進行編程的高級語言,如 PL\M, C等。另外重要的一點,只要看一下編譯后生成的匯編代碼,就能體會到 Keil C51生成的目標代碼效率非常之高,多數語句生成的匯編代碼很緊湊,容易理解。我們依據系統的功能要求,將整體軟件系統分割成若干個獨立的程序模塊。 本課題采用 C語言編程,在此必須注意以下問題: ( 1)提高程序代碼效率 必須熟悉當前使用的 C語言編譯器,試驗每條 C語言編譯以后對應的匯編語言的語句行數,這樣就可以很明確 的知道代碼效率。設計系統是一般需要添加一個“看門狗”監(jiān)控模塊,在系統出現不可逆轉的干擾時,監(jiān)控模塊將重啟系統,并從斷點處繼續(xù)執(zhí)行。 系統軟件設計的一般步 驟 系統進行軟件設計時,先要對本課題硬件有一個熟練的掌握,知道系統的組成,數據的傳輸,信號是如何被控制的,以及信號的顯示。 開始 系統初始化 測溫程序初始化 如果按鍵一按下 如果按鍵二按下 如 果按 鍵三按下 如果按鍵四按下 調用讀溫度1 子程序 調用讀溫度2 子程序 調用讀溫度3 子程序 調用讀溫度 路子程序 顯示 1 路溫度 顯示 2 路溫度 顯示 3 路溫度 顯示全部溫度 返回 返回 返回 返回 22 圖 初始化子程序流程圖 溫度轉換 由三片 DS18B20 是串接在不同的 I/O,讀取溫度的子是程序獨立分開,但工作原理一樣。 23 圖 溫度轉換流程圖 DS18B20 寫子程序 當主機把數據線從高邏輯電平拉低至邏輯電平時產生寫時間片,有兩種類型的寫時間片,寫 1 時間片和寫 0 時間片,所有時間片必須有最短為 60 微妙的持續(xù)期。 數據線 DQ 拉低 從低位到高位發(fā)送數據 一個字節(jié)發(fā)送完成? 結束 開始 NY24 圖 寫子程序流程圖 DS18B20 讀子程序 從 DS18B20 讀數據時單片機產生讀時間片,當主機把數據線從邏輯高電平拉到低電平時產生讀時間片,數據線必須保持在邏輯電平至少 1微妙,來自 DS18B20 的輸出數據在讀時間段下降沿之后 15微妙有效,因此為了讀出從讀時間段開始算起 15 微妙的狀態(tài)單片機必須停止把 I/O引腳驅動拉低至低電平,在讀時間段結束時 I/O 引腳經過外部的上拉電阻拉回至高電平,所 有讀時間段的最短持續(xù)周期限為 60 微妙,各個讀時間片之間必須有最短為 1 微妙的恢復時間,把主機采樣時間定在 15 微妙期間的末尾系統時序關系就有最大的余地。按鍵程序框圖如圖 。 ℃。 在傳輸方面, 當將總線電纜改為雙絞線帶屏蔽電纜時,正常通訊距離可達 150m,當采用每米絞合次數更多的雙絞線帶屏蔽電纜時,正常通訊距離進一步加長 , 測溫電纜線建議采用屏蔽 4芯雙絞線 。 第六章 調試與小結 本設計 Keil C51對單片機多點溫度測量系統進行了軟件編寫。在兩面布線時,頂層布線只放置一個過孔到頂層走線直接布線到頂層焊盤導致無法焊接。用其構建的系統有很多優(yōu)點:硬件連線簡單,省去了使用模擬傳感器要進行放大、 A/D轉換等工作,由于它的級聯功能,一條總線可掛接多個傳感器測量不同位置的溫度,根據 DS18B20唯一的序27 號識別不同傳感器在各自位置的溫度。 通過調試成型系統發(fā)現了 DS18B20除了上述優(yōu)點外,還有一些缺點,如:簡單的硬件連接的代價是復雜的軟件時序, DS18B20在測量溫度的時候,靈敏度不夠高,溫度快速變化時無法迅速顯示出其變化。期間,多次集中開會,分析指導,提供修改意見。 //三號 ds18b20 與單片機連接口 sbit RS=P2^7。 //按鍵定義 sbit key2=P2^1。 uchar code str2[]={2:}。 uchar data disdata2[5]。 //溫度正負標志 /*******************lcd1602 程序 **********************/ void delay1ms(uint ms) //延時 1 毫秒 32 { unsigned int i,j。j110。 P0=。 EN=0。 delay1ms(5)。 } void lcd_init() //LCD 初始化設置 { wr_(0x38)。 //顯示清 0,數據指針清 0 } void display(uchar *p) //顯示 { while(*p!=39。 delay1ms(5)。 } /******************二號初始化 ***********************/ init_play1() //2 號初始化顯示 { wr_(0x80+0x08)。 } 34 /****************1 號 DS1820 程序 *********************/ void delay_18B20(uint i) //延時 1 微秒 { while(i)。 //延時 DQ = 0。 } uchar ds1820rd() //讀數據 { uchar i=0。i) { DQ = 0。 35 delay_18B20(10)。 i0。 // 數據放在數據線上被讀走 delay_18B20(10)。 ds1820rst()。 ds1820wr(0xcc)。 tvalue=b。 else { tvalue=~tvalue+1。 } /**********************1 號溫度值顯示 **********************/ void ds1820disp() { uchar flagdat。 //個位數 disdata[3]=tvalue%10+0x30。 //如果百位為 0,不顯示 37 if(disdata[1]==0x30) disdata[1]=0x20。 //顯示百位 wr_(0x80+3)。 //顯示個位 wr_(0x80+5)。 //顯示小數位 } /*******************二號 DS18B20 程序 **************************/ void delay_18B201(unsigned int i) //延時 1 微秒 { while(i)。 //延時 DQ1 = 0。 } uchar ds1820rd1() //讀數據 { uchar i=0。i) { DQ1 = 0。 delay_18B201(10)。 i0。 delay_18B201(10)。 ds1820rst1()。 ds1820wr1(0xcc)。 tvalue1=b1。 else { tvalue1=~tvalue1+1。 } /*******************************************************************/ 40 void ds1820disp1() //2 號溫度值顯示 { uchar flagdat1。 //個位數 disdata1[3]=tvalue1%10+0x30。 //百位數 disdata1[1]=tvalue1%1000/100+0x30。 } tvalue1=tvalue1*()。 tvalue1=t
點擊復制文檔內容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1