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

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

?? picclock.asm

?? 著是一個很好的編譯程序,他可以控制 時鐘的運行狀況,可以顯示時間.
?? ASM
?? 第 1 頁 / 共 2 頁
字號:
              LIST    p=16F84 ; PIC16F844 is the target processor

              #include "P16F84.INC" ; Include header file

              CBLOCK 0x10   ; Temporary storage
                 state
                 secs
                 mins
                 hours
                 ticks
                 idc
                 bcd
              ENDC

; Constants for bit allocation. The BIT_x constants are actual bit numbers and
; the MASK_x are bit masks for the same bit.
BIT_HSEL      EQU H'0000'
BIT_TSET      EQU H'0001'
BIT_HSET      EQU H'0002'
BIT_MSET      EQU H'0003'

BIT_H24       EQU H'0000'
BIT_PM        EQU H'0001'
BIT_SET       EQU H'0002'
BIT_HSB       EQU H'0003'

MASK_H24      EQU H'0001'
MASK_PM       EQU H'0002'
MASK_SET      EQU H'0004'
MASK_HSB      EQU H'0008'


; Macro to generate a MOVLW instruction that also causes a model break:
break         MACRO arg
              DW    0x3100 | (arg & H'FF')
              ENDM

              ORG   0
entrypoint    goto  initialise

              ORG   4
intvector     goto    clock

initialise    ; Register set up:
              clrw                    ; Zero.
              movwf   PORTA           ; Ensure PORTA is zero before we enable it.
              movwf   PORTB           ; Ensure PORTB is zero before we enable it.
              bsf     STATUS,RP0      ; Select Bank 1
              movlw   H'1F'           ; Mask for PORTA inputs/outputs.
              movwf   TRISA           ; Set TRISA register.
              movlw   H'01'           ; Mask for PORTA inputs/outputs.
              movwf   TRISB           ; Set TRISB register.
              bcf     STATUS,RP0      ; Reselect Bank 0.

              ; Initialise clock:
              clrf    state
              bsf     state,BIT_HSB
              movlw   D'0'
              movwf   hours
              movlw   D'0'
              movwf   mins
              movlw   D'0'
              movwf   secs

              ; Clear 50Hz tick count:
              clrf    ticks

              ; Clear interrupt disable count (idc) semaphore:
              clrf    idc

              ; Initialise display:
              call    wr_hours
              call    wr_mins
              call    wr_secs
              call    wr_state

              ; Finally initialise interrupts for clock on RB0/INT pin:
              movlw   H'90'
              movwf   INTCON

start         ; When not processing an interrupt we sit and check input pins:
              call    chk_tset        ; Time set select active?
              call    chk_hsel        ; H12/H24 display format select active?
              goto    start


;------------------------------------------------------------------------------
; Interrupt handler. We come here for every tick of the time base.

clock         ; Toggle half-second flag and set state outputs:
              incf    ticks,F         ; Increment clock ticks.
              movf    ticks,W         ; Get ticks value.
              sublw   D'25'           ; Is it 25 (W=25-W)?
              btfss   STATUS,Z        ; Test zero flag.
              goto    endclock        ; Return.

toggle_hs     ; Half second - toggle HS flag, write it and return:
              clrf    ticks           ; Reset timebase,
              movf    state,W         ; Get state.
              xorlw   MASK_HSB        ; Toggle half-second bit.
              movwf   state           ; Save it back to register.
              call    wr_state        ; Display it.
              movf    state,W         ; Get state.
              btfss   state,BIT_HSB   ; Is bit now clear?
              goto    endclock        ; Return.

inc_secs      ; Incrmement seconds...
              incf    secs,F          ; Increment seconds count.
              movf    secs,W          ; Get it into W.
              sublw   D'60'           ; Is it 60 (W=60-W)?
              btfsc   STATUS,Z        ; Test zero flag, skip clear if no set.
              goto    reset_secs      ; Clear seconds, increment minutes.
              call    wr_secs         ; Write seconds it to display.
              goto    endclock        ; Done.

reset_secs    clrf    secs
              call    wr_secs         ; Write seconds to display.

              incf    mins,F          ; Increment minute count.
              movf    mins,W          ; Get it into W.
              sublw   D'60'           ; Is it 60 (W=60-W)?
              btfsc   STATUS,Z        ; Test zero flag, skip clear if no set.
              goto    reset_mins      ; Clear minutes, increment hours.
              call    wr_mins         ; Write minutes it to display.
              goto    endclock        ; Done.

reset_mins    clrf    mins            ; Reset minute count to zero.
              call    wr_mins         ; Write minutes to display.

              call    inc_hours       ; Increment hours, display it with PM flag.
              
endclock      movlw   H'90'
              movwf   INTCON
              retfie                  ; Return

;------------------------------------------------------------------------------
; Subroutine. Check the state of the HSEL input and set h12/h24 format as
; required.

chk_hsel      btfsc   PORTA,BIT_HSEL  ; Test 12/24 select.
              goto    set_h12         ; H12 set so switch to 12 hour format.
              ; fall through          ; H12 not set so switch to 24 hour format.

set_h24       btfsc   state,BIT_H24   ; Are we on 12 hour format?
              retlw   0               ; No, so no need to do anything...

              bcf     INTCON,GIE      ; Disable interrupts.
              incf    idc,F           ; Increment count of number of disables.
              bsf     state,BIT_H24   ; Clear h12 flag.

              movf    hours,W         ; Get hours value.
              sublw   D'12'           ; Is it 12:xx?
              btfsc   STATUS,Z        ; Test zero flag.
              clrf    hours           ; Reset to zero.
              movf    hours,W         ; Get hours value.
              btfsc   state,BIT_PM    ; Is the PM indicator set?
              addlw   D'12'           ; Add 12 to get 24 hour value.
              movwf   hours           ; Save result (does nothing for AM).
              bcf     state,BIT_PM    ; Clear PM flag.
              call    wr_hours        ; Write hours.
              call    wr_state        ; Write H12 state and PM state.
              goto    chk_hsel_iec    ; Done.

set_h12       btfss   state,BIT_H24   ; Are we on 12 hour format?
              retlw   0               ; Yes, so no need to do anything...

              bcf     INTCON,GIE      ; Disable interrupts.
              incf    idc,F           ; Increment count of number of disables.
              bcf     state,BIT_H24   ; Set h12 flag.

              movf    hours,W         ; Get hour value.
              sublw   D'11'           ; W=11-W. C is clear for a borrow (W>=12).
              btfss   STATUS,C        ; Test carry flag.
              goto    set_h12_pm      ; Set PM.

set_h12_am    bcf     state,BIT_PM    ; Clear PM bit.
              movf    hours,W         ; Get hours.
              btfsc   STATUS,Z        ; Is it zero?
              addlw   D'12'           ; Yes, add 12 to get 00:xx to 12:xx.
              movwf   hours           ; Save any result.
              call    wr_hours        ; Display hours.
              call    wr_state        ; Display H12 and PM states.
              goto    chk_hsel_iec    ; Done.

set_h12_pm    bsf     state,BIT_PM    ; Set PM bit.
              movlw   D'12'           ; Constant.
              subwf   hours,F         ; hours=hours-12 (23..12 -> 11..0).
              btfsc   STATUS,Z        ; Zero set?
              movwf   hours           ; Yes, so reset to '12'.
              call    wr_hours        ; No, so leave hours alone and display it.
              call    wr_state        ; Display H12 and PM states.
              goto    chk_hsel_iec    ; Done.

chk_hsel_iec  decfsz  idc,F           ; Decrement idc. If zero we can reenable interrupts.
              retlw   1               ; Return without enabling interrupts.

chk_hsel_done movlw   H'90'           ; Constant for GIE and T0IE.
              movwf   INTCON          ; Set interrupt register.
              retlw   1               ; Return.

;------------------------------------------------------------------------------
chk_tset      btfsc   PORTA,BIT_TSET  ; Set mode?
              retlw   0

              bcf     INTCON,GIE      ; Disable interrupts.
              incf    idc,F           ; Increment count of number of disables.
              bsf     state,BIT_SET   ; Set the 'set mode' bit.
              clrf    secs            ; Setting time resets seconds count.
              call    wr_secs         ; Display it.
              bcf     state,BIT_HSB   ; Clear seconds toggle.
              call    wr_state        ; Update the state output latch.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美二区三区的天堂| 色播五月激情综合网| 亚洲综合精品久久| 中文在线一区二区| 亚洲国产成人一区二区三区| 26uuu久久天堂性欧美| 2014亚洲片线观看视频免费| 欧美r级电影在线观看| 欧美一区二区三区日韩| 日韩欧美一区二区免费| 日韩免费电影网站| 久久久国产精品午夜一区ai换脸| 2021中文字幕一区亚洲| 国产欧美日韩亚州综合| 国产精品久久久久国产精品日日| 国产精品国产三级国产普通话三级| 国产精品久久久久天堂| 亚洲欧美在线aaa| 亚洲一区二区三区视频在线 | 久久色在线观看| 久久久久久久性| 国产精品素人一区二区| 一区二区在线观看av| 亚洲成人午夜影院| 久久99久国产精品黄毛片色诱| 激情五月播播久久久精品| 国产**成人网毛片九色 | 久久综合色婷婷| 国产亚洲一区二区三区四区| 亚洲欧洲精品一区二区精品久久久 | 7777精品伊人久久久大香线蕉超级流畅 | 国产69精品久久久久毛片| 91麻豆免费看片| 欧美一三区三区四区免费在线看 | 精品中文av资源站在线观看| av资源网一区| 日韩片之四级片| 亚洲精品久久嫩草网站秘色| 首页国产欧美久久| 国产高清一区日本| 欧美日韩一级二级三级| 国产色综合一区| 亚洲不卡一区二区三区| 国产凹凸在线观看一区二区| 欧美亚洲国产怡红院影院| 精品国产成人系列| 亚洲一区在线看| 丁香啪啪综合成人亚洲小说 | 成人免费高清在线观看| 欧美日韩国产高清一区二区| 中文字幕欧美国产| 日韩av一区二区在线影视| 99热在这里有精品免费| 欧美精品一区二区三区在线播放| 一区二区免费在线播放| 高清在线成人网| 欧美成人一区二区三区片免费| 亚洲三级久久久| 国产精品一级在线| 欧美一二三四区在线| 亚洲国产一区视频| 91美女片黄在线观看91美女| 国产亚洲综合性久久久影院| 麻豆视频观看网址久久| 欧美视频一区二| 一区二区三区四区国产精品| 成人av网站在线观看免费| 久久影院午夜论| 精品一区二区av| 日韩欧美国产精品一区| 日韩黄色免费网站| 欧美日韩精品电影| 亚洲成va人在线观看| 日本黄色一区二区| 亚洲欧美电影一区二区| 不卡大黄网站免费看| 国产精品免费久久久久| 成人深夜在线观看| 欧美激情在线免费观看| 成人精品一区二区三区中文字幕| 国产三级一区二区三区| 久草这里只有精品视频| 精品国产伦一区二区三区观看方式 | 在线综合视频播放| 亚洲成av人在线观看| 欧美二区三区的天堂| 美女视频黄久久| 久久先锋资源网| 不卡的电影网站| 一区二区三区在线播放| 欧美日韩精品欧美日韩精品一| 亚洲电影激情视频网站| 6080日韩午夜伦伦午夜伦| 免费高清在线一区| 久久精品在线观看| av电影天堂一区二区在线| 亚洲天堂成人在线观看| 欧美色爱综合网| 久久99精品国产.久久久久久| 久久久精品蜜桃| 91亚洲资源网| 偷拍与自拍一区| 久久综合九色综合久久久精品综合| 国产v日产∨综合v精品视频| 亚洲桃色在线一区| 91精品国产综合久久精品| 韩国v欧美v亚洲v日本v| 亚洲欧美日韩国产综合在线| 欧美美女网站色| 国产成人午夜精品5599| 亚洲综合丁香婷婷六月香| 69堂国产成人免费视频| 成人深夜在线观看| 五月婷婷欧美视频| 国产精品乱码一区二三区小蝌蚪| 色呦呦国产精品| 蜜乳av一区二区三区| 亚洲视频小说图片| 欧美精品一区二区在线播放| 91福利区一区二区三区| 国产福利一区二区三区在线视频| 夜夜操天天操亚洲| 精品国产欧美一区二区| 色八戒一区二区三区| 国产精品一区在线观看乱码| 天天综合网天天综合色| 国产精品第四页| 日韩精品中文字幕一区| 欧洲av一区二区嗯嗯嗯啊| 国产精品12区| 奇米色一区二区三区四区| 亚洲人成网站在线| 久久精品一区蜜桃臀影院| 欧美精品精品一区| 色婷婷综合久久久久中文 | 一区二区三区在线看| 国产日韩欧美麻豆| 欧美一区二区视频在线观看| 色欧美日韩亚洲| 成人网在线免费视频| 韩国v欧美v日本v亚洲v| 麻豆精品视频在线观看视频| 亚洲sss视频在线视频| 日韩毛片在线免费观看| 国产精品免费免费| 久久久久久久性| 久久亚洲精华国产精华液 | 亚洲另类一区二区| 日本一区二区三区视频视频| 日韩欧美成人激情| 日韩一区二区三区在线| 制服丝袜亚洲精品中文字幕| 欧美日韩精品三区| 欧美日韩精品综合在线| 欧美日韩免费不卡视频一区二区三区 | 国产又粗又猛又爽又黄91精品| 日韩黄色片在线观看| 蜜臀av性久久久久蜜臀av麻豆| 五月天久久比比资源色| 婷婷综合久久一区二区三区| 一区二区国产视频| 亚洲国产精品精华液网站| 亚洲aⅴ怡春院| 天天操天天干天天综合网| 日韩精品一卡二卡三卡四卡无卡| 婷婷夜色潮精品综合在线| 日韩高清一区二区| 日韩成人一级片| 精品一区二区三区的国产在线播放 | 亚洲午夜精品一区二区三区他趣| 亚洲人成伊人成综合网小说| 亚洲美女屁股眼交3| 亚洲国产日韩精品| 免费av成人在线| 国产成人在线视频网站| 99精品桃花视频在线观看| 欧美亚洲综合色| 日韩欧美一区中文| 久久久亚洲精品一区二区三区| 国产亚洲精品aa午夜观看| 国产精品成人网| 亚洲电影一区二区| 国产综合成人久久大片91| av一区二区三区四区| 7777精品伊人久久久大香线蕉最新版| 日韩午夜在线影院| 国产精品不卡在线观看| 午夜伊人狠狠久久| 久久99这里只有精品| 99久久精品国产观看| 欧美视频中文一区二区三区在线观看| 日韩欧美一级二级| 亚洲人快播电影网| 激情欧美日韩一区二区| 91行情网站电视在线观看高清版| 欧美岛国在线观看| 亚洲黄色片在线观看| 国产一区日韩二区欧美三区| 色菇凉天天综合网| 欧美激情在线观看视频免费|