sıramatik deversi

Başlatan ramco123, 02 Haziran 2008, 14:38:18

ramco123

Arkadaşlar internette gezinirken şmyle bir proje buldum fakat içinden sadece hex i çıtı acaba bunu programını yazabilirmiyiz?bu konu hakkında yardımcı olabilirmisiniz?

devre

http://rapidshare.com/files/119137381/Yeni_Klasoer.rar.html

ayhani

Sizin katlanmadığınız zahmete başkası neden katlansın?,
Zahmet edip devrenin ne olduğunu resmini eklememişsiniz.
Fakat insanların sizden daha çok çaba harcayarak dosyayı rapidden indirmesini incelemesini ve yorum yapmasını bekliyorsunuz. Sizce bu doğrumu?
En iyi bildiğim şey hiçbir şey bilmediğimdir.

bigbey

Alıntı yapılan: "ayhani"Sizin katlanmadığınız zahmete başkası neden katlansın?,
Zahmet edip devrenin ne olduğunu resmini eklememişsiniz.
Fakat insanların sizden daha çok çaba harcayarak dosyayı rapidden indirmesini incelemesini ve yorum yapmasını bekliyorsunuz. Sizce bu doğrumu?
Evet haklısınız. neden düşünmezler acaba? işi gücü bırakıp dosya indirip açıp inceleyeceğiz hemde ne olduğunu bilmeden. Hayret !
TA6R

ramco123

Arkadaşlar bu kadar sert tepki vermenizi anlamıyorum.Kimseye zorla indirde bakta demiyoruz.Eğer birilerine yardım etmeyi seven birilerinin derdiyle uğraşıp derdine derman olmak isteyenler için bu konular açılıyor.kaldıki ben formda yeniyim ve formu tam manasıyla kullanamıyorum.bu yüzde eksiklikler mutlaka olacaktır.Sizler eksiklikleri bulmaya değil birilerinin derdine çözüm bulmaya çalışırsanız hayatta daha başarılı olacağınızı unutmayın.
Saygılarımla...

mech

bi dene bakalım. Takıldığın noktaları görelim.
Bilginin Efendisi Olmak İçin Çalışmanın Kölesi Olmak Şarttır

Gurkan-Demirbas

Öncelikle hoşgeldin

Hex dosyayı PIC DISASSEMBLER ile asm'ye çevirip incele derim.
Ama asm programı ancak devre şeması ile birlikte anlam kazanabilir.
Devre şeması olmadığı için, kimsenin içinden incelemek gelmedi sanırım (tıpkı benim gibi).
Eğer programın yoksa, PIC-Disasm yazıp google'da arattır.

Yardım isterken, konunun resmini ne kadar net verebilirsek, alacağımız bilgi ve yardımın da o kadar sağlıklı ve doğru olmasını sağlarız.

Tarzları sert algılanabilir belki ama, "Sert tepki veriyorsunuz" dediğin insanların aslında yardım etmeyi ne kadar çok istediklerinin umarım farkındasındır; çünkü yardım etmeyi arzu etmeyen insan bu konuya hiç mesaj yazmazdı buraya zaten.

Buradaki insanların aslında ne kadar iyi niyetli olduğunu zamanla anlarsın; bu yüzden alınmak ve küsmek yapılabilecek en büyük yanlışlık olur kanısındayım

Tekrar hoşgeldin

Gürkan

ramco123

Arkadaşlar olumluda olsa olumsuzda olsa yorumlarınız için hepinize teşekkür ederim.Dediğiniz yolu deneyeceğim.Bu arda devre şemasının ekledim arkadaşalar.Tekrar herkesten acemiliğim için özür diliyorum.Ama forma alışacağım vede bu formda başarılı olacağıma inanıyorum.
Saygılarımla...
DEVRE ŞEMASI:


Gurkan-Demirbas

Hangi derleyici kullanıyorsun? pbp? MPLAB ?

ramco123

Yok bu devre hazırdı vakitte kısa diye hemen aldık yapmaya koyulduk.Fakat sorun oluştu.yani sadece hex vardı Programını çözmeye çalışıyorum şuanda

OG

hex'i asm'ye çevirip çözmeye kalkışıyorsan en zor işi seçmiş olursun. Programı baştan yazman daha kolaydır.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

ilker_32



Gerçekten kod lazımsa HEX ile uğraşmamanı öneririm. Çünkü boyunu aşar. Yapamayacaksın sorunlar doğacak. Uzun zaman alacak. O kadar basit bir devre gibi olsada. :lol:

Sayın logan'ın 15-20 gün önce vermiş olduğu 10 vezne sıramatik devresi üzerinde hızlı bir şekilde basit oynamalar yaparak bu hale getirdim. Yapabileceğin en iyis budur. Güzel çalışıyor. Yanlız tek sorun donanımın tamamen değişik olmasıdır. Fakat istersen değişiklik yapabilirsin aşağıya kodlarını koyuyorum. Yani tecrüben yoksa buna razısın :D

Zaten 2x16F84, 18F452 fiyatına yaklaşacak.
porte -> buzzer (Buzzer için Logan'ın sıramatik devresinden yararlanabilirsin. Ben unutmuşum. Şu halde normal çalışıyor. Kodları incele gereksiz kodları silmeye çalış.)

define OSC 20
adcon1=7
trisa=%00111000  :  porta=0
trisb=%11000000  :  portb=%00110000
trisc=%11111111  :  portc=0
trise=0          :  porte=3
trisd=0          :  portd=0

sda var porta.4  :  scl var porta.5  :  izin var porta.3
en1 var porte.0  :  en2 var porte.1

lcd_reg var byte        :  k var byte                :  x var byte              :  sayac_reg var byte[3]
vezne_reg var byte[30]  :  i var byte                :  y var byte              :  z var byte
b var byte              :  yinele var byte           :  vezne_bul var byte      :  numara_reg var byte[3]
vezne_no var byte       :  vezne_no_birler var byte  :  vezne_no_onlar var byte :  c var byte
animasyon_reg var byte  :  repat var byte            :  tekrar_reg var byte     :  a var byte
tasma var byte          :  vezne_enable var bit      :  sira_enable var bit

vezne1_b var portc.0    :  vezne2_b var portc.1  :  vezne3_b var portc.2
vezne4_b var portc.3    :  vezne5_b var portc.4  :  vezne6_b var portc.5
vezne7_b var portc.6    :  vezne8_b var portc.7  :  vezne9_b var porta.3
vezne10_b var porta.5   :  buzzer var porte.2    :  reset_b var porta.4
y=0  
y=0  :  vezne_no=0  : tekrar_Reg=0
vezne_no_birler=0  :  vezne_no_onlar=0
sayac_reg[0]=0  :  sayac_reg[1]=0  :  sayac_reg[2]=0
numara_reg[0]=0  :  numara_reg[1]=0  :  numara_reg[2]=0
vezne_enable=1  :  sira_enable=1
for z=0 to 29
vezne_reg[y]=0  :  y=y+1
next z
'******************************************************************************
'Timer0 kesmesinin aktif edildiği ve işlendiği alt programdır.
'******************************************************************************
INTCON = %10100000
t0con=%11000110
goto loop

on interrupt goto myint

myint: disable
if tasma=75 then
tasma=0
if tekrar_reg=0 then
intcon.2=0  :  goto myint_go
endif
toggle vezne_enable  :  toggle sira_enable
tekrar_reg=tekrar_reg-1  :  intcon.2=0  :  goto myint_go
endif
tasma=tasma+1
intcon.2=0
myint_go: resume
enable
'******************************************************************************
'ana program başlangıcıdır.
'******************************************************************************
loop: 
call goster

if reset_b=1 then
call reset_at
call buzer1  :  call buzer2
call buzer1  :  call buzer2
call buzer1  :  call buzer2
goto loop
endif

if vezne1_b=1 then
vezne_bul=0  :  vezne_no=1  :  tekrar_reg=10
vezne_enable=1  :  sira_enable=1
call vezne_art  :  call buzer  
goto loop
endif

goto loop
'******************************************************************************
'Reset alt programıdır.
'******************************************************************************
reset_at:
y=0  :  vezne_no=0
vezne_no_birler=0  :  vezne_no_onlar=0
sayac_reg[0]=0  :  sayac_reg[1]=0  :  sayac_reg[2]=0
numara_reg[0]=0  :  numara_reg[1]=0  :  numara_reg[2]=0
for z=0 to 29
vezne_reg[y]=0  :  y=y+1
next z
return
'******************************************************************************
'Vezne butonlarına basııdığında, ilgili veznenin artmasını sağlayan programdır.
'******************************************************************************
vezne_art:
if sayac_reg[0]=9 then
  if sayac_reg[1]=9 then
    if sayac_reg[2]=9 then
    return
    endif
    sayac_reg[1]=0  :  sayac_reg[0]=0  :  sayac_reg[2]=sayac_reg[2]+1
    goto vezne_aktar
  endif
  sayac_reg[0]=0  :  sayac_reg[1]=sayac_reg[1]+1
  goto vezne_aktar
endif
sayac_reg[0]=sayac_reg[0]+1
goto vezne_aktar

vezne_aktar:
vezne_reg[vezne_bul]=sayac_reg[0]
vezne_reg[vezne_bul+1]=sayac_reg[1]
vezne_reg[vezne_bul+2]=sayac_reg[2]
numara_reg[0]=sayac_reg[0]
numara_reg[1]=sayac_reg[1]
numara_reg[2]=sayac_reg[2]
return
'******************************************************************************
'Genel gösterge alt programıdır.
'******************************************************************************
goster: 
for i=1 to 15
portb=i  :  lcd_reg=vezne_reg[y]  :  y=y+1
call cevir  :  portd=lcd_reg
low en1  :  pauseus 1000  :  high en1    
next i
for i=1 to 15
portb=i  :  lcd_reg=vezne_reg[y]  :  y=y+1
call cevir  :  portd=lcd_reg
low en2  :  pauseus 1000  :  high en2
next i
y=0

lcd_reg=numara_reg[0]  :  call cevir
portd=lcd_reg
if sira_enable=0 then portd=0
porta=3  :  pauseus 100  :  porta=0
lcd_reg=numara_reg[1]  :  call cevir
portd=lcd_reg
if sira_enable=0 then portd=0
porta=2  :  pauseus 100  :  porta=0
lcd_reg=numara_reg[2]  :  call cevir
portd=lcd_reg
if sira_enable=0 then portd=0

porta=1  :  pauseus 100  :  porta=0
call vezne_no_bul
lcd_reg=vezne_no_onlar  :  call cevir
portd=lcd_reg
if vezne_enable=0 then portd=0
porta=4  :  pauseus 100  :  porta=0
lcd_reg=vezne_no_birler  :  call cevir
portd=lcd_reg
if vezne_enable=0 then portd=0
porta=5  :  pauseus 100  :  porta=0
return

goster1: y=0
for b=1 to 20
for i=1 to 15
portb=i  :  portd=vezne_reg[y]  :  y=y+1
low en1  :  pauseus 100  :  high en1
next i
for i=1 to 15
portb=i  :  portd=vezne_reg[y]  :  y=y+1
low en2  :  pauseus 100  :  high en2
next i
y=0
next b
y=0
return
'******************************************************************************
'Vezne numaralarının bulunduğu alt programdır.
'******************************************************************************
vezne_no_bul:
select case vezne_no
case 0
vezne_no_birler=0  :  vezne_no_onlar=0  :  return
case 1
vezne_no_birler=1  :  vezne_no_onlar=0  :  return
case 2
vezne_no_birler=2  :  vezne_no_onlar=0  :  return
case 3
vezne_no_birler=3  :  vezne_no_onlar=0  :  return
case 4
vezne_no_birler=4  :  vezne_no_onlar=0  :  return
case 5
vezne_no_birler=5  :  vezne_no_onlar=0  :  return
case 6
vezne_no_birler=6  :  vezne_no_onlar=0  :  return
case 7
vezne_no_birler=7  :  vezne_no_onlar=0  :  return
case 8
vezne_no_birler=8  :  vezne_no_onlar=0  :  return
case 9
vezne_no_birler=9  :  vezne_no_onlar=0  :  return
case 10
vezne_no_birler=0  :  vezne_no_onlar=1  :  return
end select
'******************************************************************************
'Lcd_reg registerindeki bilgiyi displaylerde görülebilecek şekilde değiştirir.
'******************************************************************************
cevir: select case lcd_reg
case 0
 lcd_reg=%00111111  :  return
case 1
 lcd_reg=%00000110  :  return
case 2
 lcd_reg=%01011011  :  return
case 3
 lcd_reg=%01001111  :  return
case 4
 lcd_reg=%01100110  :  return
case 5
 lcd_reg=%01101101  :  return
case 6
 lcd_reg=%01111101  :  return
case 7
 lcd_reg=%00000111  :  return
case 8
 lcd_reg=%01111111  :  return
case 9
 lcd_reg=%01101111  :  return
  end select

buzer: high buzzer
for b=1 to 40
call goster
next b
low buzzer
return

buzer1: high buzzer
for b=1 to 115
call goster
next b
low buzzer
return

buzer2:
for b=1 to 150
call goster
next b
return

end

ramco123

Arkadaşım çok teşekkür ederim.Aslında biz ilk etapta logan arkadaşımızın koyduğu projeyi yapacaktık.Fakat simülasyonda program çalışıp gerçekte çalışmadı.Oyüzden bu yola başvurduk.Fakat dediğin yolu deneyeceğim.İlgin için teşekkür ederim.İyi çalışmalar
Saygılar...

ilker_32

Alıntı yapılan: "ramco123"Arkadaşım çok teşekkür ederim.Aslında biz ilk etapta logan arkadaşımızın koyduğu projeyi yapacaktık.Fakat simülasyonda program çalışıp gerçekte çalışmadı.Oyüzden bu yola başvurduk.Fakat dediğin yolu deneyeceğim.İlgin için teşekkür ederim.İyi çalışmalar
Saygılar...
Proje gayet normal. %100 çalışıyor. Siz bir yerlerde hata yapmışsınız.

ramco123

Arkadşım sen devreyi bord üzerine kurdunmu eğer kurduysan ve çalıştıysa ben tekrar deneyim.Bu arada ben tek yanlışı heralda pici yüklerken mi yapıyorum acaba
Bu pici yüklerkenki ayarlar nasıl olacak yani pic 18f452 nin ayarları bu konu hakkında yardımcı olabilirmisiniz

ben winprog800 diye bir program var onunla programlıyorum usb den bağlanıyor bilgisayara

Ayar kısmınında resimleri


ilker_32

Kardeşim devre çalışıyor problem yok. PIC'e program attım. Deneme kartında çıkış gözledim. Şüphen olmasın.

Öncelikle 20MHz kristal kullanıyorsun HS osilatörü seçeceksin. Gerçek devreye 20MHz'lik bir kristal ve kond. ekleyeceksin şemada koyulmadığına bakma.

Boren işaretini kaldır. Ona ihtiyaç yok bu devrede.

WDTEN bu kapalı dursun.

CCP2MX bu kapalı dursun.

LVP bu kapalı dursun.

STVREN bu kapalı dursun.



Sadece daire şeklinde olan işaretli diğerlerinin hepsi işaretsiz olacak