wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

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

作者:佚名   來源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2013年04月15日   【字體:

DS18B20的管腳定義:
1、GND
2、DQ
3、VCC

 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ī)檢測(cè) 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)行檢測(cè)。
你可以將 DS18B20 從 51hei-5 拔掉,檢測(cè)一下此功能。

一、查看溫度報(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://m.izizhuan.cn/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://m.izizhuan.cn                                                  *
;******************************************************************
;*  描述:                                                                       *
;*          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  23H
          TIMER_H     DATA  24H
          TIMER_COUN  DATA  25H

          TEMPL       DATA  26H
          TEMPH       DATA  27H
          TEMP_TH     DATA  28H
          TEMP_TL     DATA  29H

          TEMPHC      DATA  2AH
          TEMPLC      DATA  2BH
          TEMP_ZH     DATA  2CH

          BEEP        EQU   P1.0
          DATA_LINE   EQU   P1.7
          RELAY       EQU   P2.2

          FLAG1       EQU   20H.0
          FLAG2       EQU   20H.1

;-------------------------------------------------
          K1   EQU  P3.2
          K2   EQU  P3.4
          K3   EQU  P3.6
          K4   EQU  P3.7
;=================================================
          ORG 0000H
          JMP  MAIN

          ORG  000BH
          AJMP  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-Q7
         DJNZ    R2,hei   ;判斷輸出完畢了沒有
          MOV  TMOD,#01H        ;T0,方式1
          MOV  TIMER_L,#00H     ;50ms定時(shí)值
          MOV  TIMER_H,#4CH
          MOV  TIMER_COUN,#00H  ;中斷計(jì)數(shù)
          MOV  IE,#82H          ;EA=1,ET0=1
          LCALL  READ_E2
          ;LCALL  RE_18B20
          MOV  20H,#00H
          SETB   BEEP
          SETB   RELAY
          MOV  7FH,#0AH         ;熄滅符

          CALL RESET            ;復(fù)位與檢測(cè)DS18B20
          JNB FLAG1,MAIN1       ;FLAG1=0,DS18B20不存在
          JMP  START

MAIN1:    CALL RESET
          JB FLAG1,START
          LCALL  BEEP_BL        ;DS18B20錯(cuò)誤,報(bào)警
          JMP  MAIN1
START:
          MOV A,#0CCH         ; 跳過ROM匹配
          CALL WRITE
          MOV A,#044H         ; 發(fā)出溫度轉(zhuǎn)換命令
          CALL WRITE

          CALL RESET
          MOV A,#0CCH         ; 跳過ROM匹配
          CALL WRITE
          MOV A,#0BEH         ; 發(fā)出讀溫度命令
          CALL WRITE

          CALL  READ           ;讀溫度數(shù)據(jù)
          CALL  CONVTEMP
          CALL  DISPBCD
          CALL  DISP1
          CALL  SCANKEY
          LCALL  TEMP_COMP
          JMP   MAIN1

;=====================================================
;DS18B20 復(fù)位與檢測(cè)子程序
;FLAG1=1 OK, FLAG1=0 ERROR
;======================================================
RESET:
          SETB DATA_LINE
          NOP
          CLR DATA_LINE
          MOV R0,#64H            ;主機(jī)發(fā)出延時(shí)600微秒的復(fù)位低脈沖
          MOV R1,#03H
RESET1:   DJNZ R0,$
          MOV R0,#64H
          DJNZ R1,RESET1
          SETB DATA_LINE        ;然后拉高數(shù)據(jù)線
          NOP
          MOV R0,#25H
RESET2:   JNB DATA_LINE,RESET3  ;等待DS18B20回應(yīng)
          DJNZ R0,RESET2
          JMP RESET4            ; 延時(shí)
RESET3:   SETB FLAG1            ; 置標(biāo)志位,表示DS1820存在
          JMP RESET5
RESET4:   CLR FLAG1             ; 清標(biāo)志位,表示DS1820不存在
          JMP RESET6
RESET5:   MOV R0,#064H
          DJNZ R0,$             ; 時(shí)序要求延時(shí)一段時(shí)間
RESET6:   SETB DATA_LINE
          RET
;===========================================================
;
;===========================================================
WRITE:  MOV R2,#8            ;一共8位數(shù)據(jù)
        CLR CY
WR1:
        CLR DATA_LINE        ;開始寫入DS18B20總線要處于復(fù)位(低)狀態(tài)
        MOV R3,#09
        DJNZ R3,$            ;總線復(fù)位保持18微妙以上
        RRC A                ;把一個(gè)字節(jié)DATA 分成8個(gè)BIT環(huán)移給C
        MOV DATA_LINE,C      ;寫入一個(gè)BIT
        MOV R3,#23
        DJNZ R3,$            ;等待46微妙
        SETB DATA_LINE       ;重新釋放總線
        NOP
        DJNZ R2,WR1          ;寫入下一個(gè)BIT
        SETB DATA_LINE
        RET
;============================================================
;從DS18B20中讀出溫度低位、高位和報(bào)警值TH、TL
;存入26H、27H、28H、29H
;============================================================
READ:    MOV R4,#4            ; 將溫度高位和低位從DS18B20中讀出
         MOV R1,#26H          ; 存入26H、27H、28H、29H
RE00:    MOV R2,#8
RE01:    CLR C
         SETB DATA_LINE
         NOP
         NOP
         CLR DATA_LINE        ;讀前總線保持為低
         NOP
         NOP
         NOP
         SETB DATA_LINE       ;開始讀總線釋放
         MOV R3,#09           ;延時(shí)18微妙
         DJNZ R3,$
         MOV C,DATA_LINE      ;從DS18B20總線讀得一個(gè)BIT
         MOV R3,#23
         DJNZ R3,$            ;等待46微妙
         RRC A                ;把讀得的位值環(huán)移給A
         DJNZ R2,RE01         ;讀下一個(gè)BIT
         MOV @R1,A
         INC R1
         DJNZ R4,RE00
         RET        
;--------------------------------------------
;200ms對(duì)閃動(dòng)標(biāo)記取反一次
;--------------------------------------------
INT_T0:
          PUSH  ACC
          PUSH  PSW
          MOV  TL0,TIMER_L
          MOV  TH0,TIMER_H
          INC  TIMER_COUN
          MOV  A,TIMER_COUN
          CJNE  A,#04H,INT_END
          MOV  TIMER_COUN,#00H
          CPL  FLAG2
INT_END:
          POP  PSW
          POP  ACC
          RETI
;==========================================================
;重新對(duì) DS18B20 初始化
;將設(shè)定的溫度報(bào)警值寫入 DS18B20
;==========================================================
RE_18B20:
        JB  FLAG1,RE_18B20A
        RET
RE_18B20A:
        CALL  RESET
        MOV  A,#0CCH       ;跳過ROM匹配
        LCALL  WRITE
        MOV  A,#4EH        ;寫暫存寄存器
        LCALL  WRITE
        MOV  A,TEMP_TH     ;TH(報(bào)警上限)
        LCALL  WRITE
        MOV  A,TEMP_TL     ;TL(報(bào)警下限)
        LCALL  WRITE
        MOV  A,#7FH        ;12位精確度
        LCALL  WRITE
        RET

;====================================================
;功能鍵掃描子程序
;====================================================
SCANKEY:
              ;MOV  P1,#0F0H
              JB  K1,SCAN_K2
              CALL  BEEP_BL
SCAN_K1:      CALL  ALERT_TL
              CALL  ALERT_PLAY
              JB   K1,SCAN_K1
              CALL  BEEP_BL
SCAN_K11:     CALL  ALERT_TH
              CALL  ALERT_PLAY
              JB    K1,SCAN_K11
              CALL  BEEP_BL
SCAN_K2:      JB  K2,SCAN_K3
              CALL  BEEP_BL
SCAN_K3:      JB  K3,SCAN_K4
              CALL  BEEP_BL
              LCALL  RESET_ALERT
              LCALL  RE_18B20
              LCALL  WRITE_E2
SCAN_K4:      JB  K4,SCAN_END
              CALL  BEEP_BL
SCAN_END:     RET

;================================================
;設(shè)置溫度報(bào)警值
;================================================
RESET_ALERT:
          CALL  ALERT_TL
          CALL  ALERT_PLAY
          JNB K3,$              ;K3為位移鍵
          SETB  TR0
RESET_TL:
          CALL  ALERT_PLAY
          JNB  FLAG2,R_TL01
          mov  75H,7fh          ;送入熄滅符
          mov  76H,7fh
          CALL  ALERT_PLAY
          JMP   R_TL02
R_TL01:   CALL  ALERT_TL
          mov  75h,7Eh          ;送設(shè)定值
          mov  76h,7Dh
          CALL  ALERT_PLAY      ;顯示設(shè)定值
R_TL02:   JNB  K1,K011A
          JNB  K2,K011B
          JNB  K3,RESET_TH
          JMP  RESET_TL
K011A:
          INC  TEMP_TL
          MOV  A,TEMP_TL
          CJNE  A,#120,K012A    ;沒有到設(shè)定上限值,轉(zhuǎn)
          MOV  TEMP_TL,#0
K012A:    CALL  TL_DEL
          JMP   RESET_TL
K011B:
          DEC  TEMP_TL
          MOV  A,TEMP_TL
          CJNE  A,#00H,K012B   ;沒有到設(shè)定下限值,轉(zhuǎn)
          MOV  TEMP_TL,#119
K012B:    CALL  TL_DEL
          JMP   RESET_TL
;-------------------------------------------------------
RESET_TH:
           CALL  BEEP_BL
           JNB  K3,$
RESET_TH1:
          CALL  ALERT_PLAY
          JNB  FLAG2,R_TH01
          mov  75H,7fh          ;送入熄滅符
          mov  76H,7fh
          CALL  ALERT_PLAY
          JMP   R_TH02
R_TH01:   CALL  ALERT_TH
          mov  75h,7Eh          ;
          mov  76h,7Dh
          CALL  ALERT_PLAY
R_TH02:   JNB  K1,K021A
          JNB  K2,K021B
          JNB  K3,K002
          JMP  RESET_TH1
K021A:
          INC  TEMP_TH
          MOV  A,TEMP_TH
          CJNE  A,#120,K022A   ;沒有到設(shè)定上限值,轉(zhuǎn)
          MOV  TEMP_TH,#0
K022A:     CALL  TH_DEL
          JMP   RESET_TH1

K021B:
          DEC  TEMP_TH         ;減1
          MOV  A,TEMP_TH
          CJNE  A,#00H,K022B   ;沒有到設(shè)定下限值,轉(zhuǎn)
          MOV  TEMP_TH,#119
K022B:    CALL  TH_DEL
          JMP   RESET_TH1

K002:     CALL  BEEP_BL
          CLR  TR0             ;關(guān)閉中斷
          RET
;-----------------------------------------------------
;鍵延時(shí)子程序
;多次調(diào)用報(bào)警值顯示程序來延時(shí)
;-----------------------------------------------------
TL_DEL:                        ;報(bào)警低值延時(shí)
          MOV  R2,#0AH
TL_DEL1:  CALL  ALERT_TL
          CALL  ALERT_PLAY
          DJNZ  R2,TL_DEL1
          RET
TH_DEL:                        ;報(bào)警高值延時(shí)
          MOV  R2,#0AH
TH_DEL1:  CALL  ALERT_TH
          CALL  ALERT_PLAY
          DJNZ  R2,TH_DEL1
          RET
;====================================================
;實(shí)時(shí)溫度值與設(shè)定報(bào)警溫度值 TH、TL 比較子程序
;當(dāng)實(shí)際溫度大于 TH 的設(shè)定值時(shí),顯示“H”,繼電器關(guān)閉。
;當(dāng)實(shí)際溫度小于 TH 的設(shè)定值時(shí),顯示“O”,繼電器吸合。
;當(dāng)實(shí)際溫度小于 TL 的設(shè)定值時(shí),顯示“L”。
;閃動(dòng)顯示標(biāo)記符 H、L、O
;====================================================
TEMP_COMP:
          SETB  TR0             ;啟動(dòng)中斷
          MOV  A,TEMP_TH
          SUBB  A,TEMP_ZH       ;減數(shù)>被減數(shù),則
          JC  CHULI1            ;借位標(biāo)志位C=1,轉(zhuǎn)
          MOV  A,TEMP_ZH
          SUBB  A,TEMP_TL       ;減數(shù)>被減數(shù),則
          JC  CHULI2            ;借位標(biāo)志位C=1,轉(zhuǎn)
          JNB  FLAG2,T_COMP1    ;FLAG2=0,顯示標(biāo)記字符
          MOV  74H,#0AH         ;熄滅符
          LCALL  DISP1
          JMP  T_COMP2
T_COMP1:  MOV  74H,#00H
          LCALL  DISP1          ;顯示"O"
T_COMP2:  CLR   RELAY           ;繼電器吸合
          CLR  TR0              ;關(guān)閉中斷
          RET
;---------------------------------------------
;超溫處理
;---------------------------------------------
CHULI1:
          SETB  RELAY           ;繼電器關(guān)閉
          JNB  FLAG2,CHULI10
          MOV  74H,#0AH         ;熄滅符
          LCALL  DISP1
          JMP  CHULI11
CHULI10:  MOV  74H,#0DH         
          LCALL  DISP1          ;顯示"H"
          ;CALL  BEEP_BL        ;蜂鳴器響
CHULI11:
          CLR  TR0              ;關(guān)閉中斷
          RET
;---------------------------------------------
;欠溫處理
;---------------------------------------------
CHULI2:                         ;欠溫處理
          JNB  FLAG2,CHULI20
          MOV  74H,#0AH         ;熄滅符
          LCALL  DISP1
          JMP  CHULI21
CHULI20:  MOV  74H,#0CH         
          LCALL  DISP1          ;顯示"L"
          ;CALL  BEEP_BL        ;蜂鳴器響
CHULI21:  CLR  TR0              ;關(guān)閉中斷
          RET
;------------------------------------------------------------
;把 DS18B20 暫存器里的溫度報(bào)警值拷貝到EEROM
;------------------------------------------------------------
WRITE_E2:
        CALL  RESET
        MOV  A,#0CCH        ;跳過ROM匹配
        LCALL  WRITE
        MOV  A,#48H         ;溫度報(bào)警值拷貝到EEROM
        LCALL  WRITE
        RET
;--------------------------------------------------------------
;把 DS18B20 EEROM 里的溫度報(bào)警值拷貝回暫存器
;-------------------------------------------------------------
READ_E2:
        CALL  RESET
        MOV  A,#0CCH        ;跳過ROM匹配
        LCALL  WRITE
        MOV  A,#0B8H        ;溫度報(bào)警值拷貝回暫存器
        CALL  WRITE
        RET

;*****************************************************
;  處理溫度 BCD 碼子程序
;****************************************************
CONVTEMP:      MOV  A,TEMPH       ;判溫度是否零下
               ANL  A,#80H
               JZ  TEMPC1         ;溫度零上轉(zhuǎn)
               CLR  C
               MOV  A,TEMPL       ;二進(jìn)制數(shù)求補(bǔ)(雙字節(jié))
               CPL  A             ;取反加1
               ADD  A,#01H
               MOV  TEMPL,A
               MOV  A,TEMPH       ;-
               CPL  A
               ADDC  A,#00H
               MOV  TEMPH,A          ;TEMPHC HI =符號(hào)位
               MOV  TEMPHC,#0BH
               SJMP  TEMPC11

TEMPC1:        MOV  TEMPHC,#0AH     ;
TEMPC11:       MOV  A,TEMPHC
               SWAP  A
               MOV  TEMPHC,A
               MOV  A,TEMPL
               ANL  A,#0FH             ;乘0.0625
               MOV  DPTR,#TEMPDOTTAB
               MOVC  A,@A+DPTR
               MOV  TEMPLC,A            ;TEMPLC  LOW=小數(shù)部分 BCD

               MOV  A,TEMPL             ;整數(shù)部分
               ANL  A,#0F0H
               SWAP  A
               MOV  TEMPL,A
               MOV  A,TEMPH
               ANL  A,#0FH
               SWAP  A
               ORL  A,TEMPL
               MOV  TEMP_ZH,A           ;組合后的值存入TEMP_ZH
               LCALL  HEX2BCD1
               MOV  TEMPL,A
               ANL  A,#0F0H
               SWAP  A
               ORL  A,TEMPHC            ;TEMPHC LOW = 十位數(shù) BCD
               MOV  TEMPHC,A
               MOV  A,TEMPL
               ANL  A,#0FH
               SWAP  A                  ;TEMPLC HI = 個(gè)位數(shù) BCD
               ORL  A,TEMPLC
               MOV  TEMPLC,A
               MOV  A,R7
               JZ  TEMPC12
               ANL  A,#0FH
               SWAP  A
               MOV  R7,A
               MOV  A,TEMPHC            ;TEMPHC HI = 百位數(shù) BCD
               ANL  A,#0FH
               ORL  A,R7
               MOV  TEMPHC,A
TEMPC12:       RET
;-----------------------------------------------------------
;  小數(shù)部分碼表
;-----------------------------------------------------------
TEMPDOTTAB:  DB   00H,01H,01H,02H,03H,03H,04H,04H,05H,06H
             DB   06H,07H,08H,08H,09H,09H

;===========================================================

;顯示區(qū) BCD 碼溫度值刷新子程序

;===========================================================

DISPBCD:      MOV  A,TEMPLC
              ANL  A,#0FH
              MOV  70H,A                 ;小數(shù)位
              MOV  A,TEMPLC
              SWAP  A
              ANL  A,#0FH
              MOV  71H,A                 ;個(gè)位
              MOV  A,TEMPHC
              ANL  A,#0FH
              MOV  72H,A                 ;十位
              MOV  A,TEMPHC
              SWAP  A
              ANL  A,#0FH
              MOV  73H,A                 ;百位
              MOV  A,TEMPHC
              ANL  A,#0F0H
              CJNE  A,#010H,DISPBCD0
              SJMP  DISPBCD2

DISPBCD0:     MOV  A,TEMPHC
              ANL  A,#0FH
              JNZ  DISPBCD2               ;十位數(shù)是0
              MOV  A,TEMPHC
              SWAP  A
              ANL  A,#0FH
              MOV  73H,#0AH               ;符號(hào)位不顯示
              MOV  72H,A                  ;十位數(shù)顯示符號(hào)
DISPBCD2:     RET

;***************************************************************

;     溫度顯示子程序

;***************************************************************
;顯示數(shù)據(jù)在70H - 73H 單元內(nèi),用4位共陽(yáng)數(shù)碼管顯示,P0口輸出段碼數(shù)據(jù),
;P0 口作掃描控制,每個(gè) LED 數(shù)碼管亮 2MS 時(shí)間再逐位循環(huán)。

DISP1:       MOV  R1,#70H             ;指向顯示數(shù)據(jù)首址
             MOV  R5,#7FH            ;掃描控制字初值
PLAY:     ;  MOV  P0,#0FFH
             MOV  A,R5                ;掃描字放入A
             MOV  P0,A
	     SETB P2.7
	     CLR  P2.7
             MOV  A,@R1               ;取顯示數(shù)據(jù)到A
             MOV  DPTR,#TAB           ;取段碼表地址
             MOVC  A,@A+DPTR          ;查顯示數(shù)據(jù)對(duì)應(yīng)段碼
             MOV  P0,A                ;段碼放入P0口
	     SETB P2.6
	     CLR  P2.6
             MOV  A,R5
             JB   ACC.6,LOOP5         ;小數(shù)點(diǎn)處理
             SETB  P0.7
	     SETB P2.6
	     CLR  P2.6
LOOP5:       LCALL  DL_MS              ;顯示2MS
             INC  R1                   ;指向下一個(gè)地址
             MOV  A,R5                 ;放回 R5 內(nèi)
             JNB  ACC.3,ENDOUT        ;ACC.3=0時(shí)一次顯示結(jié)束
             RR  A                    ;A 中數(shù)據(jù)循環(huán)左移
             MOV  R5,A                ;放入 R5 中
             AJMP  PLAY               ;跳回 PLAY 循環(huán)
ENDOUT:     ; MOV  P0,#0FFH            ;一次顯示結(jié)束,P0口復(fù)位
            ; MOV  P2,#0FFH            ;P2口復(fù)位
             RET
 
TAB:
;定義段碼對(duì)應(yīng)  0   1   2   3   4   5   6   7   8   9       -   L   H   
           DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,00H,40H,38H,76H


DL_MS:      MOV  R6,#0AH         ;2MS延時(shí)程序,LED 顯示程序用
DL1:        MOV  R7,#64H
DL2:        DJNZ  R7,DL2
            DJNZ  R6,DL1
             MOV  P0,#00H         ;消隱
	     SETB P2.6
	     CLR  P2.6
            RET

;******************************************************
;單字節(jié)十六進(jìn)制轉(zhuǎn) BCD
;******************************************************
HEX2BCD1:   MOV  B,#064H          
            DIV  AB               
            MOV  R7,A             
            MOV  A,#0AH
            XCH  A,B
            DIV  AB               
            SWAP  A
            ORL  A,B
            RET
;===============================================
;報(bào)警值 TH、TL 數(shù)據(jù)轉(zhuǎn)換
;===============================================
ALERT_TL:
             MOV  79H,#0CH
             MOV  78H,#0BH
             MOV  A,TEMP_TL
             MOV  R0,#77H
             MOV  B,#064H
             DIV  AB
             CJNE  A,#01H,ALERT_TL1
             MOV  @R0,A
             JMP  ALERT_TL2
ALERT_TL1:   MOV  A,#0BH           ;顯示“-”
             MOV  @R0,A
ALERT_TL2:   MOV  A,#0AH
             XCH  A,B
             DIV  AB
             DEC  R0
             MOV  @R0,A
             MOV  7DH,A
             DEC  R0
             MOV  @R0,B
             MOV  7EH,B
             RET
;-----------------------------------------------
ALERT_TH:
             MOV  79H,#0DH
             MOV  78H,#0BH
             MOV  A,TEMP_TH
             MOV  R0,#77H
             MOV  B,#064H
             DIV  AB
             CJNE  A,#01H,ALERT_TH1
             MOV  @R0,A
             JMP  ALERT_TH2
ALERT_TH1:   MOV  A,#0BH             ;顯示“-”
             MOV  @R0,A
ALERT_TH2:   MOV  A,#0AH
             XCH  A,B
             DIV  AB
             DEC  R0
             MOV  @R0,A
             MOV  7DH,A
             DEC  R0
             MOV  @R0,B
             MOV  7EH,B
             RET
;===============================================
;報(bào)警值顯示子程序
;===============================================
ALERT_PLAY:
             MOV  R1,#75H             ;指向顯示數(shù)據(jù)首址
             MOV  R5,#7FH            ;掃描控制字初值
A_PLAY:    ; MOV  P0,#0FFH
             MOV  A,R5                ;掃描字放入A
             MOV  P0,A
	     SETB P2.7
	     CLR  P2.7
             MOV  A,@R1               ;取顯示數(shù)據(jù)到A
             MOV  DPTR,#ALERT_TAB     ;取段碼表地址
             MOVC  A,@A+DPTR          ;查顯示數(shù)據(jù)對(duì)應(yīng)段碼
             MOV  P0,A                ;段碼放入P0口
	     SETB P2.6
	     CLR  P2.6
             LCALL  DL_MS1            ;顯示2MS
	     
             INC  R1                  ;指向下一個(gè)地址
             MOV  A,R5
             JNB  ACC.3,ENDOUT1
             RR  A                    ;A 中數(shù)據(jù)循環(huán)左移
             MOV  R5,A                ;放入 R5 中
             AJMP  A_PLAY             ;跳回 PLAY 循環(huán)
ENDOUT1:   ;  MOV  P0,#0FFH            ;一次顯示結(jié)束,P0口復(fù)位
           ;  MOV  P2,#0FFH            ;P2口復(fù)位
             RET

ALERT_TAB:
;定義段碼對(duì)應(yīng)   0   1   2   3   4   5   6   7   8   9       -   L   H   
          DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,00H,40H,38H,76H

DL_MS1:      MOV  R6,#0AH         ;2MS延時(shí)程序,LED 顯示程序用
ADL1:        MOV  R7,#64H
ADL2:        DJNZ  R7,ADL2
             DJNZ  R6,ADL1
	     MOV  P0,#00H         ;消隱
	     SETB P2.6
	     CLR  P2.6
             RET
;===============================================
;蜂鳴器響一聲子程序
;P3.7=0,蜂鳴器響
;===============================================
BEEP_BL:
         MOV  R6,#100
 BL2:    CALL  DEX1
         CPL  BEEP        ;對(duì) beep 取反
         DJNZ  R6,BL2
         MOV  R5,#10
         CALL  DELAY
         RET
 DEX1:   MOV  R7,#180
 DE2:    NOP
         DJNZ  R7,DE2
         RET
DELAY:                    ;(R5)*延時(shí)10MS
         MOV  R6,#50
 DEL1:   MOV  R7,#100
         DJNZ  R7,$
         DJNZ  R6,DEL1
         DJNZ  R5,DELAY
         RET
;==================================================
         END


關(guān)閉窗口

相關(guān)文章

午夜精品久久久内射近拍高清| av网站在线免费播放| 手机在线精品视频| 91精品国产综合久| 天堂av免费在线观看| 香蕉免费毛片视频| 久久综合加勒比| 国产真实夫妇交换视频| 国产中文字字幕乱码无限| 欧美成人片在线观看| 欧美日韩免费一区二区| 国产一级在线免费观看| 91看片在线播放| chinese国产精品| 免费黄色一级大片| 国产三级在线观看视频| www.五月激情| 亚洲午夜久久久久中文字幕| 欧美性受xxxx免费视频| 欧美性狂猛xxxxxbbbbb| 国产精彩自拍| 天天草天天操| 传媒视频在线| 91在线不卡| av小说在线播放| 午夜无码国产理论在线| 自拍偷拍欧美日韩| 亚洲精品aaaaa| 91久久电影| 九色蝌蚪在线| 日韩电影在线观看完整版| 95在线视频| 色综合桃花网| 日韩精品免费视频一区二区三区| 风间由美一区二区av101| 亚洲性视频大全| 欧美日韩精品免费观看视频完整| 老司机午夜精品视频在线观看| 国产一区二区精品久久99| wwwwww.欧美系列| 一区二区三区蜜桃| 色猫猫国产区一区二在线视频| 91精品国产91久久综合桃花| 亚洲欧美成人网| 欧美国产视频一区二区| 成人妇女免费播放久久久| 久久国产精品久久| 亚洲熟妇无码一区二区三区导航| 久久国产激情视频| 亚洲v国产v欧美v久久久久久| 久久精品久久国产| 国产丰满美女做爰| 精品街拍一区二区| 很黄很a的视频| 亚洲性图自拍| 麻豆国产一区二区三区四区| 日韩中文欧美| 激情五月激情综合网| 欧美激情在线看| 欧美视频一区在线| 色妞久久福利网| 国产精品视频精品视频| 亚洲不卡1区| 国产一级特黄a大片免费| 久久av无码精品人妻系列试探| 天天操天天干视频| 天堂在线中文网| av最新网址| 麻豆蜜桃在线| 另类春色校园亚洲| 亚洲在线播放| 中文字幕一区二区三区蜜月| 911精品国产一区二区在线| 久久久精品日本| 欧洲精品视频在线观看| 爱福利视频一区| av资源站久久亚洲| 色综合av综合无码综合网站| 日韩免费成人av| 国产精品久久久久久免费| 在线观看无遮挡| 草碰在线视频| 91麻豆精品激情在线观看最新 | 亚洲成精国产精品女| 欧美va在线播放| 日本亚洲欧美三级| 伊人久久大香线蕉av一区| 亚洲网中文字幕| 国产成人自拍视频在线| 国产日韩欧美精品一区二区三区 | 日韩av片在线| 精品国产黄色片| 2色视频网站| 91福利区在线观看| 99精品视频在线| 成+人+亚洲+综合天堂| 在线观看一区不卡| 久久久久久久久久久成人| 亚洲免费精品视频| 99久久人妻无码中文字幕系列| 亚洲一卡二卡在线| 777丰满影院| 一区二区三区短视频| 欧美成人嫩草网站| 国产精品女同互慰在线看| 日韩乱码在线视频| 国产91精品入口17c| 五月婷婷之婷婷| www.亚洲激情| jizz国产| 精品亚洲a∨一区二区三区18| 免费中文字幕日韩欧美| 亚洲aaa精品| 欧美精品久久久久久久久久| 国产a级片免费看| 天堂av网手机版| 欧美久草视频| 金瓶狂野欧美性猛交xxxx| 欧美黄色一区| 一个色在线综合| 欧美国产日产韩国视频| av一区二区三区免费观看| 久久久久久99| 国产伦精品一区二区三区妓女 | 日韩免费av网站| 狠狠色狠狠色综合网| 成人精品国产| 久久 天天综合| 欧美videos大乳护士334| 国产福利久久| 爱爱的免费视频| 亚洲同志网站入口| 国产丝袜在线| 亚洲精品乱码| 日本道色综合久久| 国产精品香蕉av| 奇米777在线视频| 亚洲黄色在线免费观看| 国产精品久久久久一区二区国产| 色综合五月天| 亚洲成a人在线观看| 国产aaa精品| 麻豆传媒在线看| 无码h黄肉3d动漫在线观看| 精品视频在线一区二区| 亚洲黄色影院| 欧美午夜影院一区| 国产精品白丝jk白祙| 波多野吉衣中文字幕| 国产成人香蕉在线视频网站| 性欧美18xxxhd| 老司机一区二区| 亚洲女人被黑人巨大进入| 一级黄色片播放| 欧美日韩一级黄色片| 有码在线播放| 欧美jjzz| 欧美精三区欧美精三区| 精品人伦一区二区三区| 69av视频在线| 女人被爽到呻吟gif动态图下载| 香蕉久久夜色精品国产使用方法 | 日韩中文字幕高清在线观看| 五月婷婷欧美视频| 91九色在线视频| 国产精品国产精品国产专区不卡| 欧美a在线播放| 天天搞夜夜操| gogogo高清在线观看一区二区| 一级特黄大欧美久久久| 91精品视频免费观看| 国产成人精品无码免费看夜聊软件| 精品一区二区在线欧美日韩| 亚洲一区二区小说| 国产精品伦一区二区三级视频| 欧美专区在线视频| 99久久人妻无码中文字幕系列| 羞羞视频网页| 秋霞影视一区二区三区| 亚洲第一久久影院| 国产高清一区视频| 在线免费观看毛片| 国产专区在线| 蜜桃视频一区二区| 在线观看精品国产视频| 大肉大捧一进一出好爽动态图| 二区三区不卡不卡视频| 日韩电影精品| 亚洲综合精品自拍| 久久久久久久久一区| 久久99精品波多结衣一区| 日本中文字幕在线观看| 激情文学综合插| 欧美激情一区二区久久久| 影音先锋资源av| 亚州福利视频| 欧美日韩免费| 日韩国产中文字幕| 国产又猛又黄的视频| 91麻豆产精品久久久久久夏晴子 | 精品视频一区二区三区| 亚洲美女一区二区三区| 成人av播放| 久久国产精品系列| jizzjizz亚洲| 久久蜜桃一区二区| 成人精品网站在线观看| 久久久久久久久久综合| 国产区在线看| 2020国产精品自拍| 91久久大香伊蕉在人线| 五月婷婷激情网| 成人午夜免费福利| 精品国产一区二| 欧美日韩在线另类| 潘金莲一级淫片aaaaa免费看| 亚洲精品国产av| 91成人午夜| 91麻豆精品国产| 国产熟人av一二三区| 免费白白视频| 在线观看视频免费一区二区三区| 国产一区二区精品丝袜| 国产ts在线观看| 亚洲欧洲动漫| 国产又黄又大久久| 国产美女高潮久久白浆| 久久精品视频1| 亚洲a∨精品一区二区三区导航| 一区二区久久久| 一区二区三区|亚洲午夜| 午夜福利理论片在线观看| 成人h动漫免费观看网站| 欧美日韩精品福利| 人人干人人视频| xxxxx国产| 韩国欧美一区二区| 国产欧美亚洲视频| 一二区在线观看| 伊色综合久久之综合久久| 欧美日精品一区视频| 狠狠爱免费视频| 在线成人私人影院| 美女视频免费一区| 成人黄色av免费在线观看| 中文字幕av影视| 免费一区二区三区在线视频| 欧美一级电影网站| 亚洲热在线视频| 日本一级在线观看| 国产欧美日韩在线观看| 色一情一乱一伦一区二区三欧美| 久久性生活视频| 中出一区二区| 午夜精品福利在线观看| 国产精品男女视频| 国产一区二区三区国产精品| 日韩一二三区视频| 午夜诱惑痒痒网| 精品影院一区| 亚洲人成网站精品片在线观看| 熟妇熟女乱妇乱女网站| 免费黄漫在线观看| 久久成人免费网站| 91麻豆精品国产91久久久使用方法| 99999精品| 高清性色生活片在线观看| ㊣最新国产の精品bt伙计久久| 青青在线免费视频| av电影在线网站| 成人免费av网站| 日韩福利视频| 你懂的免费网站| 国产精品99久久久久久久女警| 官网99热精品| 国产精品欧美韩国日本久久| 日本伊人精品一区二区三区观看方式| 91久久精品美女高潮| 天天摸天天碰天天爽天天弄| 欧美三级在线| 国产精品美乳一区二区免费| 国产高清精品软件丝瓜软件| 一区二区三区在线电影| 国产成人在线一区| 蜜桃av鲁一鲁一鲁一鲁俄罗斯的 | а√中文在线资源库| 婷婷色综合网| 国产精品成人aaaaa网站| 不卡视频免费在线观看| 亚洲特级毛片| 91精品国产99久久久久久红楼| 一二三四视频在线社区中文字幕2| 亚洲黄色大片| 官网99热精品| 天堂网.www在线资源| 国产成人99久久亚洲综合精品| 亚洲欧美一区二区原创| caoporen人人| 亚洲免费在线视频| 在线一区二区不卡| 黄色在线观看视频网站| 678五月天丁香亚洲综合网| 亚洲一区视频在线播放| 欧美与亚洲与日本直播| 亚洲女人天堂av| 波多野结衣电车痴汉| 99久久婷婷| 亚洲999一在线观看www| 国产成人夜间影院在线观看| 成人午夜免费av| 精品无码国模私拍视频| 成人在线观看免费| 欧美影视一区二区三区| 人妻互换一区二区激情偷拍| 九九热hot精品视频在线播放| 久久久视频免费观看| 午夜性色福利视频| 欧美7777| 亚洲精品一区中文| 中文字幕日本视频| 黄色av成人| 久久综合一区二区三区| 男女羞羞网站| 亚洲黄色尤物视频| 欧美日韩一区二区区| 亚洲第一二三四区| 久久精品视频免费播放| 国产激情无套内精对白视频| 肉丝袜脚交视频一区二区| 国产成人三级视频| 成人精品一区二区三区免费| 欧美一区二视频| 日本一区二区三区精品| 欧美女人交a| 日本在线观看一区二区三区| 亚洲啪啪aⅴ一区二区三区9色| 色婷婷av一区二区三区软件| 加勒比婷婷色综合久久| 日韩免费特黄一二三区| 国产精品视频一区二区三区经| 国产一级大片| 色999日韩国产欧美一区二区| 内射一区二区三区| 91亚洲国产高清| 久久综合毛片| 青青青草原在线| 精品久久人人做人人爱| 最好看的日本字幕mv视频大全| 久久中文欧美| 91专区在线观看| 免费高潮视频95在线观看网站| 日韩在线视频免费观看| 色se01短视频永久免费| 国产亚洲精品精华液| 中文字幕一区二区三区乱码不卡| jazzjazz国产精品久久| 国产日韩欧美另类| avtt天堂资源网站| 欧美日韩一二三区| 天天干天天干天天| 日韩电影在线观看电影| 日韩国产欧美亚洲| 吉吉日韩欧美| 日本道色综合久久影院| 在线看av网址| 欧美高清性hdvideosex| 在线观看免费高清视频| 国产精品一区一区三区| 欧美xxxxxbbbbb| 四虎影视精品| 欧美日韩在线观看一区二区三区| 三区四区电影在线观看| 在线电影av不卡网址| 精品一区二区三区免费站| 亚洲福利视频一区| 日本少妇bbwbbw精品| 视频在线在亚洲| 免费看污黄网站| 日韩视频在线直播| 7777精品伊人久久久大香线蕉超级流畅 | 免费大片在线观看www| 一区二区三区视频免费| 欧美xxxxbbbb在线播放| 亚洲国产日产av| 亚洲国产成人无码av在线| 久久精品国产精品青草| 久久久久xxxx| 亚洲97av| 一本久久a久久精品vr综合| av日韩中文| 国产精品视频导航| 永久免费在线观看| 在线观看欧美成人| 再深点灬舒服灬太大了添少妇视频| 日韩欧美精品中文字幕| 91成年人视频| 欧美激情资源网| 国产精品第56页| 国产jizzjizz一区二区| 这里只有久久精品|