- 0
- 0
- 约7.25千字
- 约 10页
- 2026-02-10 发布于北京
- 举报
主机控制DS18B20完成温度转换必须经过三个步骤:初始化、ROM操作指令、
器操作指令。必须先启动DS18B20开始转换,再读出温度转换值。本程序仅挂接一个芯
片,使用默认的12位转换精度,外接供电电源,的温度值字节送WDMSB单元,
低位字节送WDLSB单元,再按照温度值字节的表示格式及其符号位,经过简单的变换即
可得到实际温度值。
18b20C程序
//将DQ与Vcc之间接入4.7K上拉电阻#includereg52.
h#includeINTRINS.H#include1602.c#define
ucharunsignedchar#defineuintunsignedint//#
defineCLEARSCREENLCD_en_command(0x01)1602
清屏sbitDQP1^0;/*操作命令代码跳过ROM0xCC发送
温度转换0xBE写EEPROM0x4E*/
/////////////低层驱动子程序///////////voidInit18B20(void);//初始化
voidWrite18B20(ucharch);//写数据unsignedchar
Read18B20(void);//读数据voidDelay15(ucharn);void
Delay10ms(uintdelay_num);voidDisy(void);/////////////////////////////////////
codeuchardecimalH[]
{00,06,12,18,25,31,37,43,50,56,62,68,75,81,87,93};codeuchar
decimalL[]{00,25,50,75,00,25,50,75,00,25,50,75,00,25,50,75};
主机控制DS18B20完成温度转换必须经过三个步骤:初始化、ROM操作指令、器
操作指令。必须先启动DS18B20开始转换,再读出温度转换值。本程序仅挂接一个,
使用默认的12位转换精度,外接供电电源,的温度值字节送WDMSB单元,低位
字节送WDLSB单元,再按照温度值字节的表示格式及其符号位,经过简单的变换即可得到
实际温度值。
18b20C程序
//将DQ与Vcc之间接入4.7K上拉电阻
#includereg52.h
#includeINTRINS.H
#include1602.c
#defineucharunsignedchar
#defineuintunsignedint
//#defineCLEARSCREENLCD_en_command(0x01)1602清屏
sbitDQ=P1^0;
/*操作命令代码
跳过ROM0xCC
发送温度转换0xBE
写EEPROM0x4E
*/
/////////////低层驱动子程序///////////
voidInit18B20(void);//初始化
voidWrite18B20(ucharch);//写数据
unsignedcharRead18B20(void);//读数据
voidDelay15(ucharn);
voidDelay10ms(uintdelay_num);
voidDisy(void);
/////////////////////////////////////
codeuchardecimalH[]={00,06,12,18,25,31,37,43,50,56,62,68,75,81,87,93};
codeuchardecimalL[]={00,25,50,75,00,25,50,75,00,25,50,75,00,25,50,75};
uintResultTemperatureH,ResultTemperatureLH,ResultTemperatureLL;//整数,
小数,小数低位uintResultSignal;//符号位
main()
{uintTemH,TemL,delay,k=0;
for(;;)
{
Init18B20();
Write18B20(0xCC);//跳过
ROM_nop_();//
Write18B20(0x4E);//写EEPROM//
Write18B20(0x00);//Th//
Write
原创力文档

文档评论(0)