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

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

?? shuiwen.asm

?? 水溫控制
?? ASM
字號:
        TEMPER_L EQU 29H     ;用于保存讀出溫度的低8位
        TEMPER_H EQU 28H     ;用于保存讀出溫度的高8位
        FLAG1    EQU 38H     ;是否檢測到DS18B20標志位
        FLAG2    EQU 39H     ;存放設定的溫度
        FLAG3    EQU 40H     ;存放當前的溫度
        a_bit    EQU 20H     ;數碼管個位數存放內存位置
        b_bit    EQU 21H     ;數碼管十位數存放內存位置
        K_OLD    EQU 30H     ;存放按鍵未按下時的按鍵端口值
        K_NEW    EQU 31H     ;存放按鍵按下時的按鍵端口值
;------------------------------------------------------
        ORG     0000H
        AJMP    MAIN
        ORG     0030H
;------------------------------------------------------
MAIN:   ACALL   CHUSHI       ;初始化
        LCALL   DS1820       ;顯示當前溫度
        LCALL   DS1820
        MOV     FLAG3,R5
        MOV     29H,FLAG3
        LCALL   DISPLAY
        LCALL   LOSS         ;判斷是否缺水
        LCALL   KEY          ;判斷是否有按鍵
MAIN1:  LCALL   KEY00        ;溫度設定
MAIN2:  LCALL   WENBI        ;當前溫度與設定溫度比較
MAIN3:  LCALL   DS1820
        AJMP    MAIN
;---------- 初始化 -----------------------------------
CHUSHI: MOV     P0,#78H
        MOV     P2,#1CH
        RET
;---------- 當前溫度與設定溫度比較 -------------------
WENBI:  CLR     C           ;標志位清零
        MOV     A,FLAG3     ;當前溫度存入A
        MOV     FLAG2,R2    ;設定溫度存入FLAG2
        SUBB    A,FLAG2     ;設定溫度減去當前溫度
        JNC     MAIN        ;設定溫度小于當前溫度則跳回主程序
WENBI1: MOV     P0,#7FH     ;判斷是否缺水
        LCALL   LOSS        ;缺水報警
        MOV     P2,#12H     ;亮燈,接通繼電器,加熱
        LCALL   DS1820
        MOV     A,R5
        SUBB    A,FLAG2     ;設定溫度減去當前溫度
        JC      WENBI1      ;設定溫度大于當前溫度,繼續加熱
        MOV     P2,#01H
        LCALL   DS1820
        LCALL   DS1820
        LCALL   DS1820
        LCALL   DS1820
;---------------- 保持溫度不變 -----------------------

        CLR     C           ;標志位清零
WENBI2: MOV     P2,#00H
        LCALL   DS1820
        MOV     P0,#7FH     ;判斷是否缺水
        LCALL   LOSS
        MOV     A,R5        ;當前溫度存入A
        SUBB    A,FLAG2
        JNC     WENBI2      ;設定溫度小于當前溫度,則繼續測試,否則加熱
WENBI3: MOV     P2,#12H     ;亮燈,接通繼電器,加熱
        LCALL   DS1820
        MOV     P0,#7FH     ;判斷是否缺水
        LCALL   LOSS
        MOV     A,R5
        SUBB    A,FLAG2
        JC      WENBI3      ;設定溫度大于當前溫度,則繼續加熱
        JMP     WENBI2
;--------------- 3號鍵十位設置 -----------------------
KEY11:	ACALL	K_SCAN2
	MOV	A,K_NEW
	CJNE	A,K_OLD,KEY21
	JMP	KEY11
KEY21:	CALL	K_DELAY
	CALL	K_SCAN2
	MOV	A,K_NEW
	CJNE	A,K_OLD,KEY31
	JMP	KEY11
KEY31:  MOV     A,R3            ;90跳轉
        SUBB    A,#5AH
        JZ      KEY00
        MOV     A,R3            ;91跳轉
        SUBB    A,#5BH
        JZ      KEY00
        MOV     A,R3            ;92跳轉
        SUBB    A,#5CH
        JZ      KEY00
        MOV     A,R3            ;93跳轉
        SUBB    A,#5DH
        JZ      KEY00
        MOV     A,R3            ;94跳轉
        SUBB    A,#5EH
        JZ      KEY00
        MOV     A,R3            ;95跳轉
        SUBB    A,#5FH
        JZ      KEY00
        MOV     A,R3            ;96跳轉
        SUBB    A,#60H
        JZ      KEY00
        MOV     A,R3            ;97跳轉
        SUBB    A,#61H
        JZ      KEY00
        MOV     A,R3            ;98跳轉
        SUBB    A,#62H
        JZ      KEY00
        MOV     A,R3            ;99跳轉
        SUBB    A,#63H
        JZ      KEY00
        MOV     A,R3
        ADD     A,#0AH
        MOV     29H,A
        CALL    DISPLAY
        JMP     KEY01
K_SCAN2:MOV  	K_NEW,#00H
        MOV     A,P0.4
        MOV  	K_NEW,A
        RET
;----------------- 中轉 --------------------------
MIDDLE1:;JMP     MAIN2
        RET
;----------------- KEY判斷 -----------------------
KEY00:  MOV     R2,#00H
        MOV     29H,#00H
        LCALL   DISPLAY
        CALL    KEY01
        RET
KEY01:  LCALL   DISPLAY
	MOV	K_OLD,#00H   ;保存初始值
        JNB     P0.5,KEY10   ;2號鍵個位有按下則跳轉
        JNB     P0.4,KEY11   ;3號鍵十位有按下則跳轉
        JNB     P0.6,MIDDLE1
        JMP     KEY01
;---------------- 2號鍵個位設置 --------------------------
KEY10:	ACALL	K_SCAN1
	MOV	A,K_NEW
	CJNE	A,K_OLD,KEY20
	JMP	KEY10
KEY20:	CALL	K_DELAY
	CALL	K_SCAN1
	MOV	A,K_NEW
	CJNE	A,K_OLD,KEY30
	JMP	KEY10
KEY30:  MOV     A,#63H
        SUBB    A,R2
        JZ      KEY00
        INC     R2
        MOV     29H,R2
        CALL    DISPLAY
        JMP     KEY01
K_SCAN1:
        MOV  	K_NEW,#00H
        MOV  	A,P0.5
        MOV  	K_NEW,A
        RET
;--------------------- 按鍵判斷 ---------------------------
KEY:    MOV  	P0,#07FH          ;按鍵端口初始化
	MOV	K_OLD,#70H        ;存儲按鍵未按時的按鍵端口值
KEY1:   LCALL   DS1820
        LCALL   LOSS
        ACALL	K_SCAN            ;掃描鍵盤
	MOV	A,K_NEW
	CJNE	A,K_OLD,KEY2
	JMP	KEY1              ;沒有按鍵按下,則繼續掃描
KEY2:	CALL	K_DELAY           ;按鍵延時
	CALL	K_SCAN            ;再次掃描
	MOV	A,K_NEW
	CJNE	A,K_OLD,KEY3      ;有按鍵按下,跳轉運行
	JMP	KEY1              ;沒有按鍵按下,則繼續掃描
KEY3:   MOV     P2,#18H
        RET
K_SCAN:
        MOV  	K_NEW,#00H
        MOV  	A,P0
        MOV  	K_NEW,A
        RET
K_DELAY:
        MOV  	R6,#200
K_DEL:
        MOV  	R7,#0FFH
        DJNZ  	R7,$
        DJNZ  	R6,k_DEL
        RET
;-------------- 缺水報警子程序 --------------------------
LOSS:   MOV     A,P0
        MOV     R1,#08H
        ANL     A,R1
        ANL     A,R1
        CJNE    A,#00H,BAOJING
        RET
BAOJING:LCALL   DS1820
        CLR     P2.1
        SETB    P2.0
        Nop
        LCALL   DELAY
        CLR     P2.0
        Nop
        LCALL   DELAY
        LJMP    LOSS
DELAY:  MOV    R1,#10   ;延時0.5s子程序,使用參數R0,R7和R6
DELY0:  MOV    R2,#100  ;延時0.05s
DELY1:  MOV    R3,#250  ;延時0.5ms
        DJNZ   R3,$
        DJNZ   R2,DELY1
        DJNZ   R1,DELY0
        RET
;---------------- DS1820子程序 ------------------------------------
DS1820: LCALL GET_TEMPER;調用讀溫度子程序
        ;進行溫度顯示,這里我們考慮用網站提供的兩位數碼管來顯示溫度
        ;顯示范圍00到99度,顯示精度為1度
        ;因為12位轉化時每一位的精度為0.0625度,我們不要求顯示小數所以可以拋棄29H的低4位
        ;將28H中的低4位移入29H中的高4位,這樣獲得一個新字節,這個字節就是實際測量獲得的溫度
        ;這個轉化溫度的方法非常簡潔無需乘于0.0625系數
        MOV    A,29H
        MOV    C,40H    ;將28H中的最低位移入C
        RRC    A
        MOV    C,41H
        RRC    A
        MOV    C,42H
        RRC    A
        MOV    C,43H
        RRC    A
        MOV    29H,A
        MOV    R5,29H
        LCALL  DISPLAY  ;調用數碼管顯示子程序
        ;CPL    P2.2
        RET
; 這是DS18B20復位初始化子程序
INIT_1820:
        SETB   P1.0
        NOP
        CLR    P1.0
;主機發出延時537微秒的復位低脈沖
        MOV    R1,#3
TSR1:   MOV    R0,#107
        DJNZ   R0,$
        DJNZ   R1,TSR1
        SETB   P1.0     ;然后拉高數據線
        NOP
        NOP
        NOP
        MOV    R0,#25H
TSR2:   JNB    P1.0,TSR3;等待DS18B20回應
        DJNZ   R0,TSR2
        LJMP   TSR4     ;延時
TSR3:   SETB   FLAG1    ;置標志位,表示DS1820存在
        ;CLR    P2.3     ;檢查到DS18B20就點亮P1.7LED
        LJMP   TSR5
TSR4:   CLR    FLAG1    ;清標志位,表示DS1820不存在
        ;CLR    P2.4
        LJMP   TSR7
TSR5:   MOV    R0,#117
TSR6:   DJNZ   R0,TSR6  ;時序要求延時一段時間
TSR7:   SETB   P1.0
        RET
; 讀出轉換后的溫度值
GET_TEMPER:
        SETB   P1.0
        LCALL  INIT_1820;先復位DS18B20
        JB     FLAG1,TSS2
        RET              ;判斷DS1820是否存在?若DS18B20不存在則返回
TSS2:   ;CLR    P2.4      ;DS18B20已經被檢測到!!!!!!!!!!!!!!!!!!
        MOV    A,#0CCH   ;跳過ROM匹配
        LCALL  WRITE_1820
        MOV    A,#44H    ;發出溫度轉換命令
        LCALL  WRITE_1820
;這里通過調用顯示子程序實現延時一段時間,等待AD轉換結束,12位的話750微秒
        LCALL  DISPLAY
        LCALL  INIT_1820 ;準備讀溫度前先復位
        MOV    A,#0CCH   ;跳過ROM匹配
        LCALL  WRITE_1820
        MOV    A,#0BEH   ;發出讀溫度命令
        LCALL  WRITE_1820
        LCALL  READ_18200;將讀出的溫度數據保存到35H/36H
        RET
;寫DS18B20的子程序(有具體的時序要求)
WRITE_1820:
        MOV    R2,#8     ;一共8位數據
        CLR    C
WR1:    CLR    P1.0
        MOV    R3,#6
        DJNZ   R3,$
        RRC    A
        MOV    P1.0,C
        MOV    R3,#23
        DJNZ   R3,$
        SETB   P1.0
        NOP
        DJNZ   R2,WR1
        SETB   P1.0
        RET
; 讀DS18B20的程序,從DS18B20中讀出兩個字節的溫度數據
READ_18200:
        MOV    R4,#2     ;將溫度高位和低位從DS18B20中讀出
        MOV    R1,#29H   ;低位存入29H(TEMPER_L),高位存入28H(TEMPER_H)
RE00:   MOV    R2,#8     ;數據一共有8位
RE01:   CLR    C
        SETB   P1.0
        NOP
        NOP
        CLR     P1.0
        NOP
        NOP
        NOP
        SETB    P1.0
        MOV     R3,#9
RE10:   DJNZ    R3,RE10
        MOV     C,P1.0
        MOV     R3,#23
RE20:
        DJNZ    R3,RE20
        RRC     A
        DJNZ    R2,RE01
        MOV     @R1,A
        DEC     R1
        DJNZ    R4,RE00
        RET
;--------------- 顯示子程序 ------------------------------------
display:mov     a,29H           ;將29H中的十六進制數轉換成10進制
        MOV     R3,29H
        MOV     R2,29H
        mov     b,#10           ;10進制/10=10進制
        div     ab
        mov     b_bit,a         ;十位在a
        mov     a_bit,b         ;個位在b
        mov     dptr,#numtab    ;指定查表啟始地址
        mov     r0,#4
dpl1:   mov     r1,#250         ;顯示1000次
dplop:  mov     a,a_bit         ;取個位數
        MOVC    A,@A+DPTR       ;查個位數的7段代碼
        mov     p1,a            ;送出個位的7段代碼
        clr     p3.7            ;開個位顯示
        acall   d1ms            ;顯示1ms
        setb    p3.7
        mov     a,b_bit         ;取十位數
        MOVC    A,@A+DPTR       ;查十位數的7段代碼
        mov     p1,a            ;送出十位的7段代碼
        clr     p3.6            ;開十位顯示
        acall   d1ms            ;顯示1ms
        setb    p3.6
        djnz    r1,dplop        ;100次沒完循環
        djnz    r0,dpl1         ;4個100次沒完循環
        ret
;1MS延時(按12MHZ算)
D1MS:   MOV     R7,#80
        DJNZ    R7,$
        RET
;實驗板上的7段數碼管0~9數字的共陰顯示代碼
numtab: DB 002H,9EH,024H,0CH,98H,48H,041H,1EH,00H,08H
     ;      0    1    2   3   4   5    6   7   8   9
END

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
麻豆精品精品国产自在97香蕉| 欧美乱妇23p| 亚洲欧美一区二区不卡| 91色|porny| 一个色在线综合| 91精品婷婷国产综合久久| 九九视频精品免费| 国产精品嫩草影院com| 一本大道av一区二区在线播放| 亚洲一线二线三线视频| 欧美高清性hdvideosex| 日韩影院免费视频| 久久综合五月天婷婷伊人| 成人精品小蝌蚪| 夜夜精品视频一区二区| 日韩欧美一级二级三级| 国产成人啪免费观看软件| 亚洲男人的天堂在线aⅴ视频| 欧美日韩国产影片| 久久66热re国产| 成人欧美一区二区三区白人| 在线观看视频一区二区| 久久99蜜桃精品| 一区在线观看视频| 91超碰这里只有精品国产| 国产在线视频一区二区| 亚洲男人的天堂一区二区| 欧美丰满少妇xxxxx高潮对白| 国产主播一区二区| 国产精品白丝jk黑袜喷水| 亚洲色图视频网| 91精品国产91久久综合桃花| 国产不卡视频一区二区三区| 亚洲国产日韩精品| 久久亚洲私人国产精品va媚药| 99久久精品国产网站| 视频一区二区三区入口| 久久久精品国产99久久精品芒果| 色综合天天综合网国产成人综合天 | 精品久久五月天| 97成人超碰视| 日韩一区欧美二区| 国产精品久久久久影视| 欧美一区二区三区视频免费播放 | 国产一区二区三区免费看| 亚洲人成在线观看一区二区| 日韩一级大片在线观看| 99麻豆久久久国产精品免费| 欧美a级理论片| 亚洲欧洲av在线| 日韩欧美一二三| 色八戒一区二区三区| 国产另类ts人妖一区二区| 五月婷婷综合网| 国产精品三级视频| 日韩一区二区视频在线观看| a级高清视频欧美日韩| 精彩视频一区二区三区| 亚洲一区二区在线免费看| 国产日韩v精品一区二区| 欧美嫩在线观看| 91在线观看地址| 国产成人一区在线| 日韩成人av影视| 亚洲一区二区av电影| 国产情人综合久久777777| 91精品国产91久久久久久一区二区 | 久草这里只有精品视频| 亚洲成人综合视频| 最新日韩在线视频| 国产日产亚洲精品系列| 欧美大片在线观看一区| 欧美久久高跟鞋激| 色呦呦网站一区| 成人午夜电影久久影院| 激情国产一区二区| 日韩电影在线一区二区三区| 亚洲一区免费在线观看| 亚洲人成精品久久久久| 国内精品嫩模私拍在线| 午夜精品福利视频网站| 亚洲欧美电影一区二区| 国产精品美女久久福利网站| 26uuu精品一区二区在线观看| 91精品国产综合久久久蜜臀粉嫩 | 国产一区视频网站| 美女视频第一区二区三区免费观看网站 | 国模冰冰炮一区二区| 奇米色777欧美一区二区| 亚洲成人在线观看视频| 一区二区三区四区在线免费观看| 国产精品美女视频| 国产精品无码永久免费888| 久久综合九色综合欧美就去吻| 日韩欧美一级二级| 日韩欧美另类在线| 日韩欧美一级二级三级久久久| 欧美一区二区三区四区高清| 777亚洲妇女| 69成人精品免费视频| 欧美日韩一区不卡| 欧美日韩1区2区| 欧美久久久久久久久| 欧美日本在线播放| 欧美日本在线看| 91精品午夜视频| 日韩午夜在线观看| 日韩欧美国产成人一区二区| 精品国产一区二区亚洲人成毛片| 日韩欧美国产三级电影视频| 欧美mv日韩mv国产网站| 欧美sm极限捆绑bd| 久久久国产精品午夜一区ai换脸| 久久久一区二区| 国产精品素人视频| 亚洲欧美一区二区久久| 亚洲综合久久av| 视频一区中文字幕国产| 免费亚洲电影在线| 韩国精品主播一区二区在线观看| 激情五月婷婷综合| 东方欧美亚洲色图在线| 91在线播放网址| 欧美日韩中文另类| 日韩欧美一区电影| 久久精品夜色噜噜亚洲aⅴ| 日本一区二区三区久久久久久久久不| 国产亚洲精久久久久久| 亚洲欧洲美洲综合色网| 一区二区三区四区在线免费观看| 一区二区三区四区亚洲| 色一情一伦一子一伦一区| 欧美探花视频资源| 欧美一区二区久久| 久久夜色精品一区| 国产精品久久国产精麻豆99网站| 亚洲精选免费视频| 日韩不卡免费视频| 国产又黄又大久久| 91在线无精精品入口| 欧美日韩国产一级片| 亚洲精品一区二区三区影院| 国产清纯在线一区二区www| 亚洲精品综合在线| 青娱乐精品视频在线| 国产成a人亚洲精品| 在线亚洲人成电影网站色www| 91久久免费观看| 欧美一区二区三区视频| 欧美国产精品一区| 亚洲综合精品久久| 玖玖九九国产精品| 国产不卡免费视频| 欧美日韩中文精品| 久久久亚洲精品石原莉奈| 亚洲免费大片在线观看| 奇米影视在线99精品| 成人av午夜电影| 欧美精品在线观看播放| 国产亚洲美州欧州综合国| 一区二区三区毛片| 国内外成人在线| 在线一区二区观看| 久久久久一区二区三区四区| 一区二区三区四区激情| 美腿丝袜亚洲综合| 99v久久综合狠狠综合久久| 6080午夜不卡| 中文字幕在线不卡视频| 蜜臀av在线播放一区二区三区| 成人av在线影院| 制服丝袜中文字幕一区| 中文在线一区二区 | 亚洲国产综合人成综合网站| 国产呦精品一区二区三区网站| 色婷婷综合五月| 精品日韩99亚洲| 一区二区三区四区视频精品免费 | 午夜视频一区二区三区| 高清不卡一区二区在线| 9191成人精品久久| 国产精品久99| 久久丁香综合五月国产三级网站| 99久久精品国产精品久久 | 欧美一区二区精品在线| 18成人在线视频| 精品一区二区在线看| 在线精品视频一区二区| 国产日韩亚洲欧美综合| 免费久久精品视频| 日本久久精品电影| 久久久久久久久蜜桃| 爽好久久久欧美精品| 色系网站成人免费| 国产亚洲欧洲997久久综合| 天堂成人国产精品一区| 91麻豆国产自产在线观看| 精品国产1区2区3区| 日本亚洲电影天堂| 在线观看91视频|