www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀]/*********************************************************************************文件名:main.c*描述:溫度傳感器DS18B20示例*備注:控制DS18B20測量溫度并將溫度值顯示到液晶上****************************

/*

*******************************************************************************

*文件名:main.c

*描述:溫度傳感器DS18B20示例

*備注:控制DS18B20測量溫度并將溫度值顯示到液晶上

*******************************************************************************

*/

#include

#include"stdint.h"

externbitstartDs18b20();

externbitgetDs18b20Temperature(int*temp);

externvoidinitLcd1602();

externvoidlcd1602ShowStr(uint8_tx,uint8_ty,uint8_t*str);

externuint8_tgetIntPart(int16_ttemp);

externuint8_tgetDecPart(int16_ttemp);

bitflag1s=0;//1s定時標志

uint8_tT0RH=0,T0RL=0;

voidConfigTimer0(uint16_tms);

uint8_tIntToString(uint8_t*str,int16_tdat);

voidmain(){

bitres;

int16_ttemp;//讀取到的當前溫度值

uint8_tintT,decT;//溫度值的整數(shù)和小數(shù)部分

uint8_tlen;

uint8_tstr[12];

EA=1;//開總中斷

ConfigTimer0(10);//T0定時10ms

startDs18b20();//啟動DS18B20

initLcd1602();//初始化液晶

while(1){

if(flag1s){//每秒更新一次溫度(軟實時)

flag1s=0;

res=getDs18b20Temperature(&temp);//啟動轉(zhuǎn)換后至少要再等750ms之后讀取當前溫度

if(res){//讀取成功時,刷新當前溫度顯示

intT=getIntPart(temp);//分離出溫度值整數(shù)部分

decT=getDecPart(temp);//分離出溫度值小數(shù)部分

len=IntToString(str,intT);//整數(shù)部分轉(zhuǎn)換為字符串

str[len++]='.';//添加小數(shù)點

str[len++]=decT+'0';//十進制小數(shù)位再轉(zhuǎn)換為ASCII字符

while(len<6){//用空格補齊到6個字符長度

str[len++]='';

}

str[len]='