本應用筆記向用戶介紹DS5000(兼容8051)微控制器與DS1631溫度傳感器的接口軟件。DS1631集成了一個標準的2線串行數字接口。提供的軟件代碼可用于提供對DS1631的所有類型的功能訪問,包括讀取溫度寄存器、寫入恒溫器門限和設置器件配置。
介紹
DS1631為數字溫度計,在-9°C范圍內提供10、11、12或55位溫度讀數 至 +125°C 范圍,0°C 至 +5°C 范圍內具有 ±0.70°C 精度,3.0V ≤ VDD≤ 5.5V。DS1631還具有用戶定義的跳變點(TH和 TL).三個地址引腳 允許多達1631個DS<>在同一總線上工作。
與DS1631的通信通過2線串行接口實現。本應用筆記介紹 “C”源代碼,允許PC通過兼容1631的DS8051微控制器與DS5000通信。
硬件配置
DS1631 SDA (串行數據)和SCL (串行時鐘)引腳可直接連接至 DS5000微控制器。DS1631 SDA引腳為漏極開路I/O,因此SDA線必須拉高 通過上拉電阻。由于DS5000微控制器時鐘輸出也是漏極開路,因此上拉電阻 在 SCL 生產線上也需要。圖1所示為兩個DS1631(地址1001000 和1001001)連接到總線。
DS5000 配置在附錄 B 的頭文件中提供。請注意,DS5000 在 頻率為11.05949MHz。DS232A用于處理PC到微控制器的接口。如圖所示 在附錄B中,2線連接通過DS0的I/O端口P5000進行。I/O 端口 P1 或 P2 可以 用于報告狀態或為外圍報告設備(如 LCD)供電。
圖1.兩個DS1631器件在同一雙線總線上的電路圖
與DS1631的軟件通信
以下部分包含DS1631“C”源代碼示例。附錄 A 提供了完整的 C 用于測試硬件和與DS1631通信的程序列表
啟動和停止條件
微控制器使用啟動和停止條件來發出開始和結束信號, 分別是 2 線通信序列。要產生 START 條件,SDA 線為 當 SCL 為高電平時從高拉到低,對于停止條件,SDA 從低到高過渡,而 標準高標準 (SCL) 很高。圖 2a 顯示了用于生成 START 條件的示例“C”代碼,圖 2b 顯示了 用于生成 STOP 條件的示例代碼。
圖 2a. 啟動示例。
圖 2b. 停止示例。
寫入DS1631
主站對 1 字節配置寄存器和 2 字節 T 具有寫訪問權限H和 TL寄存 器。 因此,當寫入配置寄存器時,主站必須發送一個字節的數據,并且當 寫給 TH或 TL寄存器 主站必須發送兩個字節的數據。圖 3 顯示了示例“C” 用于寫入配置寄存器的代碼。SendAddr 例程導致 START 條件為 后跟一個控制字節,該字節包含DS1631地址,并設置了讀/寫位 “寫”。接下來,SendByte 例程用于發出訪問配置命令 (ACh)。這是遵循的 通過寫入配置寄存器的數據字節。序列以停止完成 條件。
圖3.寫入DS1631的代碼示例
從DS1631讀取
主站可以從 1 字節配置寄存器和 2 字節溫度 T 讀取數據H和 TL寄存 器。圖 4 顯示了用于讀取配置寄存器的示例“C”代碼。發送添加程序例程 生成一個 START,后跟一個控制字節,其中讀/寫位設置為“寫入”。下一頁 訪問 配置命令 (ACh) 被發送。接下來是另一個 START 和一個控制字節,但這次 讀/寫位設置為“讀”。I2CGetByte(1) 例程讀取并保存 1 字節配置 注冊。傳遞給例程的“1”表示此字節是最后一個(在這種情況下是唯一字節) 正在讀取的字節。這是必要的,以便在接收到字節后向DS1631發送NACK而不是ACK。 對于 2 字節讀取,在第一個字節之后將“0”傳遞給 I2CGetByte 子例程,“1”為 在第二個字節之后發送。序列以 STOP 條件完成。
圖4.讀取DS1631的代碼示例
計算溫度
每次溫度轉換后,DS1631將數字溫度存儲為16位雙 2字節溫度寄存器中的補碼數。圖 5 顯示了用于啟動 溫度轉換,然后讀取溫度寄存器并計算十進制攝氏度和 華氏值來自數字值。要啟動溫度轉換,請發送 START,然后發送 START。 由一個控制字節,讀/寫位設置為“寫入”。接下來發送開始轉換 T 命令(51h) 后跟停止條件。為了讀取溫度寄存器,發送一個START,然后發送一個控制 將讀/寫位設置為“寫入”的字節。接下來發送讀取溫度命令 (AAh) 后跟另一個 START,加上一個控制字節,讀/寫位設置為“讀取”。I2CGetByte(0) 讀取溫度MSB,并向DS1631發送確認。I2CGetByte(1) 然后讀取溫度 LSB 并向 DS1631 發送 NACK。通信序列以停止完成 條件。最終代碼段將 2 字節數字讀數轉換為十進制值。
圖5.讀取DS1631的代碼示例
審核編輯:郭婷
-
微控制器
+關注
關注
48文章
7489瀏覽量
151047 -
溫度傳感器
+關注
關注
48文章
2913瀏覽量
155889 -
寄存器
+關注
關注
31文章
5317瀏覽量
120007
發布評論請先 登錄
相關推薦
評論