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

正文內(nèi)容

基于單片機(jī)的多點(diǎn)溫度測量系統(tǒng)設(shè)計(jì)(編輯修改稿)

2024-07-24 19:56 本頁面
 

【文章內(nèi)容簡介】 M指令)[CCH]這條指令使芯片不對ROM編碼做出反應(yīng),在單芯片的情況之下,為了節(jié)省時間則可以選用此指令。如果在多芯片掛接時使用此指令將會出現(xiàn)數(shù)據(jù)沖突,導(dǎo)致錯誤出現(xiàn)。Search ROM(搜索芯片)[F0H]在芯片初始化后,搜索指令允許總線上掛接多芯片時用排除法識別所有器件的64位ROM。Alarm Search(報警芯片搜索)[ECH]在多芯片掛接的情況下,報警芯片搜索指令只對符合溫度高于TH或小于TL報警條件的芯片做出反應(yīng)。只要芯片不掉電,報警狀態(tài)將被保持,直到再一次測得溫度什達(dá)不到報警條件為止。 DS18B20芯片存儲器操作指令表[5]Write Scratchpad (向RAM中寫數(shù)據(jù))[4EH]這是向RAM中寫入數(shù)據(jù)的指令,隨后寫入的兩個字節(jié)的數(shù)據(jù)將會被存到地址2(報警RAM之TH)和地址3(報警RAM之TL)。寫入過程中可以用復(fù)位信號中止寫入。Read Scratchpad (從RAM中讀數(shù)據(jù))[BEH]此指令將從RAM中讀數(shù)據(jù),讀地址從地址0開始,一直可以讀到地址9,完成整個RAM數(shù)據(jù)的讀出。芯片允許在讀過程中用復(fù)位信號中止讀取,即可以不讀后面不需要的字節(jié)以減少讀取時間。Copy Scratchpad (將RAM數(shù)據(jù)復(fù)制到EEPROM中)[48H]此指令將RAM中的數(shù)據(jù)存入EEPROM中,以使數(shù)據(jù)掉電不丟失。此后由于芯片忙于EEPROM儲存處理,當(dāng)控制器發(fā)一個讀時間隙時,總線上輸出“0”,當(dāng)儲存工作完成時,總線將輸出“1”。在寄生工作方式時必須在發(fā)出此指令后立刻超用強(qiáng)上拉并至少保持10MS,來維持芯片工作。Convert T(溫度轉(zhuǎn)換)[44H]收到此指令后芯片將進(jìn)行一次溫度轉(zhuǎn)換,將轉(zhuǎn)換的溫度值放入RAM的第2地址。此后由于芯片忙于溫度轉(zhuǎn)換處理,當(dāng)控制器發(fā)一個讀時間隙時,總線上輸出“0”,當(dāng)儲存工作完成時,總線將輸出“1”。在寄生工作方式時必須在發(fā)出此指令后立刻超用強(qiáng)上拉并至少保持500MS,來維持芯片工作。Recall EEPROM(將EEPROM中的報警值復(fù)制到RAM)[B8H]此指令將EEPROM中的報警值復(fù)制到RAM中的第4個字節(jié)里。由于芯片忙于復(fù)制處理,當(dāng)控制器發(fā)一個讀時間隙時,總線上輸出“0”,當(dāng)儲存工作完成時,總線將輸出“1”。另外,此指令將在芯片上電復(fù)位時將被自動執(zhí)行。這樣RAM中的兩個報警字節(jié)位將始終為EEPROM中數(shù)據(jù)的鏡像。Read Power Supply(工作方式切換)[B4H]此指令發(fā)出后發(fā)出讀時間隙,芯片會返回它的電源狀態(tài)字,“0”為寄生電源狀態(tài),“1”為外部電源狀態(tài)。 DS18B20復(fù)位及應(yīng)答關(guān)系及讀寫隙每一次通信之前必須進(jìn)行復(fù)位,復(fù)位的時間、等待時間、回應(yīng)時間應(yīng)嚴(yán)格按時序編程。DS18B20的數(shù)據(jù)讀寫是通過時間隙處理位和命令字來確認(rèn)信息交換的。寫時間隙:寫時間隙分為寫“0”和寫“1”,時序如圖7。在寫數(shù)據(jù)時間隙的前15uS總線需要是被控制器拉置低電平,而后則將是芯片對總線數(shù)據(jù)的采樣時間,采樣時間在15~60uS,采樣時間內(nèi)如果控制器將總線拉高則表示寫“1”,如果控制器將總線拉低則表示寫“0”。每一位的發(fā)送都應(yīng)該有一個至少15uS的低電平起始位,隨后的數(shù)據(jù)“0”或“1”應(yīng)該在45uS內(nèi)完成。整個位的發(fā)送時間應(yīng)該保持在60~120uS,否則不能保證通信的正常。讀時間隙:讀時間隙時控制時的采樣時間應(yīng)該更加的精確才行,讀時間隙時也是必須先由主機(jī)產(chǎn)生至少1uS的低電平,表示讀時間的起始。隨后在總線被釋放后的15uS中DS18B20會發(fā)送內(nèi)部數(shù)據(jù)位,這時控制如果發(fā)現(xiàn)總線為高電平表示讀出“1”,如果總線為低電平則表示讀出數(shù)據(jù)“0”。每一位的讀取之前都由控制器加一個起始信號。注意:必須在讀間隙開始的15uS內(nèi)讀取數(shù)據(jù)位才可以保證通信的正確。在通信時是以8位“0”或“1”為一個字節(jié),字節(jié)的讀或?qū)懯菑母呶婚_始的。第四章 系統(tǒng)硬件設(shè)計(jì)當(dāng)一線制總線[6]上僅有一個DS18B20器件時,可以用skip ROM操作(即跳過ROM匹配)命令來代替64位序列號的匹配過程,這點(diǎn)也是使用單個DS18B20器件的系統(tǒng)常用的方法。所以,要想節(jié)省掉64位序列號匹配的時間開銷,就必需設(shè)計(jì)成一個一線制總線上僅有一個DS18B20器件的系統(tǒng)。 DS18B20的一線制總線在時序上的嚴(yán)格要求,也從另一方面意味著在一定的彈性范圍內(nèi),不同DS18B20器件的時序細(xì)節(jié)上的一致性應(yīng)該是非常好,所以可以將系統(tǒng)設(shè)計(jì)成利用MCU的并行端口同時對多個DS18B20進(jìn)行統(tǒng)一的操作,不過這時候并行端口上的每一個端口連接著一個DS18B20器件而已。 本文所述的解決方案正是以端口的消耗為代價,換取對多點(diǎn)DS18B20溫度查詢的速度,并在程序結(jié)構(gòu)的設(shè)計(jì)上采用一些巧妙的處理方法,使得系統(tǒng)對DS18B20的操作上花更少的時間。此外,采用本設(shè)計(jì)實(shí)現(xiàn)的快速多點(diǎn)溫度查詢系統(tǒng),可以省掉煩瑣的總線上器件序列號的查詢操作,并可節(jié)省大量的存儲空間(原用于存儲總線上器件的序列號所用的空間)。 從理論上分析,本設(shè)計(jì)方案的采用,查詢多個DS18B20器件操作所消耗的時間與查詢一個DS18B20器件操作所消耗的時間是等量的。本系統(tǒng)方案8個DS18B20器件連接在MCU的一組端口的8個I/O口上,連線示意圖41所示:圖41 系統(tǒng)連線示意圖當(dāng)然,上圖中的示意圖并沒有考慮諸如端口驅(qū)動能力、抗干擾處理等,僅表明一個邏輯的連接示意,具體在產(chǎn)品級的設(shè)計(jì)時會根據(jù)產(chǎn)品的應(yīng)用做必要的處理,比如增加一些必要的電路等,此處不作為討論的重點(diǎn)。 從上圖可見,每個端口連接有一個DS18B20器件,也即一條一線制總線上僅有一個DS18B20器件,符合了前面所述的解決方法。實(shí)際在對DS18B20器件進(jìn)行操作時,只需統(tǒng)一地對這一組并行端口進(jìn)行操作(每個端口在同一時間輸出相同的電平狀態(tài))即可。 一個端口對應(yīng)一個DS18B20器件,也就表示每組端口的某一個位的讀回數(shù)據(jù)狀態(tài)也就是該端口所對應(yīng)的器件的輸出狀態(tài),所以,這樣的系統(tǒng)里面是不需要進(jìn)行每個器件的序列號搜索、匹配的操作的??芍?,在對DS18B20器件進(jìn)行操作時,可以使用skip ROM命令來跳過ROM序列號匹配的操作,也即在所有的DS18B20器件的ROM操作時可以使用相同的端口輸出時序。DS18B20數(shù)碼管顯示AT89C51圖42 系統(tǒng)框圖系統(tǒng)框圖[15]簡介: 系統(tǒng)的核心是AT89C51單片機(jī),系統(tǒng)通過控制選擇某一個DS18B20,并把其檢測到的溫度數(shù)據(jù)送到單片機(jī)進(jìn)行處理,在把處理后的溫度送到數(shù)碼管顯示,并顯示是那個點(diǎn)的溫度,系統(tǒng)也可以多點(diǎn)溫度循環(huán)掃描顯示。模塊介紹圖43 為單片機(jī)AT89C51仿真模塊圖 43 AT89C51仿真模塊圖 圖44 為四位數(shù)碼管的仿真模塊圖 44 數(shù)碼管仿真模塊圖圖45 為數(shù)字溫度傳感器DS18B20的仿真模塊圖 45 DS18B20仿真模塊圖在 Keil[12],Proteus[13]環(huán)境下設(shè)計(jì)多點(diǎn)測溫系統(tǒng)硬軟件,進(jìn)行驗(yàn)證,硬件電路圖46如下圖46 系統(tǒng)硬件電路圖第五章 系統(tǒng)軟件設(shè)計(jì) 系統(tǒng)軟件設(shè)計(jì)思路[7]在接下來的軟件介紹中,會以C語言的例子介紹具體的編程思路,但這些代碼并非就是實(shí)際中所使用的代碼,僅作為邏輯性的參考,以便大家理解。 軟件設(shè)計(jì)從最底層的與DS18B20時序相關(guān)的驅(qū)動,到與一線制總線器件處理過程控制/協(xié)議的接口函數(shù),再上升到應(yīng)用API接口函數(shù)的關(guān)系如下圖51所示:圖51 接口函數(shù)關(guān)系圖在對連在一組8位端口上的8個DS18B20操作時,是同時對該組端口進(jìn)行操作,也即同時對8個DS18B20器件進(jìn)行同步的操作。 下面詳細(xì)介紹一下以MCS51系列單片機(jī)的應(yīng)用為例的范例程序,其中約定與8個DS18B20器件進(jìn)行連接的是P1端口。底層時序驅(qū)動[8]程序與DS18B20的一線制總線的協(xié)議保持一致,根據(jù)一線制總線時序的特點(diǎn),設(shè)計(jì)了四個基本的函數(shù):總線寫1時序控制函數(shù):void DS18B20_Write_1(void){P1 = 0x00。//8個DQ 線全部設(shè)置為低電平Delay_1us(10)。//延時10us左右P1 = 0xff。//8個DQ線全部輸出高電平Delay_1us(30)。//延時30us左右}總線寫0時序控制函數(shù):void DS18B20_Write_0(void){P1 = 0x00。//8個DQ 線全部設(shè)置為低電平Delay_1us(40)。//延時P1 = 0xff。//端口恢復(fù)高電平Delay_1us(1)。}總線讀取一個數(shù)據(jù)位時序控制函數(shù):unsigned char DS18B20_ReadDQ(void){unsigned char DQ_S=0。P1 = 0x00。//8個DQ 線全部設(shè)置為低電平Delay_1us(10)。P1 = 0xff。//端口置1,準(zhǔn)備讀取Delay_1us(1)。//延時待總線準(zhǔn)備好數(shù)據(jù)DQ_S = P1。//一次性讀取8條DQ線的數(shù)據(jù)狀態(tài)P1 = 0xff。//恢復(fù)端口電平Delay_1us(30)。//延時return DQ_S。//返
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1