picbasicte alfanumeric karakterle işlem

Başlatan dyonizos, 15 Nisan 2011, 14:28:12

dyonizos

merhabalar
EEPROM ıcıne "F" yada "S" gıbı bır degerı nasıl yazıdırıp okutabılırım.

write 0,"F" 'şeklinde yazıp
read 0,deger

olarak okuttugum zaman bu deger degıskenını

if deger="F" then
LCDOUT $FE, $80, deger

şeklinde kullanabilirmiyim?



ete

Yapabilirsin. Zira sen Write 0,"A" dediğin zaman sıfır nolu adrese 65 değeri kayıt edilecektir. Kısaca harfin ASCII karekter kodu kullanılmış olacaktır.
Bunu artık istediğin gibi kullanabilirsin.

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

dyonizos

pekı okuttugum zaman 65 degerınımı alırım gerıye yoksa "F" karakterınımı?

Klein

'A' karakteri ile 65 sayısı aynı şeyler. Aynı şekilde 'F' karakteri ile 70 sayısı da aynı şey.  Hafızada herşey binary sayılar şeklinde tutulur.  'A','B' gibi semboller sadece gösterim şeklidir.  Bilgisayar 'A','B','C' bilmez.  eğer sen sayının ASCII karakter karşılığını görüntülemek istersen  65 sayısı 'A' karakteridir.  Eğer Hex karşılığını görüntülemek istersen göreceğin şey 0x41 hex sayısıdır. Bunların hepsi biribirinin aynı. Fark ekranda bu sayıya karşılık ne gösterdiğin ile ilgili.

OG

Klein açıklamış ama biraz kafa zorlamak için,


[IMG]http://img199.imageshack.us/img199/7712/8n1.png[/img]

[IMG]http://thumbnails36.imagebam.com/12811/1535ef128107954.jpg[/img]

Giden veya gelen data bundan başka birşey olabilirmi (bit sayısı gibi ufak tefek farktan başka)?

Olamaz, giden gelen elektrik palsleri.

Pals durumuna göre ardısıra bit dizisi elde ediyoruz, 1 0 1 1 0 1 0 0 0 1 1 0 1 1 1 1  gibi (örnek, sallama bir dizi anlam içermiyor)

Sonra biz bu diziden bir anlam çıkarmak için birşeyler yapıyoruz.

Önce bu elde edilecek anlam için kapasite sınırı veriyoruz,  byte genişliğinde (veya diğerleri) gibi standartlar koyuyoruz.

Sonra byte (örneğimizdeki bu) 8 bit olduğu için sıra ile bitleri diziyoruz,

örneğin ilk 8 biti alıp kullanalım,
1 0 1 1 0 1 0 0

Bunların hangisi hangi bit değerinde olduğunu tayin etmeden sonuç alamayacağımız için buna da bir sıralama kabulu yapıyoruz.

Sıralama şöyle olursa,

Bit sıralaması
76543210 'bit haneleri
10110100 'aldığımız data

Bu hali ile bizim kullandığımız "ON"lu sistemde değeri 180 olur.

Bunu nasıl yapıyoruz,
7. hanenin kuvveti 2 üzeri 7 , vereceği değer = 128
6. hanenin kuvveti 2 üzeri 6 , vereceği değer = 64
5. hanenin kuvveti 2 üzeri 5 , vereceği değer = 32
4. hanenin kuvveti 2 üzeri 4 , vereceği değer = 16
3. hanenin kuvveti 2 üzeri 3 , vereceği değer = 8
2. hanenin kuvveti 2 üzeri 2 , vereceği değer = 4
1. hanenin kuvveti 2 üzeri 1 , vereceği değer = 2
0. hanenin kuvveti 2 üzeri 0 , vereceği değer = 1

Sıralama ters olsa idi,

Bit sıralaması
01234567 'bit haneleri
10110100 'aldığımız data

Bu hali ile bizim kullandığımız "ON"lu sistemde değeri 45 olurdu.

Bu ikili (binary) sistemin kuvvetleridir, günlük hayatta 10 lu (decimal) sistem kullanırız, onda ise kuvvetler "10 üzeri x" diye gider, bunda "2 üzeri x".

Yani sonuçta sayısal bir değer elde ediyoruz, gelen 1 0 gibi palsleri hesaplıyor ve sayı elde ediyoruz.

Elde edilen sayıdan başka bir şey olmadığına göre "HARF" gönderme-alma işi tamamen yorumlama ile ilgili.

Bu işin de standartları oluşmuş ve ASCII denen format dünyada yaygınlaşmış,

[IMG]http://img200.imageshack.us/img200/1362/asciitable.jpg[/img]


FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.