Created
November 4, 2018 00:08
-
-
Save xiupos/943d75f813021092b6f4207b43e41da1 to your computer and use it in GitHub Desktop.
YMZ294のSPI化
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
LIST P=12f683 | |
#INCLUDE <p12f683.inc> | |
__CONFIG _CP_OFF & _CPD_OFF & _WDT_OFF & _BOD_ON & _IESO_OFF& _PWRTE_ON & _INTOSCIO & _MCLRE_OFF | |
w_temp EQU 0x20 ; Wレジスタ保存用 | |
status_temp EQU 0x21 ; STATUSレジスタ保存用 | |
stand EQU 0x22 ; 立ち上がりフラグ | |
;********************************************************************** | |
ORG 0 | |
goto INIT | |
;********************************************************************** | |
ORG 4 | |
movwf w_temp ; Wレジスタを保存しておく | |
movf STATUS, w ; STATUSレジスタも保存しておく | |
movwf status_temp | |
bcf INTCON, GPIF ; 割り込みフラグを下す | |
bcf INTCON, GIE ; 割り込み無効化 | |
btfss GPIO, 3 ; 立ち上がりか立ち下がりか | |
goto SSDOWN | |
SSUP btfsc stand, 0 ; 既にstandフラグが立っていたらスキップ | |
goto INTEND | |
bsf stand, 0 ; standフラグを立てる | |
movlw B'00100001' ; 74HC595をラッチ | |
movwf GPIO | |
movlw B'00100101' ; /WR,/CSをHIGHにして書き込み | |
movwf GPIO | |
movlw B'00100001' ; 元の状態に戻す | |
movwf GPIO | |
goto INTEND | |
SSDOWN movlw B'00000001' ; RCLKをLOWに | |
movwf GPIO | |
bcf stand, 0 ; standフラグを下す | |
INTEND movf status_temp, w ; STATUSを復帰 | |
movwf STATUS | |
swapf w_temp, f | |
swapf w_temp, w ; Wレジスタを復帰 | |
bsf INTCON, GIE ; 割り込み有効化 | |
retfie ; 割り込みから復帰 | |
;********************************************************************** | |
INIT | |
clrf GPIO | |
movlw 0x07 | |
movwf CMCON0 | |
bsf STATUS, RP0 | |
clrf ANSEL | |
movlw B'00011010' ; GP1,3,4を入力に | |
movwf TRISIO | |
movlw 0x70 | |
movwf OSCCON ; 内部CLOCK=8MHz | |
movlw B'00001000' ; GP3をピン割り込みに | |
movwf IOC | |
bcf STATUS, RP0 | |
movlw 0x88 ; 割り込み有効化 | |
movwf INTCON | |
movlw B'00100001' ; /IC,RCLKをHIGHに | |
movwf GPIO | |
clrf stand | |
;********************************************************************** | |
MAIN | |
goto MAIN | |
END | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment