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

📄 lcd1602.c

📁 基于DS1820温度传感器,单片机控制的单线多路温度检测
💻 C
字号:
#include "lcd1602.h"
#include "ds18b20.h"
#include <stdio.h>

unsigned char temp[5];
extern char xiaoshu_temp[5],zhen_temp[4];
extern bit flag;
extern bit dot_dis;
uchar ds18b20_num1[8]={0xfd,0x00,0x00,0x00,0xb8,0xc5,0x45,0x28};
uchar ds18b20_num2[8]={0x8e,0x00,0x00,0x00,0xb8,0xc5,0x30,0x28};
uchar ds18b20_num3[8]={0xb9,0x00,0x00,0x00,0xb8,0xc5,0x31,0x28};
uchar ds18b20_num4[8]={0xe0,0x00,0x00,0x00,0xb8,0xc5,0x32,0x28};
void delay(unsigned int time)
{
	unsigned int i,j;
	for(i=0;i<time;i++)
		for(j=0;j<200;j++);
}

	
void main(void)
{ 
 	uchar i;
	uchar *ds18b20_rom;
 	char *str1="1:";
	char *str2="2:";
	char *str3="3:";
	char *str4="4:";
	serial_set();
 	Lcd_Init();
 	ClrScreen();
	GotoXY(0,0);
 	

	dot_dis=1;
	/*ds18b20_rom=read_rom();	 //读序列号
	for(i=0;i<8;i++)		 
	{
		ds18b20_num2[i]=*ds18b20_rom;
		ds18b20_rom++;
	}
	GotoXY(0,1);
	for(i=0;i<8;i++)			  //显示序列号
	{
		print_char(ds18b20_num2[i]/16);
		print_char(ds18b20_num2[i]%16);

	}

	while(1);*/ 
 	while(1)
 	{	
		ds18b20_init();
 		ds18b20_writecommand(0xcc);
 		ds18b20_writecommand(0x44);	 //转换
		delay(500);
		match_rom(ds18b20_num1);	  //匹配第一路
 		ds18b20_writecommand(0xbe);	  //读
 		for(i=0;i<2;i++)
 		{	
 			temp[i]=ds18b20_readdata();		
 		}
 		temperature_process(temp[0],temp[1]);
		Screen_home();
		Print(str1);
		if(!flag) //正
		{
			Print(zhen_temp);
			if(dot_dis)	
			Print(".");
			Print(xiaoshu_temp);
		}
		else   //负
		{
			Print("-");
			Print(zhen_temp);
			if(dot_dis)	
			Print(".");
			Print(xiaoshu_temp);

  	 	}
		Print("  ");
		ds18b20_init();

 		ds18b20_writecommand(0xcc);
 		ds18b20_writecommand(0x44);	 //转换
		delay(500);
		match_rom(ds18b20_num2);	  //匹配第二路
 		ds18b20_writecommand(0xbe);	  //读


 		for(i=0;i<2;i++)
 		{
 	
 			temp[i]=ds18b20_readdata();
		
 		}
 		temperature_process(temp[0],temp[1]);
		GotoXY(9,0);
		Print(str2);
		
		if(!flag) //正
		{
			Print(zhen_temp);
			if(dot_dis)	
			Print(".");
			Print(xiaoshu_temp);
		}
		else   //负
		{
			Print("-");
			Print(zhen_temp);
			if(dot_dis)	
			Print(".");
			Print(xiaoshu_temp);

  	 	}
		Print("  ");
		ds18b20_init();
 		ds18b20_writecommand(0xcc);
 		ds18b20_writecommand(0x44);	 //转换
		delay(500);
		match_rom(ds18b20_num3);	  //匹配第三路
 		ds18b20_writecommand(0xbe);	  //读


 		for(i=0;i<2;i++)
 		{
 	
 			temp[i]=ds18b20_readdata();
		
 		}
 		temperature_process(temp[0],temp[1]);
		GotoXY(0,1);
		Print(str3);
	
		if(!flag) //正
		{
			Print(zhen_temp);
			if(dot_dis)	
			Print(".");
			Print(xiaoshu_temp);
		}
		else   //负
		{
			Print("-");
			Print(zhen_temp);
			if(dot_dis)	
			Print(".");
			Print(xiaoshu_temp);

  	 	}
		Print("  ");
		ds18b20_init();

 		ds18b20_writecommand(0xcc);
 		ds18b20_writecommand(0x44);	 //转换
		delay(500);
		match_rom(ds18b20_num4);	  //匹配第二路
 		ds18b20_writecommand(0xbe);	  //读


 		for(i=0;i<2;i++)
 		{
 	
 			temp[i]=ds18b20_readdata();
		
 		}
 		temperature_process(temp[0],temp[1]);
		GotoXY(9,1);
		Print(str4);	
		if(!flag) //正
		{
			Print(zhen_temp);
			if(dot_dis)	
			Print(".");
			Print(xiaoshu_temp);
		}
		else   //负
		{
			Print("-");
			Print(zhen_temp);
			if(dot_dis)	
			Print(".");
			Print(xiaoshu_temp);

  	 	}
		Print("  ");
	   //delay(100);
	}
 	while(1);
	
}

⌨️ 快捷键说明

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