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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? w013.c

?? 使用Keil環(huán)境開發(fā)了基于C8051單片機的溫度采集模塊
?? C
字號:
/*******************************************************************************
* 實驗名稱: 數(shù)字溫度表(DS18B20)LCD1620顯示                                     *
********************************************************************************
* 實驗描述: LCD1620顯示測量的溫度                                              *
* 實驗說明: DS18B20正常時,顯示“DS18B20 OK”及溫度值				           *
*           DS18B20沒有安裝時,顯示“DS18B20  ERR0R PLEASE CHECK” 			   *
*			實驗前要在J7上安裝DS18B20						                   *
*			1:接DS18B20的GND端								                   *
*           2:接DS18B20的DQ端                                                 * 
*           3:接DS18B20的VDD端                                                *
*******************************************************************************/

#include <reg51.h>
#include <intrins.h>

#define uchar unsigned char
#define uint  unsigned int

sbit LCD_RS = P2^3;
sbit LCD_RW = P2^4;

sbit HC138_A = P2^5;
sbit HC138_B = P2^6;
sbit HC138_C = P2^7;

#define SELECT_LCD()	HC138_A=0; HC138_B=1; HC138_C=0
#define NOSELECT_LCD()	HC138_A=1; HC138_B=1; HC138_C=1

sbit DQ = P3^7 ;    //定義DS18B20端口DQ  
bit presence ;	    //DS18B20初始化成功標(biāo)志位

uchar data  temp_data[2] = {0x00,0x00} ;   //溫度數(shù)據(jù)緩存
uchar data  dis_data[5]={0,0,0,0,0};	   //溫度值百十個小數(shù)位及一個數(shù)據(jù)緩存

uchar code  dis_code1[ ] = {"   DS18B20 OK   "} ;
uchar code  dis_code2[ ] = {"  TEMP:    .  C "} ;
uchar code  dis_code3[ ] = {" DS18B20  ERR0R "} ;
uchar code  dis_code4[ ] = {"  PLEASE CHECK  "} ;


/*溫度小數(shù)部分查表*/
unsigned char code  ditab[16] = {0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,
                                 0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09};


/*自定義字符*/
unsigned char code  mytab[8] = {0x0C,0x12,0x12,0x0C,0x00,0x00,0x00,0x00} ; //度的符號


void Delay(unsigned int num) //us級延時函數(shù)
{
  while( --num ) ;
}

bit LCD_Busy()	   //LCD忙碌狀態(tài)檢測
{							
	bit result;
	LCD_RS = 0;			    
	LCD_RW = 1;
	SELECT_LCD();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	result = (bit)(P0 & 0x80);	
	NOSELECT_LCD();
	return result;	
}

LCD_WriteCommand(uchar cmd)	 //寫指令數(shù)據(jù)到LCD
{							   
	while(LCD_Busy());
	LCD_RS = 0;
	LCD_RW = 0;
	NOSELECT_LCD();
	_nop_();
	_nop_();	
	P0 = cmd;
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	SELECT_LCD();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	NOSELECT_LCD();		
}

LCD_WriteDate(uchar dat)   //寫字符顯示數(shù)據(jù)到LCD
{							
	while(LCD_Busy());
	LCD_RS = 1;
	LCD_RW = 0;
	NOSELECT_LCD();
	P0 = dat;
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	SELECT_LCD();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	NOSELECT_LCD();	
}

LCD_DisplayPosit(uchar pos)	 //設(shè)定字符在LCD上顯示的位置
{							
	LCD_WriteCommand(pos | 0x80);
}

LCD_Init()	//LCD初始化
{							
	LCD_WriteCommand(0x38);	   
	Delay(5);
	LCD_WriteCommand(0x0c);	  
	Delay(5);
	LCD_WriteCommand(0x06);	  
	Delay(5);
	LCD_WriteCommand(0x01);	
	Delay(5);
}

void  LCD_WriteMytab()  //自定義字符寫入CGRAM函數(shù)
{  
    unsigned char i ;
    LCD_WriteCommand(0x40) ;  //寫CGRAM
    for (i = 0 ; i< 8 ; i++)       
    LCD_WriteDate(mytab[ i ]) ;        
}

void LCD_DisplayLine(uchar a[ ],uchar b[ ])	//LCD1620顯示兩行字符函數(shù)
{
    uchar  m ;
    LCD_Init() ;                //初始化LCD 
            
    LCD_DisplayPosit(0) ;       //設(shè)置顯示位置為第一行的第1個字符
     m = 0 ;
    while(a[m] != '\0')
     {                          //顯示第一行字符
       LCD_WriteDate(a[m]) ;
       m++ ;
     }

    LCD_DisplayPosit(0x40) ;    //設(shè)置顯示位置為第二行第1個字符
     m = 0 ;
    while(b[m] != '\0')
     {
       LCD_WriteDate(b[m]) ;    //顯示第二行字符
       m++ ;
     } 
}

DS18B20_Init(void)	 //DS18B20初始化函數(shù)
{  
     DQ = 1 ;        //DQ復(fù)位
     Delay(8) ;      //延時

     DQ = 0 ;        //單片機將DQ拉低
     Delay(90) ;     //延時 大于 480us

     DQ = 1 ;        //拉高總線
     Delay(8) ;

     presence = DQ ;    //如果 presence=0則初始化成功 presence=1則初始化失敗
     Delay(100) ;
     DQ = 1 ; 
     
     return(presence) ; // 返回信號,0=presence,1= no presence
}						   

 ReadOneChar(void)	   //讀一個字節(jié)數(shù)據(jù)函數(shù)
{					    
  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(4) ;
    }

    return (dat) ;
}


 WriteOneChar(unsigned char dat)  //寫一個字節(jié)數(shù)據(jù)函數(shù)
{
  unsigned char i = 0 ;
  for (i = 8 ; i > 0 ; i--)
  {
    DQ = 0 ;
    DQ = dat&0x01 ;
    Delay(5) ;

    DQ = 1 ;
    dat>>=1 ;
  }
}

 ReadTemperature(void)	 //讀取溫度函數(shù)
{
     DS18B20_Init() ;
  
     WriteOneChar(0xCC) ;  //跳過讀序號列號的操作
     WriteOneChar(0x44) ;  //啟動溫度轉(zhuǎn)換

     DS18B20_Init() ;
     WriteOneChar(0xCC) ;  //跳過讀序號列號的操作
     WriteOneChar(0xBE) ;  //讀取溫度寄存器

     temp_data[0] = ReadOneChar() ;   //讀溫度低8位
     temp_data[1] = ReadOneChar() ;   //讀溫度高8位 
}

 TemperatureDisplay()	//溫度數(shù)據(jù)轉(zhuǎn)換和顯示函數(shù)
{
  dis_data[4]=temp_data[0]&0x0f ;	     //temp_data[0]低4為有效
  dis_data[3]=ditab[dis_data[4]]+0x30;   //查表得小數(shù)位的值
  
  dis_data[4]=((temp_data[0]&0xf0)>>4)|((temp_data[1]&0x0f)<<4);
  dis_data[2]=dis_data[4]%10+0x30;		   //個位
  dis_data[1]=(dis_data[4]/10)%10+0x30;	   //十位
  dis_data[0]=dis_data[4]/100+0x30;		   //百位

    if(dis_data[0]==0x30)     //百位為0,不顯示
   { 
     dis_data[0]=0x20;
	               
     if(dis_data[1]==0x30)    //十位為0,不顯示
       dis_data[1]=0x20 ;
   }

     LCD_DisplayPosit(0x48) ;             
     LCD_WriteDate(dis_data[0]) ;  //百位數(shù)顯示 
     LCD_DisplayPosit(0x49) ;             
     LCD_WriteDate(dis_data[1]) ;  //十位數(shù)顯示 
     LCD_DisplayPosit(0x4a) ;             
     LCD_WriteDate(dis_data[2]) ;  //個位數(shù)顯示 
     LCD_DisplayPosit(0x4c) ;             
     LCD_WriteDate(dis_data[3]) ;  //小數(shù)位數(shù)顯示
	 LCD_WriteMytab() ;            //自定義字符(度的符號)寫入CGRAM
     Delay(5) ;
     LCD_DisplayPosit(0x4d) ;
     LCD_WriteDate(0x00) ;         //顯示自定義字符(度的符號)

}

void  DS18B20_OkMenu ()	   //DS18B20 OK 菜單顯示函數(shù)
{ 
     LCD_DisplayLine(dis_code1,dis_code2); 
}

void  DS18B20_ErrorMenu ()  //DS18B20 ERROR 菜單顯示函數(shù)
{
     LCD_DisplayLine(dis_code3,dis_code4);
}

void main()	   //主函數(shù)
 {
      DS18B20_OkMenu () ;

    do
    {
      ReadTemperature() ;
      TemperatureDisplay() ;
    }
    while(!presence)  ;

     DS18B20_ErrorMenu () ;

    do
    {  
      DS18B20_Init() ;
    }
    while(presence) ;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人av中文字幕| 欧美成人r级一区二区三区| 国产亚洲精品资源在线26u| 日韩中文字幕亚洲一区二区va在线 | 欧美在线视频不卡| 国产精品欧美一区二区三区| 国产成+人+日韩+欧美+亚洲| 久久久综合视频| 国产一区福利在线| 亚洲精品一区二区在线观看| 中文字幕免费一区| 高清成人在线观看| 久久久久九九视频| 国产麻豆9l精品三级站| 久久婷婷色综合| 国产美女视频91| 国产性做久久久久久| 国产精品一区二区果冻传媒| 久久久影院官网| 成人性生交大合| 亚洲欧美日韩一区| 91久久精品国产91性色tv| 亚洲国产精品久久艾草纯爱 | 美女视频黄频大全不卡视频在线播放 | 欧美日韩久久一区二区| 日本午夜精品一区二区三区电影| 日韩欧美国产三级电影视频| 激情久久五月天| 国产精品久久久久久一区二区三区| 成人黄页毛片网站| 亚洲一区二区3| 日韩欧美高清dvd碟片| 国产精品影视天天线| 国产人成一区二区三区影院| 播五月开心婷婷综合| 亚洲靠逼com| 欧美一区二区三区视频免费 | 欧美性极品少妇| 麻豆免费看一区二区三区| 国产无遮挡一区二区三区毛片日本| 成人高清免费观看| 亚洲天堂成人在线观看| 欧美男女性生活在线直播观看| 五月天激情小说综合| 日韩欧美一级二级三级| 成人精品视频网站| 天天免费综合色| 日本一区二区三区高清不卡| 在线视频一区二区三| 国产一区二区免费视频| 亚洲精品国产高清久久伦理二区 | 欧美剧情片在线观看| 国产精品香蕉一区二区三区| 亚洲激情在线播放| 久久综合国产精品| 欧美色国产精品| 国产精品资源网站| 一区二区三区毛片| 国产欧美日韩不卡| 91精品国产综合久久久蜜臀粉嫩| 成人动漫一区二区| 成人av在线电影| 六月丁香婷婷色狠狠久久| 亚洲精品视频在线| 国产亚洲午夜高清国产拍精品| 欧美日韩三级一区二区| gogo大胆日本视频一区| 亚洲高清视频在线| 国产精品日韩精品欧美在线| 91.麻豆视频| 97se亚洲国产综合自在线观| 韩国女主播一区| 午夜欧美2019年伦理| 国产精品久久久久一区二区三区共 | 成人免费毛片片v| 另类人妖一区二区av| 亚洲一区在线观看视频| 国产精品另类一区| 精品欧美一区二区在线观看| 欧美酷刑日本凌虐凌虐| 在线视频国内自拍亚洲视频| www.亚洲精品| 国产精品一区二区免费不卡 | 欧美精品一区二区三区视频| 欧洲国产伦久久久久久久| 成人精品电影在线观看| 国产激情一区二区三区桃花岛亚洲| 美女网站色91| 久久国产精品99久久人人澡| 奇米色一区二区| 日韩不卡一二三区| 日本视频一区二区| 天天色天天操综合| 视频一区在线播放| 日日夜夜一区二区| 日本不卡的三区四区五区| 亚洲不卡一区二区三区| 性感美女极品91精品| 亚洲一区二区三区不卡国产欧美| 一个色妞综合视频在线观看| 亚洲女同一区二区| 亚洲精品成人悠悠色影视| 亚洲一区二区四区蜜桃| 亚洲欧美另类图片小说| 亚洲精品ww久久久久久p站| 亚洲一区二区在线视频| 亚洲成精国产精品女| 午夜久久电影网| 青青草国产成人99久久| 狠狠网亚洲精品| 丁香一区二区三区| 91网站最新网址| 在线观看视频91| 欧美无乱码久久久免费午夜一区| 欧美性色黄大片| 欧美精品tushy高清| 日韩亚洲电影在线| 久久女同性恋中文字幕| 欧美韩国日本不卡| 亚洲精品视频免费看| 亚洲免费在线电影| 亚洲电影你懂得| 韩国欧美一区二区| 99精品国产热久久91蜜凸| 91国产成人在线| 在线观看不卡一区| 日韩欧美中文字幕精品| 5月丁香婷婷综合| www国产精品av| 亚洲视频资源在线| 亚洲成人一二三| 国产一区二区h| 色一区在线观看| 337p亚洲精品色噜噜狠狠| 久久日韩粉嫩一区二区三区| 悠悠色在线精品| 蜜桃视频在线一区| 不卡视频免费播放| 欧美一区二区三级| 国产精品日日摸夜夜摸av| 日本欧美加勒比视频| www.在线成人| 日韩精品自拍偷拍| 一区二区三区欧美| 国产一区二区电影| 欧美日韩一区二区三区不卡| 国产视频911| 午夜精品久久久久久久| 国产乱码精品一区二区三 | 久久精品视频一区| 午夜国产精品一区| 成人免费高清视频| 欧美va亚洲va香蕉在线| 一区二区三区.www| 福利电影一区二区| 欧美一区二区三区免费大片| 亚洲欧美另类久久久精品2019| 久久精品理论片| 欧美日韩亚洲综合一区二区三区| 国产视频一区二区三区在线观看| 一区二区理论电影在线观看| 国产精品88av| 91精品国产综合久久香蕉麻豆 | 亚洲动漫第一页| 国产一二精品视频| 欧美一级精品在线| 亚洲成人www| 欧美亚洲国产一区二区三区va| 欧美韩国日本不卡| 国产美女精品一区二区三区| 91精品国产免费| 香蕉av福利精品导航| 94-欧美-setu| 中文一区一区三区高中清不卡| 精品无码三级在线观看视频| 日韩一区二区三区在线视频| 亚洲自拍偷拍欧美| 欧美在线观看视频一区二区三区| 国产精品全国免费观看高清 | 亚洲免费视频中文字幕| 国产经典欧美精品| 2021久久国产精品不只是精品| 日本91福利区| 欧美一区二区三区日韩| 天天影视色香欲综合网老头| 欧美精品国产精品| 日韩1区2区3区| 久久午夜老司机| 成人免费三级在线| 洋洋av久久久久久久一区| 欧美日韩激情一区二区| 免费在线观看成人| 久久免费偷拍视频| 99久久精品情趣| 亚洲国产精品久久人人爱蜜臀| 日韩精品在线一区| 99久久久精品免费观看国产蜜| 午夜久久电影网| 国产日韩av一区二区| 在线看国产一区|