İki pic arası seri iletişim lcd veri göndermeve basma ccs c

Başlatan Elektrik2012, 25 Ağustos 2013, 21:47:30

Bayramsumbul

İyi Güzel Başarılar.Bu Sefer Timer Kullanarak Yapmaya Çalışın.Mesela 595 Kullanmayı Biliyor musunuz?595 İle Soft Spi Yazın,595 Çıkışlarının İlk Dördüne Bcd To 7 Segment Entegre Koyun,Geri Kalan Dört Pin İlede Katotları Sürün.(Reset Enable Gibi Pinleri 595 İn Reset,Enable Pinlerine Bağlayın)Bu Şekilde 3 Pinle 4x7 Segment Sürmüş Olursunuz.
Mesela Alarm Yapabilirsiniz.Girilen Sayıdan Geriye Sayar.Bitince Buzzer Öter.Gibi.
2 Timer Kullanırsınız.Birisi Saniyede 100 Defa Kesme Oluşturup Ekranı Sürer.Diğeri de Kesmesiz Olarak Counter Değerini 1 Azaltır/Arttırır.
Bir Elektronik Meraklısının Serüveni...

Elektrik2012

İnşallah yapacağım 595 kullanmayı bilmiyorum o  nedir? ;D

Bayramsumbul

8 Bit Yazmaç. Yani Seri Veriyi Paralel Veriye Dönüştüren Entegre. 4094'te Olabilir.
Mantığına Gelince Kod Şöyle:()
void Spi_Out(unsigned char data)
{
	char i=0;
	PORTA&=!0x07;//Porta=0bxxxxx000
	for(;i<8;i++)//8 Bit Gönderilecek
	{
		PORTA&=!0x01;//CLK=0
		if((data & 0x80)){PORTA|=0x02;}//Eğer 7. Bit 1 İse Dt=1
		else{PORTA&=!0x02;} //Değilse Dt=0
		PORTA|=0x01;//CLK=1
		data <<= 1;//Veriyi Bir Bit Sola Kaydır
	}
	PORTA|=0x04;//8 Bit Ulaştıysa Enable/Cs=1
}

Yani 8. Bit'ten Başlayarak 0. Bit'e Kadar Hepsini Teker Teker Yolluyor.Her Biti Yollamadan Önce CLK=0,Yolladıktan Sonra CLK=1 Oluyor.
8 Bit'te Ulaştımı Enable/CS 1 Oluyor.(0. Biti Ulaştırmadan Önce 0 Yapmak Gerekli.)
Bu Kadar.İyi Çalışmalar,Kolay Gelsin...
Bir Elektronik Meraklısının Serüveni...

Elektrik2012

  ;Dbana biraz karışık geldi hiç bişey  anlamadım  ;D :)

Elektrik2012

Köpek savar yaptım.İlk önce borda kurdum denedim farklı frekans verdim 1000us hoparlörden ses çıkıyor.Yani devre çalışıyor fakat köpekleri kovmak için en iyi 22khz ile 27-khz arası olması lazım mış.buda 22000-27000Hz oluyor bunu nasıl yapıcam yardımcı olurmsuunuz.
Bayram hocam 40khz değilde 40Hz olabilirdi Denedim 12-13 us köpekler gitmedi  :)
27000Hz nasıl ayarlanabilir?

MrDarK

frekans = 1/period

Bu durumda bir kare dalga sinyali düşünecek olursak.

27000 hz = 1/ period

period = ortalama 37mikro saniye. %50 pals genişliğini düşünürsek...

yaklaşık 19 mikro saniye high 18 mikro saniye low yapacaksın ve buda 37us 27khz frekans üretmiş olursun tabi bunu sürekli yapman gerekir while döngüsü içide veya pwm dediğimiz şeyi yap :)
Picproje Eğitim Gönüllüleri ~ MrDarK

Elektrik2012

Anladım çok teşekkürler.Hemen yarın köpekler üstünde deniycem
KÖPEK KOVUCU KOD birde ısıs frekansı nasıl ölçebilirim?
#include <16F84a.h>
#fuses XT,NOWDT,NOPROTECT,NOPUT
#use delay(clock=4M)
void main()
 {
     output_a(0x00);
     while(1)
     {
         if(input(Pin_b0)==1)
         output_high(PIN_A0);
         Delay_us(19);
         output_low(PIN_A0);
         Delay_us(18);
     }
 }