PIC BASIC PRO Öğreniyoruz soru cevapları

Başlatan aster, 19 Mayıs 2005, 17:33:33

F.T

reccom madem  ete hocanın çözemediğini anlayacak kadar zeki olduğuna eminsin  bu soruyu neden sordunki  ?
Hakk şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

reccom

Sorunu çözemediğimden dolayı burda çözüm bulmak için yazıyorum, ete isimli kullanıcının ve diğer bir üyenin önerilerinin yazdığım programda çözüm olmadıklarını belirtmiştim ve ikisindende birdaha öneri gelmeyince onlarında bir çözüm bulamadıklarını düşündüm(bulamadılar demedim )  ama tabi düşük bir ihtimalde olsa mesajları görmemişlerde olabilir. Eğer senin bir çözümün vardıysa, yazdıklarına ekleseydin çok memnun olurdum , bundan sonraki mesajlarına eklersende memnun olurum, niyetim burda kimseyi kırmak yada kötülemek değildir, sorunuma çözüm aramaktır. Senden ricam varsa bir önerin söylemen, birde zeka gibi bir olguyu basit cümleler içinde kullanmaman zira sana bişey kazandırmaz.

Soruna çözüm bulmaya çalışan kullanıcılara tekrardan teşekkür ederim.
mail [email]gungor.h@hotmail.com[/email] daha fazla devre ve uygulama için resme tıkla [/url]

DİRİLİŞ_MAK

4511 ile display kontrolüne bakıyorum aklıma takılan bir nokta var arkadaşlar. Örnek programın kafama takılan kısmı üzerinden gideyim.  İki display ve iki 4511 var B portunun ilk dört biti 4511'lere bağlanmış sonraki iki biti ise LE uçlarına bağlanmış, kod kısmı ise şöyle
...
birler=sayi DIG 0
onlar=sayi DIG 1

PORTB=sayi1 | %11110000
LOW PORTB.5
PAUSE 1
HIGH PORTB.5
PAUSE 1
....
şeklinde devam ediyor. Burada bit or'lama işleminde neden 4,5,6,7. bitlerin tamamını 1 yapıyoruz? Benim kullandığım LE bitleri sadece 4 ve 5. bitler. Displayde mutlaka bağladığımız portun son dördü high mı olmalı her zaman? Bu kısmı detaylıca anlatabilir misiniz?

ete

O örnek programın orjinali 4 digit lik idi. senin kullandığn ise 2 digitlik. Bu nedenle yalnızca 4 ve 5 nolu bitleri HIGH da tutabilirsin.

Aynı işi ;
PORTB=(PORTB % %00110000)+BIRLER şeklinde de yaptırabilirsin. Burada temel amaç Bit7-Bit4 aralığını aynen kopyalamak buna Bit0-Bit3 aralığını eklemek hepsi bu. Sen kullanırken yine PORTB=(PORTB & %00110000)+BIRLER şeklinde de kullanabilirsin.

Ete

Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

DİRİLİŞ_MAK

Alıntı yapılan: ete - 30 Ekim 2016, 21:59:09
O örnek programın orjinali 4 digit lik idi. senin kullandığn ise 2 digitlik. Bu nedenle yalnızca 4 ve 5 nolu bitleri HIGH da tutabilirsin.

Aynı işi ;
PORTB=(PORTB % %00110000)+BIRLER şeklinde de yaptırabilirsin. Burada temel amaç Bit7-Bit4 aralığını aynen kopyalamak buna Bit0-Bit3 aralığını eklemek hepsi bu. Sen kullanırken yine PORTB=(PORTB & %00110000)+BIRLER şeklinde de kullanabilirsin.

Ete



Anladım hocam, teşekkürler ederim. O zaman diyelim ki 8 tane tekli Display kullanacağız. B portunun ilk dört biti 4511 ile displaylere diğer dört bit LE ucuna ve açıktan kalan diğer dört display içinde A, C gibi bir herhangi bir porttan LE tetiklemesi alıyor. Böyle bir işlem gerçekleştirilebilir mi? Farklılık varsa yazmamız gereken kod ne olur?

ete

8 adet tekli display söylediğin şekilde sürülür. 4 tane LE ucu B portundan diğer 4 taneside diğer çıkış olabilecek pinlerden sürülebilir.
Yazılacak kod çok farklı olmayacak. Her bir digit e ait LE ucuna yeri geldiğinde pals uygulanacak. Genel uygulama şöyle oluyor. 4511 lerin ABCD girişlerini birleştiriyoruz. Hangi digite bilgi yazılacak ise Bilgi ABCD girişlerine veriliyor ve ardından hangi digite gidecek ise ona ait LE ucuna puls uyguluuyoruz. Böylece yollanan bilgiden diğer digitler etkilenmemiş oluyorlar.
Bana kalırsa 74HC595 shift registeride incele. Bezer işleri onunlada yapabilirsin.

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

Mr.Thinking

if gelenbilgi=gidenbilgi then
gosub falan
else
gosub hata
endif

Anladiginiz uzere yukaridaki sorgulamada programa, bilgiler esit se falana degilse hata etiketine git gidiyor.

Bunu matematikte kullandigimiz esitdegilse isareti gibi bir isaret kullanarak
sadece
If gelenbilgi=/gidenbilgi then
gosub hata seklinde yapabilecegimiz bir yol varmi. Cunku ben falan etiketine gitmesini degil sadece hata ekranina gitmesini istiyorum.
ego=1/Knowledge

ilyas KAYA

Alıntı yapılan: elektro77 - 12 Eylül 2019, 08:36:59if gelenbilgi=gidenbilgi then
gosub falan
else
gosub hata
endif

Anladiginiz uzere yukaridaki sorgulamada programa, bilgiler esit se falana degilse hata etiketine git gidiyor.

Bunu matematikte kullandigimiz esitdegilse isareti gibi bir isaret kullanarak
sadece
If gelenbilgi=/gidenbilgi then
gosub hata seklinde yapabilecegimiz bir yol varmi. Cunku ben falan etiketine gitmesini degil sadece hata ekranina gitmesini istiyorum.

If gelenbilgi<>gidenbilgi then
Yaparsanız eşit değilse olur.

MC_Skywalker