📄 ds18b20_main.c
字号:
//温度传感器DS18B20试验
//间隔2s采集一次温度值
//使用1602的液晶作为显示
#include <iom16v.h>
#include <macros.h>
#include "18B20.h"
#include "1602.h"
uchar adc_0[]={"Temperature:"};
uchar adc_1[]={0xdf,0x43}; //温度ascii代码
//延时函数在16M时延时1ms
void s_1ms(unsigned int ms)
{
unsigned int aa;
for(;ms>=1;ms--)
{
for(aa=0;aa<=2000;aa++)
{;}
}
}
void main()
{
unsigned int i,tem3,tem2,tem1;
//端口初始化
DDRA = 0xff;
PORTA = 0x00;
DDRB = 0xFF;
PORTB = 0xF0;
DDRC = 0x00;
PORTC = 0xFF;
DDRD = 0xff;
PORTD = 0xff;
//延时200ms
s_1ms(200);
//DS18B20复位
ds1820_reset();
//1602 初始化
LcdInit();
WriteChar(1,0,12,adc_0);
WriteChar(1,14,2,adc_1);
while (1)
{
//进行一次转换
ds1820_start();
s_1ms(1000);
i = ds1820_read_temp(); //读取温度数值
i = (i * 10) / 16; //数值处理 数值*0.625
//第3位没有显示
i = i % 1000;
//显示第2位
tem2= i / 100;
WriteNum(1,12,tem2);
i = i % 100;
//显示第1位
tem1= i / 10;
WriteNum(1,13,tem1);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -