WIRELESS TECHNOLOGIES UN-005v0_PC-LCD ARX- ve ATX- KULLANARAK BILGISAYARIN SERI PORTUNDAN * ALPHANUMERIC LCD YE DATA GÖNDERMEK IÇIN GEREKLI YAZILIM ve DONANIM WIRELESS COMMUNICATION PRODUCTS PSF-UN-005 NISAN 005
VERICI DEVRESI cm C U GND J CONN-DF 5 0 C+ TIN ROUT TIN ROUT C+ C C- TOUT RIN TOUT RIN VS+ VS- C- 5 MAX C C ANTENNA GND DIN SUPPLY saw ATX- Konnektör bilgisayarin COM portuna takilirken, PICF lü devrenin enerjili olmamasina dikkat edilmelidir. Seri porttan göndermek istedigimiz datadan önce preamble ve sencron gönderilmelidir. Bu uygulamada preamble 5 byte 0x55, sencron ise 5 byte 0x00 dir. Örnegin LCD ye UDEA Elektronik stringini göndermek için ; UUUUU$00$00$00$00$00UDEA Elektronik. Burada 0x55 in ASCII karsiligi olarak U, ve mesaj sonu bilgisi için nokta karakteri kullanilmistir. Mesaj sonu bilgisi, istege bagli olarak herhangi bir karakter seçilebilir (yazilimda gerekli degisikligi yaparak). Seri portu kullanacaginiz programda yapmaniz gereken diger ayarlar da sunlardir: Baudrate : 00 Parity : Yok Byte size : Stop bits : PSF-UN-005 NISAN 005
ALICI DEVRESI * ALPHANUMERIC LCD 5 0 VSS VDD VEE E RS RW D0 D D D D D5 D D C p C p R cm R K MHz 5 U OSC/CLKIN OSC/CLKOUT MCLR RA0 RA RA RA RA/T0CKI K ANTENNA GND SUPPLY AOUT PICFA RB0/INT RB RB RB RB RB5 RB RB 0 DOUT ARX- ARX- içerisinde bir voltaj regülatorü bulunmamaktadir. Tasarim pil kullanimi düsünülerek yapilmistir. Bu nedenle besleme voltajinda belirtilen degerlere dikkat edilmelidir. Modül belirtilen degerlerin altinda bir besleme yapildiginda kararsiz çalisacaktir. Besleme voltaji +5 VDC ve tapraklama GND baglantisi belirtilen degerlerin üzerinde veya ters olursa, modülde kalici tahribatlara yolaçilabilir. Modül basit bir anten baglanti pinine sahiptir. Uygun bir UHF anten dogrudan bu pine baglanabilir. ARX- modülüne baglanabilecek en basit anten.cm uzunlugundaki bir kablonun anten girisine lehimlenmesidir. Anteni, modülden uzak bir yere baglamaniz gerekiyorsa 50 Ohm Coax anten kablosu kullanmaniz gerekmektedir. Anten kablosunun topraklamasi, modulun anten girisine yakin bir yerden yapilmalidir. Asagidaki kurallar size yardimci olacaktir: * Anten 50 ohm empedancli olmalidir. * Lambda/ whip anten boyu MHz. için yaklasik. cm dir. * Anteni modül dik gelecek sekilde yukariya veya asagiya dogru monte ediniz. * Anteni metal bir hazne içine koymayiniz. * Insan vücudu metal objeler gibi etkiler gösterebilirler. Tasinabilir alici veya vericiler PSF-UN-005 NISAN 005
vücuttan uzak bir sekilde elde tutulmalidir. * En iyi iletisim mesafesi her iki taraftaki antenlerin birbirini görmesi ile elde edilebilir. Herhangi bir obje veya metal bir engel iletisim mesafesini düsürecektir. * Sinyal göndermeleri, gönderilen sinyallerin metal yüzeylerden, binalardan vb. gelen yansimalardan etkilenirler. Bu yanlis data alimlarina yolaçabilir. Asagidaki yazilimla bilgisayardan yollanan datanin sencron bilgisi yakalanip sonraki karakterler LCD ye yazdirilmaktadir. Mesaj sonu bilgisi (bu yazilimda nokta karakteri) gelene kadar her karakter LCD ye yazdirilir. Mesaj sonu bilgisi geldiginde gönderilen mesaj saniye kadar ekranda bekletilir. Daha sonra yeni bir mesaj için LCD temizlenir ve mikroislemci sencron aramaya devam eder. ****************************************************************************/ UN-005v0_PC-LCD SOFTWARE File: UN-0v0_ASKRX.c Microcontroller: Microchip PICF Bu yazilim bilgisayardan alphanumeric LCD'ye RF data göndermek için yazilmis basit bir uygulama notudur. Yazilimin içinde bir çok bekleme rutini kullanilmistir. Crystal frekansi ve compiler farkliligindan dogacak degisiklikler kullanici tarafindan dikkate alinmalidir. Compiler olarak HI-TECH Software kullanilmistir. XT=MHz Baudrate 00, None parity, Byte size, Stop bit Yazan: Çagatay BÜYÜKTOPÇU, UDEA Contact: UDEA Elektronik 0..5 5 info@udea.com.tr ****************************************************************************/ #include <pic.h> #include <delay.c> #define RS RA0 #define RW RA #define EN RA #define RX RB #define bit_set(var,bitno) ((var) = (<<(bitno))) #define bit_reset(var,bitno) ((var) &= ~(<<(bitno))) CONFIG( XT&WDTDIS&PWRTDIS); void lcd_reset(void); void clear(void); void function_set(void); PSF-UN-005 NISAN 005
void on_off(void); void entry_mode(void); void data_gonder(unsigned char lcd); void baud(void); unsigned char karakter, lcd; unsigned char x, y, say; main() TRISB=0b0000000; TRISA=0; PORTA=0; PORTB=0; RW=0; //PORTB<0:> çikis,portb<> giris(rx) //PORTA çikis //LCD'ye yaz //Timer için clock internal //Prescaler TMR0 için T0CS=0; PSA=0; PS=; PS=; PS0=; //TMR0, prescale 5 DelayMs(00); lcd_reset(); function_set(); // on_off(); // entry_mode(); // clear(); RS=; //LCD'yi bekle //LCD initialization //Data for(;;) clear(); while(y<=) TMR0=0; while(rx==0); if(tmr0>5) else y++; while(rx==); y=0; //Timer'i baslat //Start bitinin geçmesini bekle //ms geçtiyse //Stop bitini bekle y=0; while(karakter!='.') //Mesaj sonu bilgisi gelmedigi sürece //gelen datalari LCD'ye yaz karakter=0; say=0; while(rx==0); baud(); while(say<=) if(rx==) bit_set(karakter,); //Gelen bit else //Start bitini bekle bit_reset(karakter,); //Gelen bit 0 karakter=karakter>>; //Bir bit saga kaydir PSF-UN-005 5 NISAN 005
say++; baud(); data_gonder(karakter); while(rx==); for(x=0;x<=;x++) // kere tekrar et //Diger bite geç //Gelen datayi LCD'ye yaz //Stop bitinin geçmesini bekle // saniye kadar ekranda görüntüle DelayMs(00); clear(); //Yeni bir mesaj için LCD'yi temizle //Kursoru en basa al void lcd_reset(void) karakter=; for(x=0;x<=;x++) PORTB=0; void clear(void) karakter=0b0000000; DelayUs(50); void function_set(void) karakter=0b000000; //Displayi temizle ve kursoru sayfa basina al //Önce üst biti gönder //Sonra da alt biti //-bit veri aktarimi, satir, 5* font PSF-UN-005 NISAN 005
void on_off(void) karakter=0b0000; //Display on, kursor on void entry_mode(void) karakter=0b000000; //Kursor saga dogru hareket eder void data_gonder(unsigned char lcd) RS=; karakter=lcd; void baud(void) //Baud rate 00 for(x=0;x<;x++) DelayUs(5); PSF-UN-005 NISAN 005