音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

0-125度的溫度計.DS1820

作者:yueshang 欄目:單片機

ORG     0000H

TEMPER_H        EQU     40H     ;用于保存讀出溫度的高8位
       FLAG1   EQU     38H     ;是否檢測到DS18B20標志位
       A_BIT1  EQU     31H     ;數(shù)碼管個位數(shù)存放內(nèi)存位置
       B_BIT1  EQU     32H     ;數(shù)碼管十位數(shù)存放內(nèi)存位置
        D_BIT1 EQU     35H     ;數(shù)碼管百位數(shù)存放內(nèi)存位置
DQ     EQU     P3.2    ;30H,31H,32H,33H:       X       個位    十位    X
MOD7:  MOV     SP,#60H
       LCALL   GET_TEMPER      ;調(diào)用讀溫度子程序
       LCALL   TEMPCOV
       LCALL   DISPLAY ;調(diào)用數(shù)碼管顯示子程序
       AJMP    MOD7
TEMP0: INC     A
       AJMP    TEMP1
TEMPCOV:       MOV     A,TEMPER_L      ;數(shù)據(jù)處理子程序TEMPCOV
       MOV     B,#16
       DIV     AB
       JB      B.3,TEMP0
TEMP1: MOV     34H,A   ;將TEMPER_L的高四位右移四位,存入34H中(溫度值)
       MOV     A,B     ;將TEMPER_L的低四位X10/16得小數(shù)后一位數(shù).
       MOV     B,#10
       MUL     AB
       MOV     B,#16
       DIV     AB
       MOV     30H,A   ;將小數(shù)后一位數(shù).存入30H中
       MOV     A,TEMPER_H      ;TEMPER_H中存放高8位數(shù),權(quán)重16
       MOV     B,#16
       MUL     AB
       ADD     A,34H   ;34H中存入溫度值的整數(shù)部分
       MOV     B,#10
       DIV     AB
       MOV     31H,B   ;個位存入31H中
       MOV     B,#10   ;
       DIV     AB      ;
       MOV     32H,B   ;十位存入32H中
       MOV     B,#10   ;
       DIV     AB      ;
       MOV     35H,B   ;百位存入33H中
       MOV     A,TEMPER_H
       MOV     33H,#10H        ;
       JB      ACC.7,EXIT7
       MOV     33H,#00H
EXIT7: RET
INIT_1820:     ;這是DS18B20復(fù)位初始化子程序
       SETB    DQ
       NOP
       CLR     DQ      ;主機發(fā)出延時537微秒的復(fù)位低脈沖
       MOV     R1,#3
TSR1:  MOV     R0,#107
       DJNZ    R0,$
       DJNZ    R1,TSR1
       SETB    DQ      ;然后拉高數(shù)據(jù)線
       NOP
       NOP
       NOP
       MOV     R0,#25H
TSR2:  JNB     DQ,TSR3 ;等待DS18B20回應(yīng)
       DJNZ    R0,TSR2
       LJMP    TSR4    ;延時
TSR3:  SETB    FLAG1   ;置標志位,表示DS1820存在
       LJMP    TSR5
TSR4:  CLR     FLAG1   ;清標志位,表示DS1820不存在
       LJMP    TSR7
TSR5:  MOV     R0,#117
TSR6:  DJNZ    R0,TSR6 ;時序要求延時一段時間
TSR7:  SETB    DQ
       RET
       ;-------------------------------------------------
GET_TEMPER:    ;讀出轉(zhuǎn)換后的溫度值
       SETB    DQ
       LCALL   INIT_1820       ;先復(fù)位DS18B20
       JB      FLAG1,TSS2
       RET     ;判斷DS1820是否存在?若DS18B20不存在則返回
TSS2:  MOV     A,#0CCH ;跳過ROM匹配
       LCALL   WRITE_1820
       MOV     A,#44H  ;發(fā)出溫度轉(zhuǎn)換命令
       LCALL   WRITE_1820
       LCALL   DISPLAY ;等待AD轉(zhuǎn)換結(jié)束,12位的話750微秒
       LCALL   INIT_1820       ;準備讀溫度前先復(fù)位
       MOV     A,#0CCH ;跳過ROM匹配
       LCALL   WRITE_1820
       MOV     A,#0BEH ;發(fā)出讀溫度命令
       LCALL   WRITE_1820
       LCALL   READ_18200      ;將讀出的溫度數(shù)據(jù)保存到35H/36H
       RET
       ;寫DS18B20的子程序(有具體的時序要求)
WRITE_1820:    MOV     R2,#8   ;一共8位數(shù)據(jù)
       CLR     C
WR1:   CLR     DQ
       MOV     R3,#6
       DJNZ    R3,$
       RRC     A
     &n

2樓: >>參與討論
且聽風(fēng)吟
樓主把圖也發(fā)上去啊,要不沒有意義。
3樓: >>參與討論
pgb
樓上說得對,你就叫人看程序看得懂呀
4樓: >>參與討論
yueshang
圖很簡單,能看得懂程序,圖就出來了
5樓: >>參與討論
江123
光有程序  沒有硬件的配置   那怎么安裝啊
6樓: >>參與討論
總調(diào)不通
我用12M晶陣總是調(diào)不通不知問題何在,樓主是否做過實驗并通過呢?
參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
[轉(zhuǎn)帖]初學(xué)單片機幾個不易掌握的概念
[求助]!如何產(chǎn)生相差一定寬度的脈沖信號!
用過TLC2543這款A(yù)D芯片的問一下
[分享]數(shù)字溫度計程序
單片機的通訊協(xié)議如何編啊
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號