久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3051|回復(fù): 3
打印 上一主題 下一主題
收起左側(cè)

51單片機(jī)1602液晶模塊DS18B20溫度顯示,帶序列號(hào)4位分辨率 匯編程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:126173 發(fā)表于 2020-6-12 09:42 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
;1602液晶模塊高精度4位小數(shù)顯示,溫度分辨率0.0625℃      
;液晶模塊第一行顯示的是DS18B20的64位激光序列號(hào)        
;液晶模塊第二行顯示的是實(shí)際溫度               



        ORG        0000H
        AJMP        START
               
        ORG        0033H
START:        
        DQ        BIT        P3.3    ;此接DS18B20信號(hào)腳
        RS         BIT         P2.0
        RW         BIT         P2.1
        E          BIT         P2.2
        LED8P        BIT        P2.6
        BLA        BIT        P2.7
        LCD         EQU         P0
        
        DS18B20                BIT        01H
        TEMPERRB        BIT        02H
        TEMPSBIT        BIT        03H
        TEMPFH        EQU        30H        ;溫度符號(hào)位
        TEMPBW        EQU        31H        ;溫度"百"位
        TEMPSW        EQU        32H        ;溫度"十"位
        TEMPGW        EQU        33H        ;溫度"個(gè)"位
        TEMPXS1        EQU        34H        ;溫度小數(shù)位第"1"位
        TEMPXS2        EQU        35H        ;溫度小數(shù)位第"2"位
        TEMPXS3        EQU        36H        ;溫度小數(shù)位第"3"位
        TEMPXS4        EQU        37H        ;溫度小數(shù)位第"4"位        
        TEMPXSD        EQU        38H
        TEMPZS        EQU        39H
        TEMPXS        EQU        3AH
        TEMPL        EQU        3BH
        TEMPH        EQU        3CH
        ID1        EQU        3DH
        ID2        EQU        3EH
        ID3        EQU        3FH
        ID4        EQU        40H
        ID5        EQU        41H
        ID6        EQU        42H
        ID7        EQU        43H
        ID8        EQU        44H
        DLCD1        EQU        46H
        DLCD2        EQU        47H
        DLCD3        EQU        48H
        DLCD4        EQU        49H
        DLCD5        EQU        4AH
        DLCD6        EQU        4BH
        DLCD7        EQU        4CH
        DLCD8        EQU        4DH
        DLCD9        EQU        4EH
        DLCD10        EQU        4FH
        DLCD11        EQU        50H
        DLCD12        EQU        51H
        DLCD13        EQU        52H
        DLCD14        EQU        53H
        DLCD15        EQU        54H
        DLCD16        EQU        55H
               
;---------------------------------------------------------

MAIN:        ACALL        GETTEMP
        JB         DS18B20,MAIN1
        AJMP        MAIN
MAIN1:        
         
        CLR        BLA                ;開(kāi)啟液晶背光
;        SETB        BLA                ;關(guān)閉液晶背光
        LCALL        GETROM
        LCALL        DISPLCD
        AJMP        MAIN
                                                
DISPLCD:                        ;向1602液晶模塊寫(xiě)入顯示信息
        MOV        P2,#0FFH
        MOV         LCD,#01H        ;寫(xiě)指令01H,清屏
        LCALL         ENABLE
        MOV         LCD,#38H        ;寫(xiě)指令38H,設(shè)定LCD為16*2顯示,5*7點(diǎn)陣,8位數(shù)據(jù)接口
        LCALL         ENABLE
        MOV         LCD,#0FH        ;寫(xiě)指令0FH,顯示ON,光標(biāo)ON,閃爍ON
        LCALL         ENABLE
        MOV         LCD,#06H        ;寫(xiě)指令06H,光標(biāo)輸入方式增量移位
        LCALL         ENABLE
        
        MOV        A,ID1
        SWAP        A
        ANL        A,#0FH
        MOV        DPTR,#TABHEX
        MOVC        A,@A+DPTR
        MOV        DLCD1,A
        MOV        A,ID1
        ANL        A,#0FH
        MOV        DPTR,#TABHEX
        MOVC        A,@A+DPTR
        MOV        DLCD2,A
        MOV        A,ID2
        SWAP        A
        ANL        A,#0FH
        MOV        DPTR,#TABHEX
        MOVC        A,@A+DPTR
        MOV        DLCD3,A
        MOV        A,ID2
        ANL        A,#0FH
        MOV        DPTR,#TABHEX
        MOVC        A,@A+DPTR
        MOV        DLCD4,A
        MOV        A,ID3
        SWAP        A
        ANL        A,#0FH
        MOV        DPTR,#TABHEX
        MOVC        A,@A+DPTR
        MOV        DLCD5,A
        MOV        A,ID3
        ANL        A,#0FH
        MOV        DPTR,#TABHEX
        MOVC        A,@A+DPTR
        MOV        DLCD6,A
        MOV        A,ID4
        SWAP        A
        ANL        A,#0FH
        MOV        DPTR,#TABHEX
        MOVC        A,@A+DPTR
        MOV        DLCD7,A
        MOV        A,ID4
        ANL        A,#0FH
        MOV        DPTR,#TABHEX
        MOVC        A,@A+DPTR
        MOV        DLCD8,A
        MOV        A,ID5
        SWAP        A
        ANL        A,#0FH
        MOV        DPTR,#TABHEX
        MOVC        A,@A+DPTR
        MOV        DLCD9,A
        MOV        A,ID5
        ANL        A,#0FH
        MOV        DPTR,#TABHEX
        MOVC        A,@A+DPTR
        MOV        DLCD10,A
        MOV        A,ID6
        SWAP        A
        ANL        A,#0FH
        MOV        DPTR,#TABHEX
        MOVC        A,@A+DPTR
        MOV        DLCD11,A
        MOV        A,ID6
        ANL        A,#0FH
        MOV        DPTR,#TABHEX
        MOVC        A,@A+DPTR
        MOV        DLCD12,A
        MOV        A,ID7
        SWAP        A
        ANL        A,#0FH
        MOV        DPTR,#TABHEX
        MOVC        A,@A+DPTR
        MOV        DLCD13,A
        MOV        A,ID7
        ANL        A,#0FH
        MOV        DPTR,#TABHEX
        MOVC        A,@A+DPTR
        MOV        DLCD14,A
               
        MOV        A,ID8
        SWAP        A
        ANL        A,#0FH
        MOV        DPTR,#TABHEX
        MOVC        A,@A+DPTR
        MOV        DLCD15,A
        MOV        A,ID8
        ANL        A,#0FH
        MOV        DPTR,#TABHEX
        MOVC        A,@A+DPTR
        MOV        DLCD16,A

;------- 液晶模塊顯示程序---------
        MOV         LCD,#80H        ;第一行顯示第1個(gè)字符的位置            
        ACALL         ENABLE
        MOV         R0,#DLCD1
        CALL         WRITE1
        MOV         LCD,#0C0h        ;第二行位置                           
        CALL         ENABLE
        MOV        DLCD1,#20H
        MOV        DLCD2,#54H
        MOV        DLCD3,#45H
        MOV        DLCD4,#4DH
        MOV        DLCD5,#50H
        MOV        DLCD6,#3AH
               
        MOV        A,TEMPSW
        ORL        A,#00110000B
        MOV        DLCD7,A
        MOV        A,TEMPGW
        ORL        A,#00110000B
        MOV        DLCD8,A
        MOV        DLCD9,#2EH
        MOV        A,TEMPXS1
        ORL        A,#00110000B
        MOV        DLCD10,A
        MOV        A,TEMPXS2
        ORL        A,#00110000B
        MOV        DLCD11,A
        MOV        A,TEMPXS3
        ORL        A,#00110000B
        MOV        DLCD12,A
        MOV        A,TEMPXS4
        ORL        A,#00110000B
        MOV        DLCD13,A
        MOV        DLCD14,#0DFH
        MOV        DLCD15,#43H
        MOV        DLCD16,#20H
        MOV         R0,#DLCD1
        CALL         WRITE1
        RET

ENABLE:                                ;寫(xiě)命令時(shí)序
        CLR         RS
        CLR         RW
        CLR         E
;        ACALL        YS806U
        MOV        R7,#188
        DJNZ        R7,$
        SETB         E
        RET

WRITE1:                                        ;寫(xiě)字符串                                                   
        MOV         R1,#16
A1:        MOV         A,@R0
        CALL         WRITE2
        INC         R0
        DJNZ         R1,A1
        RET

WRITE2:              ;寫(xiě)單個(gè)字符                                                                             
        MOV         LCD,A
        SETB         RS
        CLR         RW                          
        CLR         E
        CALL         DELAY1
        SETB         E
        RET

DELAY1:
        MOV         R7,#1
D11:        MOV         R6,#18
D12:        DJNZ         R6,D12
        DJNZ         R7,D11
        RET

;|------------------------------------------------|
;| 讀出DS18B20序列號(hào)應(yīng)用程序
;|------------------------------------------------|
GETROM:        CLR         EA
        LCALL         INIT18B20
        JB         DS18B20,GETROM1
        SETB        EA
        RET
GETROM1:MOV         A,#33H
        LCALL         WRITE18B20        ;送入讀DS18B20的ROM命令
        MOV         R4,#8                 ;從DS18B20中讀出8字節(jié)ROM數(shù)據(jù)
        MOV         R1,#ID1
        LCALL         READ18B20
        SETB         EA
        RET

GETTEMP:CLR        EA
        LCALL         INIT18B20        ;先復(fù)位DS18B20
        JB         DS18B20,TSS2
        SETB        EA
        RET
TSS2:        MOV         A,#0CCH         ; 跳過(guò)ROM匹配
        LCALL         WRITE18B20
        MOV         A,#44H                 ; 發(fā)出溫度轉(zhuǎn)換命令
        LCALL         WRITE18B20
        LCALL        YS800M                ;延時(shí)0.8S,延時(shí)>750MS
        LCALL         INIT18B20
        MOV         A,#0CCH         ;跳過(guò)ROM匹配
        LCALL         WRITE18B20
        MOV         A,#0BEH         ;發(fā)出讀溫度命令
        LCALL         WRITE18B20
        MOV         R4,#2                 ;從DS18B20中讀出2字節(jié)溫度數(shù)據(jù)
        MOV         R1,#TEMPL
        LCALL         READ18B20        ;讀溫度
        SETB        EA


DOTEMP:        MOV        TEMPXSD,#2EH
TESTS1:        MOV        A,TEMPH
        ANL        A,#11111000B
        CJNE        A,#0F8H,TESTS0
        MOV        TEMPFH,#0FFH
        SETB        TEMPSBIT
        CLR        TEMPERRB
        LJMP        DOTEMP1
TESTS0:        CJNE        A,#00H,TEMPERR
        MOV        TEMPFH,#00H
        CLR        TEMPSBIT
        CLR        TEMPERRB
        LJMP        DOTEMP1
TEMPERR:
        SETB        TEMPERRB
        LJMP        TEMPRET
DOTEMP1:
        JNB        TEMPSBIT,DOTEMP2
        MOV        A,TEMPH
        CPL        A
        MOV        TEMPH,A
        MOV        A,TEMPL
        CPL        A
        CLR        C
        ADD        A,#1
        MOV        TEMPL,A
        MOV        A,TEMPH
        ADDC        A,#00H
        ANL        A,#00000111B
        MOV        TEMPH,A
DOTEMP2:
        MOV        A,TEMPH
        SWAP        A
        MOV        TEMPH,A
        MOV        A,TEMPL
        ANL        A,#00001111B
        MOV        TEMPXS,A
        MOV        A,TEMPL
        ANL        A,#11110000B
        SWAP        A
        MOV        R1,TEMPH
        ORL        A,R1
        MOV        TEMPZS,A
HBCD:
        MOV        A,TEMPZS
        MOV         B,#100
        DIV         AB
        MOV         TEMPBW,A
        MOV         A,#10
        XCH         A,B
        DIV         AB
        MOV         TEMPSW,A
        MOV        A,B
        MOV         TEMPGW,A
FLXS:        MOV        R2,#4
        MOV        A,TEMPXS
        ANL        A,#00001111B
        MOV        B,#4
        MUL        AB
        MOV        R1,A
        MOV        R0,#TEMPXS1
FLXS1:        MOV        DPTR,#DISPXS
        MOV        A,R1
        MOVC        A,@A+DPTR
        MOV        @R0,A
        INC        R0
        INC        R1
        DJNZ        R2,FLXS1
                        
TEMPRET:
        SETB        EA
        RET

;-----------------------------------------------------
INIT18B20:
        SETB        DQ
        NOP
        CLR        DQ
        MOV        R0,#107                ;主機(jī)發(fā)出延時(shí)537微秒的復(fù)位低脈沖[2]
        MOV         R1,#3
TSR1:        DJNZ         R0,TSR1
        MOV         R0,#107
        DJNZ         R1,TSR1
        SETB         DQ
        NOP
        NOP
        NOP
        MOV         R0,#25H
TSR2:        JNB         DQ,TSR3
        DJNZ         R0,TSR2
        AJMP         TSR4
TSR3:        SETB         DS18B20
        AJMP         TSR5
TSR4:        CLR         DS18B20
        AJMP         TSR7
TSR5:        MOV         R0,#107
TSR6:        DJNZ         R0,TSR6
TSR7:        SETB         DQ
        JNB        DQ,$
        RET


READ18B20:
        MOV         R2,#8
RE01:        CLR         C
        SETB         DQ
        NOP
        NOP
        CLR         DQ
        NOP
        NOP
        NOP
        SETB         DQ
        MOV         R3,#09
RE10:        DJNZ         R3,RE10
        MOV         C,DQ
        MOV         R3,#23
RE20:        DJNZ         R3,RE20
        RRC         A
        DJNZ         R2,RE01
        MOV         @R1,A
        INC         R1
        DJNZ         R4,READ18B20
        RET

;寫(xiě)DS18B20的子程序
WRITE18B20:
        MOV         R2,#8
        CLR         C
WR18:        CLR         DQ
        MOV         R3,#6
        DJNZ         R3,$
        RRC         A
        MOV         DQ,C
        MOV         R3,#23
        DJNZ         R3,$
        SETB         DQ
        NOP
        DJNZ         R2,WR18
        SETB         DQ
        RET

DISPXS:
        DB        00H,00H,00H,00H,00H,06H,02H,05H,01H,02H,05H,00H,01H,08H,07H,05H
        DB        02H,05H,00H,00H,03H,01H,02H,05H,03H,07H,05H,00H,04H,03H,07H,05H
        DB        05H,00H,00H,00H,05H,06H,02H,05H,06H,02H,05H,00H,06H,08H,07H,05H
        DB        07H,05H,00H,00H,08H,01H,02H,05H,08H,07H,05H,00H,09H,03H,07H,05H
TABHEX:        DB        30H,31H,32H,33H,34H,35H,36H,37H,38H,39H,41H,42H,43H,44H,45H,46H
               


;********  延時(shí)程序  ********
YS806U:        MOV        R4,#19                 ;延時(shí)806微秒
Y1:         MOV        R5,#18                ;[1]
        DJNZ        R5,$                ;[2]
        DJNZ        R4,Y1                 ;[2]
        RET                        ;[1]

YS4722U:MOV        R4,#10                 ;延時(shí)4722微秒
Y3:        MOV        R5,#216                ;[1]
        DJNZ        R5,$                ;[2]
        DJNZ        R4,Y3                 ;[2]
        RET                        ;[1]
        
;********** 10ms延時(shí)程序 ***********
YS10MS:        MOV        R7,#128
DL1:        MOV        R6,#0FFH
DL0:        DJNZ        R6,DL0
        DJNZ        R7,DL1
        RET

YS118M:        MOV          R1,#25                ;延時(shí)118MS
Y5:        ACALL  YS4722U
        DJNZ   R1,Y5
        RET

YS500M:        MOV        R3,#40                ;延時(shí)1000MS
Y5_1:        MOV        R4,#10                 ;[1]延時(shí)5MS
Y5_2:        MOV        R5,#228                ;[1]
        DJNZ        R5,$                ;[2]
        DJNZ        R4,Y5_2                ;[2]
        DJNZ        R3,Y5_1                ;[2]
        RET                        ;[1]

YS800M:        MOV        R3,#45
YYSS1:        
;        LCALL        DISP
        DJNZ        R3,YYSS1
        RET

YS1000M:MOV        R3,#200                ;延時(shí)1000MS
Y4_1:        MOV        R4,#10                 ;[1]延時(shí)5MS
Y4_2:        MOV        R5,#228                ;[1]
        DJNZ        R5,$                ;[2]
        DJNZ        R4,Y4_2                ;[2]
        DJNZ        R3,Y4_1                ;[2]
        RET                        ;[1]


;******* 按鍵音效延時(shí)(50ms)子程序 *******
SOUND:        MOV        R7,#228
SDL1:        CPL        p3.7
        MOV        R6,#0FFH
SDL0:        DJNZ        R6,SDL0
        DJNZ        R7,SDL1
        RET

        END

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:328014 發(fā)表于 2020-6-12 15:19 | 只看該作者
有原理圖嗎?
回復(fù)

使用道具 舉報(bào)

板凳
ID:99987 發(fā)表于 2020-6-12 16:14 | 只看該作者
不錯(cuò)很牛!
回復(fù)

使用道具 舉報(bào)

地板
ID:126173 發(fā)表于 2020-6-13 17:39 | 只看該作者
51單片機(jī)驅(qū)動(dòng) DS18B20 就不需要原理圖了吧,單片機(jī)最小系統(tǒng),然后我是用P3.3接的DS18B20數(shù)據(jù)腳,你也可以跟據(jù)你的需要去接。很簡(jiǎn)單的。
我這里到是有自己用示波器 測(cè)的 DS18B20在11.0592MHZ晶振的51單片機(jī)系統(tǒng)里的時(shí)序波形圖,不過(guò)整個(gè)CSV文件有160M多,不方便上傳,而且你看的話也會(huì)覺(jué)得枯燥無(wú)趣的。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 天天综合久久 | 久草网站 | 国产精品久久久亚洲 | 久久婷婷麻豆国产91天堂 | 国产精品久久久亚洲 | 国产资源视频 | 亚洲国产片 | 婷婷99 | 精品中文字幕视频 | 日本一区不卡 | 在线观看视频一区 | 日韩欧美二区 | 国产网站在线免费观看 | 伊人精品在线 | 国产高清一区二区 | 亚洲三区在线观看 | 福利视频二区 | 亚洲精品视频免费 | www.99re5.com | 欧美看片| 五十女人一级毛片 | 久久高清免费视频 | 日日欧美 | 欧美性网| 91在线精品一区二区 | 伊人伊成久久人综合网站 | 国产一区不卡 | 精品视频一区二区 | 日韩久久精品视频 | 国产乱码精品一区二区三区中文 | 成人激情视频在线播放 | 亚洲一区二区免费视频 | 国产欧美在线视频 | aaaa网站 | 爱爱综合网 | 一区二区三区免费 | 看a网站| 日本久久一区二区三区 | 亚洲在线免费 | 欧美极品少妇xxxxⅹ免费视频 | 欧美h|