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

正文內容

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

2025-11-27 09:09本頁面

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

  

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