亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ds18b20-溫度控制.asm

?? 基于51的DS18B20_1Wire溫度控制等C,ASM源程序
?? ASM
?? 第 1 頁 / 共 2 頁
字號:
;*******************************************************************
;*                                                                 *
;* ME500單片機開發系統演示程序 - DS18B20溫度控制                   *
;*                                                                 *
;* 數碼管顯示                                                      *
;*                                                                 *
;* 版本: V1.0 (2006/11/20)                                        *
;* 作者: gguoqing (Email: gguoqing@willar.com)                    *
;* 網站: www.willar.com(偉納電子)   www.mcusj.com(偉納單片機世界) *
;* 郵箱: support@willar.com                                       *
;*                                                                 *
;*【版權】Copyright(C)偉納電子 www.willar.com All Rights Reserved  *
;*【聲明】此程序僅用于學習與參考,引用請注明版權和作者信息!       *
;*                                                                 *
;*******************************************************************

          TIMER_L     EQU  23H
          TIMER_H     EQU  24H
          TIMER_COUN  EQU  25H

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

          TEMPHC      EQU  2AH
          TEMPLC      EQU  2BH
          TEMP_ZH     EQU  2CH

          BEEP        BIT   P3.7
          DATA_LINE   BIT   P3.3
          RELAY       BIT   P1.3

          FLAG1       BIT   20H.0
          FLAG2       BIT   20H.1

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

          ORG  000BH
          AJMP  INT_T0
;--------------------------------------------------
MAIN:
          MOV SP,#30H
          MOV  TMOD,#01H        ;T0,方式1
          MOV  TIMER_L,#00H     ;50MS定時值
          MOV  TIMER_H,#4CH
          MOV  TIMER_COUN,#00H  ;中斷計數
          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            ;復位與檢測DS18B20
          JNB FLAG1,MAIN1       ;FLAG1=0,DS18B20不存在
          JMP  START

MAIN1:    CALL RESET
          JB FLAG1,START
          LCALL  BEEP_BL        ;DS18B20錯誤,報警
          JMP  MAIN1
START:
          MOV A,#0CCH         ; 跳過ROM匹配
          CALL WRITE
          MOV A,#044H         ; 發出溫度轉換命令
          CALL WRITE

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

          CALL  READ_TEMP      ;讀溫度數據
          CALL  CONVTEMP       ;溫度數據處理
          CALL  DISPBCD
          CALL  TEMP_PLAER     ;顯示實時溫度
          CALL  SCANKEY        ;掃描鍵
          LCALL  TEMP_COMP     ;比較溫度值
          JMP   MAIN1

;=====================================================
;DS18B20 復位與檢測子程序
;FLAG1=1 OK, FLAG1=0 ERROR
;======================================================
RESET:
          SETB DATA_LINE
          NOP
          CLR DATA_LINE
          MOV R0,#64H            ;主機發出延時600微秒的復位低脈沖
          MOV R1,#03H
RESET1:   DJNZ R0,$
          MOV R0,#64H
          DJNZ R1,RESET1
          SETB DATA_LINE        ;然后拉高數據線
          NOP
          MOV R0,#25H
RESET2:   JNB DATA_LINE,RESET3  ;等待DS18B20回應
          DJNZ R0,RESET2
          JMP RESET4            ; 延時
RESET3:   SETB FLAG1            ; 置標志位,表示DS1820存在
          JMP RESET5
RESET4:   CLR FLAG1             ; 清標志位,表示DS1820不存在
          JMP RESET6
RESET5:   MOV R0,#064H
          DJNZ R0,$             ; 時序要求延時一段時間
RESET6:   SETB DATA_LINE
          RET
;===========================================================
;
;===========================================================
WRITE:  MOV R2,#8            ;一共8位數據
        CLR CY
WR1:
        CLR DATA_LINE        ;開始寫入DS18B20總線要處于復位(低)狀態
        MOV R3,#09
        DJNZ R3,$            ;總線復位保持18微妙以上
        RRC A                ;把一個字節DATA 分成8個BIT環移給C
        MOV DATA_LINE,C      ;寫入一個BIT
        MOV R3,#23
        DJNZ R3,$            ;等待46微妙
        SETB DATA_LINE       ;重新釋放總線
        NOP
        DJNZ R2,WR1          ;寫入下一個BIT
        SETB DATA_LINE
        RET
;========================================================
;讀溫度子程序
;從DS18B20中讀出溫度低位、高位和報警值TH、TL
;存入26H、27H、28H、29H
;========================================================
READ_TEMP:
         MOV R4,#4
         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,#07           ;延時15微妙
         DJNZ R3,$
         MOV C,DATA_LINE      ;從DS18B20總線讀得一個BIT
         MOV R3,#23
         DJNZ R3,$            ;等待46微妙
         RRC A                ;把讀得的位值環移給A
         DJNZ R2,RE01         ;讀下一個BIT
         MOV @R1,A
         INC R1
         DJNZ R4,RE00
         RET
;--------------------------------------------
;中斷服務子程序
;200MS對閃動標記 FLAG2 取反一次
;--------------------------------------------
INT_T0:
          PUSH  ACC             ;入棧保護
          PUSH  PSW
          MOV  TL0,TIMER_L      ;重置定時參數
          MOV  TH0,TIMER_H
          INC  TIMER_COUN       ;中斷次數加1
          MOV  A,TIMER_COUN
          CJNE  A,#04H,INT_END
          MOV  TIMER_COUN,#00H
          CPL  FLAG2             ;對 FLAG2 取反
INT_END:
          POP  PSW               ;出棧
          POP  ACC
          RETI
;==========================================================
;重新對 DS18B20 初始化
;將設定的溫度報警值寫入 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(報警上限)
        LCALL  WRITE
        MOV  A,TEMP_TL     ;TL(報警下限)
        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

;================================================
;設置溫度報警值
;================================================
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          ;送設定值
          MOV  76H,7DH
          CALL  ALERT_PLAY      ;顯示設定值
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    ;沒有到設定上限值,轉
          MOV  TEMP_TL,#0
K012A:    CALL  TL_DEL
          JMP   RESET_TL
K011B:
          DEC  TEMP_TL
          MOV  A,TEMP_TL
          CJNE  A,#00H,K012B   ;沒有到設定下限值,轉
          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   ;沒有到設定上限值,轉
          MOV  TEMP_TH,#0
K022A:     CALL  TH_DEL
          JMP   RESET_TH1

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

K002:     CALL  BEEP_BL
          CLR  TR0             ;關閉中斷
          RET
;-----------------------------------------------------
;鍵延時子程序
;多次調用報警值顯示程序來延時
;-----------------------------------------------------
TL_DEL:                        ;報警低值延時
          MOV  R2,#0AH
TL_DEL1:  CALL  ALERT_TL
          CALL  ALERT_PLAY
          DJNZ  R2,TL_DEL1
          RET
TH_DEL:                        ;報警高值延時
          MOV  R2,#0AH
TH_DEL1:  CALL  ALERT_TH
          CALL  ALERT_PLAY
          DJNZ  R2,TH_DEL1
          RET
;====================================================
;實時溫度值與設定報警溫度值 TH、TL 比較子程序
;當實際溫度大于 TH 的設定值時,顯示“H”,繼電器關閉。
;當實際溫度小于 TH 的設定值時,顯示“O”,繼電器吸合。
;當實際溫度小于 TL 的設定值時,顯示“L”。
;閃動顯示標記符 H、L、O
;====================================================
TEMP_COMP:
          SETB  TR0             ;啟動中斷

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美视频中文字幕| 亚洲欧美日韩一区| 中文字幕一区二区三区在线观看 | 色综合久久中文综合久久牛| 91精品国产综合久久久久久久| 国产精品国产三级国产有无不卡 | 午夜精品一区二区三区三上悠亚| 成人免费不卡视频| 26uuu色噜噜精品一区二区| 一个色综合网站| 成人免费视频免费观看| 久久久亚洲精品石原莉奈| 日韩成人一级片| 欧美色倩网站大全免费| 亚洲三级视频在线观看| 高清不卡一区二区| 久久理论电影网| 在线免费视频一区二区| 国产农村妇女精品| 久久草av在线| 91精品国产综合久久久久久久久久 | 日韩免费观看高清完整版| 一区二区三区在线免费播放 | 欧美精品色综合| 玉米视频成人免费看| www.欧美亚洲| 国产精品免费看片| 国产91精品一区二区麻豆网站 | 日韩欧美黄色影院| 欧美aaa在线| 91精品黄色片免费大全| 日韩精品欧美精品| 欧美一区二区网站| 蜜臀久久99精品久久久久久9 | 中文字幕乱码亚洲精品一区| 国产一区高清在线| 欧美精品一区二区三区蜜桃| 国产一区二区伦理| 中文字幕+乱码+中文字幕一区| 成人免费看的视频| 亚洲视频免费在线| 欧美午夜精品一区二区蜜桃| 天天色天天爱天天射综合| 9191国产精品| 蜜臀久久99精品久久久久宅男 | 丁香婷婷综合色啪| 中文字幕亚洲区| 欧美日韩一区二区三区视频| 日本在线不卡视频| 国产三级欧美三级| av电影在线观看一区| 亚洲一区av在线| 欧美变态tickle挠乳网站| 成人精品免费网站| 一区二区免费视频| 欧美电视剧在线看免费| 成人性生交大合| 亚洲成人一区二区| 久久这里只有精品6| 91丨porny丨国产入口| 天堂va蜜桃一区二区三区| 欧美成人a视频| 91美女福利视频| 久久91精品久久久久久秒播| 国产精品美女一区二区| 欧美久久高跟鞋激| 成人一道本在线| 日韩成人午夜精品| 国产精品久久久久久久久免费丝袜 | 91在线视频官网| 老汉av免费一区二区三区| 国产精品乱人伦| 这里只有精品免费| 色综合一个色综合亚洲| 麻豆精品视频在线观看| 中文字幕一区二区日韩精品绯色| 欧美一区二视频| 91福利在线看| 久久精品国产色蜜蜜麻豆| 亚洲精品视频在线看| 久久久国产精品午夜一区ai换脸| 在线观看av一区| 成人av先锋影音| 精品一区二区三区影院在线午夜| 亚洲一区二区三区精品在线| 国产三级精品在线| 日韩精品一区二区三区四区视频| 色嗨嗨av一区二区三区| 国产白丝精品91爽爽久久| 人人精品人人爱| 亚洲第四色夜色| 亚洲美女在线国产| 中文字幕日韩精品一区| 国产欧美一区二区精品婷婷| 精品国产免费一区二区三区香蕉| 欧美日韩视频在线第一区| 色域天天综合网| 成人久久18免费网站麻豆| 国产一区二区三区四区五区美女 | 日韩精品一区二区三区三区免费| 成人小视频在线| 国产一区在线观看视频| 奇米影视在线99精品| 亚洲第一主播视频| 亚洲精品五月天| 一区二区三区四区高清精品免费观看| 欧美哺乳videos| 日韩你懂的在线播放| 91精品国产入口在线| 91精品国产91久久久久久一区二区| 欧美这里有精品| 91黄色免费网站| 日本高清视频一区二区| 日本精品一级二级| 色婷婷综合久久久久中文| 在线观看一区日韩| 欧美在线|欧美| 这里只有精品视频在线观看| 欧美一区二区三区在线看| 777奇米四色成人影色区| 欧美亚洲国产一卡| 欧美一区二区三区色| 欧美大片一区二区| 国产亚洲婷婷免费| 中文欧美字幕免费| 一区二区三区四区亚洲| 亚洲成人一区二区| 另类小说欧美激情| 丁香啪啪综合成人亚洲小说| 99久久777色| 欧美日韩成人综合| 日韩欧美不卡在线观看视频| 国产三级三级三级精品8ⅰ区| 国产精品久久久久久久久久免费看 | 国产在线播放一区| av激情成人网| 91精品婷婷国产综合久久竹菊| 日韩一区二区三区精品视频| 2024国产精品| 亚洲女人的天堂| 日本不卡一二三区黄网| 国产精品中文字幕日韩精品| 99精品欧美一区二区三区小说| 91久久久免费一区二区| 日韩你懂的电影在线观看| 国产精品久久久久久亚洲伦| 亚洲444eee在线观看| 国产成人精品免费网站| 在线看不卡av| 亚洲精品一区二区三区影院 | 毛片av一区二区| 成人av免费网站| 5月丁香婷婷综合| 中文字幕精品三区| 午夜亚洲福利老司机| 福利视频网站一区二区三区| 欧美日韩免费电影| 国产亚洲人成网站| 日本aⅴ精品一区二区三区| 成人99免费视频| 精品免费日韩av| 亚洲国产日韩精品| 国产成a人无v码亚洲福利| 91精品综合久久久久久| 亚洲成人免费视| 粉嫩蜜臀av国产精品网站| 91精品视频网| 亚洲一区二区三区精品在线| 国产盗摄女厕一区二区三区| 在线播放欧美女士性生活| 中文字幕在线观看不卡| 精品一区二区三区不卡| 欧美午夜电影网| 亚洲色图丝袜美腿| 国产精品一区三区| 日韩色视频在线观看| 亚洲国产精品天堂| 色婷婷av久久久久久久| 中文av一区二区| 国产在线视频一区二区| 日韩一区二区三区视频在线| 夜夜精品视频一区二区 | 一区二区三区欧美亚洲| 成人av网站免费| 中文字幕久久午夜不卡| 国产伦精品一区二区三区在线观看 | 欧美人狂配大交3d怪物一区| 亚洲精品大片www| 色香蕉久久蜜桃| 亚洲色图在线播放| 成人一区二区视频| 国产精品你懂的在线| 丁香五精品蜜臀久久久久99网站| 久久一留热品黄| 国产麻豆一精品一av一免费| 欧美精品一区二区久久婷婷| 久久99精品国产.久久久久 | 自拍视频在线观看一区二区| 波波电影院一区二区三区| 国产精品福利影院|