在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > DS18B20讀取溫度并顯示-匯編程序

            DS18B20讀取溫度并顯示-匯編程序

            作者: 時間:2012-10-31 來源:網(wǎng)絡(luò) 收藏

            *
            程序效果:通過值,對應(yīng)的溫度值
            程序重在理解時序,及延時時間
            */

            DS18DQ EQU P1.3 //P1.3與DS18DQ等同,便于理解
            SPEAKER EQU P2.0 //驅(qū)動蜂鳴器
            TEMPH EQU 29H //保存讀出溫度的低8位
            TEMPL EQU 28H //保存讀出溫度的高8位
            DS18FLAG EQU 40H //設(shè)置標志
            ORG 0000H
            LJMP START
            ORG 0030H
            START: MOV 30H,#00 //設(shè)置初始值
            MOV 31H,#00
            MOV 32H,#00
            START1: LCALL DS18_GF //設(shè)置的工作方式
            LCALL CONVERT_TEMPERATURE //輸出轉(zhuǎn)換溫度命令
            LCALL DELAY750MS //延時750ms
            LCALL GET_TEMPERATURE //獲?溫度數(shù)據(jù)
            LCALL CAL_TEMPERATURE //計算溫度數(shù)值
            LCALL DISPLAY //調(diào)用,防止掉顯
            LJMP START1 //無限循環(huán)
            //初始化子程序
            DS18_START:
            PUSH 07H //保存R7的值,防止改變R7的數(shù)值
            SETB DS18DQ //將數(shù)據(jù)線拉高
            NOP //延時1us
            CLR DS18DQ //將數(shù)據(jù)線拉低
            MOV R7,#0 //延時大約512us
            DJNZ R7,$
            SETB DS18DQ //將數(shù)據(jù)線拉高
            MOV R7,#40
            DS18_START1: //延時大約160us
            JNB DS18DQ,DS18_START2 //檢查是否工作正常
            DJNZ R7,DS18_START1
            SETB DS18FLAG //工作不正常
            CLR SPEAKER //驅(qū)動蜂鳴器,報警
            DS18_START2:
            CLR DS18FLAG
            MOV R7,#100 //延時月200us
            DJNZ R7,$
            POP 07H //恢復(fù)R7的值
            RET
            //設(shè)置DS18B20工作方式
            DS18_GF:CLR DS18FLAG //清除標志
            LCALL DS18_START //調(diào)用初始化子程序
            MOV A,#0CCH //跳躍ROM指令
            LCALL DS18_SEND //
            MOV A,#4EH //向RAM寫數(shù)據(jù)
            LCALL DS18_SEND
            MOV A,#75
            LCALL DS18_SEND
            MOV A,#0
            LCALL DS18_SEND
            MOV A,#7FH //設(shè)置工作方式
            LCALL DS18_SEND
            CLR DS18DQ //釋放總線
            LCALL DELAY500US //延時500us
            LOOP: LCALL CONVERT_TEMPERATURE //調(diào)用轉(zhuǎn)子程序
            MOV R5,#80
            LOOP1: LCALL DISPLAY //調(diào)用防止掉顯,同時等待轉(zhuǎn)換完成
            DJNZ R5,LOOP1
            LCALL GET_TEMPERATURE //獲?轉(zhuǎn)換值
            LCALL CAL_TEMPERATURE //計算溫度值
            LJMP LOOP
            RET

            蜂鳴器相關(guān)文章:蜂鳴器原理

            上一頁 1 2 下一頁

            評論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉