亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? fyd.c

?? 基于51系列單片機以DS18B20為溫度傳感器的數字溫度計
?? C
字號:
#include<reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint   unsigned int

sbit CS  = P2^0;//指令數據控制端
sbit SID = P2^1;//R/W讀寫控制端
sbit CLK = P2^2;//使能端

//sbit DQ  = P3^7;//DS18B20數據總線
sbit DQ    = P3^0;//DS18B20數據總線
sbit buzzer= P1^5;//報警器接口
sbit set   = P2^3;//時間調整鍵
sbit ret   = P2^4;//定時按鍵
sbit add   = P2^5;//加一鍵
sbit dec   = P2^6;//減一鍵 
sbit led1  = P1^2;//指示燈

uchar ms50=0,second=0,minite=0,hour=12;//實際時間存放變量 
uchar hh  =0,ff=0,KT=0;//設定時間變量
uint tvalue;//溫度值
bit tflag;//溫度正負標志
uint n=0;
uchar T[8]={0x3a,0,0,0,0,0x2e,0,0x43};//溫度存放緩沖區
uchar sheding[8]={0x3a,0,0,0x3a,0,0,0x20,0x20};//設定時間存放數組
/*************************************************************************************************/

/*****************************初始化子程序******************************/
uchar  code huanyinghuamian[]={"歡迎來到誠信院@"};
uchar  code word[]            ={"時鐘溫度顯示系統"};
uchar  code guanggao[]        ={"嵌入式愛好者協會"};
uchar  code tegong[]          ={"嵌協特工隊制作!!"};
//uchar  code huanyinghuamian2[]={"Welcome to here!"};
//uchar  code huanyinghuamian3[]={"We'll be friend!"};
/***********************************************************************/
uchar  code numble[16]={"當前時間       "};
uchar  code name[16]  ={"當前溫度       "};
//uchar  code zhifu[]={"女人只能呵護與愛"};
uchar  code zhifu[]   ={"設定時間      "};
/************************溫度測試模塊***********************/
/***********ds18b20延遲子函數(晶振12MHz )*******/ 

/******************************ds1820程序***************************************/
void delay_18B20(unsigned int i)//延時1微秒
{
   while(i--);
}


void ds1820rst()/*ds1820復位*/
{ unsigned char x=0;
DQ = 1;          //DQ復位
delay_18B20(4); //延時
DQ = 0;          //DQ拉低
delay_18B20(100); //精確延時大于480us
DQ = 1;          //拉高
delay_18B20(40); 
 } 


uchar ds1820rd()/*讀數據*/
{ unsigned char i=0;
  unsigned char dat = 0;
  for (i=8;i>0;i--)
  {   DQ = 0; //給脈沖信號
      dat>>=1;
      DQ = 1; //給脈沖信號
      if(DQ)
      dat|=0x80;
      delay_18B20(10);
  }
   return(dat);
}


void ds1820wr(uchar wdata)/*寫數據*/
{
  unsigned char i=0;
    for (i=8; i>0; i--)
    { DQ = 0;
      DQ = wdata&0x01;
      delay_18B20(10);
      DQ = 1;
      wdata>>=1;
    }
}



read_temp()/*讀取溫度值并轉換*/
{
   uchar a,b;
   ds1820rst();    
   ds1820wr(0xcc);//*跳過讀序列號*/
   ds1820wr(0x44);//*啟動溫度轉換*/
   ds1820rst();    
   ds1820wr(0xcc);//*跳過讀序列號*/ 
   ds1820wr(0xbe);//*讀取溫度*/ 
   a=ds1820rd();
   b=ds1820rd();
   tvalue=b;
   tvalue<<=8;
   tvalue=tvalue|a;
   if(tvalue<0x0fff)
      tflag=0;
   else
     {tvalue=~tvalue+1;
      tflag=1;}

   tvalue=tvalue*(0.625);//溫度值擴大10倍,精確到1位小數
   return(tvalue);
}
/*****************************************************************/
/***************************液晶顯示模塊**************************/
/*****************************延時子程序**************************/
void delay( uint t )
{
  uint i;
  while( t-- )
    for(i=0;i<120;i++);      
}

/*****************************寫液晶子程序******************************/
/************************************************************************
說明:word:要寫的內容 dat:1為數據 0為指令
*************************************************************************/
void Writelcd(uchar word,uchar dat)
{
    uchar lcddat[3];
    uchar i,j,k;
    lcddat[0] = ( 0xf8+(dat<<1) );//第一個字節
    lcddat[1] = ( word&0xf0 ) ;     //第二個字節 內容的高四位+0000
    lcddat[2] = ( (word<<4)&0xf0 ) ;//第三個字節 內容的第四位+0000
    CS  = 0;
    CS  = 1;
    CLK = 0;
    for(i=0;i<3;i++)
    {
        j = lcddat[i];
        for(k=0;k<8;k++)
        {
            if( (j<<k)&0x80 )
                 SID = 1;        
            else             
                 SID = 0;            
            /**時鐘下降沿寫入數據**/
            CLK = 1;
            CLK = 0; 
        }
    }    
} 

void Serial_int(void)
{    
    CS  =1;
    SID =0;
    CLK =0; 
    Writelcd( 0x30,0 );//功能設置,一次送8位數據,基本指令集
 //   delay( 50 );
    Writelcd( 0x30,0 );//功能設置,一次送8位數據,基本指令集
 //   delay( 40 );
    Writelcd( 0x0c,0 );//0000,1100  整體顯示,游標off,游標位置off
//    delay( 50 );
    Writelcd( 0x01,0 );//0000,0001 清DDRAM
 //   delay( 10000 );
    Writelcd( 0x02,0 );//0000,0010 DDRAM地址歸位
//    delay( 50 );

//  delay( 50 );
    Writelcd( 0x80,0 );//1000,0000 設定DDRAM 7位地址000,0000到地址計數器AC//        
//    delay( 150 );
    Writelcd( 0x06,0 );    
}

/***********************按鍵處理程序模塊****************************/
void key_set()
{
  if(set==0)
  {
   delay(10);
    if(set==0)
	n++;
	if(n>=6)
	n=0;
  }
  while(set==0);
  if((n>=1)&&(n<=5))
   KT=1;
  else
   KT=0;
}


void key_ret()
{
  if(ret==0)
  {
  hh=0;
  ff=0;
  //ss=0;
  }
  while(ret==0);
}

void key_add()
{
  if(add==0)
  {
   delay(10);
   switch(n)
   {
    //case 0:break;
    case 1:hour++;if(hour>=24)hour=0;break;
    case 2:minite++;if(minite>=60)minite=0;break;
    case 3:second++;if(second>=60)second=0;break;
	case 4:hh++;if(hh>=24)hh=0;break;
	case 5:ff++;if(ff>=60)ff=0;break;
	//case 6:ss++;if(ss>=60)ss=0;break;
    default:break;
   }
  }
  while(add==0);
}

void key_dec()
{
  if(dec==0)
  {
   delay(10);
   switch(n)
   {
    //case 0:break;
    case 1:hour--;  if(hour<=0)  hour=23;break;
    case 2:minite--;if(minite<=0)minite=59;break;
    case 3:second--;if(second<=0)second=59;break;
	case 4:hh--;  if(hh<=0)  hh=23;break;
    case 5:ff--;if(ff<=0)    ff=59;break;
    //case 6:ss--;if(ss<=0)    ss=59;break;
    default:break;
   }
  }
  while(dec==0);
}

void key_scan()
{
 if(set==0) 
    {
	  delay(10);
	  if(set==0)
      key_set();
	 }
 else if(ret==0)
    {
	  delay(10);
	  if(ret==0)
      key_ret(); 
	}
 else if(add==0)
 	{
	 delay(10);
	 if(add==0)
	 key_add();
	}
 else           
 {
  delay(10);
  if(dec==0) 
  key_dec();
 }
}
/*******************************************************************/

/****************************************************/

/*******************************顯示函數*******************************/
 void display(void)
{
  uint i;
 T[2]=tvalue/1000+0x30;   T[3]=tvalue%1000/100+0x30;
 T[4]=tvalue%100/10+0x30; T[6]=tvalue%10+0x30;

 sheding[1]=hh/10+0x30;	  sheding[2]=hh%10+0x30;
 sheding[4]=ff/10+0x30;   sheding[5]=ff%10+0x30;
     
      if(tflag==0)
       T[1]=0x20;//正溫度不顯示符號
     else
       T[1]=0x2d;//負溫度顯示負號:-

     if(T[2]==0x30)
      {
        T[2]=0x20;//如果百位為0,不顯示
       if(T[3]==0x30)
        {
          T[3]=0x20;//如果百位為0,十位為0也不顯示
         }
      }

	  if(KT==0)
	   sheding[7]=0x01;
	  else
	    sheding[7]=0x1d;
   Writelcd( 0x8c,0 );
   for(i=0;i<8;i++)
   {
    Writelcd( T[i],1 );
   }
   
   Writelcd( 0x94,0 );   //時顯示
   {
    Writelcd( (hour/10)+0x30,1 );
    Writelcd( (hour%10)+0x30,1 );
   }

      Writelcd( 0x95,0 );// 冒號和分十位
   {
    Writelcd( 0x3a,1 );
    Writelcd( (minite/10)+0x30,1 );
   }

      Writelcd( 0x96,0 ); //分個位和冒號
   {
    Writelcd( (minite%10)+0x30,1 );
    Writelcd( 0x3a,1 );
   }

      Writelcd( 0x97,0 );//秒顯示
   {
    Writelcd( (second/10)+0x30,1 );
    Writelcd( (second%10)+0x30,1 );
   }

   Writelcd( 0x9c,0 );
   for(i=0;i<8;i++)
   {
    Writelcd( sheding[i],1 );
   }

}

/***************************************************************/
 void initdisplay(void)               //開機畫面
{ unsigned char xxx=2,i;
  for(;xxx>0;xxx--)
  {     
    Writelcd( 0x80,0 );
    for(i=0;i<16;i++)
    Writelcd( huanyinghuamian[i],1 );   //開機畫面
   
    Writelcd( 0x90,0 );  //說明:word:要寫的內容 dat:1為數據 0為指令
    for(i=0;i<16;i++)
    Writelcd( word[i],1 );


    Writelcd( 0x88,0 );
    for(i=0;i<16;i++)
    Writelcd( guanggao[i],1 );
            		
        	
    Writelcd( 0x98,0 );
    for(i=0;i<16;i++)
    Writelcd( tegong[i],1 );
  }
}

 void initdisplay1(void)               //開機畫面
{  
      //uchar i,j;
	  uchar i;
    //Serial_int();// 液晶初始化
     
    //for(j=1;j<10;j++)      //不停的顯示,這個參數需要修改
   // {
    
    Writelcd( 0x80,0 );
    for(i=0;i<16;i++)
    Writelcd( tegong[i],1 );

    Writelcd( 0x90,0 );  //說明:word:要寫的內容 dat:1為數據 0為指令
    for(i=0;i<16;i++)
    Writelcd( numble[i],1 );


    Writelcd( 0x88,0 );
    for(i=0;i<8;i++)
    Writelcd( name[i],1 );
            		
        	
    Writelcd( 0x98,0 );
    for(i=0;i<8;i++)
    Writelcd( zhifu[i],1 );
  //  }
}

/***************************************************/

void B_J()
{
 if(((hour==hh)&&(minite==ff)&&(second<=30))||(tvalue>=350)||(tvalue<=150))
 {
  led1=0;buzzer=1;
 }
 else
 {led1=1;buzzer=0;}
}

/****************************************************/

/********************主程序***************************/
void main()
{
 set=1;ret=1;add=1;dec=1;buzzer=0;led1=1;
 TMOD=0X01;
 TH0=0X3C;
 TL0=0Xb0;
 EA=1;
 ET0=1;
 TR0=1;
 Serial_int();
 initdisplay();
 delay(5000);
 initdisplay1();
 while(1)
   {
    read_temp();
    display();
	key_scan();	
	B_J();
   }
}

/*********************定時中斷服務程序**********************/
void time(void) interrupt 1 using 1
{
 //ET0=0;TR0=1;
 TH0=0X3C;
 TL0=0Xb0;
 //TR0=1;
 ms50++;
 if(ms50==20)
 {
  ms50=0;
  second++;
  if(second==60)
   {
    second=0;minite++;
    if(minite==60)
     { 
      minite=0;
      hour++;
      if(hour==24)
       hour=0;
     }
   }
 }
 //ET0=1;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品欧美精品| 亚洲一区二区黄色| 91麻豆精品国产91久久久资源速度| 国产精品亚洲人在线观看| 激情图片小说一区| 国产在线不卡一卡二卡三卡四卡| 美女任你摸久久| 日本成人在线看| 精品综合免费视频观看| 久久99国内精品| 成人午夜av电影| 成人中文字幕在线| 99精品视频一区| 欧美视频一区二区三区| 欧美丰满少妇xxxbbb| 日韩一区国产二区欧美三区| 欧美精品一区二区三区蜜臀| 久久精品欧美一区二区三区麻豆| 欧美高清在线精品一区| 樱桃视频在线观看一区| 午夜精品影院在线观看| 日本成人在线看| 国产精品白丝jk黑袜喷水| eeuss影院一区二区三区| 欧美专区日韩专区| 欧美一二三区在线观看| 国产精品卡一卡二| 亚洲一区二区三区自拍| 看电影不卡的网站| 岛国av在线一区| 欧美三级三级三级爽爽爽| www国产成人| 亚洲激情五月婷婷| 国内精品国产成人| 91蜜桃婷婷狠狠久久综合9色| 欧美日韩1234| 国产精品私房写真福利视频| 午夜欧美2019年伦理| 国产精品66部| 在线91免费看| 中文字幕欧美一区| 久久99国产精品成人| 91丨porny丨国产| 久久综合九色综合欧美98| 亚洲精品中文在线观看| 国产在线播放一区三区四| 欧美日韩一区二区不卡| 国产精品天干天干在观线| 美女mm1313爽爽久久久蜜臀| 色综合天天在线| 国产色综合久久| 青青青爽久久午夜综合久久午夜| eeuss鲁片一区二区三区| 欧美v亚洲v综合ⅴ国产v| 亚洲一二三四在线| 97se亚洲国产综合自在线不卡| 欧美成人性福生活免费看| 亚洲一区二三区| 91在线你懂得| 国产精品久久久久久亚洲伦| 精品亚洲欧美一区| 欧美一二三在线| 日日夜夜免费精品| 欧美日韩在线播| 一区二区三区四区在线免费观看| 成人天堂资源www在线| 精品国产乱码久久久久久影片| 亚洲成人动漫在线免费观看| 欧洲亚洲精品在线| 亚洲免费观看高清| 色综合久久久久网| 中文字幕亚洲在| 成人午夜视频在线观看| 国产精品视频线看| 国产99久久精品| 国产欧美一区二区精品性色超碰| 国产一区二区不卡老阿姨| 久久综合狠狠综合久久综合88| 麻豆国产精品一区二区三区| 精品国产一区二区三区忘忧草| 日本三级亚洲精品| 亚洲精品在线三区| 国产一区不卡视频| 中文字幕欧美激情一区| www.成人在线| 亚洲免费观看高清| 欧美美女直播网站| 青椒成人免费视频| 欧美精品一区二区三区在线播放 | eeuss鲁片一区二区三区在线看| 欧美精彩视频一区二区三区| 成人av网站在线观看| 亚洲欧美在线视频| 欧美在线视频你懂得| 日本不卡视频在线观看| 亚洲精品在线三区| 91免费在线视频观看| 亚洲国产精品一区二区尤物区| 51久久夜色精品国产麻豆| 国产综合久久久久久鬼色| 国产欧美日韩激情| 一本大道久久a久久精二百 | 欧美一卡二卡在线观看| 久久精品99国产精品| 国产欧美日本一区二区三区| 99精品视频一区| 蜜臀av一区二区三区| 中文一区在线播放| 欧美另类高清zo欧美| 国产专区欧美精品| 亚洲午夜精品17c| 精品国内二区三区| 欧美三级日韩三级| 国产精品自拍一区| 亚洲成人手机在线| 日本一区二区综合亚洲| 欧美亚洲动漫制服丝袜| 国产一区二区不卡| 日韩精品亚洲一区| 国产精品视频一二三| 日韩欧美久久一区| 一道本成人在线| 国产成a人无v码亚洲福利| 视频一区视频二区中文| 国产精品二三区| 精品免费国产二区三区| 色av一区二区| 岛国av在线一区| 国产伦精品一区二区三区视频青涩 | 国产精品久久久久影院| 91精品国产色综合久久| 欧洲精品一区二区三区在线观看| 国产精品一区二区黑丝| 日本不卡在线视频| 午夜欧美2019年伦理| 亚洲欧美另类久久久精品2019| 久久九九影视网| 亚洲精品在线电影| 日韩视频一区二区三区在线播放| 欧美亚洲日本国产| 一本色道久久综合亚洲91| 成人高清免费观看| 国产成人精品亚洲日本在线桃色| 久久国产麻豆精品| 久久精品二区亚洲w码| 蜜桃av一区二区三区电影| 日韩激情中文字幕| 日韩在线一二三区| 日日夜夜免费精品| 蜜臀av一区二区在线免费观看| 日本怡春院一区二区| 免费日韩伦理电影| 免费日本视频一区| 久久精品国产澳门| 国产一区免费电影| 国产成人在线免费观看| 国产v日产∨综合v精品视频| 国产精品一色哟哟哟| 国产一区二区三区蝌蚪| 国产自产v一区二区三区c| 国产很黄免费观看久久| 成人av动漫在线| 欧美性受极品xxxx喷水| 欧美剧情电影在线观看完整版免费励志电影| 91高清视频在线| 欧美夫妻性生活| 精品国产3级a| 国产精品午夜久久| 亚洲一区在线观看网站| 热久久久久久久| 国v精品久久久网| 色呦呦一区二区三区| 欧美综合亚洲图片综合区| 欧美一区二区三区精品| 中文字幕不卡在线| 一区二区三区成人| 久久国产剧场电影| 91亚洲精华国产精华精华液| 欧美性做爰猛烈叫床潮| 日韩女优av电影在线观看| 国产日本一区二区| 亚洲午夜精品在线| 久88久久88久久久| 91麻豆高清视频| 欧美一区二区在线免费观看| 中文字幕精品一区二区精品绿巨人 | 国产精品成人一区二区艾草 | 欧美一区二区啪啪| 亚洲国产精品传媒在线观看| 亚洲国产中文字幕在线视频综合| 日韩精品成人一区二区在线| 国产成人亚洲精品狼色在线| 欧美日韩三级在线| 国产日韩综合av| 天天综合天天综合色| 成人免费观看av| 日韩欧美一区中文| 亚洲欧美激情小说另类| 国内精品在线播放| 欧美日韩性生活|