Şifreli kilit projem yardım

Başlatan yucelcem, 30 Aralık 2010, 18:54:36

yucelcem

Merhaba, pic basic kullanıyorum kodları ve şemayı koyuyorum ( Kodları aşama aşama yazıyorum sorunum tuş takımı tarama kısmında)


http://www.resimupload.com/ds620574460_kilit.html

trisb=0
trisd=0
trisc=255

portb=0
portd=0

tus var byte
sifre var word
a var byte
sifre=0
define lcd_dreg portb
define lcd_dbit 4
define lcd_rsreg portb
define lcd_rsbit 1
define lcd_rwreg portb
define lcd_rwbit 2
define lcd_ereg portb
define lcd_ebit 3
define lcd_bits 4
define lcd_lines 4

pause 1000
lcdout $fe,1
lcdout " YENI SIFRE ICIN *"
lcdout $FE,$c0 
lcdout "  SIFREYI GIRINIZ"

for a=1 to 4
keypad_oku:

portd.1=1
if portc.1=1 then 
tus=1
while portc.1=1
wend
goto don
endif

if portc.2=1 then 
tus=2
while portc.2=1
wend
goto don
endif

if portc.3=1 then 
tus=3
while portc.3=1
wend
goto don
endif
portd.1=0
portd.2=1

if portc.1=1 then 
tus=4
while portc.1=1
wend
goto don
endif

if portc.2=1 then 
tus=5
while portc.2=1
wend
goto don
endif

if portc.3=1 then 
tus=6
while portc.3=1
wend
goto don
endif

portd.2=0
portd.3=1

if portc.1=1 then 
tus=7
while portc.1=1
wend
goto don
endif


if portc.2=1 then 
tus=8
while portc.2=1
wend
goto don
endif


if portc.3=1 then 
tus=9
while portc.3=1
wend
goto don
endif


portd.3=0
portd.4=1
if portc.1=1 then sifre_degistir

if portc.2=1 then 
tus=0
while portc.2=1
wend
goto don
endif
if portc.3=1 then kontrol_et
portd.4=0
goto keypad_oku

don:
if a=1 then
sifre=sifre+tus*1000
lcdout $fe,$94, "     *"
endif
if a=2 then
sifre=sifre+tus*100
lcdout $fe,$94, "     * *"
endif
if a=3 then
sifre=sifre+tus*10
lcdout $fe,$94, "     * * *"
endif
if a=4 then
sifre=sifre+tus
lcdout $fe,$94, "     * * * *"
goto cikis
endif
cikis:
next


sifre_degistir :
lcdout $fe,1, "ESKI SIFREYI GIRINIZ"
kontrol_et :
lcdout $fe,$94,#sifre


Arkadaşlar aşama aşama yaptığım için bu kodlarımın ilk aşamasıydı, şu işi yapıyor, şifreyi girin falan filan yazıyor, giriyoruz şifreyi, girerken * çıkıyor her karakterde, sonra ilk satırda ESKİ ŞİFREYİ GİRİNİZ yazıyor ve 3. satırda şifre yazıyor. Proteusta gayet iyi çalışıyor. Bu devreyi breadboarda kurdum, keypad takınca kablo karmaşası olduğu için ilk keypadsiz çalıştırdım, şifreyi girin falan yazısını aldım ama bir dengesizlik söz konusu, kendi kendine sayı falan giriyor * çıkıyor durduk yere. işlemcinin üzerine parmağımla az kuvvet uygulayınca şifre girilmiş gibi sayı falan çıkıyor, keypadi takıncada ardarda bisürü şifre girilmiş gibi bisürü sayı veriyor.breadboard alttan kısa devre oluyodur diye düşündüm arkasını açıp baktım tellerde kısa devre yok. Parmağımla dokundummu bile saçmalıyor. Yardımlarınızı bekliyorum.