
рдЗрд╕ рд▓реЗрдЦ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдирдП рд▓реЛрдЧреЛрдВ рдХреЛ рдХреЛрдбрд╛рдВрддрд░рдХ рднрд╛рд╖рд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХреЛрдбрд╛рдВрддрд░рдХ рдкрд┐рдХ-рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рдкрд░рд┐рд╡рд╛рд░ рдХреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд░рдирд╛ рд╣реИред рдореИрдВрдиреЗ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ pic16f886 рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рд▓рд┐рдпрд╛ред рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдФрд░ рдореЙрдбрд▓рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП, рдХреНрд░рдорд╢рдГ
MPlab IDE (рдорд╛рдЗрдХреНрд░реЛрдЪрд┐рдк) рдФрд░
рдкреНрд░реЛрдЯрд┐рдпрд╕ (рд▓реИрдмрд╕реЗрдЯрд░) рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╕рд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
рдпрд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╡рд┐рдХрд▓рд╛рдВрдЧ рд▓реЛрдЧреЛрдВ рдХреЛ
рд░реЙрдХ, рдкреЗрдкрд░, рдХреИрдВрдЪреА, рдкреЗрдкрд░ (рдЖрдВрд╢рд┐рдХ рдкрдХреНрд╖рд╛рдШрд╛рдд, рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рдпрд╛ рд╣рд╛рдереЛрдВ рдХреА рдХрдореА) рдЦреЗрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдореЗрд░реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рд╣реИред
рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╕рдВрд░рдЪрдирд╛
рдкреНрд░рддреНрдпреЗрдХ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рдкрд╛рд╕ рд╢рд┐рд▓рд╛рд▓реЗрдЦ (рдкрддреНрдерд░, рдХреИрдВрдЪреА, рдХрд╛рдЧрдЬ) рдХреЗ рд╕рд╛рде рдЙрдирдХреЗ рдирд┐рдкрдЯрд╛рди рдореЗрдВ 3 рдмрдЯрди рд╣реЛрддреЗ рд╣реИрдВред рдЪрдпрди рдФрд░ рд╕реНрдХреЛрд░ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╕рд╛рдд-рдЦрдВрдб рдмреЛрд░реНрдб рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИред рд╕реНрдХреЛрд░ 9 рдЕрдВрдХ рддрдХ рдЬрд╛рддрд╛ рд╣реИред "рд░реАрд╕реЗрдЯ" рдмрдЯрди рджрдмрд╛рдХрд░ рдПрдХ рдирдпрд╛ рдЧреЗрдо рд╢реБрд░реВ рдХрд░реЗрдВ
рддрд╕реНрд╡реАрд░ рдирд┐рдпрдВрддреНрд░рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ
рдореИрдВ рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рджреЛрд╣рд░рд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╣рдо рдорд╢реАрди-рдЙрдиреНрдореБрдЦ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рднрд╛рд╖рд╛ - рдЕрд╕реЗрдВрдмрд▓реА рднрд╛рд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдШреЛрд╖рдгрд╛ рдХрд░реЗрдВрдЧреЗ рдХрд┐ рд╣рдо рдХрд┐рд╕ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдпреЛрдЬрди рд░рдЬрд┐рд╕реНрдЯрд░ рдХреЛ рдЖрд░рдХреНрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╣рдореЗрдВ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА:
LIST P=16f886
#include <p16f886.inc>
CBLOCK 0x20
IGROK_1
IGROK_2
KAMEN
NOJNITSI
BUMAGA
SCHET_1
SCHET_2
Reg_1
Reg_2
Reg_3
NINE
ENDC
рдЕрдЧрд▓рд╛, рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╢реБрд░реБрдЖрдд рдФрд░ рдЗрдирдкреБрдЯ / рдЖрдЙрдЯрдкреБрдЯ рдкреЛрд░реНрдЯ рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди:
start ;
bsf STATUS, RP1 ; 3
bsf STATUS, RP0
clrf ANSEL ; \
clrf ANSELH
BCF STATUS, RP1 ; 1
BSF STATUS, RP0
movlw b'11100111' ; RA0,RA1,RA2,RA7,RA6,RA5 ,
movwf TRISA
movlw b'00000000' ;
movwf TRISB
movlw b'00000001' ; RC0 ,
movwf TRISC
bcf STATUS,RP0 ; 0
bcf STATUS,RP1
CLRF PORTA ;
CLRF PORTB
CLRF PORTC
movlw b'00000001'
movwf KAMEN
movlw b'00000010'
movwf NOJNITSI
movlw b'00000100'
movwf BUMAGA
movlw .9
movwf NINE
clrf IGROK_1
clrf IGROK_2
clrf SCHET_1
clrf SCHET_2
clrf W
bcf INTCON,6 ;
bcf INTCON,7
рдЯреАрдореЗрдВ:
Movlw - рдмреИрдЯрд░реА рдХреЗ рд▓рд┐рдП
рдПрдХ рд╕реНрдерд┐рд░
рднреЗрдЬрддрд╛ рд╣реИ ред
Movwf - рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреИрдЯрд░реА рд╕рд╛рдордЧреНрд░реА
рднреЗрдЬрддрд╛ рд╣реИbcf - рдПрдХ рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рд╛рдл рдХрд░рддрд╛ рд╣реИ
bsf - рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ рдмрд┐рдЯ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ
clrf - рд╕реНрдкрд╖реНрдЯ рдорд╛рдорд▓рд╛
btfss - рдПрдХ рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рд╛ рдЪреЗрдХ рдХрд░рддрд╛ рд╣реИ, рдЕрдЧрд░ рдкрд░рд┐рдгрд╛рдо 1 рдкрд░ рдЕрдЧрд▓реЗ рдХрдорд╛рдВрдб рдХреЛ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ
btfs - рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ рдмрд┐рдЯ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИ, рдпрджрд┐ рдкрд░рд┐рдгрд╛рдо 0 рд╣реИ рддреЛ рдЕрдЧрд▓реЗ рдХрдорд╛рдВрдб рдХреЛ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ
рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рдореБрдЦреНрдп рдЪрдХреНрд░ред рдпрд╣ рджреЛрдиреЛрдВ рдирд┐рдпрдВрддреНрд░рдХ рдкрд░ рдмрдЯрди рдХреНрд▓рд┐рдХ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИ:
GAME ;
BTFSS PORTA,0
CALL PRE_KANMEN_1
BTFSS PORTA,5
CALL PRE_KANMEN_2
BTFSS PORTA,1
CALL PRE_NOJNITSI_1
BTFSS PORTA,6
CALL PRE_NOJNITSI_2
BTFSS PORTA,2
CALL PRE_BUMAGA_1
BTFSS PORTA,7
CALL PRE_BUMAGA_2
GOTO PROVERKA
VOZVRAT ;
GOTO GAME
PROVERKA рд╕рдмрд░реВрдЯреАрди рдпрд╣ рдЬрд╛рдВрдЪрддрд╛ рд╣реИ рдХрд┐ рдЦрд┐рд▓рд╛рдбрд╝реА 1 рджреНрд╡рд╛рд░рд╛ рдХрд┐рд╕реА рддрддреНрд╡ рдХреЛ рдЪреБрдирд╛ рдЧрдпрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ:
PROVERKA ;
BTFSC IGROK_1,0 ;
GOTO ONE
BTFSC IGROK_1,1 ;
GOTO TWO
BTFSC IGROK_1,2 ;
GOTO THREE
GOTO VOZVRAT
рдЬрдм рдПрдХ рдЦрд┐рд▓рд╛рдбрд╝реА рдПрдХ рдмрдЯрди рджрдмрд╛рддрд╛ рд╣реИ, рддреЛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрдкрдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рд╕рдВрдХреНрд░рдордг рд╣реЛрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рдЦрд┐рд▓рд╛рдбрд╝реА 1 рдиреЗ рдПрдХ рдкрддреНрдерд░ рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рд╣реИ):
PRE_KAMEN_1 ;
MOVLW .1
CALL KOD
MOVWF PORTB
BSF PORTA,3
MOVFW KAMEN
MOVWF IGROK_1
CLRF W
call delay
BCF PORTA,3
RETURN
рдЪрдпрдирд┐рдд рдЖрдЗрдЯрдо IGROK_1 рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ
рдЦрд┐рд▓рд╛рдбрд╝реА 1 рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЬрд╛рдВрдЪ рдХреА рдЬрд╛рддреА рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЦрд┐рд▓рд╛рдбрд╝реА 2 рджреНрд╡рд╛рд░рд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдЙрд╕реА рд╕рдордп рдЪрдпрди рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рддрд╛ рд╣реИред рддреБрд▓рдирд╛ рдХреЗ рдмрд╛рдж, рдпрд╣ 3 рдореЗрдВ рд╕реЗ 1 рдЙрдкрдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдЬрд╛рддрд╛ рд╣реИ:
1) рдкрд╣рд▓рд╛ рдЦрд┐рд▓рд╛рдбрд╝реА рдЬреАрддрд╛
2) рджреВрд╕рд░рд╛ рдЦрд┐рд▓рд╛рдбрд╝реА рдЬреАрддрд╛
3) рдбреНрд░рд╛
ONE ;
BTFSC IGROK_2,0
GOTO NICHA
BTFSC IGROK_2,1
GOTO FIRST_WIN
BTFSC IGROK_2,2
GOTO SECOND_WIN
GOTO VOZVRAT
TWO ;
BTFSC IGROK_2,0
GOTO SECOND_WIN
BTFSC IGROK_2,1
GOTO NICHA
BTFSC IGROK_2,2
GOTO FIRST_WIN
GOTO VOZVRAT
THREE ;
BTFSC IGROK_2,0
GOTO FIRST_WIN
BTFSC IGROK_2,1
GOTO SECOND_WIN
BTFSC IGROK_2,2
GOTO NICHA
GOTO VOZVRAT
рд╕рднреА 3 рдЙрдкрдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдЪрд┐рддреНрд░рд┐рдд рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рдкрд╣рд▓рд╛ рдЦрд┐рд▓рд╛рдбрд╝реА рдЬреАрддрд╛:
FIRST_WIN ;
incf SCHET_1 ; 1
FIRST_W ;
MOVFW SCHET_1
CALL KOD2
MOVWF PORTB
BSF PORTC,1
NOP ;
NOP
NOP
NOP
NOP
BCF PORTC,1
MOVFW SCHET_2
CALL KOD2
MOVWF PORTB
BSF PORTC,2
NOP
NOP
NOP
NOP
NOP
BCF PORTC,2
BTFSC PORTC,0
GOTO FIRST_W
PROV ;
BTFSC PORTC,0 ; ""
GOTO PRED_GAME
GOTO PROV
рддрддреНрд╡реЛрдВ рдХреЛ рдХреЛрдб рджрд┐рдирдЪрд░реНрдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
KOD
addwf PCL,1;
retlw b'11111111';
retlw b'10100011'; ''
retlw b'11001001'; ''
retlw b'11000000'; ''
рдкрддреНрдерд░ -

рдХреИрдВрдЪреА -

рдХрд╛рдЧрдЬ -

KOD2 рджрд┐рдирдЪрд░реНрдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдВрдХ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ:
KOD2
addwf PCL,1;
retlw b'11000000'; '0'
retlw b'11111001'; '1'
retlw b'10100100'; '2'
retlw b'10110000'; '3'
retlw b'10011001'; '4'
retlw b'10010010'; '5'
retlw b'10000010'; '6'
retlw b'11111000'; '7'
retlw b'10000000'; '8'
retlw b'10010000'; '9'
рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рдЕрдВрддрд┐рдо рдЪрд░рдг IGROK_1 рдФрд░ IGROK_2 рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдирд╛ рдФрд░ рдЦрд╛рддрд╛ рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рд╣реИ:
PRED_GAME ;
CLRF IGROK_1
CLRF IGROK_2
BCF STATUS,2
MOVFW SCHET_1
SUBWF NINE,0
BTFSC STATUS,2
GOTO CLEAR
BCF STATUS,2
MOVFW SCHET_2
SUBWF NINE,0
BTFSC STATUS,2
GOTO CLEAR
GOTO GAME
CLEAR ;
CLRF SCHET_1
CLRF SCHET_2
GOTO GAME
рдирд┐рд╖реНрдХрд░реНрд╖
рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдпреЛрдЬрдирд╛ рдкреНрд░реЛрдЯреАрди рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХреА рдЧрдИ рд╣реИ:

************************************************** ************************
рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП,
.asm рдлрд╝рд╛рдЗрд▓ ,
.hex рдлрд╝рд╛рдЗрд▓ рдФрд░
рд╢реНрд▓реЗрд╖реНрдорд╛ рдореЗрдВ рдХрд┐рдиреНрдирд░