pbp da ıf döngusu ıle yazı surme yardım hocam

Başlatan bahdiyarusta, 31 Ocak 2013, 15:28:10

bahdiyarusta

yardımm... hocam 1 haftadır araştrırıyorum kimse yeterli bilgiyi veremiyor. . . kendı çabalarımla ne nettekı dokumanlarla kayan yazıyı az çok çözdüm... devreyı kurdum calısıyor .    kayan yazı ile ilgili sorulara bakmıyorum dediniz ama ... bu kayan yazının sadece yönlendırme aşaması valla hocam ne yaptımsa çözemedem bnım bıldıklerım yetersız gelıyor işin içinden çıkamıyorum ...  DEVREDEKİ amacım şu programa göre ra5 ucuna buton bağlayıp butona 1 defa basınca "66" yazısı kaysın hep 2 defa basınca "elektronık" kaysın 3 defa basınca "bahadır" 4 defa "karakoç" ..... bunu yapmak istedım ama olmuyor hocam lütfen bi el atın şu programa

saygılar...
<<<***bahdiyarusta****>>>
                  - 66 -

ete

Dediklerimi ya yanlış anladın yada hiç anlamadın.
Senin bu yazdıklarını ben program olarak görmüyorum maalesef. Haspel kader bir araya getirilmiş kod parçaları desek daha doğru olur.

Programlama bilgin ya hiç yok yada çok az. O halde neden yazı kaydırmaya kalkıyorsun. Bende bunu anlamıyorum.
Kaydırma demiyorum. Yanlış anlama ama usulünü öğren öyle yap bu işi. Bilmiyorsan vaz geç.
Prensiplerimin başında bir ucundan tutulmayan projelere yardımcı olmadığım geliyor. Bakıyorumda bir ucundan tutma işinin karşılığı olarak millet abuk subuk şeyler yazıp program diye karşıma koyup şuna bir yardım et demeye başladılar. Yada biryerlerden bir şeyler kopyalayıp kod oluşturmaya kalkıyorlar. Anlamayacağımı sanıyorsunuz ama öyle kolay anlıyorumki bir saniye bakmam yetiyor .

Bak şimdi senin program diye verdiğin şeye bir bak. Ne sigorta ayarı var ne doğru dürüst buton kontrolü var.
Hadi diyelimki buton kontrolünü yaptık. Programda karekterleri nasıl ayıracaksın? Çünki sistem çorba sistemi hepsi bir yerde karıştırılmış bir sistem. İncelediğin kayan yazı programlarında buna benzer bir sistem gördünmü? sanmıyorum.
Normal sistemlerde her bir harf data olarak ayrılır. Kaydırılacak yazı bir lookup tablosundan yada epromdan okunur. Okunan yazının her bir harfine ait datalar yine tablolardan alınıp değişkenlere yerleştirilir. Böyle bir sistemin olsa kolaylıkla istediğini yapmak mümkün olabilirdi. Ama senin sisteminde harfleri nasıl ayıracağız. Bir sürü data var ama kime ait oldukları belli değil. Sen şayet ben ayırırım diyorsan ben sana buton kontrolünü nasıl yapacağını söyleyeyim o zaman gerisini hallet.

Öncelikle PortA.5 pinini input olarak kullanabilmen için programına MCLR yi OFF yapan sigorta ayrını ilave etmen gerekiyor.
Sonra MCLR pinine bir buton bağla buton diğer ucunu GND ye bağla. POrtA.5 pinine 10K lık pullup direnci bağla.
Bu aşamdan sonra butonun çalışır konuma gelecektir. Butona basılınca pine LOW tatbik edecektir ama beklerken pin High da bekleyecek ve LOW dan HIGH konumuna geçiş butona basıldığının anlaşılmasını sağlayacaktır.

Programın başına ;
TUSBAK:
A=0
IF PORTA.5=0 THEN
    A=A+1
  WHILE PORTA.5=0:WEND 'tuşun bırakılmasını bekle
  SURE=0
  while porta.5=1 'tuş bırakılmış bekliyor zamanı say
   sure=sure+1
   pause 10
   IF SURE=200 THEN ATLA 'zaman 200 olmuş ise ATLA demekki başka tuşa basılmayacak
   WEND
   A=A+1     'yeniden tuşa basıldı o halde A değerini bir daha artır.
    while porta.5=0:wend  'tuşun bırakılmasını bekle
   SURE=0
   while porta.5=1 'tuş bırakılmış bekliyor zamanı say
   sure=sure+1
   pause 10
   IF SURE=200 THEN ATLA 'zaman 200 olmuş ise ATLA demekki başka tuşa basılmayacak
   WEND
   A=A+1     'yeniden tuşa basıldı o halde A değerini bir daha artır.
    while porta.5=0:wend  'tuşun bırakılmasını bekle
ENDIF

ATLA:
SELECT CASE A
CASE 0
  goto TUSBAK  'yani tuşa basılmamış ise ve A=0 ise bir şey yapma yeniden tuşa basılmasını bekle

CASE 1
  Goto 66KAYDIR  'bir şekilde bunu başarman lazım ama nasıl bende bilemiyorum.
CASE 2
  Goto ElektronikKaydır
Case 3
  Goto BahadırKaydır
Case 4
  Goto KarakocKaydır
End Select
Goto TUSBAK
Altında senin programın başlayacaktır.

Dediğim gibi sorun karekterlerin ayrılamaması. Nasıl seçileceğini sen bileceksin.

Ete

bahdiyarusta

anladım hocam . çok haklısınız tabikide ben acemiyim kodları tam bilmiyorum.
bu dile yani başladım sizin dersleride okuyorum ara ara . anlattıgınızı anladım
yardımız için çok teşekkürler hocam...
<<<***bahdiyarusta****>>>
                  - 66 -

bahdiyarusta

sayın ete hocam
verdğiniz bilgiye göre benım elımdekı programa göre derleyemedım ve olmayacagına karar verdım . sizden ricam  . şu kodlarla bı yardımcı olun yol gösterın ben devamını getırmeye çalışayım o zaman  bu programa gore DATA @0," 66 ELEKTRONIK BAHADIR KARAKOC   05442038451  LED TABELA . KAYAN YAZI  ",5 buraya ne yazarsam o yazı kayıyor .bu programa buton eklemek ıstıyorum mesela 2 buton 2 farklı yazı kaysın gıbı kodu nereye nasıl yazmam laaazım acabaa.... hocam yol gösterin
<<<***bahdiyarusta****>>>
                  - 66 -

ete

Programın ana bölümü zaten çok kısa;
BASLA:                   ;ana döngü etiketi             
    GOSUB TARA           ;sutun tarama alt programına git
GOTO BASLA
hepsi bu kadar. Senin ilave edeceğin satırlar
GOSUB TARA ile GOTO BASLA arasında yer almalıdır.

Buton kontrolünden sonra basılan buton sayısına göre saydırmak için önce yazdırılacak yazının nereye yazıldığını iyi bilmen gerekiyor.
Kullanılan işlemcinin Eprom'una sıfır nolu adresten itibaren yazı kayıt ediliyor. Yazı kayıt ediliyor derken yazının şeklinde de dikkat etmen gerekiyor. Programda verilen data satırına bakarsan;
baştan ve sonranbirer boşuk verilerek yazı eproma kayıt ediliyor.
Her bir karekter bir hafıza kullanacağına göre şöyle bir hesap yaparsak:
-66 yazısı 1 nolu adresten başlıyor.
- ELEKTRONİK yazısı 4 nolu adresten başlıyor
- BAHADIR yazısı 15 nolu adresten başlıyor
Bu şekilde adresleri yazı üzerinde sayarak hangi adresten başladığını öğrenebilirsin.

Programa bakarsan;
KARAKTER_AL:;_______________J DEGİSKEN DEGERİNE GÖRE KARAKTER ALINIYOR________________________
'    LOOKUP J,[" PICPROJE  ",5],KARAKTER
    READ J,KARAKTER                                                        ;
RETURN;
satırlarında epromdaki karekter alınarak  ekrana basılmaktadır. Hangi karekterin alınacağına J değişkeni karar vermektedir.
J=1 yaparsam karekterler 66..... dan itibaren , J=4 yaparsam Karekterler Elektronik yazısından itibaren başlayıp ekrana basılır.
O halde senin yapman gereken şey tuşlara basılarak yapılan dallanma işinde  (select case .. ) J ye istediğin karekter adresini vererek yazının istediğin karekterden kaymaya başlamasını sağlayacaksın. Laf ile tarifi çok kolay. Ama program kısmında deveye hendek atlatman gerekecek.

Bu arada hemen belirteyim. Bu istediğin şeyi kolay bir iş gibi görerek günlerdir peşinde koşuyorsun ama sırf bu iş için başlı başına bir program yazmak gerekir. Mevcut programlama bilginle bu işin içinden çıkabileceğini hiç sanımıyorum. Şevkini kırmak istemem ama öğrenmen gereken bir sürü şey var iken sen merdivenin en üst basmağına atlamak istiyorsun. Bende da açıklama bekliyorsun.  Sana açıklamayı vermiştim aslında. Bunu nereye koyacağını bilemiyorsan bu işten anlamıyorsun demektir ben bunu değerlendiriyorum.  Sana yeterince açıklama verdim aslında bütün işi açıklamaları bu programla bağdaştırmak olmalı. Bu mesajda verdiğim açıklamayı ilk açıklama ile birleştir ve yapmaya çalış bakalım.
Şunu hemen belirteyim. Ben bile bu istediğin şeyi yapmak için en az 3 gün içinde yapabilirdim. Sen kimbilir kaç günde yaparsın artık. Konu başlığında belirtmiştim. Kayan yazılardan nefret ediyorum. O nedenle üzerinde kafa bile yormak istemem.
Sana kolaylıklar diliyorum. Umarım başarırsın.

Ete

bahdiyarusta

teşekkurler  hocam bu konu üzerine ugraşacagım .... çok saolun
<<<***bahdiyarusta****>>>
                  - 66 -

Powered by EzPortal