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....
(http://img409.imageshack.us/img409/8264/adszjx7.jpg)
yokmu bişey
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");
}
}
msj için teşekkürler
bu kısım tmm(http://img151.imageshack.us/img151/9500/dilimdilim2ge7ak5.jpg) (http://imageshack.us) şimdi diğer işlemciden gelen bilgiyi almak için hangi ayarları yapacağız
kolay gelsin
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.
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
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]
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
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 (//www.8051turk.com)
İngilizce dökümanlar var bir kaç tane 8051 ve C üzerine.İstersen gönderirim.
kolay gelsin.
zahmet olmassa rica edeyim ben onları kardeşim çok teşekkürler
Allah razı olsun