⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 LCD1602+89C51+DS18B20数字温度计
💻 C
字号:
#include "reg51.h"
#include "ds18b20.h"	//引入DS18B20头文件
#include "1602.h"	//引入DS18B20头文件

//变量定义:
uchar ly_dis[4];//定义显示缓冲区

//函数声明:
void display(void);//显示函数,显示缓冲区内容

//主函数,C语言的入口函数:	
void main()
{	
	unsigned int i=0;
	float tt;
	int ltemp;
	LCDInit();
	DisplayListChar(0, 0, "Temperature:");
	while(1)
	{
		if(i==0)
			tmpchange();      	//温度转换
		if(i==100)
		{
			tt=tmp()*0.0625;  	//得到真实十进制温度值,因为DS18B20
								//可以精确到0.0625度,所以读回数据的最低位代表的是0.0625度。
  			ltemp=tt*10+0.5;   	//放大十倍,这样做的目的将小数点后第一位也转换为可显示数字,同时进行一个四舍五入操作。

			if(ltemp<0)
			{		//判断第一位显示整数还是负号
				ly_dis[0]=0xbf;
				ltemp=0-ltemp;	
			}
			else
				ly_dis[0]=ltemp/1000;//显示百位值
			ltemp=ltemp%1000;
			ly_dis[1]=ltemp/100;	//显示温度十位值
			ltemp=ltemp%100;
			ly_dis[2]=ltemp/10;		//显示温度个位值
			ly_dis[3]=ltemp%10;		//显示小数点后一位
		}
		i++;
		if(i==3000)
			i=0;
		display();	//调用显示	
		
	
	}
}

//显示函数,参数为显示内容
void display()
{


	if(0==ly_dis[0])
		DisplayOneChar(1, 1, ' ');
	else
		DisplayOneChar(1, 0, table[ly_dis[0]]);
	DisplayOneChar(2, 1, table[ly_dis[1]]);
	DisplayOneChar(3, 1, table[ly_dis[2]]);
	DisplayOneChar(4, 1, '.');
    DisplayOneChar(5, 1, table[ly_dis[3]]);
	DisplayOneChar(6, 1, 0xdf);
	DisplayOneChar(7, 1, 'C');
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -