在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Proteus教程第四講:DS18B20溫度測量

Harmony&嵌入式學習 ? 來源:Harmony&嵌入式學習 ? 作者:Harmony&嵌入式學 ? 2023-06-14 11:19 ? 次閱讀

視頻教程:https://www.bilibili.com/video/BV1bf4y1U7ff

傳感器基本概念

1、按傳感器的物理量分類:可分為位移、溫度、速度、流量、力、氣體成份等傳感器。 2、按傳感器工作原理分類:可分為電阻、電感、光柵、電壓、電容、霍爾、光電、熱電偶等傳感器。 3、按傳感器輸出信號的性質分類:可分為:輸出為開關量“1”和"0”或“開”和“關”的開關型傳感器;輸出為模擬型傳感器;輸出為脈沖或代碼的數字型傳感器。

poYBAGSJMYWAUDCzAAHmfCj2wRQ511.pngpoYBAGSJMY2AZje8AAPXUYMBm0I165.png
#include "reg52.h"			 //此文件中定義了單片機的一些特殊功能寄存器
#define uchar unsigned char
#define uint unsigned int
typedef unsigned int u16;	  //對數據類型進行聲明定義
typedef unsigned char u8;
#define uchar unsigned char
#define uint unsigned int
#define SEG P0
sbit SCAN1 = P2^0;
sbit SCAN2 = P2^1;
sbit SCAN3 = P2^2;
sbit SCAN4 = P2^3;
uchar number;
uchar distab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
int display=0;//數碼管刷新

void delay_ms(uint j)                        //1ms
{
        uchar i=250;
        for(;j>0;j--)
{
                while(--i);
                i=249;
                while(--i);
                i=250;
        }
}
sbit DQ=P3^7; 				//數據傳輸線接單片機的相應的引腳 
unsigned char tempL=0; 		//設全局變量
unsigned char tempH=0; 
unsigned int sdata;			//測量到的溫度的整數部分
unsigned char xiaoshu1;		//小數第一位
unsigned char xiaoshu2;		//小數第二位
unsigned char xiaoshu;		//兩位小數
bit fg=1;        			//溫度正負標志
uint T_H;
void delay(unsigned char i)
{
	for(i;i>0;i--);
}
void Init_DS18B20(void) 
{
	unsigned char x=0;
	DQ=1; 					//DQ先置高 
	delay(8); 				//稍延時
	DQ=0; 					//發送復位脈沖 
	delay(80); 				//延時(>480us) 
	DQ=1; 					//拉高數據線 
	delay(5); 				//等待(15~60us) 
	x=DQ; 					//用X的值來判斷初始化有沒有成功,18B20存在的話X=0,否則X=1 
	delay(20); 
}

//讀一個字節
ReadOneChar(void)  			//主機數據線先從高拉至低電平1us以上,再使數據線升為高電平,從而產生讀信號
{
	unsigned char i=0; 		//每個讀周期最短的持續時間為60us,各個讀周期之間必須有1us以上的高電平恢復期
	unsigned char dat=0; 
	for (i=8;i>0;i--) 		//一個字節有8位 
	{
		DQ=1; 
		delay(1); 
		DQ=0;
		dat>>=1; 
		DQ=1; 
		if(DQ) 
		dat|=0x80; 
		delay(4);
	} 
	return(dat);
}

//寫一個字節
void WriteOneChar(unsigned char dat) 
{ 
	unsigned char i=0; 		//數據線從高電平拉至低電平,產生寫起始信號。15us之內將所需寫的位送到數據線上,
	for(i=8;i>0;i--) 		//在15~60us之間對數據線進行采樣,如果是高電平就寫1,低寫0發生。 
	{
		DQ=0; 				//在開始另一個寫周期前必須有1us以上的高電平恢復期。 
		DQ=dat&0x01; 
		delay(5); 
		DQ=1; 
		dat>>=1;
	} 
	delay(4);
}

//讀溫度值(低位放tempL;高位放tempH;)
void ReadTemperature(void) 
{ 
	Init_DS18B20(); 					//初始化
	WriteOneChar(0xcc); 				//跳過讀序列號的操作
	WriteOneChar(0x44); 				//啟動溫度轉換
	delay(125); 						//轉換需要一點時間,延時 
	Init_DS18B20(); 					//初始化
	WriteOneChar(0xcc); 				//跳過讀序列號的操作 
	WriteOneChar(0xbe); 				//讀溫度寄存器(頭兩個值分別為溫度的低位和高位) 
	tempL=ReadOneChar(); 				//讀出溫度的低位LSB
	tempH=ReadOneChar(); 				//讀出溫度的高位MSB	
	if(tempH>0x7f)      				//最高位為1時溫度是負
	{
		tempL=~tempL;					//補碼轉換,取反加一
		tempH=~tempH+1;       
		fg=0;      						//讀取溫度為負時fg=0
	}
	sdata = tempL/16+tempH*16;      	//整數部分
	xiaoshu1 = (tempL&0x0f)*10/16; 		//小數第一位
	xiaoshu2 = (tempL&0x0f)*100/16%10;	//小數第二位
	xiaoshu=xiaoshu1*10+xiaoshu2; 		//小數兩位
	/*
	if(fg==0)
	{
		sdata=sdata-15;
		xiaoshu1=xiaoshu1-9;
	}
	*/
}
	
void main()
{
	TMOD |= 0x01;	  //開啟定時器0  0x10時使用定時器1  0x11時啟動兩個
	TH0=0XFC;	//給定時器賦初值,定時1ms   TH1
	TL0=0X18;	 //TL1
	EA=1;            //總中斷打開
	ET0=1;           //定時器0中斷打開    ET1
	TR0=1;           //定時器0開關打開    TR1
	while(1)
	{
		ReadTemperature();
		delay_ms(500);
	}
}

void Timer0() interrupt 1     //參考上圖  定時器1時為3
{
	static uint i;   //定義一個自變形變量
	TH0=0XFC;	//給定時器賦初值,定時1ms    TH1
	TL0=0X18;   //TL1
	i++;
	if(i==4)
	{
		i=0;
	SEG = 0XFF;
	switch(number)
	{

     case 0:SCAN4=1;SCAN3=0;SCAN2=0;SCAN1=0;SEG=distab[sdata%10];break;
	
     case 1:SCAN4=0;SCAN3=1;SCAN2=0;SCAN1=0;;SEG=distab[sdata/10];break;

     case 2:SCAN4=0;SCAN3=0;SCAN2=1;SCAN1=0;SEG=distab[0];break;

     case 3:SCAN4=0;SCAN3=0;SCAN2=0;SCAN1=1;;SEG=distab[0];break;

     default:break;
			
    }		
		number++;
    if(number>3)number=0;
	}	
}


審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 傳感器
    +關注

    關注

    2551

    文章

    51099

    瀏覽量

    753570
  • 溫度測量
    +關注

    關注

    0

    文章

    199

    瀏覽量

    28249
  • Proteus
    +關注

    關注

    79

    文章

    1692

    瀏覽量

    106579
  • DS18B20
    +關注

    關注

    10

    文章

    779

    瀏覽量

    80859
收藏 人收藏

    評論

    相關推薦

    基于DS18B20和LabVIEW的多點溫度測量系統

    今天我們一起完成一個比較完整的作品,基于DS18B20和LabVIEW的多點溫度測量系統。我重點介紹實現多點DS18B20溫度驅動模塊的思路
    發表于 09-26 10:28 ?1774次閱讀

    DS18B20 數字溫度計特點

    一.DS18B20特點 DS18B20 數字溫度計提供12位(二進制)溫度讀數的數字型傳感器。傳感器僅需要單總線接口與CPU連接,實現信號送入 DS
    的頭像 發表于 09-11 11:19 ?2844次閱讀
    <b class='flag-5'>DS18B20</b> 數字<b class='flag-5'>溫度</b>計特點

    數字溫度傳感器DS18B20的設計及應用

    數字溫度傳感器DS18B20的設計及應用 1引言 DS18B20是DALLAS公司生產的一線式數字溫度傳感器,具有3引腳TO-92小體積封裝形式;
    發表于 04-02 18:00 ?2827次閱讀
    數字<b class='flag-5'>溫度</b>傳感器<b class='flag-5'>DS18B20</b>的設計及應用

    DS18B20完成溫度檢測的技巧

    介紹了DS18B20 溫度傳感器 的結構和特點以及用DS18B20溫度傳感器進行溫度檢測的方法和技巧.
    發表于 08-23 10:44 ?190次下載
    <b class='flag-5'>DS18B20</b>完成<b class='flag-5'>溫度</b>檢測的技巧

    DS18B20溫度測試實驗

    基于單片機STC89C52的DS18B20數字溫度計,測量實時溫度
    發表于 12-31 14:36 ?10次下載

    ds18b20—設置溫度限制

    ds18b20設置報警溫度ds18b20內部有能夠設置報警最低溫度、最高溫度和位數,能夠通過程序進行設置
    發表于 07-25 10:58 ?4次下載

    基于8051的Proteus仿真-1602LCD與DS18B20

    基于8051的Proteus仿真-1602LCD與DS18B20設計的溫度報警器
    發表于 05-12 10:11 ?66次下載

    基于8051的Proteus仿真-DS18B20溫度傳感器實驗

    基于8051的Proteus仿真-DS18B20溫度傳感器實驗
    發表于 09-01 23:28 ?61次下載

    基于8051的Proteus仿真-數碼管與DS18B20設計溫度

    基于8051的Proteus仿真-數碼管與DS18B20設計溫度報警器
    發表于 09-01 23:37 ?71次下載

    智能溫度傳感器DS18B20的原理與應用

    DS18B20是DALLAS公司生產的單線數字溫度傳感器,他具有獨特的單線總線接口方式。文章詳細的介紹了單線數字溫度傳感器DS18B20測量
    發表于 10-11 18:19 ?49次下載

    基于DS18B20溫度測量系統_杜海龍

    基于DS18B20溫度測量系統_杜海龍
    發表于 03-19 11:45 ?15次下載

    Verilog實現DS18B20測量溫度以及LCD屏幕的顯示程序和工程文件

    本文檔的主要內容詳細介紹的是使用DS18B20和LM595FPGA實現ds18b20測量溫度以及LCD屏幕的顯示工程文件免費下載。
    發表于 01-06 08:00 ?14次下載
    Verilog實現<b class='flag-5'>DS18B20</b><b class='flag-5'>測量</b><b class='flag-5'>溫度</b>以及LCD屏幕的顯示程序和工程文件

    使用proteus實現溫度傳感器DS18B20的仿真資料免費下載

    本文檔的主要內容詳細介紹的是使用proteus實現溫度傳感器DS18B20的仿真資料免費下載。
    發表于 03-06 17:16 ?75次下載
    使用<b class='flag-5'>proteus</b>實現<b class='flag-5'>溫度</b>傳感器<b class='flag-5'>DS18B20</b>的仿真資料免費下載

    ds18b20的特性_ds18b20溫度傳感器應用

    本文首先介紹了ds18b20的特性,其次介紹了DS18B20工作原理,最后介紹了ds18b20溫度傳感器應用。
    發表于 04-24 09:10 ?1.1w次閱讀
    <b class='flag-5'>ds18b20</b>的特性_<b class='flag-5'>ds18b20</b><b class='flag-5'>溫度</b>傳感器應用

    ds18b20溫度傳感器如何使用

    Devices的一部分)生產的數字溫度傳感器。它能夠提供9位至12位的溫度測量數據,具有高精度和可編程分辨率。DS18B20溫度
    的頭像 發表于 09-03 16:51 ?671次閱讀
    主站蜘蛛池模板: 五月婷婷六月色| dvd碟片色爱| 天天影视网天天影网| 亚洲国产成人久久精品影视| 免费观看视频| 五月激情电影| 女人张腿让男桶免费视频网站| 户外露出精品视频国产| bt天堂资源种子在线| 手机在线视频你懂的| 午夜性爽快| 午夜爽爽| 成人免费看毛片| 欧美在线区| 日韩毛片在线| 丁香婷婷综合五月综合色啪| 国产高清a| 天堂网在线最新版官网| 在线观看黄日本高清视频| 欧美xxxx性高清| 日韩精品午夜| 日韩一级视频| 2020国产v亚洲v天堂高清| 青草悠悠视频在线观看| 成年ssswww中国女人| 久久久国产乱子伦精品| 中文字幕在线资源| 国产欧美乱码在线看| 免费黄色成人| 亚洲毛片网| 在线视频精品视频| 乱说欲小说又粗又长| 国产色女人| abc119影院成人免费看| 五月婷婷婷婷| 午夜影视在线观看| 国产美女一级视频| 女人张开腿双腿让男人桶| 九色综合网| 日本三级网站在线观看| 久久久黄色片|