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

正文內(nèi)容

單片機(jī)無線溫度控制系統(tǒng)設(shè)計(jì)-資料下載頁

2024-12-06 09:09本頁面

【導(dǎo)讀】論文設(shè)計(jì)了一個(gè)基于51系列單片機(jī)的無線溫度控制系統(tǒng)。兩方面進(jìn)行詳細(xì)論述。整個(gè)系統(tǒng)由兩個(gè)子系統(tǒng)組成,主控子系統(tǒng)由液晶屏1602,無。數(shù)據(jù)接收,實(shí)時(shí)顯示。從控子系統(tǒng)由溫度傳感器DS18B20,無線收發(fā)模塊nRF905和。從控芯片STC組成,主要進(jìn)行溫度數(shù)據(jù)采集,發(fā)送和設(shè)定參數(shù)的接收,處理。論文最后對(duì)系統(tǒng)進(jìn)行了整體調(diào)試,工作穩(wěn)定。

  

【正文】 初始化, ROM 命令,功能命令 )都是由這些基本的信號(hào)類型組成的。在這些信號(hào)中,除了應(yīng)答脈沖外,其他均由主機(jī)發(fā)出同步信號(hào),并且發(fā)送的所有命令和數(shù)據(jù)都是字節(jié)的低位在前。圖 41是初始化時(shí)序,初始化時(shí)序包括主機(jī)發(fā)出的復(fù)位脈沖和從機(jī)發(fā)出的應(yīng)答脈沖。在每一個(gè)時(shí)序中,總線只能傳輸一位數(shù)據(jù)。所有的讀寫時(shí)序至少需要 40us,且每兩個(gè)獨(dú)立的時(shí)序之間至少需要lus 的回復(fù)時(shí)間。單總線器件僅在主機(jī)發(fā)出讀時(shí)序時(shí)才向主機(jī)傳輸數(shù)據(jù),所以,當(dāng)主機(jī)向單總線器件發(fā)出讀數(shù)據(jù)命令后,必須馬上產(chǎn)生讀時(shí)序,以便單總線器件能傳輸數(shù)據(jù)。在主機(jī)發(fā)出讀時(shí)序之后,單總線器件能傳輸數(shù)據(jù)。在主機(jī)發(fā)出讀時(shí)序之后,單總線器件才開始在總線上發(fā)送 0和 1。若單總線器件發(fā)送 1,則總線保持高電平,若發(fā)送 0,則拉低總線。由于單總線器件發(fā)送數(shù)據(jù)后可保持 15us 有效時(shí)間,因此,主機(jī)在讀時(shí)序期間必須釋放總線,且必須在 15us 的采樣總線狀態(tài),以便接收從機(jī)發(fā)送的數(shù)據(jù)。 3)總線信號(hào) 單總線傳 送的數(shù)據(jù)或命令是由一系列的時(shí)序信號(hào)組成的,單總線上共有 4 種時(shí)序信號(hào):初始化信號(hào)、寫 0信號(hào)、寫 1信號(hào)、讀信號(hào)。各器件的數(shù)據(jù)手冊(cè)對(duì)這4種波形參數(shù)都作了具體要求,設(shè)計(jì)中應(yīng)保證指令執(zhí)行時(shí)間小于或等于時(shí)序信號(hào)中的最小時(shí)間。 3 圖 41初始化時(shí)序圖 圖 42寫時(shí)序圖 圖 43 讀 時(shí)序圖 DS18B20 溫度采集程序設(shè)計(jì) DS18B20 以單總 線協(xié)議工作,單片機(jī)首先發(fā)送復(fù)位脈沖,使信號(hào)線上的DS18B20 被復(fù)位,接著發(fā)送 ROM操作指令,使 DS18B20 被激活進(jìn)入接受存儲(chǔ)器訪問命令狀態(tài)。存儲(chǔ)器訪問命令完成溫度轉(zhuǎn)換、讀取等工作(單總線在 ROM 命令發(fā)送之前存儲(chǔ)和控制命令不起作用)。 系統(tǒng)以 ROM 命令和存儲(chǔ)器命令的形式對(duì) DSl8B20 操作。 ROM 操作命令均 為 8 位,命令代碼分別為:讀 ROM(33H)、匹配 ROM(55H)、跳過 ROM(CCH)、 搜索 ROM(FOH)和告警搜索 (ECH)命令。存儲(chǔ)器操作命令為:寫暫存存儲(chǔ)器 4 (4EH)、讀暫存存儲(chǔ)器 (BEH)、復(fù)制暫存存儲(chǔ)器 (48H)、溫度變換 (44H)、重新調(diào)出 EZPRAM(B8H)和讀電源供電方式 (B4H)命令。 寫數(shù)據(jù):將數(shù)據(jù)線從高電平拉至低電平,產(chǎn)生寫起始信號(hào)。在 15us 之內(nèi)將所需寫的位送到數(shù)據(jù)線上,在 15us 到 60us 之間對(duì)數(shù)據(jù)線進(jìn)行采樣,如果采樣為高電平,就寫 1,如果為低電平寫 0。在開始另一個(gè)寫周期前必須有 lus 以上的高電平恢復(fù)期。 讀數(shù)據(jù):主機(jī)將數(shù)據(jù)線從高電平拉至低電平 lus以上,再使數(shù)據(jù)線升為高電平,從而產(chǎn)生讀起始信號(hào)。主機(jī)在讀時(shí)間片下降沿之后 15us 內(nèi)完成讀位。每個(gè)讀周期最短的 持續(xù)期為 60us,各個(gè)讀周期之間也必須有 lus 以上的高電平恢復(fù)期。 溫度采集流程圖如 圖 44 所示: 圖 44 溫度采集流程圖 主要代碼如下: 不 向 DS18B20發(fā)送初試化命令 發(fā)送 CCh,跳過 ROM 命令 發(fā)送 44h,啟動(dòng)溫度轉(zhuǎn)換 發(fā)送 BEh,準(zhǔn)備度溫度 初始化成功 讀出溫度,數(shù)據(jù)保存 是 開始 結(jié)束 5 初始化是 DSl8B20的底層基本操作之一。通過單線總線進(jìn)行的所有操作都是從一個(gè)初始化序列開始。初始化序列包括一個(gè)由控制器發(fā)出的復(fù)位脈沖及其后由 DSl8820 發(fā)出的存在脈沖。存在脈沖讓控制器知道 DSl8B20 在總線上且己做好操作準(zhǔn) 備。源碼如下: Init_DS18B20(void) { DQ=1; //DQ 復(fù)位 Delay(10); //稍 做延時(shí) 。 DQ=0; //單片機(jī)將 DQ 拉低 。 Delay(100); //延時(shí)大于 480us。 DQ=I; //拉高總線 。 Delay(10); presencc=DQ; //如果 =O 則初始化成功 =l則初始化失敗 。 Delay(120); DQ=1; return(presence);//返回信號(hào), 0=存在 , 1=不存在。 } 數(shù)據(jù)寫是 DS18B20 的底層基本操作之一,所有的指令、數(shù)據(jù) 發(fā)送均有該操作完成。 DS18B20 的寫操作是逐位進(jìn)行的, 源碼如下: WriteOneChar(unsigned char dat) { unsigned char i; i=O; for(i=0; i8; i++) { DQ=0; //給脈沖信號(hào)。 DQ=datamp。0x01; Delay(5); 至少 15 秒; DQ=1; //給脈沖信號(hào)。 dat=1。//數(shù)據(jù)右移。 } 6 } 數(shù)據(jù)寫是 DS18B20 的底層基本操作之一,所有的指令、數(shù)據(jù)發(fā)送均有該操作完成。 DS18B20 的讀操作是逐位進(jìn)行的, 源碼如下: ReadOneChar(void) { unsigned char i=0; unsigned char dat=0; for(i=0; i8; i++) { DQ=0; //給脈沖信號(hào) 。 dat=1; //數(shù)據(jù)右移。 DQ=1; //給脈沖信號(hào) 。 if(DQ==1) dat=dat+0x80。 Delay(10); //延遲至少 60us。 } return(dat); } 無線收發(fā)程序設(shè)計(jì) 設(shè)計(jì)中用到 2個(gè) nRF905 無線收發(fā)模塊,一塊發(fā)送數(shù)據(jù)時(shí),另一塊就接受數(shù)據(jù)??刂菩酒捎?STC 單片 機(jī),在使用無線收發(fā)模塊的時(shí)候,首先通過單片機(jī)通過 SPI通信對(duì) nRF905 模塊進(jìn)行配置,這個(gè)配置是通過對(duì)其配置寄存器的設(shè)置來完成的。 nRF905有一個(gè) 144 位的配置字,該配置字規(guī)定了無線收發(fā)器的接收地址,收發(fā)頻率,發(fā)射功率 ,無線傳輸速率,無線收發(fā)模式以及 CRC 檢驗(yàn)和有效數(shù)據(jù)長度。在同一時(shí)刻,無線收發(fā)器只能處于接受或者發(fā)送模式中的一種 ,主要程序代碼如下: SPI 通信 SPI( Serial Peripheral Interface,串行外圍設(shè)備接口)是由 Motorala公司提出的一種基于 4 線的同 步串行總線。 SPI 接口主要應(yīng)用在 EEPROM、 FLASH、實(shí)時(shí)時(shí)鐘、 AD 轉(zhuǎn)換器以及數(shù)字信號(hào)處理器和數(shù)字信號(hào)解碼器。 SPI 是一種全雙工,同步的通信總線,由于在芯片的管腳上只占用死跟線,節(jié)約了芯片的管腳,同時(shí)為 PCB的布局上節(jié)省了空間,提供了方便,正是出于這種簡單一用的特性,現(xiàn)在越來越多的芯片集成了這種通信協(xié)議。 7 SPI 的通信原理很簡單,它以主從 工作,這種模式通常有一個(gè)主設(shè)備和一個(gè)或多個(gè)從設(shè)備,需要至少 4 根線,事實(shí)上 3 根也可以(單向通行)。也是所有基于 SPI的設(shè)備共有的,它們是 MISO(數(shù)據(jù)輸入), MOSI( 數(shù)據(jù)輸出), SCK(時(shí)鐘) , CSN(片選)。 ( 1) MISO— 主器件數(shù)據(jù)輸 入 ,從器件數(shù)據(jù)輸 出 ; ( 2) MOSI— 主器件數(shù)據(jù)輸 出 ,從器件數(shù)據(jù)輸 入 ; ( 3) SCK— 時(shí)鐘信號(hào),有主器件產(chǎn)生; ( 4) CSN— 從器件使能信號(hào),有主器件 。 其中 CSN 是控制芯片是否被選中,也就是說只有片選信號(hào)為預(yù)先規(guī)定的使 能信號(hào)時(shí)(高電平或低電平),對(duì)此芯片的操作才有效。這就允許在同一總線連接多個(gè) SPI設(shè)備。 接下來就負(fù)責(zé)通訊的 3 根線了。通訊是通過數(shù)據(jù)交換完成的,這里先要知 道 SPI 是串行通訊協(xié)議,也就是說數(shù)據(jù)是一位一位的傳輸?shù)摹_@就是 SCK 時(shí)鐘 線存在的原因,由 SCK 提供時(shí)鐘脈沖, MOSI, MISO 則基于此脈沖完成數(shù)據(jù)傳輸。 數(shù)據(jù)輸出通過 MOSI 線,數(shù)據(jù)在時(shí)鐘上升沿或下降沿時(shí)改變,在緊接著的下降沿 或上升沿被讀取。完成一位數(shù)據(jù)傳輸,輸入也使用同樣原理。這樣,在至少 8 次時(shí)鐘信號(hào)的改變 (上沿和下沿為~次 ),就可以完成 8 位數(shù)據(jù)的傳輸。 SPI的讀、寫時(shí)序如圖 4 46 所示。 圖 SPI 讀操作 8 圖 46 SPI 寫時(shí)序 要注意的是, SCK 信號(hào)線只由主設(shè)備控制,從設(shè)備不能控制信號(hào)線。同樣, 在一個(gè) 基于 SPI 的設(shè)備中,至少有一個(gè)主控設(shè)備。這樣傳輸?shù)奶攸c(diǎn):這樣的傳輸方式有一個(gè)優(yōu)點(diǎn),與普通的串行通訊不同,普通的串行通訊一次連續(xù)傳送至少 8 位數(shù)據(jù),而 SPI 允許數(shù)據(jù)一位一位的傳送,甚至允許暫停,因?yàn)?SCK 時(shí)鐘線由主控設(shè)備控制,當(dāng)沒有時(shí)鐘跳變時(shí),從設(shè)備不采集或傳送數(shù)據(jù)。也就是說,主設(shè)備通過對(duì) SCK時(shí)鐘線的控制可以完成對(duì)通訊的控制。 SPI 還是一個(gè)數(shù)據(jù)交換協(xié)議:因?yàn)?SPI 的數(shù)據(jù)輸入和輸出線獨(dú)立,所以允許同時(shí)完成數(shù)據(jù)的輸入和輸出。不同的 SPI 設(shè)備的實(shí)現(xiàn)方式不盡相同,主要是數(shù)據(jù)改變和采集的時(shí)間不同,在時(shí)鐘信號(hào)上沿或下沿采 集有不同定義, SPI 串行指令如表 4. 1 所示。 表 41 SPI 串行指令 9 對(duì)于不帶 SPI串口總線接口的 MCS51單片機(jī)來說,可以使用軟件來模擬 SPI操作,包括串行時(shí)鐘、數(shù)據(jù)輸入和數(shù)據(jù)輸出 。 nRF905 模塊發(fā)送程序設(shè)計(jì) 圖 47 nRF905 發(fā)送數(shù)據(jù)流程圖 數(shù)據(jù)的正確發(fā)送是 nRF905 模塊工作的關(guān)鍵之一, nRF905 發(fā)送數(shù)據(jù)的流程流程圖如 47 所示 。主函數(shù)調(diào)用 SendPa(void)函數(shù)將數(shù)據(jù)( DS18B20 采集到的溫度數(shù)據(jù)或 控制信號(hào))放到發(fā)送緩沖區(qū),最后進(jìn)入發(fā)送狀態(tài)。程序代碼如下: Void SendPa(void) { uchar i。 CSN=0。 開始 置 nRF905 為待機(jī)模式 STC 寫發(fā)送地址 STC寫發(fā)送有效數(shù)據(jù) 置 nRF905為發(fā)射模式 啟動(dòng)發(fā)射器 發(fā)射完成 結(jié)束 否 是 nRF905 無線發(fā)射 置 nRF905 為待機(jī)模式 10 SpiWrite(WTP)。//寫有效數(shù)據(jù)長度 for( i=0。i32。i++) { SpiWrite(SeBuf[i])。//寫 32字節(jié)的 數(shù)據(jù) } CSN=1。 Delay(1)。 SpiWrite(WTA)。 //寫地址命令; for(i=0。i4。i++) { SpiWrite(SeAdr[i])。//寫 4 字節(jié)的地址 } CSN=1。 TRE_CE=1。//開始發(fā)送數(shù)據(jù) Delay(1)。//延時(shí),等 nRF905 發(fā)送數(shù)據(jù) TRE_CE=0。//數(shù)據(jù)發(fā)送成功 } nRF905 模塊接收 程序設(shè)計(jì) 11 圖 48 nRF905 接收數(shù)據(jù)流程圖 數(shù)據(jù)的正確接收是
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1