DS18B20测温通讯C程序,VB上位机软件,采集显示温度值及温度曲线。
上位机的运行界面:
vb写的上位机源码:
单片机下位机测温源程序如下:
- ;这是关于单个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)
|