PIC16F877 mikrodenetleyicisi CCs c kodu

Başlatan nily, 15 Mayıs 2013, 13:16:06

nily

Merhabalar,
İsis'te bir proje yapmaya çalışıyorum. Proje cep telefonundan atılan mesajın  Telit marka GSM modemin içindeki sim karta gelerek 16F877 mikrodenetleyiciye ulaşması ve mesaja göre lambanın yakılması söz konusu. Aynı zamanda bir gaz sensörü ile ortamda gaz varsa açık olan lambanın kapatılması söz konusu. Projede CCS c programlama ile AT komutlarını kullanmayı planlıyorum. 
İsis'te devreyi tasarlamaya çalıştım fakat kodlama kısmında sıkıntım var AT komutlarını nasıl koda nasıl yerleştireceğimi ve sensörün çalışmasını nasıl kontrol edeceğimi bilemiyorum, yardımcı olabilir misiniz acaba?




KOD:

#include <16f877.h>
#fuses xt,nowdt,nowrt,nodebug,nolvp,nocpd,noput,noprotect,nobrownout
#use delay(clock=4M)
#use rs232(baud=9600,xmit=pin_c6,rcv=pin_c7,parity=N,stop=1)
void main()
{
set_tris_b(0x00);
output_b(0x00);
}

pax

aynı uygulamayı siemens gsm modem ile yapmıştım pic 16f877 kullanarak programlamayı da ccs c ile yapmıştım yardımcı olabilirim . mail üzerinden ulaşırsanız takıldığınız yerlerde yardımcı olabilirim

malpaslan1979

Alıntı yapılan: pax - 21 Mayıs 2013, 22:50:06
aynı uygulamayı siemens gsm modem ile yapmıştım pic 16f877 kullanarak programlamayı da ccs c ile yapmıştım yardımcı olabilirim . mail üzerinden ulaşırsanız takıldığınız yerlerde yardımcı olabilirim

mail üzerinden birbirimize yardımcı olacaksak bu foruma ne gerek var?

pax


Mefe

#4
AT komutları telefonlar ile bilgisayarlar arasındaki haberleşme için kullanılmıyor mu? Ben mi yanlış hatırlıyorum. Burada gsm modeminin olması AT komutlarının kullanılacağı anlamına gelmez. Bildiğim kadarıyla gsm modem ile işlemci arasında I2C veya USART protokolü kullanılıyor. Ama bu konu üzerinde proje geliştirmediğim için emin değilim.
Muhammet EFE || http://muhammetefe.com

polleme

Alıntı yapılan: Mefe - 22 Mayıs 2013, 01:19:02
AT komutları telefonlar ile bilgisayarlar arasındaki haberleşme için kullanılmıyor mu? Ben mi yanlış hatırlıyorum. Burada gsm modeminin olması AT komutlarının kullanılacağı anlamına gelmez. Bildiğim kadarıyla gsm modem ile işlemci arasında I2C veya USART protokolü kullanılıyor. Ama bu konu üzerinde proje geliştirmediğim için emin değilim.

Bir GSM Modem ile USART arayüzü üzerinden AT kmoutlaru ile iletişim kuruluyor.

ofbee

arkadaşlar meraba pic16f877 üğzerinden 4 adet ortak catotlu display sürerek skor bord yapmam gerek ama tek pic üzerinden 4 adet display nasıl sürcem bilmiyorum. 2 takım içinde skor yükselteme skor azaltma ve skor sıfırlama butonları olcak yani toplam 6 adet buton ben 2 adet pic kullnarak yaptım ama işime yarmıyor bu projeyi tek pic üzerinden yapmam gerekiyor transistör ile yönlendirme diye bişey warmış saınırım bilgisi olan varsa yardımcı olabilirmi şimdiden teşekkürler...

polleme

74HC595 veya MAX7219'lu örnekleri incelemenizi öneririm.

ofbee

#8
herhangi bir çoğaltma entegresi kullanmadan yapmam mümkün değilmi bu konuda daha yeniyim proje ödevim bu sorunu açil çözmem lazım hoca benim yaptığım gibi kabul etmiyor.

Kabil ATICI

Birde keşke foruma iyice bir baksaydınız.. Birileri mutlaka sormuştur!!

https://www.picproje.org/index.php?topic=21530.0
ambar7

ofbee

#10
hocam baktım aradım bulamadım senin bu gönderdiğin linkede baktım ama pek beceremedim hocam bide burda aynı anda 1 den fazla display yaklamadım ben bi türlü sadece tek bir dispiley yanıyo 9 kadar saydırıyom 10 yapamıyorum :(  tasarım aşğıdaki linkte olduğu gibi
arttırma butonuna bastığım zamn tam olarak nasıl bir kod bulogu yazmam gerek senin bir bilgin varsa örneklersen sevinirim
http://imageshack.us/photo/my-images/163/26504661.png/

polleme

Alıntı yapılan: ofbee - 22 Mayıs 2013, 14:38:25
hocam baktım aradım bulamadım senin bu gönderdiğin linkede baktım ama pek beceremedim hocam bide burda aynı anda 1 den fazla display yaklamadım ben bi türlü sadece tek bir dispiley yanıyo 9 kadar saydırıyom 10 yapamıyorum :(  tasarım aşğıdaki linkte olduğu gibi
arttırma butonuna bastığım zamn tam olarak nasıl bir kod bulogu yazmam gerek senin bir bilgin varsa örneklersen sevinirim
http://imageshack.us/photo/my-images/163/26504661.png/

Çoğullama entegresi kullanmak istemiyorsanız her katot için bir, segmentler için 7 olmak üzere en az 11 uç kullanmanız gerekiyor. Hane tarama yöntemiyle her dijiti sırayla aktif hale getirip istediğiniz rakamı yazdıktan sonra onu pasif edip bir sonraki dijiti aktif edip rakamı yazarak bu şekilde bir döngü içinde tüm rakamları yazmanız gerekecek. Yeterince yüksek frekansta tüm rakamlar net gözükür.

Kabil ATICI

Çoğullama işlemi!
Aslında bu sistemde LED'leri aynı anda çalıştırmıyorsun...
Prensip şu: insan gözü saniyede 24 Hz'den üstünü algılayamıyor... Tamam!
Tüm ledler sönük...

1-birler hanesinin değerini ekrana gönderiyorsun
2-birler haresinin ortak katot ucun aktifliyorsun(Transistörü aç)
3-Biraz bekliyorsun! (Zamanlama)
4-Birler hanesi ortak katot ucunu durduryorsun.(Transistörü kapat)
(bazen bu aralarda da bekleme gerekebiliyor)
5-onlar hanesi değerini ekrana gönderiyorsun
6-onlar haresinin ortak katot ucun aktifliyorsun (Transistörü aç)
7-onlar bekliyorsun! (zamanlama)
8-onlar hanesi ortak katot ucunu durduryorsun.(Transistörü kapat)
...
diğer haneler için işlemi tekrarlıyorsun...
ve tekrar başa dönüyorsun....
bu arada ortak katot ucun transistörle sürmen gerekiyor. Bunu dikkate al!

Tamam devren doğru... (bazen isis  simülasyonda problem yapabiliyor)

yukarıdaki sinyalleri zamana göre düşün..
ambar7

polleme

Alıntı yapılan: ambar7 - 22 Mayıs 2013, 18:04:27
Çoğullama işlemi!
Aslında bu sistemde LED'leri aynı anda çalıştırmıyorsun...
Prensip şu: insan gözü saniyede 24 Hz'den üstünü algılayamıyor... Tamam!
Tüm ledler sönük...

1-birler hanesinin değerini ekrana gönderiyorsun
2-birler haresinin ortak katot ucun aktifliyorsun(Transistörü aç)
3-Biraz bekliyorsun! (Zamanlama)
4-Birler hanesi ortak katot ucunu durduryorsun.(Transistörü kapat)
(bazen bu aralarda da bekleme gerekebiliyor)
5-onlar hanesi değerini ekrana gönderiyorsun
6-onlar haresinin ortak katot ucun aktifliyorsun (Transistörü aç)
7-onlar bekliyorsun! (zamanlama)
8-onlar hanesi ortak katot ucunu durduryorsun.(Transistörü kapat)
...
diğer haneler için işlemi tekrarlıyorsun...
ve tekrar başa dönüyorsun....
bu arada ortak katot ucun transistörle sürmen gerekiyor. Bunu dikkate al!
(Resim gizlendi görmek için tıklayın.)
Tamam devren doğru... (bazen isis  simülasyonda problem yapabiliyor)

yukarıdaki sinyalleri zamana göre düşün..

Mutlaka biliyorsunuz ama soruyu soran arkadaş için açmak gerekebilir: Bu şemadaki Veri satırındaki bilgiler her hane için değişiyor.

nily

Alıntı yapılan: pax - 21 Mayıs 2013, 22:50:06
aynı uygulamayı siemens gsm modem ile yapmıştım pic 16f877 kullanarak programlamayı da ccs c ile yapmıştım yardımcı olabilirim . mail üzerinden ulaşırsanız takıldığınız yerlerde yardımcı olabilirim


Peki tam olarak sizin projeniz nasıldı? Birde yanlış bilmiyorsam Siemens için özel AT komutları var. Ben koda AT komutlarını nasıl entegre edeceğimi bilemedim başlangıçta sınırım sim karttan gelen mesajın mikrodentleyiciye gelmesi için AT CMNI komutu kullanılıyor.