中文字幕无码不卡一区二区三区_少妇被又大又粗又爽毛片久久黑人_91精品国产在热久久无毒不卡_久久久久久亚洲综合网站

專注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命

提供開發(fā)工具、應(yīng)用測試 完善的開發(fā)代碼案例庫分享

從全面的產(chǎn)品導(dǎo)入到強大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無限潛能!

技術(shù)支持

和初學(xué)者一起學(xué)習(xí)

更新時間: 2019-03-23

十年專注單片機(jī)方案開發(fā)的方案公司英銳恩,分享和初學(xué)者一起學(xué)習(xí)。英銳恩現(xiàn)提供服務(wù)產(chǎn)品涉及主控芯片:8位單片機(jī)、16位單片機(jī)、32位單片機(jī)及各類運算放大器等。

以下程序:

;************************
;60秒記數(shù),RB0控制時間模式切換;RB1控制秒高/低位切換;
;RB2控制加1功能;RB4控制停止/啟動;TMR2產(chǎn)生秒信號;TMR0
;控制數(shù)碼管掃描
;************************
list p=16f877a
#include
;************************
__CONFIG    _CP_OFF&_WDT_OFF&_PWRTE_ON&_XT_OSC&_WRT_OFF&_LVP_OFF&_CPD_OFF
;************************
        cblock     0x30
second_l                ;秒低位
second_h                ;秒高位
_t2count                   ;T2記數(shù)
time_mode              ;時間模式
flag                     ;停止標(biāo)志
porta                    ;移位標(biāo)志
porta_w                 ;位選通標(biāo)志
fsr  
 _ptr                     ;指針
_count                   ;閃爍次數(shù)記數(shù)

_flag0                   ;兩次閃爍間隔標(biāo)志
        endc
        cblock     0x70
w_temp       
status_temp
fsr_temp
pclath_temp            ;中斷臨時寄存器
       endc
#define    key0    PORTB,0
#define    key1    PORTB,1
#define    key2    PORTB,2
#define    key4    PORTB,4  ;定義按鍵
#define    _cycletime   .249 ;循環(huán)時間
;*************************
       org   0x000
       nop
       goto   main
;************************

org   0x004
        movwf   w_temp
        movf    STATUS,w
        clrf    STATUS
        movwf   status_temp
        movf    PCLATH,w
        movwf   pclath_temp
        movf    FSR,w
        movwf   fsr_temp       ;現(xiàn)場保護(hù)
;*************************
        banksel  INTCON        ;中斷判斷
        btfss    INTCON,PEIE
        goto     _chkt0int
        banksel   PIE1
        btfss     PIE1,TMR2IE
        goto     _chkt0int
        banksel   PIR1
        btfss     PIR1,TMR2IF
        goto     _chkt0int
;****************************
;確定T2中斷
;****************************
       
         banksel PORTA
         pagesel  $
         clrf     PIR1        ;清標(biāo)志
         btfss   time_mode,0  ;模式判斷,是否普通顯示模式
         goto    _flickerdis  ;否,轉(zhuǎn)閃爍顯示模式
;****************************

decf     _t2count,f
        movf     _t2count,w
        skpz
        goto     _generaldis ;沒到1秒,轉(zhuǎn)普通顯示
        movlw    .25
        movwf    _t2count
        call    _addsec       ;1秒處理
        goto     _generaldis  ;1秒處理后轉(zhuǎn)普通顯示
;******************
_chkt0int                      ;t0中斷判斷
         banksel   INTCON
         btfss     INTCON,T0IE
         goto      endofint 
         btfss     INTCON,T0IF
         goto      endofint   ;不是則直接中斷退出

;****************************
         bcf       INTCON,T0IF;確定為T0中斷,先清標(biāo)志
         btfss    time_mode,0 ;判斷顯示模式
         goto     _flickerdis  ; 轉(zhuǎn)閃爍顯示
         goto     _generaldis ;轉(zhuǎn)普通顯示
;****************************
_generaldis     

                clrf   STATUS  ;轉(zhuǎn)體0,普通顯示,C=0,IRP=0
                comf    porta_w,w
               movwf   PORTA   ;低位選通
               movlw   second_l&0xff    ;取秒低位首地址
               movwf   FSR
               movf    _ptr,w
               addwf   FSR,f   ;確定時間單元地址
               movf    INDF,w
               movwf   fsr
               call    _tablepro;查表處理
               movwf   PORTC     ;數(shù)碼顯示
               btfsc   porta_w,1 ;判斷2位是否移位完畢

goto    bb
               clrc  
               rlf     porta_w,f  ;沒有,準(zhǔn)備點亮下一位
cc             incf    _ptr,f     ;指針指向下1時間單元
               movlw   0x01
               andwf   _ptr,f     ;保證指針在2個時間單元移動
               goto     endofint
bb             movlw    0x01      ;兩位移位完畢,重新賦值開始新一輪顯示
               movwf    porta_w
               goto     cc
;*******************************
_flickerdis        

                  movlw    .25  ;閃爍顯示,重新賦值時間記數(shù)器
                  movwf    _t2count
                  clrf   STATUS  ;轉(zhuǎn)體0,C=0,IRP=0
                  btfss   _flag0,0 ;兩次閃爍的間隔次數(shù)控制標(biāo)志,1=調(diào)整位亮,0=調(diào)整位滅
                  goto    mm    ;0則調(diào)整位滅
               comf    porta_w,w
               movwf   PORTA
               movlw   second_l&0xff    ;取秒低位首地址
               movwf   FSR
               movf    _ptr,w

  addwf   FSR,f
               movf    INDF,w
               movwf   fsr
               call    _tablepro
               movwf   PORTC
               btfsc   porta_w,1
               goto    bb1
               clrc  
               rlf     porta_w,f  ;準(zhǔn)備點亮下一位
cc1            incf    _ptr,f
               movlw   0x01
               andwf   _ptr,f
               decf    _count,f   ;閃爍次數(shù)
               movf    _count,w
               skpnz
               goto    _judge_porta
               goto     endofint
bb1            movlw    0x01
               movwf    porta_w
               goto     cc1
;***********************************
_judge_porta 
              clrf     _flag0  ;標(biāo)志位清0
              movlw    .100
              movwf    _count
mm         btfss   porta,0   ;判斷正在調(diào)整哪一位                                 
              goto    sec_lpro  ;秒低位調(diào)整
              goto    sec_hpro   ;秒高位調(diào)整

sec_lpro 
           movlw     b'11111101' ;低位調(diào)整,高位一直選通
           movwf     PORTA
           movf      second_h,w
LL         movwf     fsr
           call      _tablepro
           movwf     PORTC
           decf      _count,f
           movf      _count,w
           skpz
           goto     endofint
           movlw    0x01
           xorwf    _flag0,f ;標(biāo)志取反
           movlw    .60
           movwf    _count

     goto     endofint
sec_hpro  
           movlw     b'11111110';高位調(diào)整
           movwf     PORTA
           movf      second_l,w
           goto      LL
          
                 
;******************
endofint                               ;中斷退出
               clrf     STATUS
               MOVF    fsr_temp,w      ;現(xiàn)場恢復(fù)
               MOVWF   FSR
               movf    pclath_temp,w
               movwf   PCLATH
               movf    status_temp,w
               movwf   STATUS
               swapf   w_temp,f
               swapf   w_temp,w
               retfie
                                          
;************************
main  
       banksel   TRISA
       movlw     0x07
       movwf     ADCON1 ;轉(zhuǎn)體1,設(shè)置A口全數(shù)字通道,輸出,數(shù)碼管位控
       clrf      TRISA

 movlw     b'00010111'
       movwf     TRISB
       clrf      TRISC ;數(shù)碼管段碼輸出
       movlw     0x02
       movwf     OPTION_REG  ;TMRO分品比1:8,內(nèi)部時鐘,2MS中斷一次,B口內(nèi)部上拉
       clrf      STATUS     ;轉(zhuǎn)體0
       clrf      INTCON     ;清標(biāo)志
       bsf       INTCON,T0IE
       bsf       INTCON,PEIE  ;T0&PEIE使能
       banksel   TRISA
       movlw     _cycletime
       movwf     PR2         ;設(shè)置T2循環(huán)周期
       clrf      PIE1       
       bsf       PIE1,TMR2IE  ;使能T2
       banksel   PORTA
       clrf      PORTB

RETLW   99H       ;4
            RETLW   92H       ;5
            RETLW   82H       ;6
            RETLW   0F8H      ;7
            RETLW   80H       ;8
            RETLW   98H       ;9
;***************************************      
             end

(文源網(wǎng)絡(luò),侵刪)

404
返回首頁 |  返回上一頁
如皋市| 兴安县| 长白| 沁水县| 平顶山市| 武陟县| 大港区| 柳州市| 兴和县| 怀化市| 潞西市| 邢台市| 牡丹江市| 共和县| 盖州市| 靖宇县| 博兴县| 南陵县| 当雄县| 滦平县| 临洮县| 鲁甸县| 靖宇县| 玉树县| 舟曲县| 高青县| 苏尼特左旗| 盐津县| 余姚市| 定西市| 南开区| 清丰县| 濮阳市| 犍为县| 紫阳县| 哈密市| 库车县| 广河县| 萨嘎县| 上犹县| 班戈县|