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

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

各位幫我看看ds18b20的顯示程序

作者:yudehenji 欄目:單片機(jī)
各位幫我看看DS18B20.html">DS18B20的顯示程序
大家有用過(guò)DS18B20.html">DS18B20的嗎?幫我看看我的程序。采集溫度之后,送三個(gè)8段led顯示,3片74HC164,AT89C2051串行工作方式0,分別控制指示燈,溫度個(gè)位,溫度十位。大家看看我的程序有沒(méi)有問(wèn)題。



TEMP.html">TEMP equ 40h
TEMP.html">TEMP1 equ 41h
TEMP.html">TEMP2 equ 42h
TEMPER_NUM equ 60h
main:
     
     acall readTEMP.html">TEMP
     acall TEMPER_COV
     
     acall led_wendu
     
     ajmp main
     
     
     RESET:   
L0:        CLR    p3.5  ; 長(zhǎng)英科技2000/9/27
MOV        R2,#200
L1:        NOP    
DJNZ       R2,L1        ;主機(jī)發(fā)置位脈沖持續(xù)3us﹡200=600us
SETB       p3.5         ;主機(jī)釋放總線控制p3.5口改為輸入口
MOV        R2,#30
L4:        DJNZ R2,L4   ;DS18B20等待2us﹡30=60us
CLR        C
ORL        C,p3.5       ;DS18B20數(shù)據(jù)線應(yīng)變低
JC         L0           ;DS18B20沒(méi)準(zhǔn)備好,重來(lái)
MOV        R6,#80
L5:        ORL C,p3.5
JC         L3           ;DS18B20數(shù)據(jù)線變高,初始化成功
DJNZ       R6,L5        ;DS18B20數(shù)據(jù)線低電平狀態(tài)可持續(xù)3us﹡80=240us
SJMP       L0           ;初始化失敗,重來(lái)
L3:        MOV R2,#250
L2:        DJNZ   R2,L2 ;DS18B20應(yīng)答過(guò)程最少 >  480us
RET

WRITE:     MOV        R3,#8
WR1:     SETB        p3.5
MOV      R4,#8
RRC      A
CLR      p3.5
WR2:     DJNZ R4,WR2   ;DS18B20栽數(shù)據(jù)線變低16us
MOV      p3.5,C     ;將命令字按位依次送給DS18B20
MOV      R4,#20
WR3:     DJNZ R4,WR3   ;保證整個(gè)寫(xiě)過(guò)程持續(xù)60us
         DJNZ R3,WR1   ;送完整個(gè)命令字節(jié)
         SETB p3.5
         RET

READ: MOV       R6,#8
RE1:  CLR       p3.5
      MOV       R4,#6
      NOP                    ;低電平持續(xù)2us
      SETB      p3.5         ;p3.5口設(shè)為輸入口
RE2:  DJNZ      R4,RE2       ;等待12us
      MOV       C,p3.5       ;主機(jī)按位讀入DS18B20的數(shù)據(jù)
      RRC       A            ;數(shù)據(jù)送入A
      MOV       R5,#30
RE3:  DJNZ      R5,RE3      ;保證讀數(shù)據(jù)過(guò)程持續(xù)2us﹡30=60us
      DJNZ      R6,RE1      ;讀完8位
      MOV       TEMP,A      ;將讀出值送變量TEMP保存
      SETB      p3.5
      RET

READTEMP : acall  RESET     ;復(fù)位
MOV A,#0CCH                 ;發(fā)SKIP ROM命令
acall WRITE
MOV A,#44H                  ;發(fā)開(kāi)始溫度轉(zhuǎn)換命令
acall WRITE
acall DELAY_1000            ;延時(shí) 1000 MS
acall RESET                 ;復(fù)位
MOV A,#0CCH                 ;發(fā)SKIP ROM命令
acall WRITE
MOV A,#0BEH                 ;發(fā)讀存儲(chǔ)器命令
acall WRITE
CALL READ                   ;讀出溫度值低
MOV TEMP1,TEMP
CALL READ                   ;讀出溫度值高
MOV TEMP2,TEMP
acall RESET                 ;復(fù)位
RET                          


TEMPER_COV:
       MOV    A,#0F0H
       ANL    A,TEMP.html">TEMP1        ; 舍去溫度低位中小數(shù)點(diǎn)后的四位溫度數(shù)值
       SWAP    A
       MOV    TEMPER_NUM,A
       MOV    A,TEMP.html">TEMP1
       JNB    ACC.3,TEMPER_COV1    ; 四舍五入去溫度值
       INC    TEMPER_NUM

TEMPER_COV1:
       MOV    A,TEMP.html">TEMP2
       ANL    A,#07H
       SWAP    A
       ORL    A,TEMPER_NUM
       MOV    TEMPER_NUM,A    ; 保存變換后的溫度數(shù)據(jù)
       LCALL    BIN_BCD
       RET
       ;-------------------將16進(jìn)制的溫度數(shù)據(jù)轉(zhuǎn)換成壓縮BCD碼
BIN_BCD:
&nbs
2樓: >>參與討論
dreamflyme
單片機(jī)AT89S52
DS18B20在HJ51/AVR單片機(jī)學(xué)習(xí)開(kāi)發(fā)系統(tǒng)上的應(yīng)用(供參考,摘自恒堅(jiān)電器網(wǎng)站):

; DS18B20 溫度傳感器讀數(shù)接口
; 正確下載了程序以后,系統(tǒng)會(huì)利用數(shù)碼管的后3位顯示當(dāng)前的溫度值,最后一位是小數(shù)。
; 如果要移植這個(gè)程序中讀取DS18B20的相關(guān)函數(shù),您需要修改以下幾個(gè)內(nèi)容
; 根據(jù)您所選擇晶振和我們板子上的晶振6M的關(guān)系,重新計(jì)算
; 初始化和讀取,寫(xiě)入三個(gè)函數(shù)延時(shí)相關(guān)部分系數(shù),用*標(biāo)出

; 這個(gè)溫度測(cè)試程序的溫度精度是0.5C。


beep equ p3.7

segdata equ p0      ;數(shù)據(jù) 輸出
sege    equ p2.7    ;顯示 選中
segb    equ p2.6    ;位 選
segd    equ p2.5    ;段 選

tmp0   equ 40h
tmp1   equ 41h
tmp2   equ 42h
tmp3   equ 43h
tmp    equ 44h
buf    equ 45h

dstmp   bit p3.2     ;DS18B20在外部中斷T0口,連器件的時(shí)候注意了
;我們活動(dòng)式設(shè)計(jì),您只要把DS18B20三只腳分開(kāi),準(zhǔn)確識(shí)別三只腳的含義
;(這在我們光盤中提供了說(shuō)明文件),然后分別對(duì)應(yīng),插入面板下主芯片下
;方的擴(kuò)展座對(duì)應(yīng)的引腳即可

        ORG 0000H
        AJMP MAIN
        
        ORG 0030H
MAIN:
        MOV SP,#30H
        clr beep
        
        LCALL GET_TEMP   ;首先獲得溫度值
        
        mov tmp,r7       ; R7是溫度的低位
        
        clr c
        mov a,r6         ; R6是溫度的高位
        rrc a
        mov r6,a
        
        mov a,r7
        rrc a
        mov r7,a         ;完成一次移位
        
        mov a,r6
        rrc a
        mov r6,a
        
        mov a,r7
        rrc a
        mov r7,a         ;完成2次移位
        
        mov a,r6
        rrc a
        mov r6,a
        
        mov a,r7
        rrc a
        mov r7,a         ;完成3次移位,這樣以后便與計(jì)算        
        
        mov a,r7
        mov b,#2
        div ab
        
        mov r0,a   ;高位商
        mov r1,b   ;余數(shù)
        
        mov b,#10
        div ab
        mov tmp1,b   ;個(gè)位        
        
        mov b,#10
        div ab
        mov tmp2,b   ;十位
        mov tmp3,a   ;百位
        
        clr c  
              
        mov a,tmp
        rlc a
        mov tmp,a
        mov a,r1
        rlc a
        mov r1,a         ;小數(shù)操作
        
        mov a,tmp
        rlc a
        mov tmp,a
        mov a,r1
        rlc a
        mov r1,a         ;小數(shù)  
        
        mov a,tmp
        rlc a
        mov tmp,a
        mov a,r1
        rlc a
        mov r1,a         ;小數(shù)擴(kuò)大16倍
        
        mov dptr,#ft
        movc a,@a+dptr
        mov tmp0,a
        
        mov a,tmp3
        jz noe        ;0消隱
        mov b,#3
        acall DISPLAY ;顯示百位  
        
noe:   mov a,tmp2
        mov b,#2
        acall DISPLAY ;在第二位顯示十位          
        
        mov a,tmp1
        add a,#16
        mov b,#1      ;第1位顯示個(gè)位,帶小數(shù)點(diǎn)
        acall DISPLAY                            
        
        mov a,tmp0
        mov b,#0   
參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
關(guān)于初始化數(shù)據(jù)存儲(chǔ)區(qū)
RAM擴(kuò)展的時(shí)候,要不要定義其首地址
設(shè)計(jì)程序
請(qǐng)各位大俠推薦一款帶兩種晶振工作的單片機(jī).
8019的初始化
免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào)