16F628 ile ilk denemem ama olmadi.

Başlatan Ugur2006, 05 Eylül 2006, 22:21:54

ibrsel

http://www.hemenpaylas.com/download/1510863/RS232.rar.html

Burada senin için basicte yazdığım küçük bir program var.Bir incele..Dediğim gibi C den pek anlamadığım için çok fazla yardımcı olamıyorum..Umarım bu program biraz işini görür..

Ugur2006

sağol tesekkürler deneyecegim.

Ugur2006

Sonunda 16F628 ilede sorunu cözdüm.
16F628'de Portlari O/I icin kullandigim USE_FAST_IO();  komutlari su sekilde iken PIC ile serial iletisimi kuramadim.
#include <16f628.h>
#fuses XT,NOWDT,NOPROTECT,PUT, NOBROWNOUT,NOLVP
#use delay(clock=4000000)
#use rs232(baud=9600,rcv=PIN_A1,xmit=PIN_A0,parity=N,bits=8,INVERT )


#use fast_io(A)
#use fast_io(B)
#byte PortA=5
#byte portB=6

void main()
{
char x;
int gelen;
SET_TRIS_A(0b00011);
SET_TRIS_B(0b11001111);
PortA=PortB=0;

Printf("1 veya 2 Giriniz\n\r");

//gelen=getch();
for(;;)
{
gelen=getch();
switch (gelen)
{
case '1':output_high(PIN_B4);output_low(PIN_B5);break;
case '2':output_high(PIN_B5);output_low(PIN_B4);break;
}
}
}


Su komutlari ;
#use fast_io(A)
#use fast_io(B)
#byte PortA=5
#byte portB=6


kaldirip Kodu su hale getirince Serial Port ile iletisimi kurdum.
#include <16f628.h>
#fuses XT,NOWDT,NOPROTECT,PUT, NOBROWNOUT,NOLVP
#use delay(clock=4000000)
#use rs232(baud=9600,rcv=PIN_A1,xmit=PIN_A0,parity=N,bits=8,INVERT )
void main()
{
char x;
int gelen;

Printf("1 veya 2 Giriniz\n\r");


//gelen=getch();
for(;;)
{
gelen=getch();
switch (gelen)
{
case '1':output_high(PIN_B4);output_low(PIN_B5);break;
case '2':output_high(PIN_B5);output_low(PIN_B4);break;
}
}
}


Acaba yukarda ilk kodda verdigim örnekte ben Kodda yanlis birseymi kullandimda
#USE_FAST_IO();  komutu ile PIC arasinda serial iletisimi kuramadim?

Ziya

Alıntı yapılan: "Ugur2006"
#use fast_io(B)
...
SET_TRIS_A(0b00011);
SET_TRIS_B(0b11001111); // Bu satırda TX pini olan rb_2 çıkış olacak.

Yani
SET_TRIS_B(0b11001011);...
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

Ugur2006

@Ziya,
Hocam yani sonuc olarak yazindan sunu anladim.
Serial Iletisim kullanacagim zaman,
PIC16F628'e ait olan TX(RB2)  ve RX(RB1) bitlerini kullanmiyor olsamda bu bitlerin Giris ve Cikis olmasina dikkat etmeliyim yani öylemi?
Yukardaki örnekte ben bu Bitleri değil baska bitleri RX ve TX olarak kullandim.
Buna ragmen;
RB2(TX)  Cikis
RB1(RX)  Giris olmali diyorsun.

Ziya

Görmemişim. Şimdi söyleyecek söz bulamıyorum. Kusura bakma. Elinde traktör varken öküzle tarla sürmeye benzemiş seninki. Keşke 16F84'e devam etseydin.
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

Ugur2006

Alıntı yapılan: "Ziya"Görmemişim. Şimdi söyleyecek söz bulamıyorum. Kusura bakma. Elinde traktör varken öküzle tarla sürmeye benzemiş seninki. Keşke 16F84'e devam etseydin.

Hocam valla anlayamadim ne kast ettiginizi !!
While döngüsünden cikamiyorum adli baslikta sorun yasadigim bir Kod'un 16F84'de olamiyacagini 16F628 ile devam etsem daha iyi olacagini söylemistin.
Alıntı Yap16F84 ile bu işi yapamazsın. Aradaki delayler nedeniyle bilgiyi okuyamazsın. Onun yerine 16F628 kullan. İçerisinde donanım uart motoru var. Kendi kendine gönderir alır. Güdümlü füzeler gibi "at ve unut" !

Digimensch

PIC16F84 Traktör , PIC16F628 Öküzmü oluyor?
Yani PIC16F84 dahami avantajli PIC628'e göre?
Sundan soruyorum bendePIC16f84 ile birseyler yapmaya calistim artik  PIC16F628'e gecmeyi düsünüyordum.

XX_CİHAN_XX

Arkadaşlar artık 16f84 mü kaldı?
İki entegrede aynı ayak yapısına ve aynı fiyata sahipken neden her yönden üstün olan 16f628 i değil 16f84 ü kullanıyorsunuz merak ediyorum.
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.