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

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

?? ds18b20+lcd1602.c

?? 溫度的動態顯示
?? C
字號:
//ds18b20 drive program
//for 51 mcu with lcd1602 display
//designed by zhaoliang
//2005-6-15 20:11
#include "reg51.h"
#include <intrins.h>
#include <stdio.h>
#include "stdlib.h"
/*******************************************************************/
//lcd part
#define  LINE1     0
#define  LINE2     1
#define  LINE1_HEAD    0x80
#define  LINE2_HEAD    0xC0
#define  LCD_DELAY_TIME   40
#define  DATA_MODE    0x38
#define  OPEN_SCREEN    0x0C
#define  DISPLAY_ADDRESS   0x80
#define  CLEARSCREEN    LCD_en_command(0x01)
#define  COMMAND_SLOT   LCD1602_RS=LOW; LCD1602_RW=LOW;LCD1602_EN=LOW
#define  DATA_SLOT    LCD1602_RS=HIGH;LCD1602_RW=LOW;LCD1602_EN=LOW
//common part 
#define  HIGH     1
#define  LOW      0
#define  TRUE      1
#define  ZERO      0 
#define  MSB       0x80
//ds18b20 part
#define  SkipRom     0xcc
#define  ConvertTemperature   0x44
#define  ReadScratchpad    0xbe

/*******************************************************************/
//change this part at different board
#define  LCDIO     P2
sbit LCD1602_RS=P0^7;   //data command select  1 data  0 command  pin 4 
sbit LCD1602_RW=P0^6;   //read write select   1 read   0 write     pin 5
sbit LCD1602_EN=P0^5;   //LCD enable signal             pin 6
sbit buzzer=P0^4;

sbit One_Wire_Bus=P3^3;

//function define
/********************************************************************/
void LCD_delay(void);//lcd delay function 
void LCD_en_command(unsigned char command);//write command function
void LCD_en_dat(unsigned char temp);//write data function
void LCD_set_xy( unsigned char x, unsigned char y );//set display address function
void LCD_write_char( unsigned x,unsigned char y,unsigned char dat);//write lcd a character function
void LCD_write_string(unsigned char X,unsigned char Y,unsigned char *s);//write lcd string function
void LCD_init(void);//lcd initize function

void One_Wire_Delay(unsigned char delay_time);
void One_Wire_Write_Byte(unsigned char oww_dat);
unsigned char One_Wire_Read_Byte(void);
void Read_18B20(void);
void Initize_One_Wire_Bus(void);
/********************************************************************/
data unsigned char GetScratchpad[2];
code unsigned char decimalH[16]={00,06,12,18,25,31,37,43,50,56,62,68,75,81,87,93};
code unsigned char decimalL[16]={00,25,50,75,00,25,50,75,00,25,50,75,00,25,50,75};
unsigned int ResultTemperatureH;
unsigned int ResultTemperatureLH,ResultTemperatureLL;
data unsigned char ResultSignal;
  //The signal of temperature;
/********************************************************************/

/********************************************************************/
/******************** LCD PART *************************************/
void LCD_delay(void)   
{
 unsigned char i;
 for(i=LCD_DELAY_TIME;i>ZERO;i--);//be sure lcd reset
}
/********************************************************************/  
void LCD_en_command(unsigned char command)
{
 LCDIO=command;
 COMMAND_SLOT;
 LCD_delay();
 LCD1602_EN=HIGH;
}
/********************************************************************/
void LCD_en_dat(unsigned char dat)
{
 LCDIO=dat;
 DATA_SLOT;
 LCD_delay();
 LCD1602_EN=HIGH;
}
/********************************************************************/
void LCD_set_xy( unsigned char x, unsigned char y )
{
 unsigned char address;
 if (y == LINE1) 
  address = LINE1_HEAD + x;
 else 
     address = LINE2_HEAD + x;
 LCD_en_command(address); 
}
/********************************************************************/
void LCD_write_char( unsigned x,unsigned char y,unsigned char dat)
{
 LCD_set_xy( x, y ); 
 LCD_en_dat(dat);
}
/********************************************************************/
void LCD_write_string(unsigned char X,unsigned char Y,unsigned char *s)
{
    LCD_set_xy( X, Y ); //set address 
    while (*s)  // write character
    {
     LCDIO=*s;
        LCD_en_dat(*s);   
  s ++;
    }
}
/********************************************************************/
void LCD_init(void)
{ 
 CLEARSCREEN;//clear screen 
 LCD_en_command(DATA_MODE);//set 8 bit data transmission mode 
 LCD_en_command(OPEN_SCREEN);//open display (enable lcd display)
 LCD_en_command(DISPLAY_ADDRESS);//set lcd first display address 
 CLEARSCREEN;//clear screen
}
/********************************************************************/
void Initize_One_Wire_Bus(void)
{ 
 One_Wire_Bus=0;
 One_Wire_Delay(80);//Bus master pulling low 488us 
 One_Wire_Bus=1;
 One_Wire_Delay(25);//Resister pull up 158us;
}//Intialization the 1-wire devices;
/***********************************************************************/
/******************* ds 18b20 **********************************/
void One_Wire_Delay(unsigned char delay_time)
{ 
 while(delay_time)delay_time--;//Delay time us :=(8+delay_time*6)us;
}
/***********************************************************************/
unsigned char One_Wire_Read_Byte(void)
{ 
 bit temp_bit;
 unsigned char i,result=0;
 for(i=0;i<8;i++)
 { 
  One_Wire_Bus=0;
  One_Wire_Bus=1; 
  temp_bit=One_Wire_Bus;
  One_Wire_Delay(9);//delay 62 us
  if(temp_bit)
   result|=0x01<<i;
 }
 return(result);
  //return the result of the 1-wire device;
}//Read a byte from the 1-wire bus;
/***********************************************************************/
void One_Wire_Write_Byte(unsigned char oww_dat)
{  
 unsigned char i;
 for(i=0;i<8;i++)
 { 
  One_Wire_Bus=0;
  if(oww_dat&0x01)One_Wire_Bus=1; 
  One_Wire_Delay(20);//delay 128 us
  One_Wire_Bus=1;
  oww_dat>>=1;
 }
 One_Wire_Delay(10);
}//Write a byte to the 1-wire bus;
/***********************************************************************/
void Read_18B20(void)
{ 
 unsigned char tempH,tempL;
 Initize_One_Wire_Bus();
 One_Wire_Write_Byte(SkipRom);
 _nop_();
  //There is just one DS1820 on the bus;
 One_Wire_Write_Byte(ConvertTemperature);
 One_Wire_Delay(5);
  //Start to convert temperature;
 Initize_One_Wire_Bus();
 One_Wire_Write_Byte(SkipRom);
 _nop_();
 One_Wire_Write_Byte(ReadScratchpad);
 GetScratchpad[0]=One_Wire_Read_Byte();
  //Master samples the LSB temperature from the scratchpad;
 GetScratchpad[1]=One_Wire_Read_Byte();
  //Master samples the MSB temperature from the scratchpad;
 One_Wire_Delay(120);
 tempH=(GetScratchpad[1]<<4)|(GetScratchpad[0]>>4);  
 tempL=(GetScratchpad[0]&0x0f);
 Initize_One_Wire_Bus();
  //Issue a reset to terminate left parts;
 if(tempH&0x80)
 { 
  tempH=~tempH;
  tempL=~tempL+1;
  ResultSignal=1;
  //Negative temperature;
 }
 ResultTemperatureH=tempH;
 ResultTemperatureLL=decimalL[tempL];
 ResultTemperatureLH=decimalH[tempL];
  //Result of temperature; 
}//Read the byte0 and byte1 from scratchpad;
/************************************************************************/
void main(void)
{ 
 unsigned int i,j,k;
 unsigned int delay;

  SCON=0x50; //串口方式1,允許接收
 TMOD=0x20;  //定時器1定時方式2
 TCON=0x40;  //設定時器1開始計數
 TH1=0xe6;   //12MHz 1200波特率
 TL1=0xe6;
 TI=1;  //發送中斷標志 置1
 TR1=1;      //啟動定時器 T1
 Initize_One_Wire_Bus(); 
 LCD_init(); 
Read_18B20();
for(k=1;k>0;k--)
            for(delay=0;delay<60000;delay++);//延時,開始18b20初始化,顯示85,然后再調變到實際溫度
 while(TRUE )    
 {
  Read_18B20();
  i=ResultTemperatureH/10;
  j=ResultTemperatureH-(i*10);
 LCD_write_string(0,LINE1,"   MY  DS18b20");
 LCD_write_string(0,LINE2,"BY LHZ T is:  .");
LCD_write_char(0x0c,LINE2,i|0x30);
LCD_write_char(0x0d,LINE2,j|0x30);
LCD_write_char(0x0f,LINE2,(ResultTemperatureLH/10)|0x30);
  

 printf ("\nDS18B20 test Program on PC \n"); //向PC端發送數據			 
 printf ("You can use PC to display information \n"); //向PC端發送數據	
 	printf("Now the Temperature is : ");	 

  printf ("%u",ResultTemperatureH); //向PC端發送數據
  printf (".%u%u \n ",ResultTemperatureLH,ResultTemperatureLL); //向PC端發送數據
		if(ResultTemperatureH>29)//30度蜂鳴器響
			buzzer=0;
			else
			buzzer=1;
}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费在线看成人av| 欧美日韩精品一区二区| 欧美三级视频在线播放| 亚洲精品在线三区| 亚洲成人www| 一本久道中文字幕精品亚洲嫩| 欧美成人一级视频| 亚洲图片自拍偷拍| 一本色道久久综合亚洲aⅴ蜜桃| 精品国产麻豆免费人成网站| 婷婷综合久久一区二区三区| 色综合天天综合色综合av | 国产精品传媒视频| 久久99九九99精品| 91精品国产免费| 亚洲成人av中文| 色婷婷精品大在线视频 | 亚洲欧美另类久久久精品| 极品少妇xxxx精品少妇| 欧美一区二区三区啪啪| 亚洲综合在线视频| 91亚洲国产成人精品一区二三| 久久综合色8888| 六月丁香婷婷色狠狠久久| 欧美日本在线观看| 一区二区三区四区高清精品免费观看 | 欧美在线free| 亚洲欧美二区三区| 99精品久久99久久久久| 国产欧美一区二区精品仙草咪| 麻豆精品久久精品色综合| 欧美一区二区三区公司| 五月天激情综合| 欧美高清性hdvideosex| 日韩国产一区二| 日韩一区二区不卡| 看片网站欧美日韩| 久久新电视剧免费观看| 国产福利精品一区二区| 亚洲国产精品黑人久久久| jlzzjlzz亚洲日本少妇| 亚洲男人的天堂在线aⅴ视频 | 亚洲国产人成综合网站| 欧美三级在线播放| 精品一区二区精品| 日本一区二区久久| 色偷偷成人一区二区三区91| 亚洲一区二区精品3399| 欧美一级高清片在线观看| 激情偷乱视频一区二区三区| 国产午夜精品一区二区| 97se亚洲国产综合自在线| 亚洲国产毛片aaaaa无费看| 欧美一区二区三区人| 国产一区二区三区综合| 亚洲色图欧洲色图| 欧美一级高清大全免费观看| 国产成人鲁色资源国产91色综| 综合网在线视频| 日韩欧美亚洲国产精品字幕久久久| 国产精品 欧美精品| 一个色综合网站| 精品精品欲导航| 99精品视频一区二区三区| 日本欧美一区二区三区| 国产精品久久久久久久午夜片| 欧美日韩成人在线一区| 成人高清视频在线| 日本亚洲免费观看| 亚洲天堂2016| 精品成人佐山爱一区二区| 一本一道久久a久久精品综合蜜臀| 免费日本视频一区| 亚洲精品视频免费看| 精品国产一区二区三区忘忧草 | av在线播放一区二区三区| 五月天欧美精品| 亚洲欧美激情插 | 美女精品自拍一二三四| 亚洲精品一二三| 欧美精品一区二区久久久| 在线欧美一区二区| 成人午夜视频福利| 国内外成人在线| 午夜精品久久久久久久久久久| 国产精品素人一区二区| 欧美成人a∨高清免费观看| 色婷婷精品大视频在线蜜桃视频| 国产成人综合亚洲网站| 另类小说图片综合网| 亚洲男同性视频| 国产精品国产精品国产专区不蜜 | 成人的网站免费观看| 国产综合久久久久久久久久久久| 无吗不卡中文字幕| 亚洲国产视频网站| 曰韩精品一区二区| 最新国产の精品合集bt伙计| 欧美—级在线免费片| 久久品道一品道久久精品| 欧美电影精品一区二区| 91精品婷婷国产综合久久性色 | 久久精品国产精品青草| 婷婷夜色潮精品综合在线| 亚洲一区二区三区四区的| 亚洲欧美二区三区| 亚洲免费在线电影| 亚洲精品视频在线看| 亚洲视频一二区| 亚洲摸摸操操av| 亚洲免费观看高清完整版在线| 亚洲欧洲无码一区二区三区| 国产精品萝li| 亚洲另类春色国产| 一区二区高清在线| 亚洲国产视频在线| 日韩成人一级大片| 久久99精品久久久久久国产越南 | 欧美日韩亚洲综合| 欧美精品电影在线播放| 欧美久久久久久久久中文字幕| 欧美日韩国产综合草草| 91精品麻豆日日躁夜夜躁| 91精品久久久久久久99蜜桃| 欧美一卡二卡在线观看| 精品电影一区二区三区| 国产欧美中文在线| 亚洲免费观看高清在线观看| 亚洲综合免费观看高清在线观看| 亚洲地区一二三色| 六月丁香婷婷久久| www.亚洲精品| 欧美视频一区二区| 精品国产一区二区三区久久久蜜月| 久久一区二区三区四区| 中文字幕一区二区三区四区不卡| 亚洲最色的网站| 麻豆国产欧美日韩综合精品二区| 国产福利精品一区二区| 色噜噜夜夜夜综合网| 5858s免费视频成人| 久久综合九色综合久久久精品综合| 国产午夜精品久久久久久免费视| 伊人夜夜躁av伊人久久| 理论电影国产精品| 91视频在线观看| 日韩欧美国产综合在线一区二区三区| 国产香蕉久久精品综合网| 一区二区三区在线不卡| 激情综合色播五月| 日本二三区不卡| 精品成人免费观看| 亚洲蜜臀av乱码久久精品蜜桃| 免费视频一区二区| 91免费观看视频在线| 精品乱人伦小说| 一区二区三区不卡视频在线观看| 免费久久99精品国产| 色综合咪咪久久| 久久久久久亚洲综合| 亚洲成人av一区二区三区| 粉嫩嫩av羞羞动漫久久久| 91麻豆精品国产91久久久使用方法 | 免费观看日韩电影| 在线观看欧美黄色| 久久久不卡网国产精品二区| 亚洲一区在线视频观看| 成人av在线电影| 日韩免费一区二区| 污片在线观看一区二区| 一本在线高清不卡dvd| 欧美激情一区二区三区不卡 | 青娱乐精品在线视频| 在线亚洲人成电影网站色www| 久久午夜色播影院免费高清| 亚洲高清视频中文字幕| av高清久久久| 久久精品人人做人人爽97| 日韩影院精彩在线| 欧美性猛交一区二区三区精品| 国产精品盗摄一区二区三区| 国产成人超碰人人澡人人澡| 日韩欧美国产小视频| 日韩影院在线观看| 欧美精品久久99久久在免费线| 尤物在线观看一区| 色噜噜狠狠成人中文综合| 亚洲天堂免费看| av在线不卡免费看| 国产精品久久久久久久久动漫| 国产真实精品久久二三区| 日韩免费观看高清完整版| 日韩av不卡一区二区| 欧美久久婷婷综合色| 日韩专区在线视频| 在线不卡欧美精品一区二区三区| 一区二区三区精品视频在线| 一本色道久久综合亚洲aⅴ蜜桃| 亚洲欧美一区二区三区国产精品| 99vv1com这只有精品|