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

正文內(nèi)容

基于at89c51單片機的溫濕度的設(shè)計(參考版)

2024-12-10 06:50本頁面
  

【正文】 i0。 } } /***************18b20 讀時序 *********************/ unsigned char read(void) { unsigned char i,dat=0。 DQ=1。0x01。i) { DQ=0。 for(i=8。 return(presence)。 //延時大概 50 微秒 presence=DQ。 //大概 480 微秒 DQ=1。 DQ=0。s++)。 for(s=0。 en=0。 delay(5)。 rw=0。 en=0。 delay(5)。 rw=0。 //清屏指令 電子信息工程系畢業(yè)論文 30 write_(0x80)。 //設(shè)置為 8 位并行,顯示 2 行, 5*7 點陣顯示 write_(0x0c)。 } /*******************1602 初始化 **************/ void init() { en=0。b122。az。 } } /*****************1602 延時程序 *****************/ void delay(uchar z) { uint a,b。 write_shuju(table1[dat[8]])。 write_shuju(table1[dat[7]])。 write_shuju(table1[dat[6]])。 write_shuju(table1[dat[5]])。 write_shuju(table1[dat[4]])。 write_shuju(table1[dat[3]])。 write_shuju(table1[dat[2]])。 write_shuju(table1[dat[1]])。 write_shuju(table1[dat[0]])。 電子信息工程系畢業(yè)論文 29 while(1) { readtemperature()。 //定時器結(jié)束標記 unsigned char w,x,y。 //濕度下限標志位 // bit maxrange=0。 /****************hs1101 調(diào)用函數(shù) *************************/ void readfrequency(void)。 //18b20 讀時序 void readtemperature(void)。 //18b20 初始化 // void write(uchar dat)。 void delay(uchar z)。 void write_shuju(uchar shuju)。 //溫度調(diào)用 uchar code table2[16]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x53,0x48,0x49,0x25,0x2e,0x20}。 //溫度 unsigned char shuju1[9]={0}。 sbit DQ=P1^0。 sbit rw=P0^6。 在大學的課堂的學習只是在給我們灌輸專業(yè)知識,而我們應(yīng)把所學的用到我們現(xiàn)實的生活中去,讓理論知識服務(wù)于我的實際操作,此次的電子時鐘設(shè)計給我奠定了一個實踐基礎(chǔ),我會在以后的學習、生活、實踐中鍛煉自己的動手能力,使自己的創(chuàng)造力不斷得以實現(xiàn)。本次的設(shè)計使我從中學到了一些 很重要的東西,理論知識固然很重要,但是一旦轉(zhuǎn)到實際操作中,變的無法適應(yīng)用突然 .所以最重要的那就是如何從理論到實踐的轉(zhuǎn)化,怎樣將我所學到的知識運用到我以后的工作中去。 在此很感謝他們! 通過這次的設(shè)計使我認識到我對單片機方面的知識知道的太少了,對于書本上的。在讓我體會到了設(shè)計電路的艱辛的同時,要熟練地掌握課本上的知識,這樣才能對試驗中出現(xiàn)的問題進行分析解決。 總體來說,這次實習我受益匪淺。設(shè)計是我們將來必需的專業(yè)技能,這次恰恰提供我們一個應(yīng)用自己所學的知識的機會。 通過這次電子系統(tǒng)設(shè)計,我們掌握了設(shè)計一個數(shù)字電路的基本方法 和基本步驟,實際解決了設(shè)計中出現(xiàn)的問題,增強了尋找問題,解決問題的能力。 我還遇到了不少,花費了很多的時間。事實也證明我們的努力沒有白費,認真嚴謹?shù)膶嵙晳B(tài)度給我?guī)砹顺晒Φ南矏偅? 這短短一月的實踐,我感覺到自己在課本上學到的理論知識和實踐仍有一定的差距。 首先在主函數(shù)中設(shè)置斷點如下圖所示的位置: 電子信息工程系畢業(yè)論文 21 圖 59 1602調(diào)試 從上圖觀察到的結(jié)果 為 dat[0]為 0x0A,即為 10, table1[10]從數(shù)組中調(diào)用的顯示為 0x54, 0x54 對應(yīng)的 1602 液晶使用指導中的結(jié)果為顯示大寫的“ T”,即下圖顯示的結(jié)果。說明沒有錯誤。 溫度 =1360*=85 如下圖所示的位 85 度。 0x550 轉(zhuǎn)化為十進制位1360。 圖 54 觀察溫度讀取 這里我們可以看到高 8位 0x05 低 8位 0x0050。 延時 == 大概為 800us,在 480到 960us 之間符合要求。如下圖調(diào)試: 圖 51 斷點 1 運行到這里的時間可以通過左邊的 sec 觀察到 ,在運行一下如下圖所示。首先 18b20在初始化的時候總線在置 0 的時候要求要延時 480us 到 960us 之間,所以要控制好延時在這段之間。 賦 初 值開 中 斷時 間 = 1 ?送 給 1 6 0 2啟 動 定 時 器計 數(shù) 器讀 頻 率 值取 顯 示 數(shù) 據(jù)設(shè) 置 定 時 器計 數(shù) 器頻 率 6 3 3 0 到7 3 5 0 之 間頻 率 小 6 0 7 5頻 率 大 于7 3 5 0開 始NYNN置 位 m a x r a n g eR H = 5 8 8 0 0 . 8 * f t e q u e n c y 。 ……… } 濕度數(shù)據(jù)讀取函數(shù) 在前面硬件部分提到了濕度傳感器的測試度原理,同時提到了一個頻率計算的公式和一張?zhí)厥鉂穸葘?yīng)頻率點的表格,但是在實際的測試當中發(fā)現(xiàn)該表的某些特殊點并非很準確,所以再次對該表做出一些修改,下面放上改簽改后兩表對照。 temperature=temperature|(temp8)。 temperature=read()。 write(0xcc)。 write(0x44)。 reset()。 開 開開 D S 1 8 B 2 0 開 開開 開 R O M開 開 開 開 開 開開 D S 1 8 B 2 0 開 開開 開 R O M開 開 開 開 開 開 開 開開開 1 6 開 開 開 開 開*0 .0 6 2 5 開 開 開 開開開 開 開 開 開 開 開 開開 開 開 開 開開 開開 開 開 開 開 開 開 開 開開 開 圖 48 DS18B20測溫控制流程圖 電子信息工程系畢業(yè)論文 15 void readtemperature(void) { unsigned char temp。溫度轉(zhuǎn)換計算方法舉例: 例如當 DS18B20 采集到 +125℃ 的實際溫度后,輸出為 07D0H,則: 實際溫度 =07D0H*=2021*=1250C。初始化序列包括一個由總線控制器發(fā)出的復(fù)位脈沖和跟有其后由從機發(fā)出的存在脈沖。 電子信息工程系畢業(yè)論文 14 DS18B20 的測溫控制: 控制協(xié)議的幾個步驟: 1:初始化(復(fù)位) 2: ROM 操作命令 3:存儲器操作命令 4:執(zhí)行 /數(shù)據(jù) 因 為 在 該 項 目 設(shè) 計 中 只 使 用 了 一 個DS18B20,所以 不需要對 ROM 操作,復(fù)位完成之后直接發(fā)送 0xCC 命令跳過 ROM 的操作,接著發(fā)送 0x44 命令啟動溫度轉(zhuǎn)換,發(fā)送溫度轉(zhuǎn)換命令后再次對 DS18B20 復(fù)位,再次跳過 ROM 操作之后就可以讀取溫度值了。 圖 47 DS18B20的讀時序 對于 DS18B20 的讀時序是從主機把單總線拉低之后,在 15 秒之內(nèi)就得釋放單總線,讓 DS18B20 把數(shù)據(jù)傳輸?shù)絾慰偩€上。 圖 46 DS18B20的寫時序 DS18B20 寫 0 時序和寫 1時序的要求不同,當要寫 0時序是,單總線要被拉低至少 60us,保證 DS18B20 能夠在 15us~45us 之間能夠正確地采樣 I/O 總線上的低電平,當要寫 1時序時,單總線被拉低之后,在 15us 之內(nèi)就得釋放單總線。 DS18B20 的復(fù)位:由上位機拉低總線 480960us 的時間然后拉高總線,等待1560us 的時間,如果在總線上有 DS18B20 這個器件,并且將總線拉低 60240us R w 置 低數(shù) 據(jù) 送 給 P 2 口延 時使 能 置 高使 能 置 低R s 置 高開 始返 回 圖 44 寫數(shù)據(jù) 圖 45 DS18B20的復(fù)位時序 電子信息工程系畢業(yè)論文 13 的話,就證明該器件復(fù)位成功,已經(jīng)準備好發(fā)送或接受 數(shù)據(jù)了。同時,計數(shù)器被復(fù)位到一個值,這個值由斜坡累加器電路確定,斜坡式累加器用來補償感溫振蕩器的拋物線特性。計數(shù)器預(yù)置到對應(yīng)于 55 度的一個值。 en=0。 delay(5)。 rw=0。 //清屏指令 write_(0x80)。 //設(shè)置為 8 位并行,顯示 2 行, 5*7 點陣顯示 write_(0x0c)。 基本操作時序: 讀狀態(tài) 輸入: RS=L, RW=H, E=H 輸出: DB0~ DB7=狀態(tài)字 寫指令 輸入: RS=L, RW=L, E=下 降沿脈沖, DB0~ DB7=指令碼 輸出:無 讀數(shù)據(jù) 輸入: RS=H, RW=H, E=H 輸出: DB0~ DB7=數(shù)據(jù) 寫數(shù)據(jù) 輸入: RS=H, RW=L, E=下降 沿脈沖, DB0~ DB7=數(shù)據(jù) 輸出:無 C:送顯示 開 始初 始 化L C D 顯 示 坐標 定 位顯 示 固 定 內(nèi) 容溫 度 讀 取 函 數(shù)濕 度 讀 取 函 數(shù)L C D 送 溫 濕度 顯 示濕 度 讀 取 函 數(shù)延 時 3 S圖 41 主函數(shù)流程圖 電子信息工程系畢業(yè)論文 11 開 始設(shè) 置 顯 示 行使 能 置 0設(shè) 置 顯 示 開 無 光 標不 閃清 屏設(shè) 置 第 一 字 開 始 位返 回 圖 42初始化 開 始R s 置 0R w 置 0送 命 令 給 P 2 口延 時使 能 置 1使 能 置 0返 回 圖 43寫命令 電子信息工程系畢業(yè)論文 12 void init() //初始化 { en=0。 LCD1602 的送顯示數(shù)據(jù)函數(shù) 我設(shè)計的監(jiān)測溫濕度使用 1602 的的一般流程基本是: A:初始化 初始化里面一般有設(shè)置顯示行、清屏、設(shè)置光標的開關(guān)、光標的閃爍、設(shè)置起始地址、 設(shè)定顯示屏或光標移動方向指令 。 主函數(shù) 主函數(shù)是需要構(gòu)成一個無限循環(huán)的,所以在送完顯示后需要再次調(diào)用溫濕度檢測函數(shù)來獲取新的數(shù)據(jù)以及構(gòu)成一個循環(huán),但是由于實際使用中環(huán)境的溫濕度變化沒有那么快,所以每次讀完送顯示后延時一會兒再讀取。 RST9XTAL218XTAL119GND20(A8)21(A9)22(A10)23(A11)24(A12)25(A13)26(A14)27(A15)28PSEN29ALE(PROG)30EA(VPP)31(AD7)32(AD6)33(AD5)34(AD4)35(AD3)36(AD2)37(AD1)38(AD0)39VCC4012345(MOSI)6(MISO)7(SCK)8(RXD)10(TXD)11(INT0)12(INT1)13(T0)14(T1)15(WR)16(RO)17U189S51TRIG2Q3R4CVolt5THR6DIS7VCC8GND1U3555C1HS1101VCCGND909KR9Res2GND576KR6Res2R7Res21KR8Re
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1