USB Keyboard

Başlatan baran123, 30 Haziran 2015, 22:27:19

baran123

Uzun zamandır aklımdaydı ama klavye olarak tanıtma işlemini yapamamıştım.
Açık kaynak ( XC8 )
Touch için yapılmış ama düzenlenebilir.

http://www.microchip.com/pagehandler/en_us/promo/usbkeypad/

magic_gun

#1
uzun zaman once yapılmıs bir hobi projemiz umarım birilerine yararlı olur

http://www.atariturkiye.com/tr/modifiyeler/atari-800xl-klavye-pc-donusumu.html

;======= Amiga A600 Klevye ============ 01/12/2009 = 12:21 =====;
LIST P=16f874, F=INHX8M
include "P16F874.inc"
;========================================;
;======= DEFINE CONFİG ==================;
;----- KLEVYE I/O -----------------------;
#DEFINE CLOCK PORTA,0 ; I
#DEFINE DATA PORTA,1 ; I
#DEFINE C_1 PORTA,2 ; I
#DEFINE C_4 PORTA,3 ; I
#DEFINE S_8 PORTB,0 ; O
#DEFINE S_7 PORTB,1 ; O
#DEFINE S_6 PORTB,2 ; O
#DEFINE S_5 PORTB,3 ; O
#DEFINE S_4 PORTB,4 ; O
#DEFINE S_3 PORTB,5 ; O
#DEFINE S_2 PORTB,6 ; O
#DEFINE S_1 PORTB,7 ; O
#DEFINE C_5 PORTC,0 ; I
#DEFINE C_6 PORTC,1 ; I
#DEFINE C_7 PORTC,2 ; I
#DEFINE C_8 PORTC,3 ; I
#DEFINE C_F1 PORTC,4 ; I
#DEFINE C_F2 PORTC,5 ; I
#DEFINE C_F3 PORTC,6 ; I
#DEFINE C_F4 PORTC,7 ; I
#DEFINE C_3 PORTD,0 ; I
#DEFINE C_2 PORTD,1 ; I
#DEFINE C_9 PORTD,2 ; I
#DEFINE CAPS_L PORTD,4 ; O
#DEFINE LCD_RS PORTD,5 ; O
#DEFINE LCD_RW PORTD,6 ; O
#DEFINE LCD_E PORTD,7 ; O
#DEFINE SCROLL_L PORTE,0 ; O
#DEFINE NUM_L PORTE,1 ; O
#DEFINE CLOCK_I TRISA,0 ; I/O
#DEFINE DATA_I TRISA,1 ; I/O
;----- TUŞ DEFINE MÜHÜR ------------------;
#DEFINE TUS_DEL REG09,1 ; DEL
#DEFINE TUS_CTRL REG09,5 ; CTRL SOL
#DEFINE TUS_SHFT REG09,0 ; SHIFT SAĞ
#DEFINE TUS_7 REG10,1 ; 7
#DEFINE TUS_6 REG10,2 ; 6
#DEFINE TUS_U REG10,3 ; U
#DEFINE TUS_Y REG10,4 ; Y
#DEFINE TUS_N REG10,7 ; N
#DEFINE TUS_J REG11,5 ; J
#DEFINE TUS_H REG11,6 ; H
#DEFINE TUS_SPC REG11,7 ; SPACE
#DEFINE TUS_F5 REG11,0 ; F5
#DEFINE TUS_8 REG12,1 ; 8
#DEFINE TUS_5 REG12,2 ; 5
#DEFINE TUS_I REG12,3 ; I
#DEFINE TUS_T REG12,4 ; T
#DEFINE TUS_K REG12,5 ; K
#DEFINE TUS_G REG12,6 ; G
#DEFINE TUS_M REG12,7 ; M
#DEFINE TUS_B REG12,0 ; B
#DEFINE TUS_9 REG13,1 ; 9
#DEFINE TUS_4 REG13,2 ; 4
#DEFINE TUS_O REG13,3 ; O
#DEFINE TUS_R REG13,4 ; R
#DEFINE TUS_L REG13,5 ; L
#DEFINE TUS_F REG13,6 ; F
#DEFINE TUS_Ö REG13,7 ; Ö
#DEFINE TUS_V REG13,0 ; V
#DEFINE TUS_0 REG14,1 ; 0
#DEFINE TUS_3 REG14,2 ; 3
#DEFINE TUS_P REG14,3 ; P
#DEFINE TUS_E REG14,4 ; E
#DEFINE TUS_Ş REG14,5 ; Ş
#DEFINE TUS_D REG14,6 ; D
#DEFINE TUS_Ç REG14,7 ; Ç
#DEFINE TUS_C REG14,0 ; C
#DEFINE TUS_x REG15,1 ; *
#DEFINE TUS_2 REG15,2 ; 2
#DEFINE TUS_Ğ REG15,3 ; Ğ
#DEFINE TUS_W REG15,4 ; W
#DEFINE TUS_İ REG15,5 ; İ
#DEFINE TUS_S REG15,6 ; S
#DEFINE TUS_NOK REG15,7 ; .
#DEFINE TUS_X REG15,0 ; X
#DEFINE TUS_EKSI REG16,1 ; -
#DEFINE TUS_1 REG16,2 ; 1
#DEFINE TUS_Ü REG16,3 ; Ü
#DEFINE TUS_Q REG16,4 ; Q
#DEFINE TUS_NV REG16,5 ; ;
#DEFINE TUS_A REG16,6 ; A
#DEFINE TUS_ALT REG16,7 ; ALT
#DEFINE TUS_Z REG16,0 ; Z
#DEFINE TUS_BSPC REG17,1 ; BACKSPACE
#DEFINE TUS_ESC REG17,2 ; ESC
#DEFINE TUS_ENTER REG17,3 ; ENTER
#DEFINE TUS_TAB REG17,4 ; TAB
#DEFINE TUS_CAPS REG17,6 ; CAPS LOOK
#DEFINE TUS_F1 REG18,1 ; F1
#DEFINE TUS_F2 REG18,2 ; F2
#DEFINE TUS_F3 REG18,3 ; F3
#DEFINE TUS_F4 REG18,4 ; F4
#DEFINE PRTY PARITY,0 ; PARITY
#DEFINE S_PRTY PARITY,1 ; SON YOLLANAN PARITY
#DEFINE BANK_ILK BANK_FLG,4 ; YOLLANAN SAYI DOLDU BİTİ
#DEFINE BANK2_PRTY BANK_FLG,5 ;
#DEFINE BANK1_SC BANK_FLG,6 ;
#DEFINE BANK1_PRTY BANK_FLG,7 ;
;============================================;
;===== hardware definitions =================;
c EQU 0 ;
dc EQU 1 ;
z EQU 2 ;
rp0 EQU 5 ;
;--------------------------------------------;
adif EQU 6 ;A/D CONVERter done
tmr1if EQU 0 ;TIMEr 1 over flow
tmr1on EQU 0 ;
adie EQU 6 ;
tmr1ie EQU 0 ;
gie EQU 7 ;
hlt EQU 7 ;
;============================================;
;===== register definations==================;
FOSC0 EQU 01h ;
FOSC1 EQU 02h ;
WDTE EQU 04h ;
PWRTE EQU 08h ;
CP0 EQU 10h ;
CP1 EQU 20h ;
ser EQU 40h ;
;============================================;
;===== CONFİG AYARLARI =====================================================;
__config _HS_OSC & _WDT_OFF & _PWRTE_ON & _BODEN_ON & _CP_OFF & _LVP_OFF   ;
;===========================================================================;
;===== c BLOCKLAR ===========================;
cblock 0x020 ;
SAY1 ;01
SAY2 ;02
SAY3 ;03
SAY4 ;03
LCDADRES ;04
REG09 ;05
REG10 ;06
REG11 ;07
REG12 ;08
REG13 ;09
REG14 ;10
REG15 ;11
REG16 ;12
REG17 ;13
REG18 ;14
DATA_01 ;15
LCD_SATIR ;16
SON_K ;17
LEDLER ;18
DATA_AL ;19
FLAG ;20
TEST ;21
YENILEME ;22
PARITY ;23
UCLEME ;24
SON_YOLLA ;25
BANK_FLG ;26
BANK1 ;27
BANK_DUR ;28
BANKA ;29
BANK2 ;30
ENDC ;
;========================================;
;******************************************************;
;******* BAŞLANGIÇ NOKTASI ****************************;
;******************************************************;
ORG 0x0000 ;
GOTO start ;
;------------------------------------------------------;
ORG 0x0005 ;
;======= BAŞLA ========================================;
start
clrwdt
BSF STATUS,RP0
MOVLW b'00001111'
MOVWF TRISA
CLRF TRISB
MOVLW b'11111111'
MOVWF TRISC
MOVLW b'00000111'
MOVWF TRISD
CLRF TRISE
CLRF INTCON
MOVLW b'00000111'
MOVWF ADCON1
CLRF PIE1
MOVLW b'10001111'
MOVWF OPTION_REG
BCF STATUS,RP0
CLRF ADCON0
CLRF PIR1
CLRF STATUS
CLRF T1CON
CLRF CCP1CON
CLRF CCP2CON
CLRF SSPCON
CLRF PORTA
CLRF PORTB
CLRF PORTC
CLRF PORTD
CLRF PORTE
CLRF REG09
CLRF REG10
CLRF REG11
CLRF REG12
CLRF REG13
CLRF REG14
CLRF REG15
CLRF REG16
CLRF REG17
CLRF REG18
CLRF PARITY
CLRF FLAG
CLRF BANK_FLG
CLRF BANK1
CLRF BANK_DUR
CLRF BANKA
CLRF BANK2
BSF DATA
BSF CLOCK
;******************************************************;
;======= ANA PROGRAM ==================================;
;******************************************************;
_giris
CALL lcd_init
CALL AA_yolla
GOTO basliyom
;******************************************************;
test ; 1
CLRF UCLEME
BCF CLOCK
BCF DATA
test_2
CALL _2us
BTFSC CLOCK ;CLOCK düşmesini bekle
GOTO test_2
BTFSC DATA ;DATA nın düşerse veri gelecek
GOTO test_2
;***** bilgisayar veri yolluyor ********************;
data_gel
CLRF DATA_AL
CALL _2us
BTFSS CLOCK ;CLOCK çıkmasını bekle
GOTO data_gel
CALL _125us
;----- DATA, START 1
CALL _40us
CALL clock_cikis ;2. CLOCK düşme
CALL _40us
CALL clock_giris ;CLOCK giriş yap (1)
;----- DATA, 0
CALL _40us
BTFSC DATA ;düşen kenar data al
BSF DATA_AL,0
CALL clock_cikis ;3. CLOCK düşme
CALL _40us
CALL clock_giris ;CLOCK giriş yap (1)
;----- DATA, 1
CALL _40us
BTFSC DATA ;düşen kenar data al
BSF DATA_AL,1
CALL clock_cikis ;4. CLOCK düşme
CALL _40us
CALL clock_giris ;CLOCK giriş yap (1)
;----- DATA, 2
CALL _40us
BTFSC DATA ;düşen kenar data al
BSF DATA_AL,2
CALL clock_cikis ;5. CLOCK düşme
CALL _40us
CALL clock_giris ;CLOCK giriş yap (1)
;----- DATA, 3
CALL _40us
BTFSC DATA ;düşen kenar data al
BSF DATA_AL,3
CALL clock_cikis ;6. CLOCK düşme
CALL _40us
CALL clock_giris ;CLOCK giriş yap (1)
;----- DATA, 4
CALL _40us
BTFSC DATA ;düşen kenar data al
BSF DATA_AL,4
CALL clock_cikis ;7. CLOCK düşme
CALL _40us
CALL clock_giris ;CLOCK giriş yap (1)
;----- DATA, 5
CALL _40us
BTFSC DATA ;düşen kenar data al
BSF DATA_AL,5
CALL clock_cikis ;8. CLOCK düşme
CALL _40us
CALL clock_giris ;CLOCK giriş yap (1)
;----- DATA, 6
CALL _40us
BTFSC DATA ;düşen kenar data al
BSF DATA_AL,6
CALL clock_cikis ;9. CLOCK düşme
CALL _40us
CALL clock_giris ;CLOCK giriş yap (1)
;----- DATA, 7
CALL _40us
BTFSC DATA ;düşen kenar data al
BSF DATA_AL,7
CALL clock_cikis ;A. CLOCK düşme
CALL _40us
CALL clock_giris ;CLOCK giriş yap (1)
;----- DATA, 8
CALL _40us
CALL clock_cikis ;B. CLOCK düşme
CALL _40us
CALL clock_giris ;CLOCK giriş yap (1)
;----- DATA, 9
CALL data_cikis ;DATA çıkış yap (0)
CALL _40us
CALL clock_cikis ;C. CLOCK düşme
CALL _40us
CALL clock_giris ;CLOCK giriş yap (1)
;----- DATA, 10
CALL data_giris ;DATA giriş yap (1)
CALL _125us
CALL _125us
CALL _125us
CALL _125us
;***** ALINAN DATAYI ANALİZ ET *****************;
MOVLW 0x10
ADDWF DATA_AL,W
BTFSS STATUS,0
GOTO E_test
;----- FF test (Reset) -------------------------;
FF_test
MOVLW 0xFF ;DATA HxFF ise HxAA yolla
SUBWF DATA_AL,W
BTFSS STATUS,2
GOTO F0_test
BSF PRTY
MOVLW 0xFA
CALL data_yolla
CALL _125us
CALL _125us
CALL _125us
CALL _125us
AA_yolla ;----- Açılış testi tamamlandı -;
BSF PRTY
MOVLW 0xAA ;DATA HxFF ise HxAA yolla
CALL data_yolla
BSF FLAG,2 ;hxAA bayrağı
RETURN
;----- F0 test ---------------------------------;
F0_test
MOVLW 0xF0 ;DATA HxEX tekrar veri al (ledler)
SUBWF DATA_AL,W
BTFSS STATUS,2
GOTO F1_test
BSF PRTY
MOVLW 0xFA
CALL data_yolla
BSF PRTY
MOVLW 0xFA
CALL data_yolla
RETURN
;----- F1 test ---------------------------------;
F1_test
MOVLW 0xF1 ;DATA HxEX tekrar veri al (ledler)
SUBWF DATA_AL,W
BTFSS STATUS,2
GOTO F2_test
BCF PRTY
MOVLW 0xFE ;RECENT > anlamadı tekrarını yolla
CALL data_yolla
BTFSS S_PRTY
BCF PRTY
BTFSC S_PRTY
BSF PRTY
MOVF SON_YOLLA,W
CALL data_yolla
RETURN
;----- F2 test ---------------------------------;
F2_test
MOVLW 0xF2 ;DATA HxEX tekrar veri al (ledler)
SUBWF DATA_AL,W
BTFSS STATUS,2
GOTO F3_test
BSF PRTY
MOVLW 0xFA
CALL data_yolla
BCF PRTY
MOVLW 0xAB
CALL data_yolla
RETURN
;----- F3 test ---------------------------------;
F3_test
MOVLW 0xF3 ;DATA HxEX tekrar veri al (ledler)
SUBWF DATA_AL,W
BTFSS STATUS,2
GOTO F4_test
BSF FLAG,1 ;YENİLEME HIZI BAYRAĞI
BSF PRTY
MOVLW 0xFA
CALL data_yolla
BCF FLAG,2 ;hxAA bayrağı
GOTO test
;----- F4 test ---------------------------------;
F4_test
MOVLW 0xF4 ;DATA HxEX tekrar veri al (ledler)
SUBWF DATA_AL,W
BTFSS STATUS,2
GOTO F5_test
BSF PRTY
MOVLW 0xFA
CALL data_yolla
BSF FLAG,2 ;hxAA bayrağı
RETURN
;----- F5 test ---------------------------------;
F5_test
MOVLW 0xF5 ;DATA HxEX tekrar veri al (ledler)
SUBWF DATA_AL,W
BTFSS STATUS,2
GOTO FX_test
BSF PRTY
MOVLW 0xFA
CALL data_yolla
BCF FLAG,2 ;hxAA bayrağı
RETURN
;----- FX test ---------------------------------;
FX_test
BSF PRTY
MOVLW 0xFA
CALL data_yolla
RETURN
;----- E test ----------------------------------;
E_test
MOVLW 0x20
ADDWF DATA_AL,W
BTFSS STATUS,0
GOTO FF_yolla
;----- EE test ---------------------------------;
EE_test
MOVLW 0xEE ;DATA HxFF ise HxAA yolla
SUBWF DATA_AL,W
BTFSS STATUS,2
GOTO EF_test
BSF PRTY
MOVLW 0xEE ;EE yerine EE yolla
CALL data_yolla
RETURN
;----- EF test ---------------------------------;
EF_test
MOVLW 0xEF ;DATA HxEX tekrar veri al (ledler)
SUBWF DATA_AL,W
BTFSS STATUS,2
GOTO EX_test
BCF PRTY
MOVLW 0xFE ;RECENT > anlamadı tekrarını yolla
CALL data_yolla
BTFSS S_PRTY
BCF PRTY
BTFSC S_PRTY
BSF PRTY
MOVF SON_YOLLA,W ;son yollananı tekrar yolla
CALL data_yolla
RETURN
;----- EX test ---------------------------------;
EX_test
MOVLW 0xF0 ;ikinci 4 biti sil
ANDWF DATA_AL,W
MOVWF TEST
MOVLW 0xE0 ;DATA HxEX tekrar veri al (ledler)
SUBWF TEST,W
BTFSS STATUS,2
GOTO FF_yolla
BSF FLAG,0 ;LEDLERİN BAYRAĞI
BSF PRTY
MOVLW 0xFA
CALL data_yolla
GOTO test
FF_yolla
BTFSC FLAG,0 ;LEDLERİN BAYRAĞI
GOTO led_ayar
BTFSC FLAG,1 ;YENİLEME HIZI BAYRAĞI
GOTO yha_ayar
BSF PRTY
MOVLW 0xFF ;reset yolla
CALL data_yolla
RETURN
led_ayar
BSF PRTY
MOVLW 0xFA
CALL data_yolla
BTFSC DATA_AL,2
BSF CAPS_L
BTFSS DATA_AL,2
BCF CAPS_L
BCF FLAG,0
BSF FLAG,4 ;ledler bayrağı
RETURN
yha_ayar
BSF PRTY
MOVLW 0xFA
CALL data_yolla
MOVF DATA_AL,W
MOVWF YENILEME
BCF FLAG,1 ;yenileme hızı bayrağı
BSF FLAG,3 ;yenileme hızı bayrağı bayrağı
RETURN
;======================================================;
;======= LCD init ==== 8-bit data char5X7 2 line ======;
;======================================================;
lcd_init
CLRF LCDADRES
CALL LCDbas
MOVLW .240
MOVWF LCD_SATIR
MOVLW 0x38
CALL Komut_Yaz
MOVLW 0x0c
CALL Komut_Yaz
MOVLW 0x06
CALL Komut_Yaz
_Program
CALL LCDtemizle
CALL ImlecBasa
MOVLW 'a' ;1
CALL Karakter_Yaz
MOVLW 't' ;2
CALL Karakter_Yaz
MOVLW 'a' ;3
CALL Karakter_Yaz
MOVLW 'r' ;4
CALL Karakter_Yaz
MOVLW 'i' ;5
CALL Karakter_Yaz
MOVLW 't' ;6
CALL Karakter_Yaz
MOVLW 'u' ;7
CALL Karakter_Yaz
MOVLW 'r' ;8
CALL Karakter_Yaz
MOVLW 'k' ;9
CALL Karakter_Yaz
MOVLW 'i' ;10
CALL Karakter_Yaz
MOVLW 'y' ;11
CALL Karakter_Yaz
MOVLW 'e' ;12
CALL Karakter_Yaz
MOVLW '.' ;13
CALL Karakter_Yaz
MOVLW 'c' ;14
CALL Karakter_Yaz
MOVLW 'o' ;15
CALL Karakter_Yaz
MOVLW 'm' ;16
CALL Karakter_Yaz
MOVLW b'11000000'
CALL Komut_Yaz
RETURN
;***********************************************;
;***********************************************;
bank_test
BTFSS BANK_FLG,2 ;2. bankada sayı var
RETURN
BTFSS BANK_FLG,3 ;2.tuş yolla bekleme zaman bayrağı
GOTO bank_bek
bank1_yolla
BTFSS BANK_FLG,1 ;1. bankada sayı var
GOTO bank2_yolla
BCF PRTY
MOVLW 0xE0
CALL data_yolla
bank2_yolla
BTFSS BANK2_PRTY
BCF PRTY
BTFSC BANK2_PRTY
BSF PRTY
MOVF BANK2,W
CALL data_yolla
RETURN
;-----------------------------------------------;
bank_bek
DECFSZ BANK_DUR,F ;2.tuş yolla bekleme zamanı
RETURN
BSF BANK_FLG,3 ;2.tuş yolla bekleme zaman bayrağı
RETURN
bank_sil
CLRF BANK1
CLRF BANK2
CLRF BANK_FLG
RETURN
bank2_yukle
MOVWF BANK2
BSF BANK_FLG,2
BCF BANK_ILK
bank1_yukle
BTFSS BANK1_SC
GOTO bank1_temizle
BSF BANK_FLG,1
GOTO bank_bekle
bank1_temizle
CLRF BANK1
BCF BANK_FLG,1
bank_bekle
MOVLW .10 ;standardı .12
MOVWF BANK_DUR
BCF BANK_FLG,3 ;2.tuş yolla bekleme zaman bayrağı
GOTO bank1_yolla
basliyom
CALL _30ms
CALL bank_test
;----- birinci kanal test ---------------;
BSF S_1
CALL _100us
;tus_DEL_b ; C_1 DEL
BTFSC C_1 ;tuşa basıldımı_?
CALL tus_DEL_bas ;evet > bank'a işle
;tus_DEL_c
BSF S_1
CALL _100us
BTFSS C_1 ;tuşa basıldımı_?
CALL tus_DEL_cek ;hayır > bank'ı sil
BSF S_1
CALL _100us
;tus_7_b ; C_2 7
BTFSC C_2 ;tuşa basıldımı_?
CALL tus_7_bas ;evet > bank'a işle
;tus_7_c
BSF S_1
CALL _100us
BTFSS C_2 ;tuşa basıldımı_?
CALL tus_7_cek ;hayır > bank'ı sil
BSF S_1
CALL _100us
;tus_8_b ; C_4 8
BTFSC C_4 ;tuşa basıldımı_?
CALL tus_8_bas ;evet > bank'a işle
;tus_8_c
BSF S_1
CALL _100us
BTFSS C_4 ;tuşa basıldımı_?
CALL tus_8_cek ;hayır > bank'ı sil
BSF S_1
CALL _100us
;tus_9_b ; C_5 9
BTFSC C_5 ;tuşa basıldımı_?
CALL tus_9_bas ;evet > bank'a işle
;tus_9_c
BSF S_1
CALL _100us
BTFSS C_5 ;tuşa basıldımı_?
CALL tus_9_cek ;hayır > bank'ı sil
BSF S_1
CALL _100us
;tus_0_b ; C_6 0
BTFSC C_6 ;tuşa basıldımı_?
CALL tus_0_bas ;evet > bank'a işle
;tus_0_c
BSF S_1
CALL _100us
BTFSS C_6 ;tuşa basıldımı_?
CALL tus_0_cek ;hayır > bank'ı sil
BSF S_1
CALL _100us
;tus_x_b ; C_7 x
BTFSC C_7 ;tuşa basıldımı_?
CALL tus_x_bas ;evet > bank'a işle
;tus_x_c
BSF S_1
CALL _100us
BTFSS C_7 ;tuşa basıldımı_?
CALL tus_x_cek ;hayır > bank'ı sil
BSF S_1
CALL _100us
;tus_EKSI_b ; C_8 EKSI
BTFSC C_8 ;tuşa basıldımı_?
CALL tus_EKSI_bas ;evet > bank'a işle
;tus_EKSI_c
BSF S_1
CALL _100us
BTFSS C_8 ;tuşa basıldımı_?
CALL tus_EKSI_cek ;hayır > bank'ı sil
BSF S_1
CALL _100us
;tus_BSPC_b ; C_9 BSPC
BTFSC C_9 ;tuşa basıldımı_?
CALL tus_BSPC_bas ;evet > bank'a işle
;tus_BSPC_c
BSF S_1
CALL _100us
BTFSS C_9 ;tuşa basıldımı_?
CALL tus_BSPC_cek ;hayır > bank'ı sil
;S_1_test_end ;
BCF S_1
;----- ikinci kanal test ----------------;
BSF S_2
CALL _100us
;tus_6_b ; C_2 6
BTFSC C_2 ;tuşa basıldımı_?
CALL tus_6_bas ;evet > bank'a işle
;tus_6_c
BSF S_2
CALL _100us
BTFSS C_2 ;tuşa basıldımı_?
CALL tus_6_cek ;hayır > bank'ı sil
BSF S_2
CALL _100us
;tus_5_b ; C_4 5
BTFSC C_4 ;tuşa basıldımı_?
CALL tus_5_bas ;evet > bank'a işle
;tus_5_c
BSF S_2
CALL _100us
BTFSS C_4 ;tuşa basıldımı_?
CALL tus_5_cek ;hayır > bank'ı sil
BSF S_2
CALL _100us
;tus_4_b ; C_5 4
BTFSC C_5 ;tuşa basıldımı_?
CALL tus_4_bas ;evet > bank'a işle
;tus_4_c
BSF S_2
CALL _100us
BTFSS C_5 ;tuşa basıldımı_?
CALL tus_4_cek ;hayır > bank'ı sil
BSF S_2
CALL _100us
;tus_3_b ; C_6 3
BTFSC C_6 ;tuşa basıldımı_?
CALL tus_3_bas ;evet > bank'a işle
;tus_3_c
BSF S_2
CALL _100us
BTFSS C_6 ;tuşa basıldımı_?
CALL tus_3_cek ;hayır > bank'ı sil
BSF S_2
CALL _100us
;tus_2_b ; C_7 2
BTFSC C_7 ;tuşa basıldımı_?
CALL tus_2_bas ;evet > bank'a işle
;tus_2_c
BSF S_2
CALL _100us
BTFSS C_7 ;tuşa basıldımı_?
CALL tus_2_cek ;hayır > bank'ı sil
BSF S_2
CALL _100us
;tus_1_b ; C_8 1
BTFSC C_8 ;tuşa basıldımı_?
CALL tus_1_bas ;evet > bank'a işle
;tus_1_c
BSF S_2
CALL _100us
BTFSS C_8 ;tuşa basıldımı_?
CALL tus_1_cek ;hayır > bank'ı sil
BSF S_2
CALL _100us
;tus_ESC_b ; C_9 ESC
BTFSC C_9 ;tuşa basıldımı_?
CALL tus_ESC_bas ;evet > bank'a işle
;tus_ESC_c
BSF S_2
CALL _100us
BTFSS C_9 ;tuşa basıldımı_?
CALL tus_ESC_cek ;hayır > bank'ı sil
;S_2_test_end ;
BCF S_2
;----- üçüncü kanal test ----------------;
BSF S_3
CALL _100us
;tus_U_b ; C_2 U
BTFSC C_2 ;tuşa basıldımı_?
CALL tus_U_bas ;evet > bank'a işle
;tus_U_c
BSF S_3
CALL _100us
BTFSS C_2 ;tuşa basıldımı_?
CALL tus_U_cek ;hayır > bank'ı sil
BSF S_3
CALL _100us
;tus_I_b ; C_4 I
BTFSC C_4 ;tuşa basıldımı_?
CALL tus_I_bas ;evet > bank'a işle
;tus_I_c
BSF S_3
CALL _100us
BTFSS C_4 ;tuşa basıldımı_?
CALL tus_I_cek ;hayır > bank'ı sil
BSF S_3
CALL _100us
;tus_O_b ; C_5 O
BTFSC C_5 ;tuşa basıldımı_?
CALL tus_O_bas ;evet > bank'a işle
;tus_O_c
BSF S_3
CALL _100us
BTFSS C_5 ;tuşa basıldımı_?
CALL tus_O_cek ;hayır > bank'ı sil
BSF S_3
CALL _100us
;tus_P_b ; C_6 P
BTFSC C_6 ;tuşa basıldımı_?
CALL tus_P_bas ;evet > bank'a işle
;tus_P_c
BSF S_3
CALL _100us
BTFSS C_6 ;tuşa basıldımı_?
CALL tus_P_cek ;hayır > bank'ı sil
BSF S_3
CALL _100us
;tus_Ğ_b ; C_7 Ğ
BTFSC C_7 ;tuşa basıldımı_?
CALL tus_Ğ_bas ;evet > bank'a işle
;tus_Ğ_c
BSF S_3
CALL _100us
BTFSS C_7 ;tuşa basıldımı_?
CALL tus_Ğ_cek ;hayır > bank'ı sil
BSF S_3
CALL _100us
;tus_Ü_b ; C_8 Ü
BTFSC C_8 ;tuşa basıldımı_?
CALL tus_Ü_bas ;evet > bank'a işle
;tus_Ü_c
BSF S_3
CALL _100us
BTFSS C_8 ;tuşa basıldımı_?
CALL tus_Ü_cek ;hayır > bank'ı sil
BSF S_3
CALL _100us
;tus_ENTER_b ; C_9 ENTER
BTFSC C_9 ;tuşa basıldımı_?
CALL tus_ENTER_bas ;evet > bank'a işle
;tus_ENTER_c
BSF S_3
CALL _100us
BTFSS C_9 ;tuşa basıldımı_?
CALL tus_ENTER_cek ;hayır > bank'ı sil
;S_3_test_end ;
BCF S_3
;----- dördüncü kanal test ----------------;
BSF S_4
CALL _100us
;tus_Y_b ; C_2 Y
BTFSC C_2 ;tuşa basıldımı_?
CALL tus_Y_bas ;evet > bank'a işle
;tus_Y_c
BSF S_4
CALL _100us
BTFSS C_2 ;tuşa basıldımı_?
CALL tus_Y_cek ;hayır > bank'ı sil
BSF S_4
CALL _100us
;tus_T_b ; C_4 T
BTFSC C_4 ;tuşa basıldımı_?
CALL tus_T_bas ;evet > bank'a işle
;tus_T_c
BSF S_4
CALL _100us
BTFSS C_4 ;tuşa basıldımı_?
CALL tus_T_cek ;hayır > bank'ı sil
BSF S_4
CALL _100us
;tus_R_b ; C_5 R
BTFSC C_5 ;tuşa basıldımı_?
CALL tus_R_bas ;evet > bank'a işle
;tus_R_c
BSF S_4
CALL _100us
BTFSS C_5 ;tuşa basıldımı_?
CALL tus_R_cek ;hayır > bank'ı sil
BSF S_4
CALL _100us
;tus_E_b ; C_6 E
BTFSC C_6 ;tuşa basıldımı_?
CALL tus_E_bas ;evet > bank'a işle
;tus_E_c
BSF S_4
CALL _100us
BTFSS C_6 ;tuşa basıldımı_?
CALL tus_E_cek ;hayır > bank'ı sil
BSF S_4
CALL _100us
;tus_W_b ; C_7 W
BTFSC C_7 ;tuşa basıldımı_?
CALL tus_W_bas ;evet > bank'a işle
;tus_W_c
BSF S_4
CALL _100us
BTFSS C_7 ;tuşa basıldımı_?
CALL tus_W_cek ;hayır > bank'ı sil
BSF S_4
CALL _100us
;tus_Q_b ; C_8 Q
BTFSC C_8 ;tuşa basıldımı_?
CALL tus_Q_bas ;evet > bank'a işle
;tus_Q_c
BSF S_4
CALL _100us
BTFSS C_8 ;tuşa basıldımı_?
CALL tus_Q_cek ;hayır > bank'ı sil
BSF S_4
CALL _100us
;tus_TAB_b ; C_9 TAB
BTFSC C_9 ;tuşa basıldımı_?
CALL tus_TAB_bas ;evet > bank'a işle
;tus_TAB_c
BSF S_4
CALL _100us
BTFSS C_9 ;tuşa basıldımı_?
CALL tus_TAB_cek ;hayır > bank'ı sil
BSF S_4
CALL _100us
;S_4_test_end ;
BCF S_4
BSF PCLATH,3
GOTO basliyom1
;***** BUTON TEST BİTTİ ****************************************;
;***** KLAVYE KODU YAZ *****************************************;
;----- birinci kanal klevye kodu yolla ---------;
tus_DEL_bas ; DEL 71 ?
BTFSC TUS_DEL
RETURN
MOVLW .248 ;? i lcd ye yazdır
CALL satır21 ;
BSF BANK2_PRTY
BSF BANK1_SC ;bank1 dolu
MOVLW 0x71
CALL bank2_yukle
BSF TUS_DEL
RETURN
tus_DEL_cek
BTFSS TUS_DEL
RETURN
BCF PRTY
MOVLW 0xE0
CALL data_yolla
BSF PRTY
MOVLW 0xF0
CALL data_yolla
MOVLW 0x71
CALL data_yolla
BCF TUS_DEL
CALL bank_sil
RETURN
tus_7_bas ; 7 3D
BTFSC TUS_7
RETURN
MOVLW '7' ; i lcd ye yazdır
CALL satır21 ;
BCF BANK2_PRTY
BCF BANK1_SC ;bank1 boş
MOVLW 0x3D
CALL bank2_yukle
BSF TUS_7
RETURN
tus_7_cek
BTFSS TUS_7
RETURN
BSF PRTY
MOVLW 0xF0
CALL data_yolla
BCF PRTY
MOVLW 0x3D
CALL data_yolla
BCF TUS_7
CALL bank_sil
RETURN
tus_8_bas ; 8 3E
BTFSC TUS_8
RETURN
MOVLW '8' ; i lcd ye yazdır
CALL satır21 ;
BCF BANK2_PRTY
BCF BANK1_SC ;bank1 boş
MOVLW 0x3E
CALL bank2_yukle
BSF TUS_8
RETURN
tus_8_cek
BTFSS TUS_8
RETURN
BSF PRTY
MOVLW 0xF0
CALL data_yolla
BCF PRTY
MOVLW 0x3E
CALL data_yolla
BCF TUS_8
CALL bank_sil
RETURN
tus_9_bas ; 9 46
BTFSC TUS_9
RETURN
MOVLW '9' ; i lcd ye yazdır
CALL satır21 ;
BCF BANK2_PRTY
BCF BANK1_SC ;bank1 boş
MOVLW 0x46
CALL bank2_yukle
BSF TUS_9
RETURN
tus_9_cek
BTFSS TUS_9
RETURN
BSF PRTY
MOVLW 0xF0
CALL data_yolla
BCF PRTY
MOVLW 0x46
CALL data_yolla
BCF TUS_9
CALL bank_sil
RETURN
tus_0_bas ; 0 45
BTFSC TUS_0
RETURN
MOVLW '0' ; i lcd ye yazdır
CALL satır21 ;
BCF BANK2_PRTY
BCF BANK1_SC ;bank1 boş
MOVLW 0x45
CALL bank2_yukle
BSF TUS_0
RETURN
tus_0_cek
BTFSS TUS_0
RETURN
BSF PRTY
MOVLW 0xF0
CALL data_yolla
BCF PRTY
MOVLW 0x45
CALL data_yolla
BCF TUS_0
CALL bank_sil
RETURN
tus_x_bas ; x 4E <
BTFSC TUS_x
RETURN
MOVLW '<' ;< i lcd ye yazdır
CALL satır21 ;
BSF BANK2_PRTY
BCF BANK1_SC ;bank1 boş
MOVLW 0x4E
CALL bank2_yukle
BSF TUS_x
RETURN
tus_x_cek
BTFSS TUS_x
RETURN
BSF PRTY
MOVLW 0xF0
CALL data_yolla
MOVLW 0x4E
CALL data_yolla
BCF TUS_x
CALL bank_sil
RETURN
tus_EKSI_bas ; EKSI 55 >
BTFSC TUS_EKSI
RETURN
MOVLW '>' ;> i lcd ye yazdır
CALL satır21 ;
BSF BANK2_PRTY
BCF BANK1_SC ;bank1 boş
MOVLW 0x55
CALL bank2_yukle
BSF TUS_EKSI
RETURN
tus_EKSI_cek
BTFSS TUS_EKSI
RETURN
BSF PRTY
MOVLW 0xF0
CALL data_yolla
MOVLW 0x55
CALL data_yolla
BCF TUS_EKSI
CALL bank_sil
RETURN
tus_BSPC_bas ; BSPC 66 «
BTFSC TUS_BSPC
RETURN
MOVLW .127 ;« i lcd ye yazdır
CALL satır21 ;
BSF BANK2_PRTY
BCF BANK1_SC ;bank1 boş
MOVLW 0x66
CALL bank2_yukle
BSF TUS_BSPC
RETURN
tus_BSPC_cek
BTFSS TUS_BSPC
RETURN
BSF PRTY
MOVLW 0xF0
CALL data_yolla
MOVLW 0x66
CALL data_yolla
BCF TUS_BSPC
CALL bank_sil
RETURN
;----- ikinci kanal klevye kodu yolla ---------;
tus_6_bas ; 6 36
BTFSC TUS_6
RETURN
MOVLW '6' ; i lcd ye yazdır
CALL satır21 ;
BSF BANK2_PRTY
BCF BANK1_SC ;bank1 boş
MOVLW 0x36
CALL bank2_yukle
BSF TUS_6
RETURN
tus_6_cek
BTFSS TUS_6
RETURN
BSF PRTY
MOVLW 0xF0
CALL data_yolla
MOVLW 0x36
CALL data_yolla
BCF TUS_6
CALL bank_sil
RETURN
tus_5_bas ; 5 2E
BTFSC TUS_5
RETURN
MOVLW '5' ; i lcd ye yazdır
CALL satır21 ;
BSF BANK2_PRTY
BCF BANK1_SC ;bank1 boş
MOVLW 0x2E
CALL bank2_yukle
BSF TUS_5
RETURN
tus_5_cek
BTFSS TUS_5
RETURN
BSF PRTY
MOVLW 0xF0
CALL data_yolla
MOVLW 0x2E
CALL data_yolla
BCF TUS_5
CALL bank_sil
RETURN
tus_4_bas ; 4 25
BTFSC TUS_4
RETURN
MOVLW '4' ; i lcd ye yazdır
CALL satır21 ;
BCF BANK2_PRTY
BCF BANK1_SC ;bank1 boş
MOVLW 0x25
CALL bank2_yukle
BSF TUS_4
RETURN
tus_4_cek
BTFSS TUS_4
RETURN
BSF PRTY
MOVLW 0xF0
CALL data_yolla
BCF PRTY
MOVLW 0x25
CALL data_yolla
BCF TUS_4
CALL bank_sil
RETURN
tus_3_bas ; 3 26
BTFSC TUS_3
RETURN
MOVLW '3' ; i lcd ye yazdır
CALL satır21 ;
BCF BANK2_PRTY
BCF BANK1_SC ;bank1 boş
MOVLW 0x26
CALL bank2_yukle
BSF TUS_3
RETURN
tus_3_cek
BTFSS TUS_3
RETURN
BSF PRTY
MOVLW 0xF0
CALL data_yolla
BCF PRTY
MOVLW 0x26
CALL data_yolla
BCF TUS_3
CALL bank_sil
RETURN
tus_2_bas ; 2 1E
BTFSC TUS_2
RETURN
MOVLW '2' ; i lcd ye yazdır
CALL satır21 ;
BSF BANK2_PRTY
BCF BANK1_SC ;bank1 boş
MOVLW 0x1E
CALL bank2_yukle
BSF TUS_2
RETURN
tus_2_cek
BTFSS TUS_2
RETURN
BSF PRTY
MOVLW 0xF0
CALL data_yolla
MOVLW 0x1E
CALL data_yolla
BCF TUS_2
CALL bank_sil
RETURN
tus_1_bas ; 1 16
BTFSC TUS_1
RETURN
MOVLW '1' ; i lcd ye yazdır
CALL satır21 ;
BCF BANK2_PRTY
BCF BANK1_SC ;bank1 boş
MOVLW 0x16
CALL bank2_yukle
BSF TUS_1
RETURN
tus_1_cek
BTFSS TUS_1
RETURN
BSF PRTY
MOVLW 0xF0
CALL data_yolla
BCF PRTY
MOVLW 0x16
CALL data_yolla
BCF TUS_1
CALL bank_sil
RETURN
tus_ESC_bas ; ESC 76 x
BTFSC TUS_ESC
RETURN
MOVLW 'x' ;x i lcd ye yazdır
CALL satır21 ;
BCF BANK2_PRTY
BCF BANK1_SC ;bank1 boş
MOVLW 0x76
CALL bank2_yukle
BSF TUS_ESC
RETURN
tus_ESC_cek
BTFSS TUS_ESC
RETURN
BSF PRTY
MOVLW 0xF0
CALL data_yolla
BCF PRTY
MOVLW 0x76
CALL data_yolla
BCF TUS_ESC
CALL bank_sil
RETURN
;----- üçüncü kanal klevye kodu yolla ---------;
tus_U_bas ; U 3C
BTFSC TUS_U
RETURN
MOVLW 'U' ; i lcd ye yazdır
CALL satır21 ;
BSF BANK2_PRTY
BCF BANK1_SC ;bank1 boş
MOVLW 0x3C
CALL bank2_yukle
BSF TUS_U
RETURN
tus_U_cek
BTFSS TUS_U
RETURN
BSF PRTY
MOVLW 0xF0
CALL data_yolla
MOVLW 0x3C
CALL data_yolla
BCF TUS_U
CALL bank_sil
RETURN
tus_I_bas ; I 43
BTFSC TUS_I
RETURN
MOVLW 'I' ; i lcd ye yazdır
CALL satır21 ;
BCF BANK2_PRTY
BCF BANK1_SC ;bank1 boş
MOVLW 0x43
CALL bank2_yukle
BSF TUS_I
RETURN
tus_I_cek
BTFSS TUS_I
RETURN
BSF PRTY
MOVLW 0xF0
CALL data_yolla
BCF PRTY
MOVLW 0x43
CALL data_yolla
BCF TUS_I
CALL bank_sil
RETURN
tus_O_bas ; O 44
BTFSC TUS_O
RETURN
MOVLW 'O' ; i lcd ye yazdır
CALL satır21 ;
BSF BANK2_PRTY
BCF BANK1_SC ;bank1 boş
MOVLW 0x44
CALL bank2_yukle
BSF TUS_O
RETURN
tus_O_cek
BTFSS TUS_O
RETURN
BSF PRTY
MOVLW 0xF0
CALL data_yolla
MOVLW 0x44
CALL data_yolla
BCF TUS_O
CALL bank_sil
RETURN
tus_P_bas ; P 4D
BTFSC TUS_P
RETURN
MOVLW 'P' ; i lcd ye yazdır
CALL satır21 ;
BSF BANK2_PRTY
BCF BANK1_SC ;bank1 boş
MOVLW 0x4D
CALL bank2_yukle
BSF TUS_P
RETURN
tus_P_cek
BTFSS TUS_P
RETURN
BSF PRTY
MOVLW 0xF0
CALL data_yolla
MOVLW 0x4D
CALL data_yolla
BCF TUS_P
CALL bank_sil
RETURN
tus_Ğ_bas ; Ğ 54 -
BTFSC TUS_Ğ
RETURN
MOVLW '-' ;- i lcd ye yazdır
CALL satır21 ;
BCF BANK2_PRTY
BCF BANK1_SC ;bank1 boş
MOVLW 0x54
CALL bank2_yukle
BSF TUS_Ğ
RETURN
tus_Ğ_cek
BTFSS TUS_Ğ
RETURN
BSF PRTY
MOVLW 0xF0
CALL data_yolla
BCF PRTY
MOVLW 0x54
CALL data_yolla
BCF TUS_Ğ
CALL bank_sil
RETURN
tus_Ü_bas ; Ü 5B =
BTFSC TUS_Ü
RETURN
MOVLW '=' ;= i lcd ye yazdır
CALL satır21 ;
BCF BANK2_PRTY
BCF BANK1_SC ;bank1 boş
MOVLW 0x5B
CALL bank2_yukle
BSF TUS_Ü
RETURN
tus_Ü_cek
BTFSS TUS_Ü
RETURN
BSF PRTY
MOVLW 0xF0
CALL data_yolla
BCF PRTY
MOVLW 0x5B
CALL data_yolla
BCF TUS_Ü
CALL bank_sil
RETURN
tus_ENTER_bas ; ENTER 5A -
BTFSC TUS_ENTER
RETURN
MOVLW .167 ;- i lcd ye yazdır
CALL satır21 ;
BSF BANK2_PRTY
BCF BANK1_SC ;bank1 boş
MOVLW 0x5A
CALL bank2_yukle
BSF TUS_ENTER
RETURN
tus_ENTER_cek
BTFSS TUS_ENTER
RETURN
BSF PRTY
MOVLW 0xF0
CALL data_yolla
MOVLW 0x5A
CALL data_yolla
BCF TUS_ENTER
CALL bank_sil
RETURN
;----- dördüncü kanal klevye kodu yolla ---------;
tus_Y_bas ; Y 35
BTFSC TUS_Y
RETURN
MOVLW 'Y' ; i lcd ye yazdır
CALL satır21 ;
BSF BANK2_PRTY
BCF BANK1_SC ;bank1 boş
MOVLW 0x35
CALL bank2_yukle
BSF TUS_Y
RETURN
tus_Y_cek
BTFSS TUS_Y
RETURN
BSF PRTY
MOVLW 0xF0
CALL data_yolla
MOVLW 0x35
CALL data_yolla
BCF TUS_Y
CALL bank_sil
RETURN
tus_T_bas ; T 2C
BTFSC TUS_T
RETURN
MOVLW 'T' ; i lcd ye yazdır
CALL satır21 ;
BCF BANK2_PRTY
BCF BANK1_SC ;bank1 boş
MOVLW 0x2C
CALL bank2_yukle
BSF TUS_T
RETURN
tus_T_cek
BTFSS TUS_T
RETURN
BSF PRTY
MOVLW 0xF0
CALL data_yolla
BCF PRTY
MOVLW 0x2C
CALL data_yolla
BCF TUS_T
CALL bank_sil
RETURN
tus_R_bas ; R 2D
BTFSC TUS_R
RETURN
MOVLW 'R' ; i lcd ye yazdır
CALL satır21 ;
BSF BANK2_PRTY
BCF BANK1_SC ;bank1 boş
MOVLW 0x2D
CALL bank2_yukle
BSF TUS_R
RETURN
tus_R_cek
BTFSS TUS_R
RETURN
BSF PRTY
MOVLW 0xF0
CALL data_yolla
MOVLW 0x2D
CALL data_yolla
BCF TUS_R
CALL bank_sil
RETURN
tus_E_bas ; E 24
BTFSC TUS_E
RETURN
MOVLW 'E' ; i lcd ye yazdır
CALL satır21 ;
BSF BANK2_PRTY
BCF BANK1_SC ;bank1 boş
MOVLW 0x24
CALL bank2_yukle
BSF TUS_E
RETURN
tus_E_cek
BTFSS TUS_E
RETURN
BSF PRTY
MOVLW 0xF0
CALL data_yolla
MOVLW 0x24
CALL data_yolla
BCF TUS_E
CALL bank_sil
RETURN
tus_W_bas ; W 1D
BTFSC TUS_W
RETURN
MOVLW 'W' ; i lcd ye yazdır
CALL satır21 ;
BSF BANK2_PRTY
BCF BANK1_SC ;bank1 boş
MOVLW 0x1D
CALL bank2_yukle
BSF TUS_W
RETURN
tus_W_cek
BTFSS TUS_W
RETURN
BSF PRTY
MOVLW 0xF0
CALL data_yolla
MOVLW 0x1D
CALL data_yolla
BCF TUS_W
CALL bank_sil
RETURN
tus_Q_bas ; Q 15
BTFSC TUS_Q
RETURN
MOVLW 'Q' ; i lcd ye yazdır
CALL satır21 ;
BCF BANK2_PRTY
BCF BANK1_SC ;bank1 boş
MOVLW 0x15
CALL bank2_yukle
BSF TUS_Q
RETURN
tus_Q_cek
BTFSS TUS_Q
RETURN
BSF PRTY
MOVLW 0xF0
CALL data_yolla
BCF PRTY
MOVLW 0x15
CALL data_yolla
BCF TUS_Q
CALL bank_sil
RETURN
tus_TAB_bas ; TAB 0D ¤
BTFSC TUS_TAB
RETURN
MOVLW .198 ;¤ i lcd ye yazdır
CALL satır21 ;
BCF BANK2_PRTY
BCF BANK1_SC ;bank1 boş
MOVLW 0x0D
CALL bank2_yukle
BSF TUS_TAB
RETURN
tus_TAB_cek
BTFSS TUS_TAB
RETURN
BSF PRTY
MOVLW 0xF0
CALL data_yolla
BCF PRTY
MOVLW 0x0D
CALL data_yolla
BCF TUS_TAB
CALL bank_sil
RETURN
;***** DATA YOLLA ************************************************;
data_yolla
MOVWF SON_YOLLA
MOVWF DATA_01
BTFSS PRTY
BCF S_PRTY
BTFSC PRTY
BSF S_PRTY
BCF CLOCK
BCF DATA
data_yolla1
CALL _2us
BTFSS CLOCK ;CLOCK set bekle
GOTO data_yolla1
CALL _125us
CALL _125us
CALL data_cikis ;DATA çıkış yap (0)
;----- DATA, START
CALL _40us
CALL clock_cikis ;1. CLOCK düşme
CALL _40us
CALL clock_giris ;CLOCK giriş yap (1)
;----- DATA, 0 yolla
BTFSC DATA_01,0
CALL data_giris
BTFSS DATA_01,0
CALL data_cikis
CALL _40us
CALL clock_cikis ;2. CLOCK düşme
CALL _40us
CALL clock_giris ;CLOCK giriş yap (1)
;----- DATA, 1 yolla
BTFSC DATA_01,1
CALL data_giris
BTFSS DATA_01,1
CALL data_cikis
CALL _40us
CALL clock_cikis ;3. CLOCK düşme
CALL _40us
CALL clock_giris ;CLOCK giriş yap (1)
;----- DATA, 2 yolla
BTFSC DATA_01,2
CALL data_giris
BTFSS DATA_01,2
CALL data_cikis
CALL _40us
CALL clock_cikis ;4. CLOCK düşme
CALL _40us
CALL clock_giris ;CLOCK giriş yap (1)
;----- DATA, 3 yolla
BTFSC DATA_01,3
CALL data_giris
BTFSS DATA_01,3
CALL data_cikis
CALL _40us
CALL clock_cikis ;5. CLOCK düşme
CALL _40us
CALL clock_giris ;CLOCK giriş yap (1)
;----- DATA, 4 yolla
BTFSC DATA_01,4
CALL data_giris
BTFSS DATA_01,4
CALL data_cikis
CALL _40us
CALL clock_cikis ;6. CLOCK düşme
CALL _40us
CALL clock_giris ;CLOCK giriş yap (1)
;----- DATA, 5 yolla
BTFSC DATA_01,5
CALL data_giris
BTFSS DATA_01,5
CALL data_cikis
CALL _40us
CALL clock_cikis ;7. CLOCK düşme
CALL _40us
CALL clock_giris ;CLOCK giriş yap (1)
;----- DATA, 6 yolla
BTFSC DATA_01,6
CALL data_giris
BTFSS DATA_01,6
CALL data_cikis
CALL _40us
CALL clock_cikis ;8. CLOCK düşme
CALL _40us
CALL clock_giris ;CLOCK giriş yap (1)
;----- DATA, 7 yolla
BTFSC DATA_01,7
CALL data_giris
BTFSS DATA_01,7
CALL data_cikis
CALL _40us
CALL clock_cikis ;9. CLOCK düşme
CALL _40us
CALL clock_giris ;CLOCK giriş yap (1)
;----- DATA, 8 yolla
BTFSC PRTY
CALL data_giris
BTFSS PRTY
CALL data_cikis
CALL _40us
CALL clock_cikis ;A. CLOCK düşme
CALL _40us
CALL clock_giris ;CLOCK giriş yap (1)
;----- DATA, 9 yolla
CALL data_giris ;DATA giris yap (1)
CALL _40us
CALL clock_cikis ;B. CLOCK düşme
CALL _40us
CALL clock_giris ;CLOCK giriş yap (1)
CALL _40us
RETURN
data_giris
BSF STATUS,RP0
BSF DATA_I ;DATA giris yap (1)
BCF STATUS,RP0
RETURN
data_cikis
BSF STATUS,RP0
BCF DATA_I ;DATA çıkış yap (0)
BCF STATUS,RP0
BCF DATA
RETURN
clock_giris
BSF STATUS,RP0
BSF CLOCK_I ;CLOCK giriş yap (1)
BCF STATUS,RP0
RETURN
clock_cikis
BSF STATUS,RP0 ;1. CLOCK düşme
BCF CLOCK_I ;CLOCK çıkış yap (0)
BCF STATUS,RP0
BCF CLOCK
RETURN
;===== 2. SATIRI YAZ ==============================================================;
satır21
MOVWF SON_K
INCF LCD_SATIR,F
BTFSC STATUS,z
GOTO lcd_Yukle
CALL Karakter_Yaz
RETURN
lcd_Yukle
MOVLW .240
MOVWF LCD_SATIR
MOVLW b'11000000'
CALL Komut_Yaz
MOVLW ' ' ;1
CALL Karakter_Yaz
MOVLW ' ' ;2
CALL Karakter_Yaz
MOVLW ' ' ;3
CALL Karakter_Yaz
MOVLW ' ' ;4
CALL Karakter_Yaz
MOVLW ' ' ;5
CALL Karakter_Yaz
MOVLW ' ' ;6
CALL Karakter_Yaz
MOVLW ' ' ;7
CALL Karakter_Yaz
MOVLW ' ' ;8
CALL Karakter_Yaz
MOVLW ' ' ;9
CALL Karakter_Yaz
MOVLW ' ' ;10
CALL Karakter_Yaz
MOVLW ' ' ;11
CALL Karakter_Yaz
MOVLW ' ' ;12
CALL Karakter_Yaz
MOVLW ' ' ;13
CALL Karakter_Yaz
MOVLW ' ' ;14
CALL Karakter_Yaz
MOVLW ' ' ;15
CALL Karakter_Yaz
MOVLW ' ' ;16
CALL Karakter_Yaz
MOVLW b'11000000'
CALL Komut_Yaz
MOVF SON_K,W
CALL Karakter_Yaz
RETURN
;==================================================================================;
;===== LCD'ye karakter verisi yazma rutini ========================================;
;===== "W"yazmacındaki karakter bilgisi LCD'ye gönderilmektedir. ==================;
;==================================================================================;
Karakter_Yaz
MOVWF PORTB
BCF LCD_RW
BSF LCD_RS
CALL Yukle
RETURN
;------------------------------------------------;
Komut_Yaz
MOVWF PORTB
BCF LCD_RW
BCF LCD_RS
CALL Yukle
RETURN
;------------------------------------------------;
Yukle
BSF LCD_E
NOP
BCF LCD_E
CALL _125us
CLRF PORTB
RETURN
;------------------------------------------------;
LCDtemizle
MOVLW 0x01
CALL Komut_Yaz
CALL _1ms ;bkz.Tablo-3
RETURN
;------------------------------------------------;
ImlecBasa
MOVLW 0x02
CALL Komut_Yaz
CALL _1ms ;bkz.Tablo-3
RETURN
;------------------------------------------------;
ADRES_Yaz
IORLW 0x80
MOVWF PORTB
BCF LCD_RW
BCF LCD_RS
CALL Yukle
RETURN
;------------------------------------------------;
LCDbas
CALL _25ms
MOVLW 0x30
CALL Komut_Yaz
CALL _1ms
MOVLW 0x30
CALL Komut_Yaz
CALL _1ms
MOVLW 0x30
CALL Komut_Yaz
CALL _1ms
RETURN
;===============================================;
;===== 1US BEKLE ==============================;
_2us
NOP
NOP
NOP
NOP
NOP
NOP
RETURN
;===== 10US BEKLE ==============================;
_10us
MOVLW .16
MOVWF SAY1
Gec1
DECFSZ SAY1,F
GOTO Gec1
RETURN
;===== 40US BEKLE ==============================;
_40us
MOVLW .66
MOVWF SAY1
GOTO Gec1
;===== 125US BEKLE =============================;
_125us
MOVLW .210
MOVWF SAY1
GOTO Gec1
;===== 100US BEKLE =============================;
_100us
MOVLW .10
MOVWF SAY2
gectik
BTFSC CLOCK
GOTO gectik_1
BTFSS DATA
CALL data_gel
gectik_1
CALL _10us
DECFSZ SAY2,F
GOTO gectik
RETURN
;===== 500US BEKLE =============================;
_500us
MOVLW .4
MOVWF SAY2
Gec2
clrwdt
CALL _125us
DECFSZ SAY2,F
GOTO Gec2
RETURN
;===== 1,25 MS BEKLE ===========================;
_1ms
MOVLW .10
MOVWF SAY2
GOTO Gec2
;===== 25,074 MS BEKLE =========================;
_25ms
MOVLW .199
MOVWF SAY2
GOTO Gec2
;===== 30ms BEKLE =============================;
_15ms
MOVLW .150
MOVWF SAY3
Gec3
clrwdt
CALL _100us
DECFSZ SAY3,F
GOTO Gec3
RETURN
;===== 30ms BEKLE =============================;
_30ms
MOVLW .2
MOVWF SAY4
Gec4
clrwdt
CALL _15ms
DECFSZ SAY4,F
GOTO Gec4
RETURN
;*****************************************************************************************;
;******* BİRİNCİ BÖLÜM SONU **************************************************************;
;*****************************************************************************************;
ORG 0x0800 ;
basliyom1
;----- beşinci kanal test ---------------;
BSF S_5
CALL __100us
;tus_CTRL_b ; C_1 CTRL
BTFSC C_1 ;tuşa basıldımı_?
CALL tus_CTRL_bas ;evet > bank'a işle
;tus_CTRL_c
BSF S_5
CALL __100us
BTFSS C_1 ;tuşa basıldımı_?
CALL tus_CTRL_cek ;hayır > bank'ı sil
BSF S_5
CALL __100us
;tus_J_b ; C_3 J
BTFSC C_3 ;tuşa basıldımı_?
CALL tus_J_bas ;evet > bank'a işle
;tus_J_c
BSF S_5
CALL __100us
BTFSS C_3 ;tuşa basıldımı_?
CALL tus_J_cek ;hayır > bank'ı sil
BSF S_5
CALL __100us
;tus_K_b ; C_4 K
BTFSC C_4 ;tuşa basıldımı_?
CALL tus_K_bas ;evet > bank'a işle
;tus_K_c
BSF S_5
CALL __100us
BTFSS C_4 ;tuşa basıldımı_?
CALL tus_K_cek ;hayır > bank'ı sil
BSF S_5
CALL __100us
;tus_L_b ; C_5 L
BTFSC C_5 ;tuşa basıldımı_?
CALL tus_L_bas ;evet > bank'a işle
;tus_L_c
BSF S_5
CALL __100us
BTFSS C_5 ;tuşa basıldımı_?
CALL tus_L_cek ;hayır > bank'ı sil
BSF S_5
CALL __100us
;tus_Ş_b ; C_6 Ş
BTFSC C_6 ;tuşa basıldımı_?
CALL tus_Ş_bas ;evet > bank'a işle
;tus_Ş_c
BSF S_5
CALL __100us
BTFSS C_6 ;tuşa basıldımı_?
CALL tus_Ş_cek ;hayır > bank'ı sil
BSF S_5
CALL __100us
;tus_İ_b ; C_7 İ
BTFSC C_7 ;tuşa basıldımı_?
CALL tus_İ_bas ;evet > bank'a işle
;tus_İ_c
BSF S_5
CALL __100us
BTFSS C_7 ;tuşa basıldımı_?
CALL tus_İ_cek ;hayır > bank'ı sil
BSF S_5
CALL __100us
;tus_NV_b ; C_8 NV
BTFSC C_8 ;tuşa basıldımı_?
CALL tus_NV_bas ;evet > bank'a işle
;tus_NV_c
BSF S_5
CALL __100us
BTFSS C_8 ;tuşa basıldımı_?
CALL tus_NV_cek ;hayır > bank'ı sil
;S_5_test_end ;
BCF S_5
;----- altıncı kanal test ---------------;
BSF S_6
CALL __100us
;tus_H_b ; C_3 H
BTFSC C_3 ;tuşa basıldımı_?
CALL tus_H_bas ;evet > bank'a işle
;tus_H_c
BSF S_6
CALL __100us
BTFSS C_3 ;tuşa basıldımı_?
CALL tus_H_cek ;hayır > bank'ı sil
BSF S_6
CALL __100us
;tus_G_b ; C_4 G
BTFSC C_4 ;tuşa basıldımı_?
CALL tus_G_bas ;evet > bank'a işle
;tus_G_c
BSF S_6
CALL __100us
BTFSS C_4 ;tuşa basıldımı_?
CALL tus_G_cek ;hayır > bank'ı sil
BSF S_6
CALL __100us
;tus_F_b ; C_5 F
BTFSC C_5 ;tuşa basıldımı_?
CALL tus_F_bas ;evet > bank'a işle
;tus_F_c
BSF S_6
CALL __100us
BTFSS C_5 ;tuşa basıldımı_?
CALL tus_F_cek ;hayır > bank'ı sil
BSF S_6
CALL __100us
;tus_D_b ; C_6 D
BTFSC C_6 ;tuşa basıldımı_?
CALL tus_D_bas ;evet > bank'a işle
;tus_D_c
BSF S_6
CALL __100us
BTFSS C_6 ;tuşa basıldımı_?
CALL tus_D_cek ;hayır > bank'ı sil
BSF S_6
CALL __100us
;tus_S_b ; C_7 S
BTFSC C_7 ;tuşa basıldımı_?
CALL tus_S_bas ;evet > bank'a işle
;tus_S_c
BSF S_6
CALL __100us
BTFSS C_7 ;tuşa basıldımı_?
CALL tus_S_cek ;hayır > bank'ı sil
BSF S_6
CALL __100us
;tus_A_b ; C_8 A
BTFSC C_8 ;tuşa basıldımı_?
CALL tus_A_bas ;evet > bank'a işle
;tus_A_c
BSF S_6
CALL __100us
BTFSS C_8 ;tuşa basıldımı_?
CALL tus_A_cek ;hayır > bank'ı sil
BSF S_6
CALL __100us
;tus_CAPS_b ; C_9 CAPS
BTFSC C_9 ;tuşa basıldımı_?
CALL tus_CAPS_bas ;evet > bank'a işle
;tus_CAPS_c
BSF S_6
CALL __100us
BTFSS C_9 ;tuşa basıldımı_?
CALL tus_CAPS_cek ;hayır > bank'ı sil
BSF S_6
CALL __100us
;S_6_test_end ;
BCF S_6
;----- yedinci kanal test ---------------;
BSF S_7
CALL __100us
;tus_N_b ; C_2 N
BTFSC C_2 ;tuşa basıldımı_?
CALL tus_N_bas ;evet > bank'a işle
;tus_N_c
BSF S_7
CALL __100us
BTFSS C_2 ;tuşa basıldımı_?
CALL tus_N_cek ;hayır > bank'ı sil
BSF S_7
CALL __100us
;tus_SPC_b ; C_3 SPC
BTFSC C_3 ;tuşa basıldımı_?
CALL tus_SPC_bas ;evet > bank'a işle
;tus_SPC_c
BSF S_7
CALL __100us
BTFSS C_3 ;tuşa basıldımı_?
CALL tus_SPC_cek ;hayır > bank'ı sil
BSF S_7
CALL __100us
;tus_M_b ; C_4 M
BTFSC C_4 ;tuşa basıldımı_?
CALL tus_M_bas ;evet > bank'a işle
;tus_M_c
BSF S_7
CALL __100us
BTFSS C_4 ;tuşa basıldımı_?
CALL tus_M_cek ;hayır > bank'ı sil
BSF S_7
CALL __100us

hayal etmeden basaramazsınız www.atariturkiye.com

HeCToR

@magic_gun Hocam Yine Coşturmuşsunuz kodları maşallah  :D
Bilginin Efendisi Olmak İçin Çalışmanın Kölesi Olmak Gerekir