📄 task2.c
字号:
#include "main.h"
#include "task2.h"
#include "ds18b20.h"
float temp;
unsigned char a=0;
unsigned char b=0;
unsigned char str_temp[10];
void task2_init(void)
{
EA = 0;
ds18b20_init();
WriteOneChar(0xCC); //跳过读序号列号的操作
WriteOneChar(0xBE); //读取温度寄存器等(共可读9个寄存器) 前两个就是温度
a=ReadOneChar();
b=ReadOneChar();
EA = 1;
}
//任务2
void task2()
{
static unsigned char i=0;
i++;
if(i==1)
{
EA = 0;
ds18b20_init();
WriteOneChar(0xCC); // 跳过读序号列号的操作
WriteOneChar(0x44); // 启动温度转换
EA = 1;
}
else if(i>8)
{
EA = 0;
ds18b20_init();
WriteOneChar(0xCC); //跳过读序号列号的操作
WriteOneChar(0xBE); //读取温度寄存器等(共可读9个寄存器) 前两个就是温度
a=ReadOneChar();b=ReadOneChar();
//temp = (b*256+a)*6.25; //有效位到小数点后2位,适用Proteus6.9版本和实物版
temp = (b*256+a)*5; //有效位到小数点后2位,适用Proteus7以上版本
sprintf(str_temp,"%2.1f",temp/10);
str_buff1[10] = str_temp[0];
str_buff1[11] = str_temp[1];
str_buff1[12] = str_temp[2];
str_buff1[13] = str_temp[3];
str_buff1[14] = 0xdf;
str_buff1[15] = 'C';
i = 0;
EA = 1;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -