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

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

?? 18b20.c

?? AVR單片機(jī) 用的是ICC開(kāi)發(fā)環(huán)境 DS18B20溫度采集,LCD1602B顯示 MCU : Atmeag16
?? C
字號(hào):
/***********************************************
****    DS18B20溫度采集,LCD1602B顯示         ***

****    MCU :   Atmeag16                     ***
	
****    作者:  XueTwins                     ***

****  	時(shí)間	20007.02.17                  ***
注:DS18B20的數(shù)據(jù)口接PA0
***********************************************/
#include <iom16v.h>
#include <macros.h>

/*******************************************************************************
                       定義MCU與LCD的接口
接線:EN-PD3、RS-PD2、DATA-PD4,5,6,7   
*******************************************************************************/
#define LCD_EN_PORT   PORTD    //PD3使能LCD
#define LCD_RS_PORT   PORTD    //PD2
#define LCD_DATA_PORT PORTD

#define LCD_EN 0x08   //PD3 out
#define LCD_RS 0x02   //PD2 out
#define LCD_DATA 0xF0 //PD4,5,6,7
        
/*******************************************************************************
                           函數(shù)原型聲明
*******************************************************************************/
void LCD_init(void);//LCD初始化
void LCD_en_write(void);//LCD寫(xiě)
void LCD_set_xy(unsigned char x,unsigned char y);//寫(xiě)X,Y地址
void LCD_write_string(unsigned char x,unsigned char y,unsigned char *string);
void LCD_write_char(unsigned command,unsigned data);
void LCD_write_data_variable(unsigned char x,unsigned char y,
                             unsigned char Z,unsigned long  S);

/*******************************************************************************
                           延時(shí)函數(shù)
                         系統(tǒng)時(shí)鐘:8M
*******************************************************************************/
void delay_1us(void)                 //1us延時(shí)函數(shù)
{
    asm("nop");
    asm("nop");
    asm("nop");
    asm("nop");
}

void delay_nus(unsigned int n)       //N us延時(shí)函數(shù)
{
   unsigned int i=0;
   for (i=0;i<n;i++)
   delay_1us();
}
  
void delay_1ms(void)                 //1ms延時(shí)函數(shù)
{
   unsigned int i;
   for (i=0;i<1142;i++);
}
  
void delay(unsigned int n)       //N ms延時(shí)函數(shù)
{
   unsigned int i=0;
   for (i=0;i<n;i++)
   delay_1ms();
}

/*******************************************************************************
                      上面聲明各函數(shù)的實(shí)現(xiàn)
*******************************************************************************/
void LCD_init(void)
{
   LCD_write_char(0x28,0); 
   LCD_en_write();
   delay(15);//延時(shí)15ms
   LCD_write_char(0x28,0);//四位數(shù)據(jù)接口,二行顯示,5*7點(diǎn)陣字符
   LCD_write_char(0x0C,0);//顯示開(kāi)
   LCD_write_char(0x01,0);//清屏
   delay(2);
   LCD_write_char(0x06,0);//顯示光標(biāo)移動(dòng)設(shè)置  
}
void LCD_en_write(void)//液晶使能
{
   LCD_EN_PORT|=LCD_EN;
   delay(1);
   LCD_EN_PORT&=~LCD_EN;
}
/*******************************************************************************
                         寫(xiě)數(shù)據(jù)
*******************************************************************************/
void LCD_write_char(unsigned command,unsigned data) 
{
 unsigned command_temp,data_temp;
 command_temp=command;
 data_temp=data;
 delay(16);
 if(command==0)
 {
  LCD_RS_PORT|=LCD_RS;               //RS=1
  LCD_DATA_PORT&=0X0f;
  LCD_DATA_PORT|=data_temp&0xf0;     //寫(xiě)高四位
  LCD_en_write();
  data_temp=data_temp<<4;  
  LCD_DATA_PORT&=0X0f;
  LCD_DATA_PORT|=data_temp&0xf0;     //寫(xiě)低四位
  LCD_en_write();
 }
 else
 {
  LCD_RS_PORT&=~LCD_RS;              //RS=0
  LCD_DATA_PORT&=0X0f;
  LCD_DATA_PORT|=command_temp&0xf0;  //寫(xiě)高四位
  LCD_en_write();
  command_temp=command_temp<<4;
  LCD_DATA_PORT&=0x0f;
  LCD_DATA_PORT|=command_temp&0xf0;  //寫(xiě)低四位
  LCD_en_write();
  }
}
/*******************************************************************************
                         寫(xiě)地址
 //設(shè)置LCD顯示的起始位置,顯示字符串的位置,X:0-15,Y:0-1
 // LCD第一行顯示寄存器地址:0X80-0X8F
 // LCD第一行顯示寄存器地址:0XC0-0XCF
*******************************************************************************/
void LCD_set_xy(unsigned char x,unsigned char y)
{
   unsigned char address;
	if(y==0)
	    address=0x80 + x;
    else              //即y==1
	    address=0xC0 + x;
	LCD_write_char(address,0);
}
/*******************************************************************************
                       英文字符串顯示函數(shù)
*******************************************************************************/
void LCD_write_string(unsigned char x,unsigned char y,unsigned char *string)
{
   LCD_set_xy(x,y);//寫(xiě)地址
   while (*string)  // 寫(xiě)顯示字符
    {
      LCD_write_char(0,*string);
      string ++;
    }
} 	
/*******************************************************************************
                        顯示數(shù)字變量函數(shù)
	Z為S變量共幾位數(shù)   //最大變量顯示為99999;
*******************************************************************************/
void LCD_write_data_variable(unsigned char x,unsigned char y,
                     unsigned char Z,unsigned long  S)  
					  
{
    unsigned char k;
    unsigned char p[6]="0";
    unsigned char i=0;                    
	LCD_set_xy( x, y );
     for(i=0;i<Z;i++)
       {
	     p[i]=S%10;
	     S=S/10;
	    }	
	   while(!(p[i]))
		 { 
		  if(i==0)
		   {
		     LCD_write_char( 0, 0x30 );
		     i--;
		   }
		  else
		   {
		    i--;
		    LCD_write_char( 0, 0x80 );
		   }		
		 }

		 for(;i<255;i--)
		 {		
          LCD_write_char( 0, p[i]+0x30 );
	     }
  }

///////////////////////數(shù)字溫度傳感器////////////////////////////////////
////////////////////////DS18B20//////////////////////////////////////////
#define DS18B20_PORT PORTA
#define DS18B20_DDR  DDRA
#define DS18B20_PIN  PINA
#define DS18B2_IO   BIT(0)//0x01

/*******************************************************************************
                     函數(shù)原型聲明
*******************************************************************************/
unsigned char DS18B20_reset(void);     // 復(fù)位程序
unsigned char DS18B20_read(void);      //從單總線讀1字節(jié)
void DS18B20_write(unsigned char CMD); //向單總線寫(xiě)1字節(jié)

long count;

/*******************************************************************************
                     復(fù)位程序
	  檢查DS18B20是否存在:不存在返回1,存在返回0
*******************************************************************************/
unsigned char DS18B20_reset(void)
{
	unsigned char online;
	DS18B20_DDR |= DS18B2_IO;    //PORTA.0輸出
	DS18B20_PORT &=~DS18B2_IO;   //PORTA&=0xFE;//輸出低電平
	delay_nus(500);              //480us~960us
	DS18B20_PORT |=DS18B2_IO;    //輸出高電平
	DS18B20_DDR &=~DS18B2_IO;    //PORTA.0輸入
	delay_nus(45);               //16-60us等待響應(yīng)
	online=DS18B20_PORT & DS18B2_IO;//響應(yīng)信號(hào),讀出online的值
	delay_nus(100);   //60-240us
	return (online);
}
/*******************************************************************************
                     從DS18B20讀1字節(jié)數(shù)據(jù)(從單總線讀1字節(jié))
*******************************************************************************/
unsigned char DS18B20_read(void)
{
    unsigned char i,temp;
	unsigned char byte=0;//byte=0x00;
	for(i=0;i<8;i++)
	{
	    DS18B20_DDR|=DS18B2_IO;     //PORTA.0輸出
	    DS18B20_PORT&=~DS18B2_IO;   //PORTA&=0xFE;//輸出低電平,產(chǎn)生讀起始信號(hào)
	    delay_nus(3);               //延時(shí)1us~15us
	    DS18B20_PORT|=DS18B2_IO;    //輸出高電平
	    DS18B20_DDR&=~DS18B2_IO;    //PORTA.0輸入,接收數(shù)據(jù)
	    delay_nus(10);              //要在15us內(nèi)完成讀數(shù)
	    temp=(DS18B20_PIN & DS18B2_IO);//讀數(shù)據(jù),從低位開(kāi)始 
	    if(temp!=0x00)
		byte|=0x80;
	    if(i<7)
		byte=byte>>1;
            delay_nus(100);             //60~120us   
	    DS18B20_DDR|=DS18B2_IO;     //PORTA.0輸出
	    delay_nus(5);
	}
	return byte;
}
/*******************************************************************************
                     寫(xiě)ROM或存儲(chǔ)器命令到DS18B20(向單總線寫(xiě)1字節(jié))
*******************************************************************************/
void DS18B20_write(unsigned char CMD)
{
        unsigned char i,value;
	DS18B20_DDR|=DS18B2_IO;  //PORTA.0輸出
	for(i=0;i<8;i++)
	{
	    value=CMD&DS18B2_IO;
		if(value==0x01)
		{
		        delay_nus(1);             //延時(shí)>1us
			DS18B20_PORT&=~DS18B2_IO; //產(chǎn)生寫(xiě)起始信號(hào)
			delay_nus(10);            //延時(shí)1us~15us
			DS18B20_PORT|=DS18B2_IO;  //數(shù)據(jù)線電平拉高
			delay_nus(100);           //延時(shí)60us~120us 
		}
		else
		{
		        delay_nus(1);             //延時(shí)>1us
			DS18B20_PORT&=~DS18B2_IO; //產(chǎn)生寫(xiě)起始信號(hào)
			delay_nus(100);           //18B20采樣要60us到120us
			DS18B20_PORT|=DS18B2_IO;  //數(shù)據(jù)線電平拉高
			delay_nus(10);
		}
		CMD=CMD>>1;                        //右移一位
	}
}
/*******************************************************************************
                        主函數(shù)
*******************************************************************************/
void main(void)
{
   unsigned char i,temh,teml; 
   unsigned char errortrue;
 
   
   DDRD|=LCD_EN | LCD_RS | LCD_DATA;//EN方向,RS方向,數(shù)據(jù)口方向?yàn)檩敵?  
   LCD_EN_PORT &= ~LCD_EN;      //EN=0
   LCD_init();                  //液晶初始化
   
   delay_nus(2000); 
   OSCCAL=0X9d;     //系統(tǒng)時(shí)鐘校準(zhǔn),不同的芯片和不同的頻率, 

  
   WDR();            //看門狗計(jì)數(shù)清零 
   WDTCR=0x0F; 

      

   for(;;)
   {
      
	  LCD_write_char(0x01,0);//清屏

	  errortrue=DS18B20_reset();        //復(fù)位18b20   
	  if(errortrue==0x01)
	  {
           LCD_write_string(0,1,"wrong"); //初始化失敗
	  }
	  else
	  {
           LCD_write_string(0,0,"Temperature:");//初始化成功
	  } 

      DS18B20_write(0xcc);  // 發(fā)出轉(zhuǎn)換命令
      DS18B20_write(0x44);  //啟動(dòng)18B20溫度開(kāi)始轉(zhuǎn)換
      delay_nus(400);       //每次轉(zhuǎn)換需要延時(shí)200ms以上 
      DS18B20_reset(); 
      WDR(); 
      DS18B20_write(0xcc);  //發(fā)出讀命令 ,搜索ROM
      DS18B20_write(0xbe);  //讀閃存器,讀CRC冗余校驗(yàn)
      teml=DS18B20_read();  //讀低字節(jié)數(shù)據(jù) 
      temh=DS18B20_read();  //讀高字節(jié)數(shù)據(jù) 
      count=(temh*256+teml)*6.25;  //計(jì)算具體溫度 
      WDR();
	  LCD_write_data_variable(0,1,2,count); 
	  LCD_write_string(14,1,"`C");  
      delay(300); 
   }
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区在线观看免费| 精品国产免费一区二区三区香蕉| 亚洲欧美自拍偷拍色图| av一区二区三区黑人| 国产精品美女久久久久久2018| 成人国产精品视频| 亚洲精品va在线观看| 欧美日韩国产美女| 狠狠色丁香婷综合久久| 欧美高清在线精品一区| 色欧美片视频在线观看| 午夜精品久久久久久久久久久| 91精品国产91久久综合桃花 | 亚洲成av人片一区二区| 7777精品伊人久久久大香线蕉的| 久久成人麻豆午夜电影| 国产欧美日韩激情| 在线免费观看日本欧美| 久久精品国产网站| 国产精品国产自产拍高清av王其 | 国产精品久线在线观看| 欧美在线不卡视频| 狠狠色丁香婷婷综合| 亚洲同性同志一二三专区| 欧美日韩免费在线视频| 国产一区二区三区四区在线观看| 亚洲欧洲精品一区二区精品久久久 | 欧美色男人天堂| 狠狠色2019综合网| 亚洲在线视频网站| 国产三区在线成人av| 欧美色爱综合网| 国产精品综合一区二区三区| 亚洲黄色录像片| 精品欧美一区二区久久 | 另类的小说在线视频另类成人小视频在线 | 国产欧美一区二区三区网站| 欧美在线观看视频在线| 国产成人综合在线| 婷婷综合五月天| 国产精品久久精品日日| 欧美一区二区三区在线| 91麻豆swag| 韩国精品在线观看| 午夜精品福利久久久| 中文字幕一区二区三区在线播放| 日韩欧美卡一卡二| 91免费视频大全| 国产乱子伦视频一区二区三区 | 丝袜a∨在线一区二区三区不卡| 国产亚洲欧美日韩俺去了| 欧美日韩一二区| 99久久精品免费看| 国产麻豆日韩欧美久久| 人禽交欧美网站| 亚洲一区二区中文在线| 亚洲欧洲美洲综合色网| 国产亚洲一区二区三区四区| 777亚洲妇女| 在线影院国内精品| 99精品视频在线观看| 国产不卡在线播放| 国产在线播放一区三区四| 日本一不卡视频| 性做久久久久久| 亚洲精品国产无套在线观| 国产精品美女一区二区| 国产精品免费视频网站| 亚洲国产高清在线| 久久久久国产精品人| 久久婷婷成人综合色| 精品国产自在久精品国产| 日韩三级精品电影久久久 | 日韩欧美一区二区不卡| 3atv一区二区三区| 91精品欧美一区二区三区综合在| 欧美综合久久久| 欧美日韩精品一区二区三区四区 | 国产成人综合视频| 国产精品一区二区三区四区| 国产在线精品一区二区三区不卡 | 欧美裸体一区二区三区| 欧美日韩国产综合久久| 欧美日韩三级在线| 欧美精品在线观看播放| 欧美一卡二卡在线观看| 欧美精品一区二区三区在线| 久久美女艺术照精彩视频福利播放| 久久婷婷色综合| 中文字幕高清不卡| 亚洲欧美另类久久久精品2019| 亚洲综合在线免费观看| 午夜精品福利一区二区三区av| 日本不卡高清视频| 国产美女主播视频一区| 99久久综合精品| 在线视频你懂得一区| 777亚洲妇女| 久久久亚洲精品一区二区三区| www亚洲一区| 中文字幕一区视频| 视频一区二区国产| 久久福利视频一区二区| 成人午夜在线免费| 91官网在线观看| 欧美成人bangbros| 国产精品嫩草影院com| 亚洲动漫第一页| 国产在线不卡视频| 91浏览器在线视频| 日韩视频国产视频| 一区在线中文字幕| 日韩国产欧美一区二区三区| 久久精品国产免费| 91麻豆国产精品久久| 日韩视频免费直播| 国产精品白丝在线| 男女激情视频一区| 91在线观看地址| 日韩亚洲欧美成人一区| 综合激情网...| 老司机精品视频导航| 91麻豆.com| www激情久久| 亚洲6080在线| 99天天综合性| 2020国产精品自拍| 亚洲国产精品久久一线不卡| 国产精品影视在线观看| 欧美精品tushy高清| 成人免费小视频| 激情五月激情综合网| 欧美三电影在线| 国产精品视频线看| 裸体歌舞表演一区二区| 欧美性色欧美a在线播放| 国产日韩欧美精品在线| 奇米四色…亚洲| 色婷婷精品久久二区二区蜜臂av| 26uuu亚洲综合色| 丝袜美腿亚洲一区二区图片| 99久久精品久久久久久清纯| 久久综合色8888| 久久国产乱子精品免费女| 欧美日韩国产123区| 亚洲激情一二三区| 成人动漫一区二区三区| 久久九九99视频| 精品在线亚洲视频| 欧美一级免费大片| 亚洲国产精品久久不卡毛片| 色综合激情五月| 亚洲视频一区在线观看| 成人激情小说网站| 国产欧美精品在线观看| 国产成人午夜精品影院观看视频 | 亚洲国产精品av| 国产一区二区三区免费在线观看| 欧美一二三四区在线| 天涯成人国产亚洲精品一区av| 在线观看av不卡| 亚洲黄色av一区| 91搞黄在线观看| 亚洲曰韩产成在线| 欧美怡红院视频| 亚洲最大成人网4388xx| 欧美自拍偷拍一区| 亚洲观看高清完整版在线观看| 色999日韩国产欧美一区二区| 亚洲欧美aⅴ...| 91精品办公室少妇高潮对白| 一区二区三区日韩| 一本一道波多野结衣一区二区| 亚洲精品国产a久久久久久| 91福利小视频| 性做久久久久久免费观看| 欧美一级在线免费| 国产在线播放一区| 国产精品免费久久| 色婷婷久久久综合中文字幕| 亚洲高清免费一级二级三级| 精品视频免费看| 久久精品国产精品青草| 久久精品视频在线免费观看| 成人高清视频免费观看| 亚洲人成伊人成综合网小说| 欧美日韩在线播放| 日本在线不卡视频一二三区| 精品国一区二区三区| 国产91精品欧美| 亚洲品质自拍视频| 91麻豆精品国产无毒不卡在线观看| 久久精品国产一区二区三区免费看 | 精品欧美一区二区在线观看| 国产一区二区按摩在线观看| 中文字幕一区二区三区在线不卡 | 日本欧美大码aⅴ在线播放| 精品国产乱码久久久久久影片| 国产成人在线视频网址| 中文字幕日韩一区|