DS18B20測溫通訊C程序,VB上位機軟件,采集顯示溫度值及溫度曲線。
上位機的運行界面:
0.png (20.77 KB, 下載次數: 56)
下載附件
2017-8-10 05:18 上傳
vb寫的上位機源碼:
0.png (37.06 KB, 下載次數: 54)
下載附件
2017-8-10 05:18 上傳
單片機下位機測溫源程序如下:
- ;這是關于單個DS18B20的測溫程序,數據腳為P3.3,晶振是11.059MHZ
- ;溫度傳感器18B20采用器件默認的12位轉化,最大轉化時間要750毫秒
- ;用1602液晶屏顯示,顯示溫度從00到99度,精確到0.0625度
- ;內存分配聲明
- TEMPER_L EQU 29H;用于保存讀出溫度的低字節
- TEMPER_H EQU 28H;用于保存讀出溫度的高字節
- T_DF EQU 27H ;FORMAT后的小數部分(decimal fraction),半字節的溫度小數(存在低四位)
- T_INTEGER EQU 26H ;FORMAT后的整數部分(integer),將兩字節的溫度整合成1字節
- FLAG1 BIT 50H;位地址50H是字節2AH的最低位,用作是否檢測到DS18B20的標志位
- A_BIT EQU 20h ;液晶十位數存放內存位置
- B_BIT EQU 21h ;液晶個位數存放內存位置
- C_BIT EQU 22H ;個位小數
- D_BIT EQU 23H ;十位小數
- E_BIT EQU 24H ;百位小數
- F_BIT EQU 25H ;千位小數
- RS BIT P1.0 ;這3位是液晶屏的控制信號,連接方式由具體硬件而定
- RW BIT P1.1
- E BIT P1.2
- ORG 0000H
- LJMP MAIN
- ORG 0100H
- MAIN:
- LCALL INIT_RS232
- CLR P1.3
- LCALL T_CONVERSION;調用讀溫度子程序
- LCALL T_FORMAT;將讀出的2字節溫度格式化
- LCALL DISPLAY;調用液晶顯示子程序
- LCALL D1S;延時1秒后再測
- LJMP MAIN
- ;--------------DS18B20的溫度轉換子程序,具體時序請參考資料-------------------
- T_CONVERSION: LCALL INIT_1820;先復位DS18B20
- JB FLAG1,T_C0
- RET ; 判斷DS1820是否存在 若DS18B20不存在則返回
- T_C0: MOV A,#0CCH ; 跳過ROM匹配
- LCALL WRITE_1820
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
DS18B20測溫顯示并PC通訊.zip
(39.44 KB, 下載次數: 62)
2017-8-9 22:07 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|