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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 51單片機(jī)DS18B20溫度控制報(bào)警程序(可設(shè)置溫控范圍)

          51單片機(jī)DS18B20溫度控制報(bào)警程序(可設(shè)置溫控范圍)

          作者: 時(shí)間:2016-11-30 來源:網(wǎng)絡(luò) 收藏
          DS18B20的管腳定義:

          1、GND
          2、DQ
          3、VCC

          本文引用地址:http://www.ex-cimer.com/article/201611/323666.htm

          DQ → P1.7

          K1 → P3.2
          K2 → P3.4
          K3 → P3.6
          K4 → P3.7

          溫度顯示用四位數(shù)碼管,當(dāng)溫度>=100度時(shí),第四位才顯示。
          第五位數(shù)碼管顯示狀態(tài)符號(hào)。

          開機(jī)檢測 DS18B20 狀態(tài):

          DS18B20正常顯示:

          O 18.8 ← 顯示實(shí)時(shí)溫度和加熱標(biāo)記“O”

          DS18B20不正常顯示:
          黑屏、蜂鳴器一直響。

          這時(shí)你要檢查DS18B20是否連接好、接對(duì),否則要更換一個(gè)新的 DS18B20 芯片。

          程序在整個(gè)運(yùn)行過程中,始終對(duì) DS18B20 進(jìn)行檢測。
          你可以將 DS18B20 從 51hei-5 拔掉,檢測一下此功能。

          一、查看溫度報(bào)警值:

          K1 → 進(jìn)入查看溫度報(bào)警值 TL 狀態(tài):

          L--20
          TL: 20 低位報(bào)警值

          K1 → 進(jìn)入查看溫度報(bào)警值 TH 狀態(tài):

          H--28
          TH: 28 高位報(bào)警值

          K1 → 退出查看溫度報(bào)警值狀態(tài)。


          二、設(shè)定溫度報(bào)警值:

          1、K3 → 進(jìn)入設(shè)定溫度報(bào)警值 TL 狀態(tài):

          L--20

          2、K3 → 進(jìn)入設(shè)定溫度報(bào)警值 TH 狀態(tài):

          H--28

          3、K3 → 返回

          4、設(shè)定過程: K1 →加鍵 (UP), K2 →減鍵 (DOWN),可快速調(diào)。

          將設(shè)定的溫度報(bào)警值自動(dòng)存入 DS18B20 的 EEROM 中,可永久保存。
          每次開機(jī)時(shí)自動(dòng)從 DS18B20 的 EEROM 讀出溫度報(bào)警值。

          三、報(bào)警狀態(tài)的顯示:

          1、當(dāng)實(shí)際溫度大于 TH 的設(shè)定值時(shí),

          H 38.8 H → 閃動(dòng)

          關(guān)閉繼電器,表示超溫。

          2、當(dāng)實(shí)際溫度小于 TL 的設(shè)定值時(shí),

          L 18.8 L → 閃動(dòng)

          表示加熱部分出現(xiàn)故障。

          3、當(dāng)實(shí)際溫度小于 TH 的設(shè)定值時(shí),繼電器吸合,開始加熱。

          加熱標(biāo)記為“O”

          四、其它功能

          1、以閃動(dòng)方式顯示標(biāo)記符 “ H”、“ L”、“O”。

          2、實(shí)時(shí)溫度百位數(shù)為 “0”時(shí),不顯示。

          3、報(bào)警溫度值百位數(shù)為 “0”時(shí),顯示“-”。

          完整的程序代碼下載地址:http://www.51hei.com/f/DS18B20溫度控制LED顯示_asm.rar

          ;*****************************************************************;*  標(biāo)題:  51Hei單片機(jī)開發(fā)系統(tǒng)演示程序 - DS18B20溫度控制數(shù)碼管顯示              *;*  晶振:  12M                                                                  *;*  跳線設(shè)置:J5的12腳用跳線帽短接,J5的第3腳用杜邦線連接到頂部P1.0擴(kuò)展,其他默認(rèn)                                                                  *                                                 *;*  網(wǎng)站: http://www.51HEI.com                                                  *;******************************************************************;*  描述:                                                                       *;*          DS18B20溫度控制數(shù)碼管顯示                                           *;*        1、K3 → 進(jìn)入設(shè)定溫度報(bào)警值 TL 狀態(tài):                                   *;*           L--20                                                            *;*        2、K3 → 進(jìn)入設(shè)定溫度報(bào)警值 TH 狀態(tài):                                   *;*           H--28                                                            *;*        3、K3 → 返回                                                          *;*        4、設(shè)定過程: K1 →加鍵 (UP), K2 →減鍵 (DOWN),可快速調(diào)。         *;*                                                                              *;********************************************************************************TIMER_L     DATA  23HTIMER_H     DATA  24HTIMER_COUN  DATA  25HTEMPL       DATA  26HTEMPH       DATA  27HTEMP_TH     DATA  28HTEMP_TL     DATA  29HTEMPHC      DATA  2AHTEMPLC      DATA  2BHTEMP_ZH     DATA  2CHBEEP        EQU   P1.0DATA_LINE   EQU   P1.7RELAY       EQU   P2.2FLAG1       EQU   20H.0FLAG2       EQU   20H.1;-------------------------------------------------K1   EQU  P3.2K2   EQU  P3.4K3   EQU  P3.6K4   EQU  P3.7;=================================================ORG 0000HJMP  MAINORG  000BHAJMP  INT_T0;--------------------------------------------------MAIN:     MOV SP,#30H;以下5行的功能是關(guān)閉8*8點(diǎn)陣的輸出,也就是把所有的行置0,這樣不管列為任何電平點(diǎn)陣都不會(huì)亮了.MOV     R2,#8    ;輸出數(shù)據(jù)8位 hei:     CLR     P2.4     ;拉低SCL,以便下次拉高便可產(chǎn)生上升沿CLR     P2.5  ;數(shù)據(jù)先送入74hc164,等待clk上升沿的到來SETB    P2.4     ;低電平到高電平邊沿觸發(fā)到來,并行數(shù)據(jù)輸出至164的Q0-Q7DJNZ    R2,hei   ;判斷輸出完畢了沒有MOV  TMOD,#01H        ;T0,方式1MOV  TIMER_L,#00H     ;50ms定時(shí)值MOV  TIMER_H,#4CHMOV  TIMER_COUN,#00H  ;中斷計(jì)數(shù)MOV  IE,#82H          ;EA=1,ET0=1LCALL  READ_E2;LCALL  RE_18B20MOV  20H,#00HSETB   BEEPSETB   RELAYMOV  7FH,#0AH         ;熄滅符CALL RESET            ;復(fù)位與檢測DS18B20JNB FLAG1,MAIN1       ;FLAG1=0,DS18B20不存在JMP  STARTMAIN1:    CALL RESETJB FLAG1,STARTLCALL  BEEP_BL        ;DS18B20錯(cuò)誤,報(bào)警JMP  MAIN1START:MOV A,#0CCH         ; 跳過ROM匹配CALL WRITEMOV A,#044H         ; 發(fā)出溫度轉(zhuǎn)換命令CALL WRITECALL RESETMOV A,#0CCH         ; 跳過ROM匹配CALL WRITEMOV A,#0BEH         ; 發(fā)出讀溫度命令CALL WRITECALL  READ           ;讀溫度數(shù)據(jù)CALL  CONVTEMPCALL  DISPBCDCALL  DISP1CALL  SCANKEYLCALL  TEMP_COMPJMP   MAIN1;=====================================================;DS18B20 復(fù)位與檢測子程序;FLAG1=1 OK, FLAG1=0 ERROR;======================================================RESET:SETB DATA_LINENOPCLR DATA_LINEMOV R0,#64H            ;主機(jī)發(fā)出延時(shí)600微秒的復(fù)位低脈沖MOV R1,#03HRESET1:   DJNZ R0,$MOV R0,#64HDJNZ R1,RESET1SETB DATA_LINE        ;然后拉高數(shù)據(jù)線NOPMOV R0,#25HRESET2:   JNB DATA_LINE,RESET3  ;等待DS18B20回應(yīng)DJNZ R0,RESET2JMP RESET4            ; 延時(shí)RESET3:   SETB FLAG1            ; 置標(biāo)志位,表示DS1820存在JMP RESET5RESET4:   CLR FLAG1             ; 清標(biāo)志位,表示DS1820不存在JMP RESET6RESET5:   MOV R0,#064HDJNZ R0,$             ; 時(shí)序要求延時(shí)一段時(shí)間RESET6:   SETB DATA_LINERET;===========================================================;;===========================================================WRITE:  MOV R2,#8            ;一共8位數(shù)據(jù)CLR CYWR1:CLR DATA_LINE        ;開始寫入DS18B20總線要處于復(fù)位(低)狀態(tài)MOV R3,#09DJNZ R3,$            ;總線復(fù)位保持18微妙以上RRC A                ;把一個(gè)字節(jié)DATA 分成8個(gè)BIT環(huán)移給CMOV DATA_LINE,C      ;寫入一個(gè)BITMOV R3,#23DJNZ R3,$            ;等待46微妙SETB DATA_LINE       ;重新釋放總線NOPDJNZ R2,WR1          ;寫入下一個(gè)BITSETB DATA_LINERET;============================================================;從DS18B20中讀出溫度低位、高位和報(bào)警值TH、TL;存入26H、27H、28H、29H;============================================================READ:    MOV R4,#4            ; 將溫度高位和低位從DS18B20中讀出MOV R1,#26H          ; 存入26H、27H、28H、29HRE00:    MOV R2,#8RE01:    CLR CSETB DATA_LINENOPNOPCLR DATA_LINE        ;讀前總線保持為低NOPNOPNOPSETB DATA_LINE       ;開始讀總線釋放MOV R3,#09           ;延時(shí)18微妙DJNZ R3,$MOV C,DATA_LINE      ;從DS18B20總線讀得一個(gè)BITMOV R3,#23DJNZ R3,$            ;等待46微妙RRC A                ;把讀得的位值環(huán)移給ADJNZ R2,RE01         ;讀下一個(gè)BITMOV @R1,AINC R1DJNZ R4,RE00RET        				   
          				
                      
                          
          			
          							
          上一頁 1 2 3 下一頁

          評(píng)論


          技術(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); })();