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

正文內(nèi)容

基于單片機的dsb多點測溫系統(tǒng)lcd顯示(完全免費)精品(參考版)

2024-11-16 14:57本頁面
  

【正文】 //個位數(shù) disdata1[3]=tvalue1%10+0x30。 //百位數(shù) disdata1[1]=tvalue1%1000/100+0x30。 } /*******************************************************************/ 40 void ds1820disp1() //2 號溫度值顯示 { uchar flagdat1。 } tvalue1=tvalue1*()。 else { tvalue1=~tvalue1+1。 tvalue1=tvalue1|a1。 tvalue1=b1。 //讀取溫度 a1=ds1820rd1()。 ds1820wr1(0xcc)。 //跳過 讀序列號 ds1820wr1(0x44)。 ds1820rst1()。 wdata1=1。 delay_18B201(10)。 DQ1 = wdata1amp。 i0。 } void ds1820wr1(uchar wdata1) //寫數(shù)據(jù) { uchar i=0。 delay_18B201(10)。 DQ1 = 1。i) { DQ1 = 0。 for (i=8。 } uchar ds1820rd1() //讀數(shù)據(jù) { uchar i=0。 //精確延時大于 480us 38 DQ1 = 1。 //延時 DQ1 = 0。 DQ1 = 1。 //顯示小數(shù)位 } /*******************二號 DS18B20 程序 **************************/ void delay_18B201(unsigned int i) //延時 1 微秒 { while(i)。 //顯示小數(shù)點 wr_(0x80+6)。 //顯示個位 wr_(0x80+5)。 //顯示十位 wr_(0x80+4)。 //顯示百位 wr_(0x80+3)。 //顯示符號位 wr_(0x80+2)。 //如果百位為 0,不顯示 37 if(disdata[1]==0x30) disdata[1]=0x20。 //正溫度不顯示符號 else flagdat=0x2d。 //個位數(shù) disdata[3]=tvalue%10+0x30。 //百位數(shù) disdata[1]=tvalue%1000/100+0x30。 } /**********************1 號溫度值顯示 **********************/ void ds1820disp() { uchar flagdat。 } tvalue=tvalue*()。 else { tvalue=~tvalue+1。 tvalue=tvalue|a。 tvalue=b。 //讀取溫度 a=ds1820rd()。 ds1820wr(0xcc)。 //跳過讀序列號 ds1820wr(0x44)。 ds1820rst()。 wdata=1。 // 數(shù)據(jù)放在數(shù)據(jù)線上被讀走 delay_18B20(10)。 DQ = wdataamp。 i0。 } void ds1820wr(uchar wdata) //寫數(shù)據(jù) { uchar i=0。 35 delay_18B20(10)。 DQ = 1。i) { DQ = 0。 for (i=8。 } uchar ds1820rd() //讀數(shù)據(jù) { uchar i=0。 //精確延時大于 480us DQ = 1。 //延時 DQ = 0。 DQ = 1。 } 34 /****************1 號 DS1820 程序 *********************/ void delay_18B20(uint i) //延時 1 微秒 { while(i)。 } /*********************三號初始化 *********************/ init_play2() //3 號初始化顯示 { wr_(0x80+0x40)。 } /******************二號初始化 ***********************/ init_play1() //2 號初始化顯示 { wr_(0x80+0x08)。 wr_(0x80)。 delay1ms(5)。) { wr_dat(*p)。 //顯示清 0,數(shù)據(jù)指針清 0 } void display(uchar *p) //顯示 { while(*p!=39。 //設置開顯示,不顯示關(guān)標 wr_(0x06)。 } void lcd_init() //LCD 初始化設置 { wr_(0x38)。 delay1ms(5)。 delay1ms(5)。 RW=0。 EN=0。 EN=1。 P0=。 } void wr_(uchar ) //LCD 寫指令 { RS=0。j110。ims。 //溫度正負標志 /*******************lcd1602 程序 **********************/ void delay1ms(uint ms) //延時 1 毫秒 32 { unsigned int i,j。 //按鍵標志 uint tvalue,tvalue1,tvalue2。 uchar data disdata2[5]。 uchar data disdata [5]。 uchar code str2[]={2:}。 sbit key4=P2^3。 //按鍵定義 sbit key2=P2^1。 sbit EN=P2^5。 //三號 ds18b20 與單片機連接口 sbit RS=P2^7。 //一號 ds18b20 與單片機連接口 sbit DQ1=P1^1。期間,多次集中開會,分析指導,提供修改意見。 28 致謝 本設計是在鄭繼紅老師的指導下完成的,鄭繼紅老師是一位極其負責任的指導老師。 通過調(diào)試成型系統(tǒng)發(fā)現(xiàn)了 DS18B20除了上述優(yōu)點外,還有一些缺點,如:簡單的硬件連接的代價是復雜的軟件時序, DS18B20在測量溫度的時候,靈敏度不夠高,溫度快速變化時無法迅速顯示出其變化。另外,由于DS1820 單線通信功能是分時完成的 ,遵循嚴格的時隙概念 ,因此 , 系統(tǒng)對 DS1820 和各種操作必須按協(xié)議進行 ,即 :初始化 DS1820 (發(fā)復位脈沖 )— 發(fā) ROM功能命令 — 發(fā)存儲器操作命令 — 處理數(shù)據(jù)。用其構(gòu)建的系統(tǒng)有很多優(yōu)點:硬件連線簡單,省去了使用模擬傳感器要進行放大、 A/D轉(zhuǎn)換等工作,由于它的級聯(lián)功能,一條總線可掛接多個傳感器測量不同位置的溫度,根據(jù) DS18B20唯一的序27 號識別不同傳感器在各自位置的溫度。經(jīng)過改善后,第二版 PCB制作成功。在兩面布線時,頂層布線只放置一個過孔到頂層走線直接布線到頂層焊盤導致無法焊接。 硬件電路的設計是通過 Protel 99se軟件來來設計的 PCB。 第六章 調(diào)試與小結(jié) 本設計 Keil C51對單片機多點溫度測量系統(tǒng)進行了軟件編寫。當單總線上所掛 DS1820 超過 8個時,就需要解決微處理器的總線驅(qū)動問題,這一點在進行多點測溫系統(tǒng)設計時 要加以注意。 在傳輸方面, 當將總線電纜改為雙絞線帶屏蔽電纜時,正常通訊距離可達 150m,當采用每米絞合次數(shù)更多的雙絞線帶屏蔽電纜時,正常通訊距離進一步加長 , 測溫電纜線建議采用屏蔽 4芯雙絞線 。 降低誤差方法 為了使得設計能夠得到準確實時溫度, DS18B20 采用了 外部電源供電方式 , 在外部電源供電方式下, DS18B20 工作電源由 VDD 引腳接入,此時 I/O 線不需要強上拉,不存開始 標志量 flag1, flag2,flag3,flag4全為 0 按 鍵一按下? Flag1=1 按 鍵二按下 Flag2=1 按鍵三按下 按 鍵四按下 Flag3=1 Flag4=1 結(jié)束 Y Y Y Y26 在電源電流不足的問題,可以保證 轉(zhuǎn)換精度,同時在總線上理論可以掛接任意多個DS18B20 傳感器,組成多點測溫系統(tǒng)。 ℃。 DS18B20 工作 電壓范圍為 V 至 V 無需備用電 源 , 測量溫度范圍為 55℃ 至 +125℃ , 華氏相當于是 67℉ 到 257℉ 華氏度 10 ℃ 至 +85℃。按鍵程序框圖如圖 。讀數(shù)據(jù)流程圖如圖 所示。 數(shù)據(jù)線 DQ 拉低 從低位到高位發(fā)送數(shù)據(jù) 一個字節(jié)發(fā)送完成? 結(jié)束 開始 NY24 圖 寫子程序流程圖 DS18B20 讀子程序 從 DS18B20 讀數(shù)據(jù)時單片機產(chǎn)生讀時間片,當主機把數(shù)據(jù)線從邏輯高電平拉到低電平時產(chǎn)生讀時間片,數(shù)據(jù)線必須保持在邏輯電平至少 1微妙,來自 DS18B20 的輸出數(shù)據(jù)在讀時間段下降沿之后 15微妙有效,因此為了讀出從讀時間段開始算起 15 微妙的狀態(tài)單片機必須停止把 I/O引腳驅(qū)動拉低至低電平,在讀時間段結(jié)束時 I/O 引腳經(jīng)過外部的上拉電阻拉回至高電平,所 有讀時間段的最短持續(xù)周期限為 60 微妙,各個讀時間片之間必須有最短為 1 微妙的恢復時間,把主機采樣時間定在 15 微妙期間的末尾系統(tǒng)時序關(guān)系就有最大的余地。在 I/O 口線高電平變?yōu)榈碗娖胶?DS18B20 在15us 到 60us 之間對 I/O 采樣,如果是高電平則寫 1,低電平寫 0。 23 圖 溫度轉(zhuǎn)換流程圖 DS18B20 寫子程序 當主機把數(shù)據(jù)線從高邏輯電平拉低至邏輯電平時產(chǎn)生寫時間片,有兩種類型的寫時間片,寫 1 時間片和寫 0 時間片,所有時間片必須有最短為 60 微妙的持續(xù)期。其它兩片工作原理一樣。 開始 系統(tǒng)初始化 測溫程序初始化 如果按鍵一按下 如果按鍵二按下 如 果按 鍵三按下 如果按鍵四按下 調(diào)用讀溫度1 子程序 調(diào)用讀溫度2 子程序 調(diào)用讀溫度3 子程序 調(diào)用讀溫度 路子程序 顯示 1 路溫度 顯示 2 路溫度 顯示 3 路溫度 顯示全部溫度 返回 返回 返回 返回 22 圖 初始化子程序流程圖 溫度轉(zhuǎn)換 由三片 DS18B20 是串接在不同的 I/O,讀取溫度的子是程序獨立分開,但工作原理一樣。 三路測溫軟件實現(xiàn) 系統(tǒng)軟件設計主要包括系統(tǒng)程序和流程圖,根據(jù)整個系統(tǒng)的要求,完成溫度的測量與控制必須經(jīng)過以下幾個步驟:單片機接受傳感器的溫度信號,并通過 MAX7219 驅(qū)動顯示出來,單片機掃描鍵盤,接受控制信號,并將溫度顯示出來,若溫度不在范圍內(nèi)則發(fā)出報警 。 系統(tǒng)軟件設計的一般步 驟 系統(tǒng)進行軟件設計時,先要對本課題硬件有一個熟練的掌握,知道系統(tǒng)的組成,數(shù)據(jù)的傳輸,信號是如何被控制的,以及信號的顯示。 [2]上電、掉電測試。設計系統(tǒng)是一般需要添加一個“看門狗”監(jiān)控模塊,在系統(tǒng)出現(xiàn)不可逆轉(zhuǎn)的干擾時,監(jiān)控模塊將重啟系統(tǒng),并從斷點處繼續(xù)執(zhí)行。 [1]物理參數(shù) [2]資源參數(shù) [3]應用參數(shù) [4]過程參數(shù) ( 3)單片機的抗干擾性 20 防止干擾最有效的方法是去除干擾源、隔離干擾路徑。 本課題采用 C語言編程,在此必須注意以下問題: ( 1)提高程序代碼效率 必須熟悉當前使用的 C語言編譯器,試驗每條 C語言編譯以后對應的匯編語言的語句行數(shù),這樣就可以很明確 的知道代碼效率。隨后,根據(jù)個程序模塊的實現(xiàn)功能寫出流程,一般需要寫出具體的實現(xiàn)功能描述。我們依據(jù)系統(tǒng)的功能要求,將整體軟件系統(tǒng)分割成若干個獨立的程序模塊。 經(jīng)分析綜合得知,本課題采用 C語言進行編程。另外重要的一點,只要看一下編譯后生成的匯編代碼,就能體會到 Keil C51生成的目標代碼效
點擊復制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1