#include <pic.h>
#include "LCD1602.h"
#include "DS18B20.h"
 __CONFIG(0X1832);
#define uchar  unsigned char 
#define  uint unsigned int
#define KEY1			    RC4	
#define KEY2			    RC5  
#define KEY3			    RC6 
#define KEY4			    RC7
#define led			    RD1
#define BEE			    RD2
void Portinit();
void keyscan();
uchar settemp=36;
uchar setmaxtemp=38;
uchar settempflag=0;
uchar currenttemp;
void main( void )
{ 
     uchar i;
      LCD_Init();
      TRISC=0XF0;
      TRISD=0X00;
      LCD_Set_Cursor(0,0);	 // 从第0行第0个字符位 
开始显示
      LCD_Puts_ROM(c_LCD_str); //显示 Counter:  
      LCD_Set_Cursor(0, 4);
      LCD_Put_Char(settemp/100+'0');
      LCD_Put_Char(settemp%100/10+'0');
      LCD_Put_Char(settemp%10+'0');
      
       LCD_Set_Cursor(0, 12);
      LCD_Put_Char(setmaxtemp/100+'0');
      LCD_Put_Char(setmaxtemp%100/10+'0');
      LCD_Put_Char(setmaxtemp%10+'0');
      Init_DS18B20();     
	  while (1)
	  {      
	        
	         ReadTemperature();
	         LCD_Set_Cursor(1, 9);
	         LCD_Put_Char(disp[0]+'0');
	         LCD_Put_Char(disp[1]+'0');
	         LCD_Put_Char(disp[2]+'0');
	         LCD_Put_Char(disp[3]);
	         LCD_Put_Char(disp[4]+'0');
	         keyscan();
	      
	         
	         	 if 
(temp1>setmaxtemp||temp1<settemp)
	         	 {
	         	   led=0;
	         	   for(i=0;i<100;i++)
	         	   {
	         	     BEE=1;
	         	     __delay_ms(1);
	         	     BEE=0;
	         	   }  
	         	 }
	         	 else
	         	 {
	         	 	BEE=0;
	         	 	led=1;
	         	 }
	         
	         }

      
}
void keyscan()
{
    if(KEY1==0)
    {
	     while(!KEY1);
      settempflag++;
      if(settempflag>2)
      {
      	settempflag=0;
      }
         
    }
     if(KEY2==0)
    {
	    while(!KEY2);
	    if(settempflag==1)
	    {
                 settemp++;
                  LCD_Set_Cursor(0, 4);
                  LCD_Put_Char(settemp/100+'0');
	         LCD_Put_Char(settemp%100/10+'0');
	         LCD_Put_Char(settemp%10+'0');
	    }     
	     else if(settempflag==2)
	    {
                 setmaxtemp++;
                  LCD_Set_Cursor(0, 12);
                  LCD_Put_Char(setmaxtemp/100+'0');
	         LCD_Put_Char(setmaxtemp%100/10+'0');
	         LCD_Put_Char(setmaxtemp%10+'0');
	    }     
         
         
    }
     if(KEY3==0)
    {
     	    while(!KEY3);		
	     if(settempflag==1)
	    {
                 settemp--;
                  LCD_Set_Cursor(0, 4);
                  LCD_Put_Char(settemp/100+'0');
	         LCD_Put_Char(settemp%100/10+'0');
	         LCD_Put_Char(settemp%10+'0');
	    }     
	     else if(settempflag==2)
	    {
                 setmaxtemp--;
                  LCD_Set_Cursor(0, 12);
                  LCD_Put_Char(setmaxtemp/100+'0');
	         LCD_Put_Char(setmaxtemp%100/10+'0');
	         LCD_Put_Char(setmaxtemp%10+'0');
	    }     
    }
    if(KEY4==0)
    {
             settempflag=0;
         
    }
}

void Portinit()
{	
   	
    GIE=1;    // 打开总中断
    INTEDG=1;  // 设置触发中断的条件为电平从高到低触发
    TRISB0=1;  // B口方向位最低位为输入,否则无法响应 
INT中断 
    TRISA=0X00;
    PORTA=0X00;
    ADCON1=0X06;
    TRISB=0X00;
    PORTB=0X00;
    ADCON1=0X00;  
   // RBPU=0;
}