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

📄 ds18b20lcd.c

📁 用51单片机制作测温系统
💻 C
字号:
/*********************************** 程序功能说明 *******************************************
									液晶显示当前温度
********************************************************************************************/

#include <reg52.h>
#include <math.h>
#include <intrins.h>
#include <1602lcd.h>
#include <DS18B20.h>

#define  uchar  unsigned char

extern void lcd_init();
extern void display(uchar pos,uchar len, uchar *q);
extern void ZIMO2CGRAM(uchar pos,uchar len, uchar *q);
//void delay10us(int n);  
//extern void delay(uchar) ;//**
extern void readtemp(void);


uchar dispbuf[7]; //显示缓冲区   
extern uchar  temper[2];//存放温度的数组       
code uchar fuhao[]={0x07,0x05,0x07,0x00,0x00,0x00,0x00,0x00,0x00};
code uchar cold[]={"     COLD       "};
code uchar cool[]={"     COOL       "};
code uchar hot[]= {"     HOT        "};
code uchar warm[]={"     WARM       "};
           

/*******************************主函数***********************/

main()
{ uchar i;
  uchar temp;
  float backbit;   
  TMOD=0x01;
  TH0=0xff;
  TL0=0xf5;
  EA=1;
  ET0=1;
  TR0=1;
  for(i=0;i<4;i++)dispbuf[i] = 0x30;
  lcd_init() ;    // 初始化LCD 
  ZIMO2CGRAM(0x00,9, fuhao);
  while(1){
       //P1=0x00;
	   //delay10us(10);
	  // P1=0xff;
  	   readtemp();//读18B20
	   
       backbit = temper[0];//换成浮点数
       backbit = backbit * 6.25;//乘以0.0625*100
       temp = backbit;//取低2位整数部分
       dispbuf[4] = temp%10;
       
       temp = temp/10;
       dispbuf[3] = temp%10 ;
       
       temp = temper[1];//取整数部分
       dispbuf[1] = temp%10;
       
       temp = temp/10;
       dispbuf[0]= temp%10;
       
	 //  seg_scan();
	   switch(dispbuf[0])
	   	{	case 0:display(0x40,sizeof(cold),cold);
					break;
	 		case 1:display(0x40,sizeof(cool),cool);
					break;
			case 2:display(0x40,sizeof(warm),warm);
					break;
			case 3:display(0x40,sizeof(hot),hot);
					break;
			default:break;
		};
	
       dispbuf[0]=dispbuf[0]|0x30;
	   dispbuf[1]=dispbuf[1]|0x30;
	   dispbuf[2]='.';
	   dispbuf[3]=dispbuf[3]|0x30;
	   dispbuf[4]=dispbuf[4]|0x30;
	   dispbuf[5]=0x00;
	   dispbuf[6]='C';
	   display(0x04,sizeof(dispbuf),dispbuf) ;
  }
}


/********************************结束************************/

⌨️ 快捷键说明

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