Güncel Oyun & Program & Resim & Msn Forumu
Elektronik Bölümü icinde Pic Programlama Ders - 8 konusu , DERS - 8 Daha önceki yazılarımızda 16F84 komut setini ve temel esasları incelemiştik, artık yavaş yavaş bu komutları kullanarak program yazmaya başlayabiliriz. . . Bilgisayarımıza MPLAB programını kurduktan sonra bu ...
|
|||||||
| Anlık İletiler | Kayıt ol | Yardım | Üye Listesi | Ajanda | Arama | Bugünki Mesajlar | Forumları Okundu Kabul Et |
|
|
|
DERS - 8
Daha önceki yazılarımızda 16F84 komut setini ve temel esasları incelemiştik, artık yavaş yavaş bu komutları kullanarak program yazmaya başlayabiliriz. . . Bilgisayarımıza MPLAB programını kurduktan sonra bu program içindeki PFE (programing file editor) ile programlarımızı yazıp, bir klasör altına sonu ASM olacak şekilde save edeceğiz, bu klasörde inc dosyasının olmasına dikkat edeceğiz, daha sonra bu editor programı içinde iken, project / build nod seçeneği ile ASM dosyamızı HEX haline getireceğiz, bu sırada çıkan pencereden ERR dosyasını da işaretlersek bir hata yapmamız halinde bu dosyayı editorda inceleyerek hatayı bulma imkanımız olacaktır.Tüm dosyalar aynı klasör altında olacağı için zamanla bu klasörün büyümesi halinde bu dosyalar bir başka klasöre aktarılabilir. KONFİGÜRASYON BİTLERİ Yazdığımız program içinde konfigürasyon bitleri dediğimiz bazı komutları kullanırsak, hex dosyasını pic içine attığımız programdaki bazı ayarlar otomatik olarak gerçekleşir (picprog gibi).Eğer bu komutları kullanmazsak yazma sırasında bu seçenekleri manuel olarak yapmamız gerekmektedir. 1 Code protect on - off 2 Power on reset on – off 3 Watchdog timer on – off 4 Low power osc. 5 Xtal osc. 6 High speed osc. 7 RC osc. Bu komutlar dan son 4 tanesi osilatör tiplerini tanıtmaya yararlar. 1 komut pic içine yazılan bilginin kopyalanmamasını sağlar. Bu komutların yazılışında etiket olarak __CONFIG komutu kullanılır. Daha sonra & ve bir space bar ile diğer komutlar yazılır. __CONFIG _CP_OFF &_WDT_OFF &_PWRTE_ON &_ XT_ON ;Deneme program 1 ;RA0 da led'in yanması LIST P=16F84 INCLUDE "16F84.INC" __CONFIG _CP_ON &_WDT_ON &_LP_OSC &_PWRTE_OFF CLRF PORTA ;Port a çıkışlara low (sönük) BSF STATUS,5 ;Bank 1'e gec CLRF TRISA ;Port A yi çıkış pozisyonuna getir BCF STATUS,5 ;Bank 0 'a gel BSF PORTA, 0 ;RA0 daki led 'i yak END · CONFIG ifadesinin yanındaki alt çizgi çift olmalıdır ‘ ___ ’ · Daha sonra yazılan ifadeler tek alt çizgili olmalıdır ‘ _ ‘ · Konfigürasyonlar arasında bir space olmalıdır · Space den sonra & işareti kullanılmalıdır · & işaretinden sonra ara vermeden konfigürasyon yazılır · Picprog da PWRTE işaretli değil ise Power on reset aktiftir,yani konfigürasyonda off yaparsanız programda pencere işaretli olarak açılır. WRITE REGİSTER Registerler arasında veri transferi yapmak için kullanılan bir registerdir ve RAM içindeki file registerlerden bağımsızdır. MOVLW H’FF’ ; Write registere FF değeri yaz MOVLW B’11111111’ ; Yukarıdaki ile aynı değerdir MOVLW D’255’ ; Write registere decimal 255 sayısını yaz Write registere yazılan bu bilgiler daha sonra bir başka registere transfer edilir. MOVWF PORTB ; Port b nin çıkışlar high olur MOVWF TRISB ; Port b nin kapıları giriş olur ÖRNEK PROGRAM ;Deneme program ;RB0 RB1 ve RB2 de led'in yanması LIST P=16F84 INCLUDE "16F84.INC" CLRF PORTB BSF STATUS,5 CLRF TRISB BCF STATUS,5 MOVLW B'00000111' MOVWF PORTB END ;Deneme program ;RB0 RB1 ve RB2 de led'in yanması LIST P=16F84 INCLUDE "16F84.INC" CLRF PORTB ;Port b çıkışlar low,sönük BSF STATUS,5 ;Bank 1'e gec CLRF TRISB ;Port B yi çıkış pozisyonuna getir BCF STATUS,5 ;Bank 0 'a gel BSF PORTB,0 ;portb nin ilk bitini high yap (lojik 1) BSF PORTB,1 ;portb nin 2. bitini high yap BSF PORTB,2 ;portb nin 3. bitini high yap END Bitin high olması çıkışta +5 volt olması yani lojik 1 dir Bu iki programda farklı komutlar kullanılarak aynı işlem yaptırılmaktadır.Değişik komutlar ile aynı işlemleri yaptırmak mümkündür. Bu nedenle komutları tek tek inceleyelim ve bunlarla ilgili program örnekleri yazalım. |
![]() |
| Seçenekler | |
| Stil | |
|
|
| LinkBack |
LinkBack URL |
About LinkBacks |
| Bookmark & Share |
Digg this Thread! |
Add Thread to del.icio.us |
Bookmark in Technorati |
Furl this Thread! |