2011年11月24日木曜日

間接アドレス指定

・LED点滅(約1秒毎、挙動は前回と同じ)

回路図(前回と同じ)













--以下、ソースコード--
#include <p16f1827.inc>
       cblock  0x70
tbl

tbh
       endc

       org     00h
       bra     init

       org     04h
       bcf     INTCON,TMR0IF
       movfw   tbl
       movwf   FSR0L
       movfw   tbh
       movwf   FSR0H

       movfw   INDF0
       movwf   PORTB

       movlw   1
       addwf   tbl
       movlw   0
       addwfc  tbh

       movlw   LOW tb_end
       subwf   tbl,w
       btfss   STATUS,Z
       retfie

       movlw   HIGH tb_end
       subwf   tbh,w
       btfsc   STATUS,Z

       bra     init_r
       retfie
init_r

       movlw   LOW table
       movwf   tbl
       movlw   HIGH table
       movwf   tbh
       retfie

init
       banksel ANSELB
       clrf    ANSELB

       banksel TRISB
       clrf    TRISB

       movlw   B'00110011'
       movwf   OSCCON

       movlw   B'10100000'
       movwf   INTCON

       movlw   B'11010111'
       movwf   OPTION_REG

       movlw   LOW table
       movwf   tbl
       movlw   HIGH table
       movwf   tbh

       banksel PORTB
main
       bra     main

table
       dt      B'00000011'
       dt      B'00000110'
       dt      B'00001100'
       dt      B'00011000'
       dt      B'00110000'
       dt      B'01100000'
       dt      B'11000000'

       dt      B'10000001'
tb_end

       end
--以上、ソースコード--

OS:windows, Software:MPLAB IDE v8.76, Writer:PICkit3

2011年11月22日火曜日

TMR0割り込み(ローティト演算)

・LED点滅(約1秒毎)

回路図














参考画像



--以下、ソースコード--
#include <p16f1827.inc>
        org        00h
        bra        init

        org        04h
        bcf        INTCON,TMR0IF
        rlf        PORTB
        btfsc      STATUS,C
        bsf        PORTB,0
        retfie

init
        banksel    ANSELB
        clrf       ANSELB

        banksel    TRISB
        clrf       TRISB

        movlw      B'00110011'
        movwf      OSCCON

        movlw      B'10100000'
        movwf      INTCON

        movlw      B'11010111'
        movwf      OPTION_REG

        banksel    PORTB
        movlw      B'00000011'
        movwf      PORTB

main
        bra  main
        end
--以上、ソースコード--

参考動画

OS:windows, Software:MPLAB IDE v8.76, Writer:PICkit3

2011年11月7日月曜日

TMR0割り込み

・LED点滅(約1秒毎)

回路図(前回と同じ)


--以下、ソースコード--
#include <p16f1827.inc>
     org     00h
     goto    init
     org     04h
     bcf     INTCON,TMR0IF
     banksel PORTB
     movlw   B'11111111'
     xorwf   PORTB
     retfie
init
     banksel ANSELB
     clrf    ANSELB

     banksel TRISB
     clrf    TRISB

     movlw   B'00110011'
     movwf   OSCCON
     movlw   B'10100000'
     movwf   INTCON
     movlw   B'11010111'
     movwf   OPTION_REG
main
     goto    main
     end
--以上、ソースコード--

OS:windows, Software:MPLAB IDE v8.76, Writer:PICkit3