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

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

?? aqua ok.asm

?? 基于pic的DS1302串行實時時鐘程序
?? ASM
?? 第 1 頁 / 共 4 頁
字號:
	movf    MAX,W
	call    INCREMENTE
	movf    DONNEE,W
	call    LCDHEX
	call    RELACHE
	goto    boucle_regl
fin_regl
	call    RELACHE
	movf    ADRESSE,W                       ;ecriture
	call    DS1302
	return

;****************************************************************************
;       INCREMENTE == incremente DONNEE (en BCD), valeur max + 1 dans W
;****************************************************************************

INCREMENTE
	movwf   TEMP2
	movf    DONNEE,W
	movwf   TEMP1
	incf    TEMP1
	movlw   0Fh
	andwf   TEMP1,W
	sublw   0Ah
	btfss   STATUS,Z
	goto    fin_inc
	movlw   0Ah
	subwf   TEMP1
	movlw   10h
	addwf   TEMP1
fin_inc
	movf    TEMP1,W
	movwf   DONNEE
	movf    TEMP2,W
	subwf   DONNEE,W
	btfsc   STATUS,Z
	clrf    DONNEE
	return


;****************************************************************************
;       OUINON == menu OUI / NON, emplacement dans W, resultat dans DONNEE
;                       FF : OUI, 00 : NON
;****************************************************************************

OUINON
	movwf   TEMP2
non
	movf    TEMP2,W
	call    LCDSETADR
	movlw   7Dh
	call    LCDSTR2
	clrf    DONNEE
non_att
	clrwdt
	btfsc   PB,2
	goto    fin_ouinon
	btfss   PB,1
	goto    non_att
	call    RELACHE
oui
	movf    TEMP2,W
	call    LCDSETADR
	movlw   79h
	call    LCDSTR2
	movlw   0FFh
	movwf   DONNEE
oui_att
	clrwdt
	btfsc   PB,2
	goto    fin_ouinon
	btfss   PB,1
	goto    oui_att
	call    RELACHE
	goto    non
fin_ouinon
	call    RELACHE
	return

;****************************************************************************
;       MENU_UTIL == menu utilisateur
;****************************************************************************

MENU_UTIL
	movlw   01h                     ;clear display
	call    LCDCMD                  ;
	movlw   20h
	call    LCDSTR2
	movlw   40h
	call    LCDSETADR
	movlw   31h
	call    LCDSTR2
menu_suite
	clrwdt
	btfss   PB,2
	goto    menu_suite
	clrw
	call    MENU
	movf    DONNEE,W
	andlw   0FFh                            ;Commandes Manu ?
	btfsc   STATUS,Z
	goto    manu
	movlw   01h                             ;reglages ?
	subwf   DONNEE,W
	btfsc   STATUS,Z
	goto    reglages
	movlw   03h                             ;?propos ?
	subwf   DONNEE,W
	btfsc   STATUS,Z
	goto    apropos
	return
manu
	call    MENU_MANU
	return
reglages
	movlw   06h
	call    MENU
	call    RELACHE
	movlw   06h                             ;date / heure ?
	subwf   DONNEE,W
	btfsc   STATUS,Z
	goto    dateheure
	movlw   07h                             ;eclairage blanc ?
	subwf   DONNEE,W
	btfsc   STATUS,Z
	goto    eclairage_blanc
	movlw   08h                             ;eclairage bleu ?
	subwf   DONNEE,W
	btfsc   STATUS,Z
	goto    eclairage_bleu
	movlw   09h                             ;reacteur ?
	subwf   DONNEE,W
	btfsc   STATUS,Z
	goto    reacteur
	movlw   0Ah                             ;reacteur 2 ?
	subwf   DONNEE,W
	btfsc   STATUS,Z
	goto    reacteur2
	movlw   0Bh                             ;remplissage ?
	subwf   DONNEE,W
	btfsc   STATUS,Z
	goto    remplissage
	movlw   0Ch                             ;brassage ?
	subwf   DONNEE,W
	btfsc   STATUS,Z
	goto    brassage
	movlw   0Dh                             ;heure remplissage
	subwf   DONNEE,W
	btfsc   STATUS,Z
	goto    heure_rempliss
	movlw   0Eh                             ;temperature
	subwf   DONNEE,W
	btfsc   STATUS,Z
	goto    regle_temperature
	movlw   0Fh                             ;reset ?
	subwf   DONNEE,W
	btfsc   STATUS,Z
	goto    reset
	return
apropos
	movlw   01h                             ;clear display
	call    LCDCMD                          ;
	clrw
	call    LCDSTR2
	movlw   40h
	call    LCDSETADR
	movlw   0Fh
	call    LCDSTR2
apropos_att
	clrwdt
	btfss   PB,2
	goto    apropos_att
	call    RELACHE
	return
dateheure
	movlw   01h                             ;clear display
	call    LCDCMD                          ;
	movlw   02h
	call    LCDSETADR
	movlw   58h
	call    LCDSTR
	call    REGLHEURE
	return
eclairage_blanc
	movlw   01h                             ;clear display
	call    LCDCMD                          ;
	movlw   48h
	call    LCDSTR
	movlw   40h
	call    LCDSETADR
	movlw   81h                             ;debut
	call    LCDSTR2
	movlw   L_BLANCHE
	call    REGLE
	movlw   01h                             ;clear display
	call    LCDCMD                          ;
	movlw   48h
	call    LCDSTR
	movlw   40h
	call    LCDSETADR
	movlw   87h                             ;fin
	call    LCDSTR2
	movlw   L_BLANCHE + 2
	call    REGLE
	return
eclairage_bleu
	movlw   01h                             ;clear display
	call    LCDCMD                          ;
	movlw   58h
	call    LCDSTR
	movlw   40h
	call    LCDSETADR
	movlw   81h                             ;debut
	call    LCDSTR2
	movlw   L_BLEUE
	call    REGLE
	movlw   01h                             ;clear display
	call    LCDCMD                          ;
	movlw   58h
	call    LCDSTR
	movlw   40h
	call    LCDSETADR
	movlw   87h                             ;fin
	call    LCDSTR2
	movlw   L_BLEUE + 2
	call    REGLE
	return
reacteur
	movlw   REACTEUR
	call    REGLE2
	return
reacteur2
	movlw   REACTEUR2
	call    REGLE2
	return
remplissage
	movlw   REMPLISSAGE
	call    REGLE2
	return
brassage
	movlw   12h
	call    MENU
	movlw   12h                             ;Pompe1
	subwf   DONNEE,W
	btfss   STATUS,Z
	goto    t_pompe2
	movlw   POMPE1
	goto    reglage_pompe
t_pompe2
	movlw   13h                             ;Pompe2
	subwf   DONNEE,W
	btfss   STATUS,Z
	goto    t_pompe3
	movlw   POMPE2
	goto    reglage_pompe
t_pompe3
	movlw   14h                             ;Pompe3
	subwf   DONNEE,W
	btfss   STATUS,Z
	goto    t_pompe4
	movlw   POMPE3
	goto    reglage_pompe
t_pompe4
	movlw   15h                             ;Pompe4
	subwf   DONNEE,W
	btfss   STATUS,Z
	return
	movlw   POMPE4
reglage_pompe
	call    REGLE_POMPE
	goto    brassage
heure_rempliss
	movlw   01h                             ;clear display
	call    LCDCMD                          ;
	movlw   0E6h
	call    LCDSTR
	movlw   40h
	call    LCDSETADR
	movlw   81h                             ;debut
	call    LCDSTR2
	movlw   H_REMPLISS
	call    REGLE
	movlw   01h                             ;clear display
	call    LCDCMD                          ;
	movlw   48h
	call    LCDSTR
	movlw   40h
	call    LCDSETADR
	movlw   87h                             ;fin
	call    LCDSTR2
	movlw   H_REMPLISS + 2
	call    REGLE
	return
regle_temperature
	movlw   01h                             ;clear display
	call    LCDCMD                          ;
	movlw   0B1h
	call    LCDSTR
	movlw   " "
	call    LCDCHAR
	movlw   ":"
	call    LCDCHAR
	movlw   TEMP_VISEE + 2
	call    LIS_EEPROM2
	movlw   4Ch
	call    LCDSETADR
	movlw   0DFh                            ;"?
	call    LCDCHAR
	movlw   "C"
	call    LCDCHAR
att_regle_temp
	clrwdt
	movlw   4Ah
	call    LCDSETADR
	movf    DONNEE,W
	call    LCDDEC
	btfsc   PB,2
	goto    fin_regle_temp
	btfss   PB,1
	goto    att_regle_temp
	call    RELACHE
	incf    DONNEE
	movlw   d'30'
	subwf   DONNEE,W
	btfss   STATUS,Z
	goto    att_regle_temp
	movlw   d'15'
	movwf   DONNEE
	goto    att_regle_temp
fin_regle_temp
	movlw   TEMP_VISEE + 2
	call    ECRISEEPROM
	decf    DONNEE
	movlw   TEMP_VISEE
	call    ECRISEEPROM
	movlw   HYSTERESIS
	movwf   DONNEE
	movlw   TEMP_VISEE + 3
	call    ECRISEEPROM
	movlw   HYSTERESIS
	sublw   d'10'
	movwf   DONNEE
	movlw   TEMP_VISEE + 1
	call    ECRISEEPROM
	return
reset
	movlw   01h                             ;clear display
	call    LCDCMD                          ;
	movlw   69h
	call    LCDSTR2
	movlw   4Dh
	call    OUINON
	btfss   DONNEE,0
	return
	movlw   01h                             ;clear display
	call    LCDCMD                          ;
reset_fin
	goto    reset_fin

;****************************************************************************
;       REGLE == reglage adresse EEPROM dans W
;****************************************************************************

REGLE
	movwf   TEMP4
	movlw   4Bh
	call    LCDSETADR
	movf    TEMP4,W
	call    LISEEPROM
	movf    DONNEE,W
	call    LCDHEX
	movlw   ":"
	call    LCDCHAR
	incf    TEMP4,W
	call    LISEEPROM
	movf    DONNEE,W
	call    LCDHEX
	movf    TEMP4,W
	call    LISEEPROM
attente_regle
	clrwdt
	btfsc   PB,1
	goto    incremente_heure
	btfsc   PB,2
	goto    fin_heure
	goto    attente_regle
incremente_heure
	call    RELACHE
	movlw   24h
	call    INCREMENTE
	movlw   4Bh
	call    LCDSETADR
	movf    DONNEE,W
	call    LCDHEX
	goto    attente_regle
fin_heure
	call    RELACHE
	movf    TEMP4,W
	call    ECRISEEPROM
	incf    TEMP4,W
	call    LISEEPROM
attente_regle2
	clrwdt
	btfsc   PB,1
	goto    incremente_min
	btfsc   PB,2
	goto    fin_regle
	goto    attente_regle2
incremente_min
	call    RELACHE
	movlw   60h
	call    INCREMENTE
	movlw   4Eh
	call    LCDSETADR
	movf    DONNEE,W
	call    LCDHEX
	goto    attente_regle2
fin_regle
	call    RELACHE
	incf    TEMP4,W
	call    ECRISEEPROM
	return

;****************************************************************************
;       interruption
;****************************************************************************

INT
;****************** sauvegarde de W, STATUS **********************************
	movwf   W_TEMP
	swapf   STATUS,W
	clrf    STATUS
	movwf   STATUS_TEMP
;****************** sauvegarde de W, STATUS **********************************
	btfsc   INTCON,T0IF
	goto    Timer0
	goto    fin_int
Timer0
	bcf     STATUS,RP0
	bcf     STATUS,RP1
	movf    PB,F
	btfsc   STATUS,Z                        ;Aucun bouton appuy?
	goto    test_boutons
	decfsz  CPT_TIMER
	goto    fin_timer0
test_boutons                                    ;non : on teste
	swapf   PORTB,W
	andlw   07h
	xorlw   07h
	movwf   PB
	btfsc   STATUS,Z                        ;un changement ?
	goto    fin_timer0
	movlw   TEMPS_REBOND
	movwf   CPT_TIMER
fin_timer0
	bcf     INTCON,T0IF
fin_int
;****************** restauration de W, STATUS *******************************
	swapf   STATUS_TEMP,W
	movwf   STATUS
	swapf   W_TEMP
	swapf   W_TEMP,W
;****************** restauration de W, STATUS *******************************
	bsf     INTCON,GIE
	retfie

;****************************************************************************
;       LIS_I2C == lecture des entrees sur le bus I2C et mise en marche des
;                  appareils en fonction
;****************************************************************************

LIS_I2C
	movlw   H_REMPLISS
	call    TEST_HEURE
	movwf   TEMP4
	movlw   b'01000011'
	call    PCF8574
	movf    TEMP4,F
	btfsc   STATUS,Z
	goto    pas_remplissage         ;non
	btfss   DONNEE,BAC_HAUT
	goto    arret_remplissage
	btfsc   FLAGS,2                 ;on est deja en train de remplir ?
	goto    test_osmo               ;oui
	clrf    M_REAC
	clrf    H_REAC
	clrf    M_REMP                  ;init
	bsf     REMPREAC,0              ;de cycle
	bcf     REMPREAC,2
	bsf     FLAGS,2                 ;remplissage
	bsf     SORTIES1,1
	call    ECRIS_I2C1
	goto    test_osmo
arret_remplissage
	bcf     FLAGS,2                 ;stop remplissage
	bcf     SORTIES1,1
test_osmo
	btfsc   DONNEE,RES_BAS
	bsf     SORTIES1,2              ;osmoseur
	btfss   DONNEE,RES_HAUT
	bcf     SORTIES1,2              ;stop osmoseur
	call    ECRIS_I2C1
	return
pas_remplissage
	bcf     FLAGS,2
	goto    test_osmo

;****************************************************************************
;       LIS_HEURE : lis l'heure sans l'afficher (pour init)
;****************************************************************************

LIS_HEURE
	movlw   b'10000101'             ;heures
	call    DS1302
	movf    DONNEE,W
	movwf   HEURES
	movlw   b'10000011'             ;minutes
	call    DS1302
	movf    DONNEE,W
	movwf   MINUTES
	return

;****************************************************************************
;       AFF_HEURE : affiche l'heure
;****************************************************************************

AFF_HEURE
	movlw   06h                     ;6 essais...
	movwf   TEMP5
	movlw   0Bh
	call    LCDSETADR
essai_heure
	decf    TEMP5
	btfsc   STATUS,Z
	return                          ;trop d'erreurs, on quitte
	movlw   b'10000101'             ;heures
	call    DS1302
	movf    HEURES,W
	subwf   DONNEE,W
	btfss   STATUS,C
	goto    heure_erreur            ;erreur si DONNEE < HEURES
affichage_heure
	movf    DONNEE,W
	movwf   HEURES
	call    LCDHEX
	movlw   ":"
	call    LCDCHAR
essai_minute
	decf    TEMP5
	btfsc   STATUS,Z
	return                          ;trop d'erreurs, on quitte
	movlw   b'10000011'             ;minutes
	call    DS1302
	movf    MINUTES,W
	subwf   DONNEE,W
	btfss   STATUS,C
	goto    minute_erreur           ;erreur si DONNEE < MINUTES
affichage_minute
	movf    DONNEE,W
	movwf   MINUTES
	call    LCDHEX
	return
heure_erreur
	movf    HEURES,W
	btfsc   STATUS,Z                ;test si HEURES = 0
	goto    affichage_heure         ;oui : pas de pb, on est pass?de 23 ?0
	goto    essai_heure             ;non, il y a un pb, on recommence
minute_erreur
	movf    MINUTES,W
	btfsc   STATUS,Z                ;test si MINUTES = 0
	goto    affichage_minute        ;oui : pas de pb, on est pass?de 59 ?0
	goto    essai_minute            ;non, il y a un pb, on recommence


;****************************************************************************
;       ECRIS_I2C0 == ecriture sur le bus I2C (mise en marche des appareils)
;****************************************************************************

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
av在线不卡电影| 久久一夜天堂av一区二区三区| 色综合久久天天| 欧美日韩三级一区二区| 欧美区在线观看| 精品国产露脸精彩对白| 一区二区三区在线视频观看58 | 91香蕉国产在线观看软件| 成人小视频免费在线观看| 在线观看视频一区二区| 2023国产一二三区日本精品2022| 国产精品美女久久久久久久久| 中文字幕中文字幕一区| 热久久国产精品| 国产成人丝袜美腿| 日韩三级电影网址| 亚洲自拍欧美精品| 成人精品亚洲人成在线| 欧美日韩国产一二三| 国产精品成人免费在线| 麻豆国产欧美一区二区三区| 色婷婷国产精品综合在线观看| 精品国产一区二区三区忘忧草| 国产日韩欧美综合在线| 日韩电影网1区2区| 91黄视频在线观看| 国产欧美1区2区3区| 亚洲影院久久精品| k8久久久一区二区三区| 日韩精品最新网址| 日韩在线播放一区二区| 在线亚洲精品福利网址导航| 欧美成人女星排名| 日韩精品免费视频人成| 精品视频一区 二区 三区| 亚洲欧美一区二区三区孕妇| 美国十次了思思久久精品导航| 色天天综合久久久久综合片| 国产精品免费久久久久| 国产大片一区二区| 久久久亚洲精华液精华液精华液| 男人操女人的视频在线观看欧美 | 成人av在线一区二区| 2020日本不卡一区二区视频| 六月婷婷色综合| 91精品国产色综合久久不卡电影| 亚洲一二三区视频在线观看| 色呦呦国产精品| 136国产福利精品导航| 成人avav影音| 国产精品高潮久久久久无| 成人免费毛片a| 91精品国产综合久久精品| 亚洲黄色av一区| 色婷婷国产精品| 亚洲va韩国va欧美va| 欧美日韩综合在线| 日韩精品免费视频人成| 日韩欧美国产一区在线观看| 日韩电影在线观看一区| 日韩视频国产视频| 国产精品一区二区91| 国产欧美一区二区三区沐欲| 99久久国产免费看| 亚洲一区在线观看免费观看电影高清| 欧美亚洲图片小说| 青青国产91久久久久久| 精品国产3级a| 成人aa视频在线观看| 亚洲人成人一区二区在线观看 | 亚洲欧洲日产国产综合网| av福利精品导航| 一级女性全黄久久生活片免费| 欧美日韩高清一区二区不卡| 亚洲国产视频一区| 欧美一个色资源| 粉嫩欧美一区二区三区高清影视 | 国产成人精品免费视频网站| 国产精品久久久久久久久搜平片| 欧美制服丝袜第一页| 免费欧美在线视频| 一区二区三区四区在线播放| 欧美r级电影在线观看| 欧美综合天天夜夜久久| 国产风韵犹存在线视精品| 日韩二区在线观看| 玉足女爽爽91| 综合久久国产九一剧情麻豆| 26uuu欧美| 日韩美女在线视频| 欧美精品欧美精品系列| 日本精品视频一区二区三区| 丰满放荡岳乱妇91ww| 国产中文一区二区三区| 日韩福利电影在线观看| 亚洲一区视频在线观看视频| 亚洲日本在线视频观看| 国产三级精品在线| 26uuu精品一区二区| 欧美成人精品福利| 欧美变态口味重另类| 日韩欧美精品在线| 欧美一区二区免费| 日韩欧美电影在线| 欧美老人xxxx18| 在线电影一区二区三区| 欧美三级三级三级| 欧美日韩一区国产| 欧美日韩一卡二卡三卡| 欧美丝袜丝交足nylons图片| 在线日韩一区二区| 欧美日韩视频在线观看一区二区三区| 欧美在线短视频| 欧美性色黄大片手机版| 欧美日韩一级二级| 欧美日韩成人一区二区| 欧美精品18+| 精品嫩草影院久久| 久久久久青草大香线综合精品| 久久婷婷久久一区二区三区| 精品福利二区三区| 国产婷婷一区二区| 中文字幕一区二区三区色视频| 国产精品超碰97尤物18| 亚洲免费在线观看视频| 天堂午夜影视日韩欧美一区二区| 视频一区在线播放| 久久丁香综合五月国产三级网站| 老汉av免费一区二区三区| 国产成人高清视频| 成人白浆超碰人人人人| 欧洲亚洲国产日韩| 制服丝袜中文字幕亚洲| 日韩精品专区在线影院重磅| 久久精品一区二区| 亚洲精品视频一区二区| 三级一区在线视频先锋| 国产伦精品一区二区三区免费迷 | 欧美人伦禁忌dvd放荡欲情| 日韩精品一区二区三区视频在线观看 | 国产欧美综合在线| 一区二区三区在线免费播放 | 亚洲靠逼com| 热久久免费视频| 成人免费毛片a| 欧美日免费三级在线| 久久亚洲精华国产精华液| 国产精品高清亚洲| 美洲天堂一区二卡三卡四卡视频| 国产成人精品免费看| 欧美色男人天堂| 欧美国产精品一区二区| 婷婷丁香久久五月婷婷| 国产精品 欧美精品| 在线免费观看日韩欧美| 精品国偷自产国产一区| 一区二区三区在线视频观看| 国产真实精品久久二三区| 欧美在线观看一二区| 久久精品亚洲精品国产欧美kt∨| 亚洲bt欧美bt精品| 成人免费视频视频| 精品国产一区久久| 性做久久久久久免费观看欧美| 成人午夜av在线| 欧美mv日韩mv国产网站| 伊人开心综合网| 成人自拍视频在线观看| 精品国产成人系列| 日韩精品一卡二卡三卡四卡无卡| av毛片久久久久**hd| 亚洲精品一区二区三区蜜桃下载| 亚洲aⅴ怡春院| 欧美性淫爽ww久久久久无| 国产精品日产欧美久久久久| 国产综合久久久久久久久久久久| 欧美伦理影视网| 亚洲一区电影777| 99re热视频这里只精品| 中文字幕免费不卡在线| 国产在线视频一区二区| 日韩三级高清在线| 欧美aa在线视频| 91精品国产综合久久小美女 | 国产精品三级av| 国产成人av电影在线观看| 欧美变态tickle挠乳网站| 丝袜美腿成人在线| 欧美人牲a欧美精品| 亚洲国产精品视频| 在线中文字幕一区| 亚洲美女免费视频| 91麻豆精品视频| 综合分类小说区另类春色亚洲小说欧美| 国产毛片一区二区| 中文天堂在线一区| 成人综合在线网站| 国产精品福利一区| 91美女在线视频| 亚洲一区二区三区在线播放|