少し仕事が忙しく、遅くなりましたが本体プログラム編です。←言い訳
プログラムソースには注釈を入れわかりやすく解説していますが、後で補足説明をいたします。
;****************************************************
; Filename: main.asm *
; Programname: スロットコインレスカウンター *
; Version: Ver 3.2.9 *
; Assembler: MPLAB Ver7.50.00.0 *
;****************************************************
INCLUDE"p16F648a.inc"
list p=16F648A
__CONFIG _INTRC_OSC_NOCLKOUT & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF & _LVP_OFF
;******************************プログラム初期設定***************************
;ファイルレジスタの定義
COUNT EQU 0x20 ;ウェイトループ用
COUNT15 EQU 0x21 ;ウェイトループ用
MEM_1 EQU 0x22 ;ウェイト用レジスタ
MEM_2 EQU 0x23 ;カウント0フラグ用
SEG_1 EQU 0x24 ;1桁目クレジット
SEG_2 EQU 0x25 ;2桁目クレジット
SEG_3 EQU 0x26 ;3桁目クレジット
SEG_4 EQU 0x27 ;4桁目クレジット
SEG_5 EQU 0x28 ;5桁目クレジット
S_FLG EQU 0x29 ;seg表示フラグ
C_SEG_1 EQU 0x2A ;1桁目クレジット設定
C_SEG_2 EQU 0x2B ;2桁目クレジット設定
C_SEG_3 EQU 0x2C ;3桁目クレジット設定
C_SEG_4 EQU 0x2D ;4桁目クレジット設定
C_SEG_5 EQU 0x2E ;5桁目クレジット設定
DE_CNT EQU 0x2F ;デコードカウンタ
DE_WORK EQU 0x30 ;一時余り格納場所(デコードで使用)
DE_VAL EQU 0x31 ;デコードしたい値(変換後は壊れる)
CREDIT EQU 0x32 ;クレジット
OP_FLG EQU 0x33 ;オプション接続フラグ
MEM_3 EQU 0x34 ;長押判定用
CR_MEM EQU 0x35 ;クレジットメモリ
;RAポート割り当て
SENS0 SET 0 ;センサー0
SENS1 SET 1 ;センサー1
SENS2 SET 2 ;センサー2
SENS3 SET 3 ;センサー3
HOP_E SET 4 ;ホッパー・イネーブル端子
RST_E SET 5 ;リセット・イネーブル端子
BET_B SET 6 ;ベットボタン入力
SEL_E SET 7 ;セレクタ・イネーブル端子
;RBポート割り当て
DIGIT SET 4 ;桁端子
CRE_SET SET 5 ;クレジット・セット端子
CRE_E SET 6 ;クレジット・イネーブル端子
CRE_UP SET 7 ;クレジット・アップ端子
;
ORG 0x2124 ;ポインタ処理の為0x2100+1桁目のFレジスタ位置
DE D'8',D'8',D'8',D'8',D'8'
ORG 0x2132 ;ポインタ処理の為0x2100+CREDITのFレジスタ位置
DE D'50'
;
ORG 0 ;リセットベクタ
;
START
;入出力ポートの設定
CLRF OP_FLG ;クリア
P_INI
MOVLW B'00000111' ;コンパレータ不使用
MOVWF CMCON ;コンパレータI/O設定
BSF STATUS,RP0 ;バンク1に切り替え
MOVLW B'11110000' ;RA<0-3>出力
MOVWF TRISA ;ポートA方向(入出力)設定
MOVLW B'11110000' ;RB<0-3>出力
MOVWF TRISB ;ポートB方向(入出力)設定
MOVLW B'10000000' ;オプションレジスタの設定
MOVWF OPTION_REG ;タイマ不使用
BCF STATUS,RP0 ;バンク0に切り替え
BTFSC PORTB,DIGIT ;PORTB<4> → (0)?
BSF OP_FLG,0 ;OP_FLG → (1)オプション接続有り
BSF STATUS,RP0 ;バンク1に切り替え
MOVLW B'11100000' ;RB<0-4>出力
MOVWF TRISB ;ポートB方向(入出力)設定
BCF STATUS,RP0 ;バンク0に切り替え
;出力ポート初期設定
CLRF PORTA ;クリア
CLRF PORTB ;クリア
;ファイルレジスタ初期化
F_INI CLRF MEM_1 ;クリア
CLRF MEM_2 ;クリア
MOVLW B'11111111' ;FF
MOVWF C_SEG_4 ;4桁目クレジットクリア
MOVWF C_SEG_5 ;5桁目クレジットクリア
BSF PORTA,SENS3 ;PORTA<3> → (1)ホッパーセンサー2 オン
MOVLW D'255' ;ms設定
MOVWF COUNT15 ;
CALL LOOP_15 ;ウェイト
MOVLW S_FLG ;
CALL RD_ADR ;カウントデータ読み込み
MOVLW CREDIT ;
MOVWF FSR ;FSRセット
CALL EE_RE ;クレジットデータ読み込み
MOVWF CREDIT ;クレジットデータセット
;******************************プログラム本文***************************
;入力ポートの読み取り
;-------------------------------セレクタ端子----------------------------
SE_E BTFSS PORTA,SEL_E ;PORTA<7> → (1)? セレクタ・イネーブル端子
BTFSC PORTA,BET_B ;PORTA<6> → (0)? BET入力端子
GOTO HP_E ;ホッパー・イネーブルチェックへ
GOTO SEL_OUT ;セレクタアウトへ (65.406mSec)
;-------------------------------ホッパー端子----------------------------
HP_E BTFSS PORTA,HOP_E ;PORTA<4> → (1)? ホッパー・イネーブル端子
GOTO HOP_OUT ;ホッパーアウトへ (80.475mSec)
BTFSS OP_FLG,0 ;OP_FLG<0> → (1)? オプション接続チェック
GOTO SE_E ;セレクタイネーブルチェックへ
;----------------------------クレジット入力端子-------------------------
CR_E_H BTFSC PORTB,CRE_E ;PORTB<6> → (0)? クレジット・イネーブル端子
GOTO CR_SET ;クレジット・セットチェックへ
CR_E_L BTFSC PORTB,CRE_E ;PORTB<6> → (0)? クレジット・イネーブル端子
GOTO CR_IN ;クレジットインへ
GOTO CR_E_L ;クレジット・イネーブルLチェックへ
;----------------------------クレジット設定端子-------------------------
CR_SET MOVLW D'67' ;判定回数設定
MOVWF MEM_3 ;
BTFSS OP_FLG,1 ;クレジット・セット アクティブフラグ → (1)?
GOTO CR_ST_L ;
BTFSS PORTB,CRE_SET ;PORTB<5> → (1)? クレジット・セット端子
GOTO RS_E ;リセット・イネーブルチェックへ
BCF OP_FLG,1 ;クレジット・セット アクティブフラグクリア
CR_ST_L BTFSC PORTB,CRE_SET ;PORTB<5> → (0)? クレジット・セット端子
GOTO RS_E ;リセット・イネーブルチェックへ
MOVLW S_FLG ;
CALL LED_OUT ;LEDアウトへ (15.084mSec)
DECFSZ MEM_3,F ;
GOTO CR_ST_L ;クレジット・セットチェックLへ
BSF OP_FLG,1 ;クレジット・セット アクティブフラグセット
GOTO CR_UP ;クレジット・アップへ
;------------------------------リセット検出-----------------------------
RS_E BTFSS PORTA,RST_E ;PORTA<5> → (1)? リセット・イネーブル端子
GOTO RST_CNT ;リセットコントロールへ
MOVLW S_FLG ;
CALL LED_OUT ;LEDアウトへ (15.084mSec)
GOTO SE_E ;セレクタイネーブルチェックへ
;+++++++++++++++++++++++++++++++クレジットアップ++++++++++++++++++++++++++++++
CR_UP MOVLW D'67' ;判定回数設定
MOVWF MEM_3 ;
MOVF CREDIT,W ;
MOVWF DE_VAL ;デコード変数に代入
MOVLW S_FLG ;
CALL HEXDEC ;デコードへ
MOVLW DE_CNT ;
CALL LED_OUT ;LEDアウトへ (15.084mSec)
BTFSS OP_FLG,1 ;クレジット・セット アクティブフラグ → (1)?
GOTO CR_ST_H ;
BTFSS PORTB,CRE_SET ;PORTB<5> → (1)? クレジット・セット端子
GOTO CR_UP ;クレジット・アップへ
BCF OP_FLG,1 ;クレジット・セット アクティブフラグクリア
CR_ST_H BTFSC PORTB,CRE_SET ;PORTB<5> → (0)? クレジット・セット端子
GOTO CR_UP_A ;クレジット・アップチェックへ
MOVLW DE_CNT ;
CALL LED_OUT ;LEDアウトへ (15.084mSec)
DECFSZ MEM_3,F ;
GOTO CR_ST_H ;クレジット・セットチェックへ
BSF OP_FLG,1 ;クレジット・セット アクティブフラグセット
GOTO SE_E ;セレクタイネーブルチェックへ
CR_UP_A BTFSS OP_FLG,2 ;クレジット・アップ アクティブフラグ → (1)?
GOTO CR_UP_L ;
BTFSS PORTB,CRE_UP ;PORTB<7> → (1)? クレジット・アップ端子
GOTO CR_UP ;クレジット・アップへ
BCF OP_FLG,2 ;クレジット・アップ アクティブフラグクリア
CR_UP_L BTFSC PORTB,CRE_UP ;PORTB<7> → (0)? クレジット・アップ端子
GOTO CR_RST ;クレジット・リセットチェックへ
INCF CREDIT,F ;クレジット・インクリメント
BSF OP_FLG,2 ;クレジット・アップ アクティブフラグセット
GOTO CR_WR ;クレジット書き込み
CR_RST BTFSC PORTA,RST_E ;PORTA<5> → (0)? リセット・イネーブル端子
GOTO CR_UP ;クレジット・アップチェックへ
CLRF CREDIT ;クリア
CR_WR BTFSC STATUS,Z ;if CREDIT=0
INCF CREDIT,F ;then CREDIT++
MOVLW CREDIT ;
MOVWF FSR ;FSRセット
CALL EE_WR ;EEPROM書き込み (4.018mSec)
GOTO CR_UP ;クレジット・アップチェックへ
;#############################サブルーチン郡############################
;セレクタ・ポート出力
SEL_OUT BTFSC OP_FLG,0 ;OP_FLG<0> → (0)?
CALL D_COUNT ;カウントダウン (00.032Sec)
MOVLW S_FLG ;
BTFSC OP_FLG,0 ;OP_FLG<0> → (0)?
CALL WR_ADR ;EEPROM書き込み (20.111mSec)
MOVF MEM_2,F ;
BTFSS STATUS,Z ;値の0判断
GOTO SE_E ;
BSF PORTA,SENS0 ;PORTA<0> → (1)セレクタセンサー1 オン
MOVLW S_FLG ;
CALL LED_OUT ;LEDアウトへ (15.084mSec)
BSF PORTA,SENS1 ;PORTA<1> → (1)セレクタセンサー2 オン
MOVLW S_FLG ;
CALL LED_OUT ;LEDアウトへ (15.084mSec)
BCF PORTA,SENS0 ;PORTA<0> → (0)セレクタセンサー1 オフ
MOVLW S_FLG ;
CALL LED_OUT ;LEDアウトへ (15.084mSec)
BCF PORTA,SENS1 ;PORTA<1> → (0)セレクタセンサー2 オフ
MOVLW S_FLG ;
CALL LED_OUT ;LEDアウトへ (15.084mSec)
GOTO SE_E ;セレクタイネーブルチェックへ
;ホッパー・ポート出力
HOP_OUT BTFSC OP_FLG,0 ;OP_FLG<0> → (0)?
CALL U_COUNT ;カウントアップ (00.032mSec)
MOVLW S_FLG ;
BTFSC OP_FLG,0 ;OP_FLG<0> → (0)?
CALL WR_ADR ;EEPROM書き込み (20.111mSec)
BSF PORTA,SENS2 ;PORTA<2> → (1)ホッパーセンサー1 オン
MOVLW S_FLG ;
CALL LED_OUT ;LEDアウトへ (15.084mSec)
BCF PORTA,SENS3 ;PORTA<3> → (0)ホッパーセンサー2 オフ
MOVLW S_FLG ;
CALL LED_OUT ;LEDアウトへ (15.084mSec)
BSF PORTA,SENS3 ;PORTA<3> → (1)ホッパーセンサー2 オン
BCF PORTA,SENS2 ;PORTA<2> → (0)ホッパーセンサー1 オフ
MOVLW S_FLG ;
CALL LED_OUT ;LEDアウトへ (15.084mSec)
CALL WAIT_15 ;ウェイト15ms
GOTO SE_E ;セレクタイネーブルチェックへ
;クレジットイン
CR_IN MOVF CREDIT,W ;クレジット設定値読み出し
MOVWF CR_MEM ;
CR_LOOP CALL U_COUNT ;
DECFSZ CR_MEM,F ;
GOTO CR_LOOP ;
MOVLW S_FLG ;
CALL LED_OUT ;LEDアウトへ (15.084mSec)
MOVLW S_FLG ;
CALL WR_ADR ;EEPROM書き込み (20.111mSec)
GOTO SE_E ;リターン
;リセットコントロール
RST_CNT CLRF SEG_1 ;クリア
CLRF SEG_2 ;クリア
CLRF SEG_3 ;クリア
CLRF SEG_4 ;クリア
CLRF SEG_5 ;クリア
MOVLW S_FLG ;
CALL WR_ADR ;EEPROM書き込み (20.111mSec)
GOTO SE_E ;リターン
;LED出力 (15.082mSec)
LED_OUT MOVWF FSR ;FSRセット
MOVLW B'00001111' ;
MOVWF S_FLG ;フラグセット
CALL SEG_OUT ;5桁目
CALL SEG_OUT ;4桁目
CALL SEG_OUT ;3桁目
CALL SEG_OUT ;2桁目
CLRF S_FLG ;フラグリセット
CALL SEG_OUT ;1桁目
RETURN ;リターン
;桁単位出力 (3.013mSec)
SEG_OUT DECF FSR,F ;Fレジスタのポインタ処理
MOVF INDF,W ;Fレジスタの値取り出し
BTFSS STATUS,Z ;値の0判断
CLRF S_FLG ;0以外ならフラグリセット
IORWF S_FLG,W ;OR演算
MOVWF PORTB ;ポート出力
BSF PORTB,DIGIT ;桁選択出力
CALL WAIT ;ウェイト
CALL WAIT ;ウェイト
CALL WAIT ;ウェイト
BCF PORTB,DIGIT ;
RETURN ;リターン
;10進5桁アップカウンタ (0.030mSec)
U_COUNT INCF SEG_1, F ;1桁目カウントアップ
MOVF SEG_1, W ;SEG_1 → (W)
SUBLW D'10' ;(10)-(W)
BTFSS STATUS, Z ;=(0)?
GOTO WAIT_4 ;ウェイト(24サイクル)
MOVWF SEG_1 ;(W) → SEG_1
INCF SEG_2, F ;2桁目カウントアップ
MOVF SEG_2, W ;SEG_2 → (W)
SUBLW D'10' ;(10)-(W)
BTFSS STATUS, Z ;=(0)?
GOTO WAIT_3 ;ウェイト(18サイクル)
MOVWF SEG_2 ;(W) → SEG_2
INCF SEG_3, F ;3桁目カウントアップ
MOVF SEG_3, W ;SEG_3 → (W)
SUBLW D'10' ;(10)-(W)
BTFSS STATUS, Z ;=(0)?
GOTO WAIT_2 ;ウェイト(12サイクル)
MOVWF SEG_3 ;(W) → SEG_3
INCF SEG_4, F ;4桁目カウントアップ
MOVF SEG_4, W ;SEG_4 → (W)
SUBLW D'10' ;(10)-(W)
BTFSS STATUS, Z ;=(0)?
GOTO WAIT_1 ;ウェイト(6サイクル)
MOVWF SEG_4 ;(W) → SEG_4
INCF SEG_5, F ;5桁目カウントアップ
MOVF SEG_5, W ;SEG_5 → (W)
SUBLW D'10' ;(10)-(W)
BTFSS STATUS, Z ;=(0)?
GOTO STEP_2 ;カウント終了
MOVWF SEG_5 ;(W) → SEG_5
GOTO OVER ;オーバーフロー
;10進5桁ダウンカウンタ (0.030mSec)
D_COUNT DECF SEG_1, F ;1桁目カウントダウン
MOVF SEG_1, W ;SEG_1 → (W)
ADDLW D'10' ;(10)+(W)
BTFSS STATUS, C ;=(255↑)?
GOTO WAIT_4 ;ウェイト(24サイクル)
MOVWF SEG_1 ;(W) → SEG_1
DECF SEG_2, F ;2桁目カウントダウン
MOVF SEG_2, W ;SEG_2 → (W)
ADDLW D'10' ;(10)+(W)
BTFSS STATUS, C ;=(255↑)?
GOTO WAIT_3 ;ウェイト(18サイクル)
MOVWF SEG_2 ;(W) → SEG_2
DECF SEG_3, F ;3桁目カウントダウン
MOVF SEG_3, W ;SEG_3 → (W)
ADDLW D'10' ;(10)+(W)
BTFSS STATUS, C ;=(255↑)?
GOTO WAIT_2 ;ウェイト(12サイクル)
MOVWF SEG_3 ;(W) → SEG_3
DECF SEG_4, F ;4桁目カウントダウン
MOVF SEG_4, W ;SEG_4 → (W)
ADDLW D'10' ;(10)+(W)
BTFSS STATUS, C ;=(255↑)?
GOTO WAIT_1 ;ウェイト(6サイクル)
MOVWF SEG_4 ;(W) → SEG_4
DECF SEG_5, F ;5桁目カウントダウン
MOVF SEG_5, W ;SEG_5 → (W)
ADDLW D'10' ;(10)+(W)
BTFSS STATUS, C ;=(255↑)?
GOTO STEP_1 ;カウント終了
CLRF SEG_1 ;クリア
CLRF SEG_2 ;クリア
CLRF SEG_3 ;クリア
CLRF SEG_4 ;クリア
CLRF SEG_5 ;クリア
CLRF MEM_2 ;クリア
MOVLW S_FLG ;
CALL LED_OUT ;LEDアウトへ (15.084mSec)
INCF MEM_2, F ;
GOTO STEP_2 ;カウント終了
;EEPROM書き込み (20.109mSec)
WR_ADR MOVWF FSR ;FSRセット
DECF FSR,F ;Fレジスタのポインタ処理
CALL EE_WR ;5桁目書き込み
DECF FSR,F ;Fレジスタのポインタ処理
CALL EE_WR ;4桁目書き込み
DECF FSR,F ;Fレジスタのポインタ処理
CALL EE_WR ;3桁目書き込み
DECF FSR,F ;Fレジスタのポインタ処理
CALL EE_WR ;2桁目書き込み
DECF FSR,F ;Fレジスタのポインタ処理
CALL EE_WR ;1桁目書き込み
RETURN ;リターン
;桁単位EEPROM書き込み (4.018mSec)
EE_WR BSF STATUS,RP0 ;ページ1
MOVF FSR,W ;FSR → (W)
MOVWF EEADR ;アドレスセット
MOVF INDF,W ;Fレジスタの値取り出し
MOVWF EEDATA ;データセット
BSF EECON1,WREN ;セットWRイネーブル
MOVLW H'55' ;書き込みシーケンス
MOVWF EECON2 ;書き込みシーケンス
MOVLW H'AA' ;書き込みシーケンス
MOVWF EECON2 ;書き込みシーケンス
BSF EECON1,WR ;書き込み
WR_LP BTFSC EECON1,WR ;確認待ちループ
GOTO WR_LP ;ループ
BCF STATUS,RP0 ;ページ0
RETURN ;リターン
;EEPROM読み込み (0.064mSec)
RD_ADR MOVWF FSR ;FSRセット
DECF FSR,F ;Fレジスタのポインタ処理
CALL EE_RE ;5桁目読み込み
MOVWF SEG_5 ;5桁目セット
DECF FSR,F ;Fレジスタのポインタ処理
CALL EE_RE ;4桁目読み込み
MOVWF SEG_4 ;4桁目セット
DECF FSR,F ;Fレジスタのポインタ処理
CALL EE_RE ;3桁目読み込み
MOVWF SEG_3 ;3桁目セット
DECF FSR,F ;Fレジスタのポインタ処理
CALL EE_RE ;2桁目読み込み
MOVWF SEG_2 ;2桁目セット
DECF FSR,F ;Fレジスタのポインタ処理
CALL EE_RE ;1桁目読み込み
MOVWF SEG_1 ;1桁目セット
RETURN ;リターン
;桁単位EEPROM読み込み
EE_RE BSF STATUS,RP0 ;ページ1
MOVF FSR,W ;FSR → (W)
MOVWF EEADR ;アドレスセット
BSF EECON1,RD ;読み出し
MOVF EEDATA,W ;データ → (W)
BCF STATUS,RP0 ;ページ0
RETURN ;リターン
;デコードサブルーチン (0.319mSec)
HEXDEC: MOVWF FSR ;FSRセット
CALL DECODE ;最下位変換
CALL DECODE ;
CALL DECODE ;最上位変換
RETURN
;桁単位デコードサブルーチン
DECODE: MOVLW D'8' ;8ビットくり返し
MOVWF DE_CNT ;
CLRF DE_WORK ;ワークエリア初期化
DEC_0: BCF STATUS,C ;キャリフラグ・クリア
RLF DE_VAL,F ;左シフト
RLF DE_WORK,F ;ワークエリア・ローテート
MOVLW B'11110110' ;
ADDWF DE_WORK,W ;
BTFSC STATUS,C ;
MOVWF DE_WORK ;
BTFSC STATUS,C ;
INCF DE_VAL,F ;
DECFSZ DE_CNT,F ;
GOTO DEC_0 ;
INCF FSR,F ;FSRインクリメント
MOVF DE_WORK,W ;
MOVWF INDF ;
RETURN
;カウントオーバーフロー
OVER BTFSS PORTA,RST_E ;PORTA<5> → (1)? リセット・イネーブル端子
GOTO RST_CNT ;リセットコントロールへ
CLRF S_FLG ;フラグクリア
MOVLW S_FLG ;
MOVWF FSR ;FSRセット
CALL SEG_OUT ;5桁目
CALL SEG_OUT ;4桁目
CALL SEG_OUT ;3桁目
CALL SEG_OUT ;2桁目
CALL SEG_OUT ;1桁目
GOTO OVER ;無限ループ
;戻り時間調整ウェイト
WAIT_4 INCF MEM_1, F ;ウェイト(24サイクル)
NOP
WAIT_3 INCF MEM_1, F ;ウェイト(18サイクル)
NOP
WAIT_2 INCF MEM_1, F ;ウェイト(12サイクル)
NOP
WAIT_1 INCF MEM_1, F ;ウェイト(6サイクル)
LOOP_1 NOP
DECFSZ MEM_1, F ;(MEM_1)-(1) → (0)?
GOTO LOOP_1 ;
STEP_1 CLRF MEM_2 ;クリア
STEP_2 RETURN ;リターン
;15msウェイトサブルーチン
WAIT_15 MOVLW D'15' ;ms設定
MOVWF COUNT15 ;
LOOP_15 CALL WAIT ;
DECFSZ COUNT15,F ;
GOTO LOOP_15 ;
RETURN ;リターン
;1msウェイトサブルーチン
WAIT MOVLW D'249' ;
MOVWF COUNT ;
LOOP NOP ;
DECFSZ COUNT,F ;
GOTO LOOP ;
RETURN ;リターン
;プログラム終了
END
私の場合、フロー図を書かずいきなりプログラムに入るので時間が経つと忘れがちですがw
覚えている範囲で説明いたします。
ポートの設定で表示部分の接続を確認し→初期化→レジスタの初期化でウェイト時間を置き表示部との同期に備えてからEEPROMに書き込んだ以前のデータ(クレジット数とクレジット上げ設定)を読み出す。
次に入力ポートの読み取り待ち状態のループに入りますが、LEDダイナミック表示でそれほど正確さの要らない物なので割り込みは使わず定期的にLED表示をリフレッシュしています。
入力に従い各サブルーチンに飛びシーケンスに従い出力するだけの単純な構造です。
BETボタンが押されれば「セレクタ・ポート出力」に飛びカウントをダウンさせる
ホッパーがイネーブルになれば「ホッパー・ポート出力」に飛びカウントをアップさせる
クレジット入力があれば設定数分のクレジットを加算する
クレジット設定端子が押されれば1秒以上の長押しかを判定し設定モードに移行する
カウント数などの変化があればその都度EEPROMに書き込むので電源を切っても以前の数値が記録されます。
カウントが99999以上になればオーバーフローで無限ループに入りホッパーエラーでスロット機が停止するようになりリセットボタンで復帰できます。
クレジット上げ設定は1〜255まで可能で1バイトレジスタを使用しているので表示させるためには10進デコードをして一桁ずつ表示しています。
改造などをするのにわかりにくい部分があればメールをくださればサポートいたします。
これで最終回なので今までの全てのデータを以下からダウンロードしていただけます。↓
回路図
パターン図
プログラムソース
ケース加工図面
部品表
マニュアル
ダウンロード
余談ですが、ここで紹介した今までのスロット関係は「株式会社 遊競」という所で数年前まで実際に販売されていた物です。
|