<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 物聯(lián)網(wǎng)與傳感器 > 18B20數(shù)字溫度顯示系統(tǒng)

          18B20數(shù)字溫度顯示系統(tǒng)

          ——
          作者: 時間:2006-12-11 來源: 收藏

          綜合實驗:用18B20(數(shù)字采集)74LS47(數(shù)碼管譯碼)74LS138(三八譯碼) DS18B20是DALLAS公司生產(chǎn)的一線式數(shù)字傳感器,具有3引腳TO-92小體積封裝形式;測量范圍為-55℃~+125℃,可編程為9位~12位A/D轉(zhuǎn)換精度,測溫分辨率可達0.0625℃,被測溫度用符號擴展的16位數(shù)字量方式串行輸出.

          主機控制DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過三個步驟:初始化、ROM操作指令、存儲器操作指令。必須先啟動DS18B20開始轉(zhuǎn)換,再讀出溫度轉(zhuǎn)換值。本程序僅掛接一個芯片,使用默認的12位轉(zhuǎn)換精度,外接供電電源,讀取的溫度值高位字節(jié)送WDMSB單元,低位字節(jié)送WDLSB單元,再按照溫度值字節(jié)的表示格式及其符號位,經(jīng)過簡單的變換即可得到實際溫度值。



           18b20原理圖

          運行程序數(shù)碼管后4位顯示當前測試到的溫度。

          DS18B20的引腳:

          在本系統(tǒng)中: 為了簡化程序, 采用了74LS47(數(shù)碼管譯碼)74LS138(三八譯碼)。即P0口的P0.0,P0.1,P0.2,P0.3 四個端口接到74LS47進行硬件數(shù)碼管譯碼,然后輸出到數(shù)碼管部分的數(shù)據(jù)口JP5。

          P0.4,P0.5,P.0.6三個端口接到74LS138進行38譯碼, 然后輸出到數(shù)碼管的位控制JP8.

          系統(tǒng)綜合原理圖:

          ;

          ;本程序測量溫度范圍:0~125度,精確到0.06;
          DAT BIT P3.0 ;數(shù)據(jù)通信口
          WDLSB DATA 30H ;讀出的溫度低字節(jié)
          WDMSB DATA 31H ;讀出的溫度高字節(jié)
          ;***************************************************************
          ORG 0000H
          LJMP MAIN
          ORG 000BH
          SJMP TIMER0 ;定時顯示

          ;****************************************************************
          ;定時顯示子程序,采用循環(huán)掃描方式
          ;顯示緩沖區(qū)40H~47H
          ORG 0040H
          TIMER0:

          MOV P0,40H ;最后一位值送p0
          ORL P0,#70H; 點亮最后一位
          CALL T1MS
          MOV P0,41H
          ORL P0,#60H
          CALL T1MS
          MOV P0,42H
          ORL P0,#50H
          CALL T1MS
          MOV P0,43H
          ORL P0,#40H
          MOV TH0,#LOW(65536-10000) ;定時器10MS中斷
          MOV TL0,#HIGH(65536-10000)
          RETI
          T1MS: mov r5,#00h ;延時子程序
          tt: mov r6,#9
          djnz r6,$
          djnz r5,tt
          ret

          ;*********************************************************
          ;主程序:

          MAIN: MOV SP,#60H
          MOV P2,#0FFH
          MOV R2,#8
          MOV R0,#40H ;
          OVER: MOV @R0,#00H
          INC R0
          DJNZ R2,OVER
          MOV TMOD,#01H
          MOV TH0,#LOW(65536-10000)
          MOV TL0,#HIGH(65536-10000)
          SETB EA
          SETB ET0
          SETB TR0
          LOOP: LCALL DSWD ;調(diào)用讀出DS18B20溫度程序
          SJMP LOOP ; 讀出DS18B20溫度程序
          DSWD:
          CLR EA
          LCALL RST
          JNB F0,KEND ;如果沒有應答,返回主程序
          MOV R0,#0CCH
          LCALL SEND_BYTE ;跳過ROM匹配
          MOV R0,#44H ;發(fā)出溫度轉(zhuǎn)換命令
          LCALL SEND_BYTE
          SETB EA
          MOV P1,#00001111B
          MOV 48H,#1 ;廷時75ms以上準備讀
          SS2: MOV 49H,#255
          SS1: MOV 4AH,#255
          SS0: DJNZ 4AH,SS0
          DJNZ 49H,SS1
          DJNZ 48H,SS2
          MOV P1,#11111100B
          CLR EA
          LCALL RST
          JNB F0,KEND
          MOV R0,#0CCH ;跳過ROM匹配
          LCALL SEND_BYTE
          MOV R0,#0BEH ;發(fā)出讀溫度命令
          LCALL SEND_BYTE
          LCALL READ_BYTE
          MOV WDLSB,A
          LCALL READ_BYTE
          MOV WDMSB,A
          LCALL TRANS12
          KEND: mov p1,#01010101b
          SETB EA
          RET
          ;**********************************************************
          ;溫度轉(zhuǎn)換程序:精確到:0.06 ;
          TRANS12:MOV A,30H
          ANL A,#0F0H
          MOV 3AH,A
          MOV A,31H
          ANL A,#0FH
          ORL A,3AH
          SWAP A
          MOV B,#10
          DIV AB
          MOV 43H,A
          MOV 42H,B ;
          MOV DPTR,#TABB
          MOV A,30H
          ANL A,#0FH
          MOV B,#2
          MUL AB
          MOVC A,@A+DPTR
          MOV 41H,A
          MOV A,30H
          ANL A,#0FH
          MOV B,#2
          MUL AB
          INC A
          MOVC A,@A+DPTR
          MOV 40H,A
          RET
          TABB: DB 0,0,0,6,1,2,1,8,2,5,3,1,3,7,4,3,5,0
          DB 5,6,6,2,6,8,7,5,8,1,8,7,9,3
          ;*************************************************

          SEND_BYTE: ;發(fā)送一個字節(jié)程序
          MOV A,R0
          MOV R5,#8
          SEN3: CLR C
          RRC A
          JC SEN1
          LCALL WRITE_0
          SJMP SEN2
          SEN1: LCALL WRITE_1
          SEN2: DJNZ R5,SEN3 ; 循環(huán)8次,寫一個字節(jié)
          RET
          READ_BYTE: ;讀一個字節(jié)程序
          MOV R5,#8
          READ1: LCALL READ
          RRC A
          DJNZ R5,READ1 ; 循環(huán)8次,讀一個字節(jié)
          MOV R0,A
          RET
          ;復位程序,如果復位置位F0,沒有就復位F0
          RST: SETB DAT
          NOP
          NOP
          CLR DAT
          MOV R6,#250 ;主機發(fā)復位脈沖持續(xù)3μs



          關(guān)鍵詞: 溫度

          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();