Barkod okuyucudan veri almak..

Başlatan Lütfi AYYILDIZ, 11 Ocak 2007, 09:57:18

Lütfi AYYILDIZ

Arkadaşlar elimde PS/2 porttan bağlanan lazer bir barkod okuyucu var. Önce klavye ile aynı mantıkla çalıştığını düşünerek pic le verileri almaya çalıştım. Bunuda klavye okumadaki programı kullanarak yaptım fakat olmadı. Barkod okuyucunun data transferi hakkında internette bir sürü arama yaptım fakat böyle bir kaynağa ulaşamadım. Birde ps/2 to rs232 adaptörleri var bunlar acaba sorunu çözermi.Bu konuda bilgi sahibi olan arkadaşlar yardımcı olursa sevinirim.

frkcn

Kullandığın program kodunu yazarmısın
Bugün ömrümün geride kalan son günü...

Lütfi AYYILDIZ

sadece ilk gelen veriyi almak için;
TRISA=%11111111 
TRISB=%11110000    
CMCON=7 
'@ DEVICE pic16F628                      'işlemci 16F628                                
'@ DEVICE pic16F628, WDT_ON              'Watch Dog timer açık 
'@ DEVICE pic16F628, PWRT_ON             'Power on timer açık 
'@ DEVICE pic16F628, PROTECT_OFF         'Kod Protek kapalı 
@ DEVICE pic16F628, MCLR_OFF            
@ DEVICE pic16F628, XT_OSC 
'@ DEVICE pic16F628, INTRC_OSC_NOCLKOUT  'Dahili osilatör kullanılacak 
DEFINE LCD_DREG      PORTB   'LCD data bacakları hangi porta bağlı? 
DEFINE LCD_DBIT      0      'LCD data bacakları hangi bitten başlıyor? 
DEFINE LCD_EREG      PORTA   'LCD Enable Bacağı Hangi Porta bağlı? 
DEFINE LCD_EBIT      3      'LCD Enable Bacağı Hangi bite bağlı ? 
define LCD RWREG    PORTA   'LCD R/W Bacağı Hangi Porta bağlı? 
define LCD_RWBIT    2       'LCD R/W Bacağı Hangi bite bağlı ? 
DEFINE LCD_RSREG   PORTA   'LCD RS Bacağı Hangi Porta bağlı ? 
DEFINE LCD_RSBIT   1      'LCD RS bacağı Hangi Bite bağlı  ? 
DEFINE LCD_BITS      4      'LCD 4 bit mi yoksa 8 bit olarak bağlı? 
DEFINE LCD_LINES   4      'LCD Kaç sıra yazabiliyor 
DEFINE OSC          10 
reg var byte 
veri var byte 
dvm var byte 
clk var portb.4 
kdata var portb.5 
pause 1000 
lcdout $fe,1,"PS/2 BARKOD TEST" 
PAUSE 1000 
rx: 
gosub clock: 
if reg=1 then goto rx 
if reg<10 then 
veri=veri>>1 
veri.7=kdata 
endif 
if reg>10 then 
pause 200 
lcdout $fe,$C0,#veri 
PAUSE 200 
reg=0 
endif 
goto rx 
clock: 
if clk=1 then dvm=0:goto clock 
if dvm=1 then clock 
if clk=0 then 
reg=reg+1 
dvm=1 
endif 
return 
end