Haberler:

Eposta uyarılarını yanıtlamayınız ( ! ) https://bit.ly/2J7yi0d

Ana Menü

seri bilgi

Başlatan Cetinal, 16 Mart 2007, 21:16:14

Cetinal

s.a beyler
89c2051 in birinden diğerine seri bilgi göndermem gerekiyo keil ile yazmaya çalıcaktım ama atmelin seri portu nasıl kullanılıo bilmiyorum
mantık ve bilgi paylaşımı yaparmısınız....


Cetinal


AST

Alıntı yapılan: "RoMeO123"atmelin seri portu nasıl kullanılıo bilmiyorum

 89c2051  8051 MCS-51 ailesinden, Atmel üretiyor.
Bu linkte seri portun nasıl kullanılacağı  anlatılıyor.
http://www.ume.tubitak.gov.tr/lablar/ozel_olcumler/8051a5.htm

 Linkteki bilgiler asm dilin için anlatılıyor.Aşağıdaki kod c dili için bir örnek.

#include <89c51rd2.H>	// işlemci başlık dosyası
#include <stdio.h>		// C dili başlık dosyası

void main (void)
{
  SCON=0x40; 	// 8 bit uart modu
  TMOD=0x20;	// Z/S 1 için 8 bit otomatik yükleme modu
  TH1=0xF3;		// yaklaşık 2400 bit/s(12 Mhz)
  TR1=1;		// Z/S'i çalıştır.
  TI=1;			// gönderilmeye hazır
  while(1)
  {	// Bilginin gönderilmesi
    printf("Seri kanaldan karakter gonderme\n");
  }
}

Cetinal

msj için teşekkürler
bu kısım tmm şimdi diğer işlemciden gelen bilgiyi almak için hangi ayarları yapacağız

kolay gelsin

AST

Alıcı için SCON register'ındaki REN(Receive_enable) biti 1 olmalıdır.Buna göre SCON register'ı ayarlanmalıdır.

Diğer ayarlar yine aynı olacak.SBUF register'ından bilgi almak için,
ALICI:
     JNB   RI,  $               ; RI 1 olana kadar dön
     MOV  A,   SBUF         ; SBUF'I ACC'ye yaz.
     CLR   RI
     RET
  
[/b]

bu kod kullanılır.


Cetinal

cevap ve ilginiz için teşekkür ederim
sanırım bu C deil ben onu sormuştum
tekrar teşekkür ederim kolay gelsin

AST


 Ben teşekkür ederim.Bu kod C dilinde yazılmış bir örnek.Seri haberleşme
iki yönlü yapılıyor.Burdan bişiler çıkartabilirsin.Seri bilgiyi almak için
"scanf()" komutu kullanılmış.Kolay gelsin.
/******************************************************************/
/* Uygulama Adı : Seri Haberleşme Uygulaması 2		      		  */
/* Dosya Adı	: Seri_Haberlesme_Uyg2				      	      */
/* Tarih	    : Mayıs 2005					      			  */
/* Hedef İşlemci: MCS-51						      			  */
/*																  */
/* Bu uygulamada 4 işlem yapan hesap makinası gerçekleştirilmiştir*/
/* Sayılar ve işlem seçiminin girilmesi ile ilgili menü bilgileri */
/* seri haberleşme ile gönderilmekte yapılan bilgi girişi ise yine*/
/* seri haberleşme ile alınmaktadır.Hesap makinası tamsayılar ile */
/* çalışmaktadır.							  					  */
/******************************************************************/
#include <89c51rd2.H>	// işlemci başlık dosyası
#include <stdio.h>		// C dili başlık dosyası

void main (void)
{
  char islem;
  int sayi_1,sayi_2;
  long int sonuc;
  SCON=0x50; 		// 8 bit uart modu, REN=1
  TMOD=0x20;		// Z/S 1 için 8 bit otomatik yükleme modu
  TH1=0xFD;		// yaklaşık 9600 bps(11.0592Mhz)
  TR1=1;		// Z/S 1'i çalıştır.
  TI=1;		// gönderilmeye hazır
	
  while(1)
  {	//Menünün hazırlanması
    printf("*******************************\n");
    printf("*    4 ISLEM HESAP MAKINASI   *\n");
    printf("*******************************\n");
    printf("\n");
    printf(" Mevcut islemler:\n");
    printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");
    printf(" Toplama (+)\n");
    printf(" Çikarma (-)\n");
    printf(" Çarpma  (*)\n");
    printf(" Bölme   (/)\n");
    printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");
    printf(" Birinci sayiyi giriniz=");
    scanf("%d",&sayi_1);	// Formatlı olarak 1.sayının girilmesi
    printf(" Ikinci sayiyi giriniz=");	
    scanf("%d",&sayi_2);	// Formatlı olarak 2.sayının girilmesi
    printf(" Yapmak istediginiz islemi seciniz=");
    scanf("%c",&islem);
    islem=getchar();		// Yapılacak işlemin girilmesi 
			
   // Yapılacak işlemin belirlenmesi	
    switch(islem)
    {
	case '+': sonuc=sayi_1+sayi_2; break;			

	case '-': sonuc=sayi_1-sayi_2; break;

	case '*': sonuc=sayi_1*sayi_2; break;

	case '/': sonuc=sayi_1/sayi_2; break;
    }
    printf("\n");
    printf(" SONUC=%ld\n",sonuc);
  }
}

 

 [/b]

Cetinal

mesaj ve ilginizden dolayı Allah Razı olsun

@ast hocam siz de ilgileniyosunuz galiba c keil ile peki daha önceden
hangi kaynaklardan yararlandınız bu konu ile ilgili önerebiliceğiniz kitap
v.s şeyler varmı

teşekkürler kolaygelsin

AST

Kardeş ben C bilmiyorum.ASM dilinde yazıyorum programlarımı.

  8051 Mikrodenetleyici Uygulamaları adlı kitap piyasada mevcut.C ve 8051
KEIL ile beraber anlatılmış.Kitabın resmi sitesi, www.8051turk.com

İngilizce dökümanlar var bir kaç tane 8051 ve C üzerine.İstersen gönderirim.

kolay gelsin.

Cetinal

zahmet olmassa rica edeyim ben onları kardeşim çok teşekkürler
Allah razı olsun