LIST P=16F628A
INCLUDE "P16F628A.INC"
__CONFIG _WDT_OFF & _PWRTE_ON
CBLOCK H'20'
SAYAC ;SAYAC DEĞİŞKENİNİ BİR ADRESE ATA
ENDC
CLRF PORTB ;PORTB Yİ SIFIRLA
;GİRİŞ-ÇIKIŞ TANIMLAMALARI
BANKSEL TRISA ;BANK1 E GEÇİŞ YAP
MOVLW H'FF'
MOVWF TRISA ;PORTA NIN BÜTÜN PİNLERİNİ GİRİŞ YAP
CLRF TRISB ;PORTB NİN BÜTÜN PİNLERİNİ ÇIKIŞ YAP
BANKSEL PORTB ;TEKRAR BANK0 A GEÇ
CLRF PORTB ;PORTB Yİ SIFIRLA
R0 EQU RAM START + 000h
R1 EQU RAM START + 002h
R2 EQU RAM START + 004h
R3 EQU RAM START + 006h
R4 EQU RAM START + 008h
R5 EQU RAM START + 00Ah
R6 EQU RAM START + 00Ch
R7 EQU RAM START + 00Eh
R8 EQU RAM START + 010h
FLAGS EQU RAM START + 012h
GOP EQU RAM START + 013h
RM1 EQU RAM START + 014h
RM2 EQU RAM START + 015h
RR1 EQU RAM START + 016h
RR2 EQU RAM START + 017h
i EQU RAM START + 018h
PORTL EQU PORTB
PORTH EQU PORTA
TRISL EQU TRISB
TRISH EQU TRISA
#define a0 PORTA 0
#define a1 PORTA 2
#define m1 PORTB 0
#define m2 PORTB 1
#define PORTA 0 PORTA, 000h
#define PORTA 2 PORTA, 002h
#define PORTB 0 PORTB, 000h
#define PORTB 1 PORTB, 001h
#define PORTA 1 PORTA, 001h
INCLUDE "SES RO~1.MAC"
INCLUDE "PBPPIC14.LIB"
MOVE CB 007h, CMCON
MOVE CB 000h, PORTB
MOVE CB 000h, TRISA
MOVE CB 000h, TRISB
MOVE CB 000h, PORTA
MOVE CB 000h, i
PAUSE C 001F4h
LABEL L ana
CMPNE TCL PORTA 1, 001h, L00001
PAUSE C 005h
CMPEQ TCL PORTA 1, 001h, ileri
LABEL L L00001
CMPNE TCL PORTA 0, 001h, L00003
PAUSE C 001h
CMPEQ TCL PORTA 0, 001h, saga
LABEL L L00003
CMPNE TCL PORTA 2, 001h, L00005
PAUSE C 001h
CMPEQ TCL PORTA 2, 001h, sola
LABEL L L00005
LOW T m1
LOW T m2
GOTO L ana
LABEL L ileri
MOVE CB 001h, i
LABEL L L00007
CMPGT BCL i, 028h, L00008
HIGH T m1
HIGH T m2
PAUSE C 019h
NEXT BCL i, 001h, L00007
LABEL L L00008
MOVE CB 001h, i
LABEL L L00009
CMPGT BCL i, 008h, L00010
GOSUB L dur
NEXT BCL i, 001h, L00009
LABEL L L00010
GOTO L ana
LABEL L sola
MOVE CB 001h, i
LABEL L L00011
CMPGT BCL i, 014h, L00012
HIGH T m2
LOW T m1
PAUSE C 019h
NEXT BCL i, 001h, L00011
LABEL L L00012
MOVE CB 001h, i
LABEL L L00013
CMPGT BCL i, 008h, L00014
GOSUB L dur
NEXT BCL i, 001h, L00013
LABEL L L00014
GOTO L ana
LABEL L saga
MOVE CB 001h, i
LABEL L L00015
CMPGT BCL i, 014h, L00016
LOW T m2
HIGH T m1
PAUSE C 019h
NEXT BCL i, 001h, L00015
LABEL L L00016
MOVE CB 001h, i
LABEL L L00017
CMPGT BCL i, 008h, L00018
GOSUB L dur
NEXT BCL i, 001h, L00017
LABEL L L00018
GOTO L ana
LABEL L dur
MOVE CB 000h, TRISA
MOVE CB 000h, PORTB
LOW T m1
LOW T m2
PAUSE C 032h
RETURN
END