精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

DS18B20數字溫度傳感器的源代碼

Wildesbeast ? 來源:網絡整理 ? 作者:佚名 ? 2020-05-05 16:08 ? 次閱讀

本文檔的主要內容詳細介紹的是DS18B20數字溫度傳感器的源代碼。


; FLAG1: 標志位,為“1”時表示檢測到DS18B20

; DQ: DS18B20的數據總線接腳

; TEMPER_NUM:保存讀出的溫度數據

; 本程序僅適合單個DS18B20和51單片機的連接,晶振為12MHZ左右

TEMPER_L EQU 36H

TEMPER_H EQU 35H

DQ BIT P1.7

; DS18B20初始化程序

;//*****************************************//

INIT_1820:

SETB DQ

NOP

CLR DQ

MOV R0,#06BH

TSR1:

DJNZ R0,TSR1 ; 延時

SETB DQ

MOV R0,#25H

TSR2:

JNB DQ,TSR3

DJNZ R0,TSR2

LJMP TSR4 ; 延時

TSR3:

SETB FLAG1 ; 置標志位,表示DS1820存在

LJMP TSR5

TSR4:

CLR FLAG1 ; 清標志位,表示DS1820不存在

LJMP TSR7

TSR5:

MOV R0,#06BH

TSR6:

DJNZ R0,TSR6 ; 延時

TSR7:

SETB DQ

RET

;//*****************************************//

; 重新寫DS18B20暫存存儲器設定值

;//*****************************************//

RE_CONFIG:

JB FLAG1,RE_CONFIG1 ; 若DS18B20存在,轉RE_CONFIG1

RET

RE_CONFIG1:

MOV A,#0CCH ; 發SKIP ROM命令

LCALL WRITE_1820

MOV A,#4EH ; 發寫暫存存儲器命令

LCALL WRITE_1820

MOV A,#00H ; TH(報警上限)中寫入00H

LCALL WRITE_1820

MOV A,#00H ; TL(報警下限)中寫入00H

LCALL WRITE_1820

MOV A,#1FH ; 選擇9位溫度分辨率

LCALL WRITE_1820

RET

;//*****************************************//

; 讀出轉換后的溫度值

;//*****************************************//

GET_TEMPER:

SETB DQ ; 定時入口

LCALL INIT_1820

JB FLAG1,TSS2

RET ; 若DS18B20不存在則返回

TSS2:

MOV A,#0CCH ; 跳過ROM匹配

LCALL WRITE_1820

MOV A,#44H ; 發出溫度轉換命令

LCALL WRITE_1820

LCALL INIT_1820

MOV A,#0CCH ; 跳過ROM匹配

LCALL WRITE_1820

MOV A,#0BEH ; 發出讀溫度命令

LCALL WRITE_1820

LCALL READ_1820

MOV TEMPER_NUM,A ; 將讀出的溫度數據保存

RET

;//*****************************************//

; 讀DS18B20的程序,從DS18B20中讀出一個字節的數據

;//*****************************************//

READ_1820:

MOV R2,#8

RE1:

CLR C

SETB DQ

NOP

NOP

CLR DQ

NOP

NOP

NOP

SETB DQ

MOV R3,#7

DJNZ R3,$

MOV C,DQ

MOV R3,#23

DJNZ R3,$

RRC A

DJNZ R2,RE1

RET

;//*****************************************//

; 寫DS18B20的程序

;//*****************************************//

WRITE_1820:

MOV R2,#8

CLR C

WR1:

CLR DQ

MOV R3,#6

DJNZ R3,$

RRC A

MOV DQ,C

MOV R3,#23

DJNZ R3,$

SETB DQ

NOP

DJNZ R2,WR1

SETB DQ

RET

;//*****************************************//

; 讀DS18B20的程序,從DS18B20中讀出兩個字節的溫度數據

;//*****************************************//

READ_18200:

MOV R4,#2 ; 將溫度高位和低位從DS18B20中讀出

MOV R1,#36H ; 低位存入36H(TEMPER_L),高位存入35H(TEMPER_H)

RE00:

MOV R2,#8

RE01:

CLR C

SETB DQ

NOP

NOP

CLR DQ

NOP

NOP

NOP

SETB DQ

MOV R3,#7

DJNZ R3,$

MOV C,DQ

MOV R3,#23

DJNZ R3,$

RRC A

DJNZ R2,RE01

MOV @R1,A

DEC R1

DJNZ R4,RE00

RET

;//*****************************************//

; 將從DS18B20中讀出的溫度數據進行轉換

;//*****************************************//

TEMPER_COV:

MOV A,#0F0H

ANL A,TEMPER_L ; 舍去溫度低位中小數點后的四位溫度數值

SWAP A

MOV TEMPER_NUM,A

MOV A,TEMPER_L

JNB ACC.3,TEMPER_COV1 ; 四舍五入去溫度值

INC TEMPER_NUM

TEMPER_COV1:

MOV A,TEMPER_H

ANL A,#07H

SWAP A

ORL A,TEMPER_NUM

MOV TEMPER_NUM,A ; 保存變換后的溫度數據

LCALL BIN_BCD

RET

;//*****************************************//

; 將16進制的溫度數據轉換成壓縮BCD碼

;//*****************************************//

BIN_BCD:

MOV DPTR,#TEMP_TAB

MOV A,TEMPER_NUM

MOVC A,@A+DPTR

MOV TEMPER_NUM,A

RET

TEMP_TAB:

DB 00H,01H,02H,03H,04H,05H,06H,07H

DB 08H,09H,10H,11H,12H,13H,14H,15H

DB 16H,17H,18H,19H,20H,21H,22H,23H

DB 24H,25H,26H,27H,28H,29H,30H,31H

DB 32H,33H,34H,35H,36H,37H,38H,39H

DB 40H,41H,42H,43H,44H,45H,46H,47H

DB 48H,49H,50H,51H,52H,53H,54H,55H

DB 56H,57H,58H,59H,60H,61H,62H,63H

DB 64H,65H,66H,67H,68H,69H,70H

;//*****************************************//

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

    關注

    48

    文章

    2918

    瀏覽量

    155899
  • 51單片機
    +關注

    關注

    273

    文章

    5699

    瀏覽量

    123225
  • DS18B20
    +關注

    關注

    10

    文章

    778

    瀏覽量

    80716
收藏 人收藏

    評論

    相關推薦

    CW32模塊使用 DS18B20溫度傳感器

    DS18B20數字溫度傳感器提供9位至12位精度的溫度測量,并具有非易失性用戶可編程上下觸發點報警功能。
    的頭像 發表于 11-26 17:47 ?125次閱讀
    CW32模塊使用 <b class='flag-5'>DS18B20</b><b class='flag-5'>溫度</b><b class='flag-5'>傳感器</b>

    DS18B20溫度傳感器的工作原理和硬件設計

    通過本文可以了解DS18B20溫度傳感器工作原理、硬件設計、DS18B20單總線接口驅動編寫。
    的頭像 發表于 10-24 14:38 ?826次閱讀
    <b class='flag-5'>DS18B20</b><b class='flag-5'>溫度</b><b class='flag-5'>傳感器</b>的工作原理和硬件設計

    ds18b20傳感器的使用方法

    DS18B20是一種廣泛使用的數字溫度傳感器,它基于1-Wire(單總線)通信協議。這種傳感器因其高精度、易用性和低成本而受到歡迎。
    的頭像 發表于 10-18 14:52 ?458次閱讀

    ds18b20溫度傳感器怎么接線

    DS18B20是一種廣泛使用的數字溫度傳感器,它基于1-Wire(一線)通信協議工作。這種傳感器因其高精度、易用性和低成本而受到歡迎。
    的頭像 發表于 10-18 14:50 ?788次閱讀

    ds18b20溫度傳感器如何使用

    DS18B20是一款廣泛使用的數字溫度傳感器,它具有高精度、低功耗和易于使用的特點。 DS18B20溫度
    的頭像 發表于 09-03 16:51 ?544次閱讀

    ds18b20溫度傳感器是什么類型

    DS18B20溫度傳感器是一種數字溫度傳感器,它屬于單總線(One-Wire)
    的頭像 發表于 09-03 16:46 ?801次閱讀

    ds18b20溫度傳感器和dht11的區別

    DS18B20和DHT11都是常用的溫度和濕度傳感器,它們在許多項目和應用中都有廣泛的應用。 1. 工作原理 DS18B20 DS18B20
    的頭像 發表于 09-03 16:44 ?1235次閱讀

    基于51單片機煙霧DS18B20溫度采集光強檢測設計

    本資源內容概要:? ? ? ?這是基于51單片機煙霧DS18B20溫度采集光強檢測設計包含了電路圖源文件(Altiumdesigner軟件打開)、C語言程序源代碼(keil軟件打開)、元件清單
    發表于 06-27 11:37 ?0次下載

    基于51單片機煙霧及DS18B20溫度檢測設計

    本資源內容概要:? ? ? ?這是基于51單片機煙霧及DS18B20溫度檢測設計包含了電路圖源文件(Altiumdesigner軟件打開)、C語言程序源代碼(keil軟件打開)、元件清單(excel
    發表于 06-27 11:33 ?0次下載

    基于51單片機DS18B20溫度采集控制風扇設計

    本資源內容概要:? ? ? ?這是基于51單片機DS18B20溫度采集控制風扇設計包含了電路圖源文件(Altiumdesigner軟件打開)、C語言程序源代碼(keil軟件打開)、元件清單
    發表于 06-26 10:43 ?0次下載

    基于51單片機DS18B20溫度采集1602液晶顯示報警設計

    本資源內容概要:? ? ? ?這是基于51單片機DS18B20溫度采集1602液晶顯示報警設計包含了電路圖源文件(Altiumdesigner軟件打開)、C語言程序源代碼(keil軟件打開)、元件
    發表于 06-25 10:16 ?0次下載

    DS18B20溫度傳感器工作原理

    DS18B20以其獨特的工作原理、卓越的技術參數和廣泛的應用場景,成為了市場的明星產品。 深入了解DS18B20的工作原理 DS18B20溫度傳感
    的頭像 發表于 06-19 16:01 ?1068次閱讀

    基于STC8H8K64U和DS18B20溫度采集和LabVIEW上位機顯示

    ,該項目可以實現 LabVIEW 上位機對 MCU 發送指令,MCU 通過 DS18B20 溫度傳感器獲取環境溫度,并通過串口將數據反饋給上位機,上位機實時記錄數據,并將日期和各個時刻
    發表于 04-08 12:28

    DS18B20溫度傳感器的優缺點

    可編程寄存DS18B20內部具有可編程寄存,允許用戶對其進行配置和控制,以滿足不同的應用需求。
    發表于 04-04 11:39 ?4187次閱讀

    基于51單片機的多點溫度檢測網絡,DS18B20傳感器代碼,仿真,原理圖等資料

    他們的溫度。 單總線本身也可以向所掛接的多個DS18B20供電,而無需額外電源。4組溫度傳感器的連接網絡如下。 Proteus仿真電路 **原理圖 ** 仿真結果分析 把在K
    發表于 03-24 22:08