;****************************************************************************
; This Program is the standard of 7 segment LED control.
; All LEDs are driven by dynamic scanning that is directly driven by
; CPU itself.
;****************************************************************************
LIST P=PIC16F84
INCLUDE "P16F84.INC"
;****************************
; Define Constant or Work
;****************************
CNT1 EQU 0DH ;Timer Counter
CNT2 EQU 0EH ;Timer Counter
CNT3 EQU 0FH ;Loop counter
COLUM EQU 10H ;Display Digit Position
NUMBER EQU 11H ;Test Display Data
TEMP EQU 12H ;Work Area
;****************************
; JUMP HOOK
;****************************
ORG 0
GOTO MAIN ;RESET HOOK
ORG 4
GOTO INT_ ;Interrupt Hook
ORG 8H
;********************************
; Main Routine
;********************************
MAIN
BCF INTCON,GIE ;disable interrupt
CLRF NUMBER ;reset display data
; PORT A & B Initialize Routine
BSF STATUS,RP0 ;Set page 1
CLRF TRISA ;PortA is all output
CLRF TRISB ;Port B is all output
BCF STATUS,RP0 ;Set Page 0
MAINLP
MOVLW 28H ;about 1sec loop
MOVWF CNT3 ;display counter
LOOP
MOVLW 10H ;PORT A Start position
MOVWF COLUM ;Save for Start
MOVF NUMBER,W ;Get display data
MOVWF TEMP ;Save tempolary
NEXT
MOVF TEMP,W ;Get data
CALL DISP ;Display digit
INCF TEMP,F ;Data +1
BCF STATUS,C ;Carry reset
RRF COLUM,F ;Shift to next digit
MOVF COLUM,W
ANDLW 1FH ;5 digit end test
BTFSS STATUS,Z ;If end?
GOTO NEXT ;goto next digit
DECFSZ CNT3,F ;test loop end
GOTO LOOP ;not end
INCF NUMBER,F ;Increment display data
GOTO MAINLP ;Loop
;*****************************************
; Display Control Sub
; Time skew of each digit is 5 msec.
;*****************************************
DISP
CALL GET_7SEG ;Convert to 7 Segment Data
MOVWF PORTB ;Output Data
MOVF COLUM,W ;Get Colum
MOVWF PORTA ;Output data
CALL TIME5M ;Wait 5msec
RETURN
;*************************************************
; Convert BCD to 7SEG Code
; PORT B0 is used for another,then data is
; shifted 1 bit left
;*************************************************
GET_7SEG
ANDLW 0FH ;Mask upper 4bits
ADDWF PCL,F ;Add to PC reg
RETLW B'01111110' ;Code 0
RETLW B'00001100' ;Code 1
RETLW B'10110110' ;Code 2
RETLW B'10011110' ;Code 3
RETLW B'11001100' ;Code 4
RETLW B'11011010' ;Code 5
RETLW B'11111010' ;Code 6
RETLW B'00001110' ;Code 7
RETLW B'11111110' ;Code 8
RETLW B'11001110' ;Code 9
RETLW B'11101110' ;Code A
RETLW B'11111000' ;Code b
RETLW B'01110010' ;Code C
RETLW B'10111100' ;Code d
RETLW B'11110010' ;Code E
RETLW B'11100010' ;Code F
;**************************************
; Timer Routine
; TIM5M:5msec
;**************************************
TIME5M
MOVLW 9H ;About 5msec
MOVWF CNT2 ;
TIMLP2
CLRF CNT1 ;
TIMLP1
NOP ;dumy nop
NOP
DECFSZ CNT1,F
GOTO TIMLP1 ;5*256-1
DECFSZ CNT2,F
GOTO TIMLP2 ;10*((5*256-1)+3)-1
RETURN ;+3=12822*0.4usec=5.1msec
;****************************************************
; INT Interrupt Dumy Routine (ignored)
;****************************************************
INT_
RETURN
END
; This Program is the standard of 7 segment LED control.
; All LEDs are driven by dynamic scanning that is directly driven by
; CPU itself.
;****************************************************************************
LIST P=PIC16F84
INCLUDE "P16F84.INC"
;****************************
; Define Constant or Work
;****************************
CNT1 EQU 0DH ;Timer Counter
CNT2 EQU 0EH ;Timer Counter
CNT3 EQU 0FH ;Loop counter
COLUM EQU 10H ;Display Digit Position
NUMBER EQU 11H ;Test Display Data
TEMP EQU 12H ;Work Area
;****************************
; JUMP HOOK
;****************************
ORG 0
GOTO MAIN ;RESET HOOK
ORG 4
GOTO INT_ ;Interrupt Hook
ORG 8H
;********************************
; Main Routine
;********************************
MAIN
BCF INTCON,GIE ;disable interrupt
CLRF NUMBER ;reset display data
; PORT A & B Initialize Routine
BSF STATUS,RP0 ;Set page 1
CLRF TRISA ;PortA is all output
CLRF TRISB ;Port B is all output
BCF STATUS,RP0 ;Set Page 0
MAINLP
MOVLW 28H ;about 1sec loop
MOVWF CNT3 ;display counter
LOOP
MOVLW 10H ;PORT A Start position
MOVWF COLUM ;Save for Start
MOVF NUMBER,W ;Get display data
MOVWF TEMP ;Save tempolary
NEXT
MOVF TEMP,W ;Get data
CALL DISP ;Display digit
INCF TEMP,F ;Data +1
BCF STATUS,C ;Carry reset
RRF COLUM,F ;Shift to next digit
MOVF COLUM,W
ANDLW 1FH ;5 digit end test
BTFSS STATUS,Z ;If end?
GOTO NEXT ;goto next digit
DECFSZ CNT3,F ;test loop end
GOTO LOOP ;not end
INCF NUMBER,F ;Increment display data
GOTO MAINLP ;Loop
;*****************************************
; Display Control Sub
; Time skew of each digit is 5 msec.
;*****************************************
DISP
CALL GET_7SEG ;Convert to 7 Segment Data
MOVWF PORTB ;Output Data
MOVF COLUM,W ;Get Colum
MOVWF PORTA ;Output data
CALL TIME5M ;Wait 5msec
RETURN
;*************************************************
; Convert BCD to 7SEG Code
; PORT B0 is used for another,then data is
; shifted 1 bit left
;*************************************************
GET_7SEG
ANDLW 0FH ;Mask upper 4bits
ADDWF PCL,F ;Add to PC reg
RETLW B'01111110' ;Code 0
RETLW B'00001100' ;Code 1
RETLW B'10110110' ;Code 2
RETLW B'10011110' ;Code 3
RETLW B'11001100' ;Code 4
RETLW B'11011010' ;Code 5
RETLW B'11111010' ;Code 6
RETLW B'00001110' ;Code 7
RETLW B'11111110' ;Code 8
RETLW B'11001110' ;Code 9
RETLW B'11101110' ;Code A
RETLW B'11111000' ;Code b
RETLW B'01110010' ;Code C
RETLW B'10111100' ;Code d
RETLW B'11110010' ;Code E
RETLW B'11100010' ;Code F
;**************************************
; Timer Routine
; TIM5M:5msec
;**************************************
TIME5M
MOVLW 9H ;About 5msec
MOVWF CNT2 ;
TIMLP2
CLRF CNT1 ;
TIMLP1
NOP ;dumy nop
NOP
DECFSZ CNT1,F
GOTO TIMLP1 ;5*256-1
DECFSZ CNT2,F
GOTO TIMLP2 ;10*((5*256-1)+3)-1
RETURN ;+3=12822*0.4usec=5.1msec
;****************************************************
; INT Interrupt Dumy Routine (ignored)
;****************************************************
INT_
RETURN
END
MPLAB IDEを開く
File ⇒New
source drug ⇒ copy ⇒past
File ⇒ Save as
Named
****************
回胴式遊戯機技術研究会はパチスロの入出力信号を調べて、オシロスコープで波形をみて、その通りの疑似信号を出力するマイコンプログラムを作成して、回路にのせて、パチスロのメダル不要回路を作成して、卒業の技術講習(有料)を開講しています。
この機会に、パチスロの基礎から学んで、アミューズメント仕様パチスロの技術を身につけてみませんか?
受講受付中!!
ご不明の点はご遠慮なくお尋ね下さい。存じ上げていることは丁寧にご案内させていただきます。
回胴式遊戯機技術研究会はパチスロの入出力信号を調べて、オシロスコープで波形をみて、その通りの疑似信号を出力するマイコンプログラムを作成して、回路にのせて、パチスロのメダル不要回路を作成して、卒業の技術講習(有料)を開講しています。
この機会に、パチスロの基礎から学んで、アミューズメント仕様パチスロの技術を身につけてみませんか?
受講受付中!!
ご不明の点はご遠慮なくお尋ね下さい。存じ上げていることは丁寧にご案内させていただきます。
TEL 090-3194-4902