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

正文內(nèi)容

基于單片機(jī)的溫度計(jì)設(shè)計(jì)開發(fā)畢業(yè)論文(編輯修改稿)

2025-07-24 19:43 本頁面
 

【文章內(nèi)容簡(jiǎn)介】 DS18B20芯片的ROM指令:Read ROM(讀 ROM)[33H] (方括號(hào)中的均為16進(jìn)制的命令字) 這個(gè)命令允許總線控制器讀到DS18B20的64位ROM。只有當(dāng)總線上只存在一個(gè) DS18B20 的時(shí)候才可以使用此指令,如果掛接的不只是一個(gè),當(dāng)通信時(shí)將會(huì)發(fā)生數(shù)據(jù)的沖突。 Match ROM(指定匹配芯片)[55H] 這個(gè)指令后面緊跟著就是由控制器發(fā)出的了64位序列號(hào),當(dāng)總線上有多只 DS18B20 時(shí),只有與控制發(fā)出的序列號(hào)相同的芯片才會(huì)做出反應(yīng),其它芯片將等待下一次的復(fù)位。這條指令適應(yīng)于單片機(jī)和多芯片掛接。 Skip ROM(跳躍 ROM 指令)[CCH] 這條指令使該芯片不對(duì) ROM 編碼做出反應(yīng),在單總線的情況之下,為了節(jié)省時(shí)間則可以選用此指令。如果在多芯片掛接時(shí)使用此指令將會(huì)出現(xiàn)數(shù)據(jù)的沖突,導(dǎo)致錯(cuò)誤的出現(xiàn)。 Search ROM(搜索芯片)[F0H] 在芯片初始化后,搜索指令允許總線上掛接多芯片時(shí),會(huì)用排除法識(shí)別所有器件的64位ROM。 Alarm Search(報(bào)警芯片搜索)[ECH] 在多芯片掛接的情況下,報(bào)警芯片搜索指令只對(duì)符合溫度高于TH或低溫小于 TL報(bào)警條件的芯片做出反應(yīng)。只要芯片不掉電,報(bào)警狀態(tài)將會(huì)一直被保持,直到再一次測(cè)得的溫度達(dá)不到報(bào)警條件為止。 下面介紹一下DS18B20 芯片存儲(chǔ)器操作指令: Write Scratchpad (向 RAM中寫數(shù)據(jù))[4EH] 這是條向 RAM 中寫入數(shù)據(jù)的指令,隨后寫入的兩個(gè)字節(jié)數(shù)據(jù)將會(huì)被存到地址2(報(bào)警RAM之TH)和地址3(報(bào)警RAM之 TL)。寫入的過程中可以用復(fù)位信號(hào)進(jìn)行中止寫入。 Read Scratchpad (從RAM 中讀數(shù)據(jù))[BEH] 此指令將從 RAM 中讀取數(shù)據(jù),讀地址從地址 0 開始,一直可以讀到地址 9,完成整個(gè) RAM 數(shù)據(jù)的全部讀出。芯片允許在讀過程中用復(fù)位信號(hào)進(jìn)行中止讀取,即可以不讀后面不需要的字節(jié)來減少讀取時(shí)間。 Copy Scratchpad (將 RAM 數(shù)據(jù)復(fù)制到 EEPROM中)[48H] 此指令將RAM中的數(shù)據(jù)存入 EEPROM中,以使數(shù)據(jù)掉電后不丟失。此后由于芯片忙于EEPROM儲(chǔ)存處理,當(dāng)控制器發(fā)出一個(gè)讀時(shí)間隙時(shí),總線上輸出“0”,當(dāng)儲(chǔ)存工作完成后,總線將輸出“1”。在寄生電源工作方式下必須在發(fā)出此指令后立刻用強(qiáng)制上拉并至少保持10MS,來維持芯片工作。 Convert T(溫度轉(zhuǎn)換)[44H] 收到此指令后芯片將會(huì)進(jìn)行一次溫度轉(zhuǎn)換,將轉(zhuǎn)換的溫度值放入 RAM 的第 2 地址。此后因?yàn)樾酒τ跍囟绒D(zhuǎn)換處理,當(dāng)控制器發(fā)出一個(gè)讀時(shí)間隙時(shí),總線上輸出“0”,當(dāng)儲(chǔ)存工作完成后,總線將輸出“1”。在寄生工作方式時(shí)則必須在發(fā)出此指令后立刻用強(qiáng)制上拉并至少保持500MS,來維持芯片工作。 Recall EEPROM(將 EEPROM中的報(bào)警值復(fù)制到 RAM)[B8H] 此指令用來將 EEPROM中的報(bào)警值復(fù)制到 RAM 中的第 4 個(gè)字節(jié)里。由于芯片忙于復(fù)制處理,當(dāng)控制器發(fā)出一個(gè)讀時(shí)間隙時(shí),總線上輸出“0”,當(dāng)儲(chǔ)存工作完成后,總線將輸出“1”。另外,此指令還在芯片上電復(fù)位時(shí)被自動(dòng)執(zhí)行。這樣 RAM 中的兩個(gè)報(bào)警字節(jié)將始終為 EEPROM中數(shù)據(jù)的鏡像。 Read Power Supply(工作方式切換)[B4H] 此指令發(fā)出后發(fā)出讀時(shí)間隙,芯片將會(huì)返回它的電源狀態(tài)字,“0”為寄生電源狀態(tài),“1”為外部電源狀態(tài)。 下面介紹一下DS18B20的操作時(shí)序圖圖35 DS18B20 復(fù)位及應(yīng)答關(guān)系示意圖每一次通信之前都必須進(jìn)行復(fù)位,復(fù)位的時(shí)間、等待時(shí)間以及回應(yīng)的時(shí)間都應(yīng)嚴(yán)格按時(shí)序編程。DS18B20 讀寫時(shí)間隙: DS18B20 的數(shù)據(jù)讀寫是通過時(shí)間隙處理位和命令字來確認(rèn)信息交換的。 寫時(shí)間隙時(shí)序圖如圖36:圖36 寫時(shí)間隙時(shí)序圖寫時(shí)間隙分為寫“0”和寫“1”,時(shí)序如圖36。在寫數(shù)據(jù)時(shí)間隙的前15us總線需要被控制器拉置低電平,而后則是芯片對(duì)總線數(shù)據(jù)的采樣時(shí)間,采樣時(shí)間在15~60us,采樣時(shí)間內(nèi)如果控制器將總線拉高則表示寫“1”,如果控制器將總線拉低則表示寫入“0”。每一位的發(fā)送都應(yīng)該要有一個(gè)至少 15us的低電平起始位,隨后的數(shù)據(jù)“0”或“1”應(yīng)該在45us 內(nèi)完成。整個(gè)位的發(fā)送時(shí)間應(yīng)該保持在 60~120uS,否則將不能保證通信的正常。讀時(shí)間隙的時(shí)序圖如圖37所示:圖37 讀時(shí)間隙的時(shí)序圖讀時(shí)間隙時(shí)控制時(shí)的采樣時(shí)間應(yīng)該更加的精確才行,讀時(shí)間隙時(shí)也是必須得先由主機(jī)產(chǎn)生至少1us的低電平,表示讀時(shí)間的起始。隨后在總線被釋放后的 15us中 DS18B20 會(huì)發(fā)送內(nèi)部的數(shù)據(jù)位,這時(shí)控制器如果發(fā)現(xiàn)總線為高電平表示讀出“1”,如果總線為低電平則表示讀出數(shù)據(jù)為“0”。每一位的讀取之前都由控制器加上一個(gè)起始信號(hào)。注意:如圖37所示,必須在讀間隙開始的15us內(nèi)讀取數(shù)據(jù)位才可以保證通信的正確。 在通信時(shí)是以 8 位“0”或“1”為一個(gè)字節(jié),字節(jié)的讀或?qū)懯菑母呶婚_始的,即 A7到 A0字節(jié)的讀寫順序也是自上而下的。 1602原理及應(yīng)用 這里介紹的字符型液晶器是一種用5x7點(diǎn)陣圖形來顯示字符的液晶顯示器,根據(jù)顯示的容量可以分為1 行16 個(gè)字、2 行16個(gè)字、2 行20個(gè)字等等,這里以常用的2 行16個(gè)字的1602 液晶模塊為例來介紹它的編程方法[6]。 下面圖38為1602的實(shí)物圖 圖38 1602液晶顯示器實(shí)物圖下面介紹一下1602的接口功能: 1602 采用標(biāo)準(zhǔn)的16 腳接口,其中:第1 腳:Vss 為地電源 第2 腳:VDD 接5V正電源 第3 腳:V0為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地電源時(shí)對(duì)比度最高,對(duì)比度過高時(shí)將會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過一個(gè)10K的電位器進(jìn)行調(diào)整對(duì)比度。 第4 腳:RS為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器,低電平時(shí)選擇指令寄存器。 第5腳: RW為讀寫選擇信號(hào)線, 高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫操作。當(dāng)RS和RW共同為低電平時(shí)可以寫入指令或顯示地址,當(dāng)RS為低電平RW為高電平時(shí)可讀忙信號(hào),當(dāng)RS為高電平RW為低電平時(shí)可以寫數(shù)據(jù)。 第6 腳:E 端為使能端,當(dāng)E 端由高電平跳變成低電平時(shí),液晶顯示模塊執(zhí)行命令。 第7~14腳:D0~D7 為8 位雙向數(shù)據(jù)線。第15~16腳:背光電源的正負(fù)極。1602液晶顯示模塊內(nèi)部的字符發(fā)生存儲(chǔ)器(CGROM)已經(jīng)存儲(chǔ)了160個(gè)不同的點(diǎn)陣字符圖形,如表34 所示,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、一些常用的符號(hào)、和日文假名等,每一個(gè)字符都有一個(gè)固定代碼,比如大寫的英文字母“A”的代碼是01000001B(41H),顯示時(shí)模塊把地址41H 中的點(diǎn)陣字符圖形顯示出來,我們就能看到字母“A”。表34 1602字符顯示代碼低位高位00000010001101000101011001111010101111001101111011110000(1).0?P\p.ータミαP0001(2)!1AQaq? アチム228。q0010(3)2BRbr┌イツメβθ0011(4)3CScs」ウテモε∞0100(5)$4DTdt\エトセμ∩0101(6)%5EUeuロオナユΒo0110(7)amp。6FVfvテカニヨΡ∑0111(8)7GWgwアキヌラgπ1000(1)(8HXhxイクネリ∫X1001(2))9IYiyウケ」ル-1y1010(3)*:JZjzエコリレj千1011(4)+。K[k{オサヒロx萬1100(5)フL¥l|セシフワ248?!?101(6)ー=M]m}ユスヘリま+1110(7)。N^nヨセホバń1111(8)/?O-o←ツソマロ246。1602液晶模塊內(nèi)部的控制器共有11 條控制指令,如表35 所示,表35 1602指令表指令RSR/WD7D6D5D4D3D2D1D0清顯示0000000001光標(biāo)返回000000001*置輸入模式000000011/DS顯示開關(guān)控制0000001DCB光標(biāo)或字符移位000001S/CR/L**置功能00001DLNF**置字符發(fā)生存儲(chǔ)器地址0001字符發(fā)生存儲(chǔ)器地址(AGG)置數(shù)據(jù)存儲(chǔ)器地址001顯示數(shù)據(jù)寄存器地址(ADD)讀忙標(biāo)志或地址01BF計(jì)數(shù)器地址(AC)寫數(shù)到CGRAM/DDRAM10要寫的數(shù)從CGRAM/DDRAM讀數(shù)11讀出的數(shù)它的讀寫操作、屏幕和光標(biāo)的操作都是通過指令的編程來實(shí)現(xiàn)的。(說明:1 為高電平、0 為低電平) 指令1:清顯示,指令碼01H,光標(biāo)復(fù)位到地址00H的位置。 指令2:光標(biāo)復(fù)位,光標(biāo)返回到地址00H 指令3:光標(biāo)和顯示模式設(shè)置。I/D:光標(biāo)移動(dòng)方向,高電平右移,低電平左移 S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無效 指令4:顯示開關(guān)的控制。 D:控制整體顯示的開關(guān),高電平表示開顯示,低電平則表示關(guān)顯示。 C:控制光標(biāo)的開關(guān),高電平表示有光標(biāo),低電平表示無光標(biāo)。 B:控制光標(biāo)是否閃爍,高電平閃爍,低電平不閃爍 指令5:光標(biāo)或顯示移位。 S/C:高電平時(shí)移動(dòng)顯示的文字,低電平時(shí)移動(dòng)光標(biāo)。 指令6:功能設(shè)置命令。 DL:高電平時(shí)為4 位總線,低電平時(shí)為8 位總線。 N:低電平時(shí)為單行顯示,高電平時(shí)雙行顯示。F: 低電平時(shí)顯示5x7的點(diǎn)陣字符,高電平時(shí)顯示5x10 的點(diǎn)陣字符(有些模塊是 DL:高電平時(shí)為 8 位總線,低電平時(shí)為 4 位總線)。 指令7:字符發(fā)生器RAM 地址設(shè)置.指令9:讀忙信號(hào)和光標(biāo)地址。BF:為忙標(biāo)志位,高電平表示忙,此時(shí)模塊不能接收命令或數(shù)據(jù),如果為低電平表示不忙。 指令10:寫數(shù)據(jù)。 指令11:讀數(shù)據(jù)。 1602液晶顯示模塊可以和單片機(jī)STC89C52 直接接口,電路如圖所示。 圖39 1602硬件電路連接液晶顯示模塊是一個(gè)慢顯示器件,所以在執(zhí)行每條指令之前要先確認(rèn)模塊的忙標(biāo)志為低電平,表示不忙,否則此指令失效。要顯示字符時(shí)要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符,表36 是1602的內(nèi)部顯示地址:表36 1602的顯示地址12345678910111213141516000102030405060708090A0B0C0D0E第一行第二行0F404142434445464748494A4B4C4D4E4F程序在開始時(shí)應(yīng)先對(duì)液晶模塊功能進(jìn)行了初始化設(shè)置,約定顯示格式。注意顯示字符時(shí)光標(biāo)是自動(dòng)右移的,無需人工的干預(yù),每次輸入指令都先調(diào)用判斷液晶模塊是否忙的子程序,然后輸入顯示位置的地址0C0H,最后輸入要顯示的字符A 的代碼41H。 本設(shè)計(jì)的溫度控制系統(tǒng)及報(bào)警電路采用PNP型三極管做開關(guān)使用,當(dāng)超過設(shè)定溫度時(shí),由單片機(jī)輸出低電平,使得三極管導(dǎo)通,驅(qū)動(dòng)蜂鳴器報(bào)警,發(fā)光二極管報(bào)警以及風(fēng)扇進(jìn)行降溫處理。設(shè)計(jì)電路圖如下圖310和311: 圖310 溫控電路 圖311 報(bào)警電路總體系統(tǒng)電路圖如下圖312:圖312系統(tǒng)整體電路第四章 軟件設(shè)計(jì)本章主要介紹系統(tǒng)的軟件程序分析,包括溫度傳感器模塊,液晶顯示模塊溫度處理模塊,報(bào)警控制模塊以及整體程序。 圖41 主程序流程圖子程序功能介紹:tempchange()。 //DS18B20 開始獲取溫度并轉(zhuǎn)換dsreset()。 //18B20復(fù)位,初始化函數(shù)tempwritebyte(uchar dat)。 //向18B20寫一個(gè)字節(jié)數(shù)據(jù)delay(uint z)。 //延時(shí)函數(shù)bit tempreadbit(void)。 //讀1位函數(shù)uchar tempread(void)。 //讀1個(gè)字節(jié)uint get_temp()。 //讀取寄存器中存儲(chǔ)的溫度數(shù)據(jù)void warn(uint s,uchar led)。 //蜂鳴器報(bào)警聲音 ,s控制音調(diào),流水燈報(bào)警 get_temp()。 //獲
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)教案相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1