Elektrotekno.com Ana Sayfa || Programlanabilir Cihaz ve Elemanlar || Microchip Pic Serisi


seri data gönderimi

Açıklama:
Elektrik, Elektronik, Haberleşme ve Otomasyon konularının ağırlıklı olarak konuşulduğu, tartışıldığı ve bilgi paylaşımı yapıldığı forumumuza hoşgeldiniz.
Şu an Kod Paylaşım ve Soru Cevap Alanı kategorisi içerisindeki Microchip Pic Serisi forumunda bulunuyorsunuz.
Bu sayfada üyelerimizin "seri data gönderimi" konusundaki problem, görüş ve önerileri okuyabilir ayrıca konu hakkındaki doküman, resim, proje, devre ve programlara ücretsiz olarak ulaşabilirsiniz. Üye olduktan sonra sizler de konu hakkında sorular sorabilir ya da yorum ve paylaşım yaparak birikimlerinizi aktarabilirsiniz.
Forumdan tam olarak yararlanabilmek için üye olmayı unutmayınız!
Kayıt: 29 Arl 2006
Mesajlar: 21

Offline
elektro43
Tarih: 09 08 2008 16:55

Serdar Çiçek'in CCS kitabında bu şekilde bir lm35 ile lcd ye sıcaklığı yazan kodlar:
Kod
#include<16f877.h> 

#device ADC=10
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD
#use delay(clock=4000000)
#use fast_io(a)
#define use_portb_lcd TRUE
#include<lcd.c>
unsigned long int bilgi;
float voltaj,sicaklik;

//ANA PROGRAM
void main(){
setup_psp(PSP_DISABLED);
setup_spi(SPI_SS_DISABLED);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_ccp1(CCP_OFF);
setup_ccp2(CCP_OFF);

set_tris_a(0x01);//A PORTU GİRİŞ
setup_adc(adc_clock_div_32);
setup_adc_ports(AN0);

lcd_init();

set_adc_channel(0);

delay_us(20);

printf(lcd_putc,"\fB.sicaklik=");// lcd ye sıcaklık yazdırılıyor

while(1)
{
bilgi=read_adc();
voltaj=(0.0048828125*bilgi)*1000;

sicaklik=(voltaj/10)+2;

lcd_gotoxy(10,1);
printf(lcd_putc,"%5.1f'C",sicaklik);

delay_ms(100);

}
}


Sorum şu olacaktı,ben ordaki ekrana yazan sicaklik adlı değeri rs232 ile nasıl başka bir pic e gönderebilirim?
printf() kodunun içine nasıl bir tanımlama yapmam gerekli.
Şimdiden teşekkürler...

1 Kullanıcı bu konu için elektro43 arkadaşımıza teşekkür ettiler

Kayıt: 12 Nis 2008
Mesajlar: 616
Konum: İzmir
Offline
esb72
Tarih: 09 08 2008 18:04

sayfa 345-346


Selam elekro43,
elindeki kitabın 345 ve 346. sayfalarında açıklamaları ile birlikte bahsettiğin uygulama var.gerçi bu uygulamada PC den PIC e data gönderip lcd ye yazdırılıyor ama sonuçta aynı şey.pc yerine pic bağlanacak ve MAX232 devresini çıkartılacak.

kolay gelsin
Başa dön
Kayıt: 29 Arl 2006
Mesajlar: 21

Offline
elektro43
Tarih: 09 08 2008 18:24

yukarıdali gerekli eklemelerden ve en sondaki delay_ms(100); kodundan sonra şunu ilave ediyorum:
printf("%f",sicaklik);

seri data gönderimi

virtual terminalde çıkan görüntü bu...
Hatam nerde,ne yapmam gerek Sad
Başa dön
Kayıt: 26 Mar 2008
Mesajlar: 9
Konum: Edirne
Offline
volkan.mrc
Tarih: 23 09 2008 23:57

CCS de farklımıdır bilmiyorum ama C de string yazdıracaksan f yani float diye değil printf te %s diye tanımlanıyor.
Başa dön
Kayıt: 23 Mar 2007
Mesajlar: 140

Offline
onur_zafer
Tarih: 24 09 2008 14:24

bi uygulama yapmaya çalıştım senin kodunla bi veri birde alıcı pic var yani 2 ayrı kod yazmak gerekliydi

Verici TX
Kod


#include<16f877.h>
#device ADC=10
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD
#use delay(clock=4000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)
#use fast_io(a)

#include "LCD_zafer.c"
unsigned long int bilgi;
float voltaj,sicaklik;

//ANA PROGRAM
void main()
{
unsigned char veri[5],i;
setup_psp(PSP_DISABLED);
setup_spi(SPI_SS_DISABLED);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_ccp1(CCP_OFF);
setup_ccp2(CCP_OFF);

set_tris_a(0x01);//A PORTU GİRİŞ
setup_adc(adc_clock_div_32);
setup_adc_ports(AN0);

lcd_init();

set_adc_channel(0);

delay_us(20);



while(true)
{
bilgi=read_adc();
voltaj=(0.0048828125*bilgi)*1000;

sicaklik=(voltaj/10);

LCD_goto_xy(10,1);
printf(lcd_putc,"%4.1f'C",sicaklik);

putc('S'); //diger pice baslama isaretini yolla
delay_ms(10);

sprintf(veri,"%4.1f",sicaklik); //sayiyi char a dönüştür

for(i=0; i<5; i++) //karaktere ayrılmış sayıy tek tek yolla
{
   putc(veri[i]);
   delay_ms(10);
}

putc('F'); //pic e bitirme işaretini yolla

delay_ms(100);

}
}


Alıcı RX

Kod


#include<16f877.h>
#device ADC=10
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD
#use delay(clock=4000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)
#use fast_io(a)

#include "LCD_zafer.c"

float sicaklik;

unsigned char sayac,yazdir;
unsigned char gelen[5];

#INT_RDA
void SeriVeriAl(void)
{
   unsigned char veri,i;
   veri=getc();
   
   if(veri=='S')
   {
      for(i=0;i<5;i++)
      {
         gelen[i]=0;
      }
      sayac=0;
      yazdir=0;
   }
   else if(veri=='F')
   {
      LCD_goto_xy(10,1);
      for(i=0; i<5; i++)
      {
         LCD_putc(gelen[i]);
      }
      printf(LCD_putc,"'C");
   }
   else
   {
      gelen[sayac]=veri;
      sayac++;
   }
}


void main()
{

setup_psp(PSP_DISABLED);
setup_spi(SPI_SS_DISABLED);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_ccp1(CCP_OFF);
setup_ccp2(CCP_OFF);

enable_interrupts(GLOBAL);
enable_interrupts(INT_RDA);


lcd_init();

while(true);

}


seri data gönderimi

ve tüm dosyalar ektekir.
Başa dön



seri data gönderimi


Benzer Konular

- Seri Haberleşme ile ilgili sunular

- RF Measurements for Cellular Phones and Wireless Data Systems
- seri iletişim devresi
- TBL uzantılı data dosyalarını okumak ve değiştirmek...!
- Bilgisayarlar İçin Seri Porttan IrDA Kontrol
- 5 adet villa elektrik+güvenlik+data+yangın uygulama projesi
- Seri Port Terminal Programı
- seri port - 16f84 - c kodu
- Seri Motor Ve Led Kontrolü Display Menülü

- ttl ls ıcs data book

- Bi-Polar Power Transistor Data Book

Sitemize üyelik ve içeriğin indirilmesi tamamen ücretsizdir. Sitemizde paylaşılan tüm dokümanlar (Tezler, makaleler, ders notları, sınav soru cevaplar, projeler) paylaşımcıların bireysel çalışmaları olup telif hakları kendilerine aittir ya da açık bir şekilde kamusal alana yerleştirilmiş dokümanların birer kopyalarıdır. Kişilerin bireysel çalışmalarını sitemizde yüklemesinde, sitemizde paylaşıma teşvik eden puanlama sisteminin de etkisi büyüktür. Bunlara rağmen hala size ait olan ve burada bulunmasına izin vermediğiniz dokümanlar varsa iletişim bölümünden yöneticilere bildirmeniz durumunda derhal silineceklerdir.
Powered by phpBB | Translated by phpBB Türkiye | Ads by Google Adsense | Design by Crazy Bat based
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72