tarafından Admin Cuma Şub. 26, 2010 12:27 pm
Özel Fonksiyonlar
Paralel slave port:
TRISE registerının PSPMODE biti 1 yapıldığında PORTD 8 bit
genişliğinde mikroişlemci portu olarak kullanabilir. Bu arada RE0, RE1
ve RE2’yi, TRISE ve ADCON1 registerlarında ilgili ayarları yaparak
sayısal giriş olarak da tanımlamak gerekmektedir. Böylece harici bir
mikroişlemci, RE0, RE1 ve RE2’yi kontrol olarak kullanarak 8 bitlik veri
bus’ına bağlı PIC16F877’nin PORTD’sine hem veri yazabilmekte, hem de
okuyabilmektedir.
Usart :
USART , yani senkron / asenkron alıcı verici PICF877’deki iki seri giriş
/ çıkış modülünden biridir. Seri iletişim arayüzü ( SCI:serial
comm.interface ) olarak da bilinen USART, monitör veya PC gibi aygıtlara
tam çift yönlü asenkron bağlantıda kullanılmak üzere konfigüre
edilmiştir. A / D veya D / A arayüzlerine, seri kullanılmak üzere
konfigüre edilebilmektedir. USART aşağıdaki gibi konfigüre
edilebilmektedir.
**Asenkron : Tam çiftyönlü ( full duplex )
**Senkron : Master, yarım çift yönlü ( half duplex )
**Senkron : Slave, yarım çift yönlü RC6 verici, RC7 ise alıcı port
olarak kullanılmaktadır. RCSTA ( 0x18 ) ve TXSTA ( 0x98) registerları da
konfigürasyonda kullanılmaktadır.
Master synchronous serial port (MSSP)
MSSP modülü, diğer çevre birimleri veya mikroişlemcilerle seri
iletişimde kullanılmaktadır. Bu çevre birimleri seri EEPROM, kaydırmalı
registerlar ( shift register ), gösterge sürücüleri, A / D çeviriciler
vb. olabilir. MSSP modülü aynı anda aşağıdaki iki moddan birine
konfigüre edilebilir.
RC5: Seri veri çıkışı(SDO:Serial data out)
RC4: Seri veri girişi (SDI: Serial data in)
RC3: Seri saat(SCK:Serial clock)
Bu modlardan birine göre konfigüre etmek içinse SSPSTAT (senkron seri
port durum registerı, 0x94), SSPCON (senkron seri port kontrol
registerı, 0x14) ve SSPCON2 (senkron seri port kontrol registerı 2,0x91)
registerları ayarlanmalıdır.
Analog / sayısal çevirici modülü:
A / D modülü 16C7X ailesinden farklı olarak 10 bittir. Toplam 8 A / D
kanal bulunmaktadır. F877’nin güzel bir özelliğide işlemci SLEEP
modundayken bile A / D çeviricinin geri planda çalışmasıdır. A / D
kanalları için RA4 hariç diğer RA portları ve RE portları
kullanılabilir. Aşağıda ilgili registerlar ve adresleri gösterilmiştir.
ADRESH 0x1E ; A / D sonuç registerı (high register)
ADRESL 0x9E ; A / D sonuç registerı (low register)
ADCON0 0x1F ; A / D kontrol registerı 0
ADON1 0x9F ; A / D kontrol registerı 1
Capture / compare ve PWM modülü:
Her capture /compare ve pwm modülü 16 bitlik yakalama (capture
registerı, 16 bitlik karşılaştırma ( compare ) registerı veya 16 bitlik
PWM (darbe genişlik modülayonu) registerı olarak kullanılmaktadır.
Yakalama (capture) modunda, TMR1 registerının değeri, RC2 / CCP1
bacağının durumunda bir gelişme olduğunda CCPR1H:CCPR1L registerlarına
yazılmakta ve PIR1 registerının 2. biti olan CCP1IF kesme bayrağı 1
olmaktadır. RC2 bacağının durumu, her düşen kenarda, her yükselen
kenarda, her yükselen 4. veya 16. kenarda kontrol edilecek şekilde
CCP1CON registerı aracılığıyla ayarlanarak konfigüre edilebilir.
Karşılaştırma (compare) moduysa CCPR1 registerındaki 16 bitlik değer
düzenli olarak TMR1 register değeriyle karşılaştır ve bir eşitlik
olduğunda RC2 / CCP1 bacağı CCP1CON registerında yaptığımız ayara göre
1, 0 olur veya durumunu korur. PWM modundaysa RC2 / CCP1 bacağı 10 bit
çözünürlükte darbe genişlik modülasyonlu bir sinyal üretecek şekilde
konfigüre edilebilir. PR2 registerı darbe genişlik periyodunun tayininde
kullanılmaktadır. Aşağıda ilgili registerlar ve adresleri
gösterilmiştir.
CCPR1H 0x16 ; Yakalama / karşılaştırma registerı ( High register )
CCPR1L 0x15 ; Yakalama / karşılaştırma registerı ( Low register )
CCP1CON 0x17 ; Kontrol registerı
PR2 0x92 ; PWM çıkış registerı
TMR1L 0x0E ; TMR1 registerı ( Low register )
TMR1H 0x0F ; TMR1 registerı ( High register )