iki pic arasında seri haberleşme

Başlatan feridoo, 18 Aralık 2006, 19:32:59

feridoo

merhaba arkadaşlar. forma yeni katıldım inşallah bundan sonra bu formdayım..gelelim konuya..pic ile (16f87) bir asansör kumanda devresi yapmaktayım. pic ile yeni tanışmama rağmen herşey yolunda gidiyor derken bir yerde takıldım..pic'in bacak sayısı yeterli olmadı en az 3 bacak daha kullanmam lazım. aklıma şöyle bişi geldi 16f877 nini yanına 16f84 koyup iki işlemciyi seri haberleştirip LCD ekranıda 16f84 de bağlayıp bu sournu çözmek...SERIN ve SEROUT komutları ile picler arası  seri haberleşmeyi sağladım..takıldığım nokta şu. 16f877'den 16f84 de LCD de göstermek üzere bir metni seri olarak nasıl gönderebilrim. karakterler dışında temp dosyası oluşurarak rakam vs. gönderebiliyorum ama karakter göndremiyorum...bu konuda bilgisi olan arkadaşlar yardımlarınızı bekliyorum.

bkrtncr

sonucta gonderecegin metinler sabit olduguna gore, belli bir id gonder ve bu id'yi 16f84'de tanimla.. ve gelen dataya gore ekranda yaziyi goster... :D

bana gore bu yontem hem daha pratik hem daha esnek bir uygulama olur...
Bildigini paylaşan, ALİM'dir...

feridoo

arkadaşım metinlerin hepsi sabit değil..değişkenler olabiliyor... 16f877'yi kullanıcı programlayabilcecek. birçok parametreyi kendisine göre değiştirebilecek.yani benim A olarak girdiğim metni yada ismi kullanıcı B olarak değiştirebilir. örneğin PIC'e ilk enerji geldiğinde benim adımı yazacak. ama kullanıcı kendi adını yada firmasının adını yazmak isteyebilir. bütün karakterleri tek tek dediğin şekilde PIC'e yollayabiliirm. ama bu işi daha kısa yoldan halledecek bir komut satırı yokmudur acaba???

rree

16f877 I/O  sayısı yetmiyorsa (74373  8bit D FF tristate output) tip
entegreler ile çıkış sayısını artırman mümkün.

feridoo

dediğin şekilde port çoğaltmayı zaten yaptım..şuanda 48 port oldu. ancak bu sayı yeterli değil ve zaten 74373 lerin dışında kart üzerinde başka entegrelerde var. yani çok kalabalık bişi oldu. ben birazdaha sade olsun istiyorum. artık bir tane daha entegre koymak istemiyorum hatta diğerlerini bile bir şekilde azaltmak istiyorum.. zannedersem ben bu işi yine kafayı sıyırarak halledeceğim :)

mytap

Diğer bir işlemci sadece LCD de yazı yazacak ise seri yoldan haberleşen LCD ler kullanabilirsin. Tek hatla bilgi ekrana yazılabiliyor. Bu sadece bir öneri. Diğer yandan 74hc595 tipi shift register kullanarak 30 pinle 240 çıkış birimi yapılabilir. Seri haberleme konusunda ise USART kesmelerini kullanmak gerek. Kullandığınız programlama dili nedir?
-------------------------------------------------------- hayırlı günler, iyi çalışmalar..  --------------------------------------------------------

Ziya

16f84 kullanmak yerine 74hc595 kullan ve lcd yi buna bağla. lcd rutininde send_byte kısmında değişiklik yapman gerekir.

Veya sadece çıkış olarak kullandığın portları 74595'e aktar. 3 pin ile peş peşe 5-6 74HC595 sürebilirsin. Boşa çıkan porta lcd bağlarsın. 595 sürme kısmını 16F877 SPI portundan yapabilirsin. Yalnız SI ucunu çıkış tanımlaman gerekir. Yoksa o pinden geleni SPI data latchine (her clockta bir bit rrl yaparak 8 clockta paralel bir bayta dönüştürür) aktarır.
Bu günden sonra hiç kimse sarayda, divanda, meclislerde ve seyranda Türk dilinden başka dil kullanmaya. (13 Mayıs 1277) Karamanoğlu Mehmet Bey