Would you like to react to this message? Create an account in a few clicks or log in to continue.

    Pic16F877 Yapısı ve Özellikleri

    Admin
    Admin
    Root Administrator
    Root Administrator


    Mesaj Sayısı : 97
    Rep Puanı : 220
    Kayıt tarihi : 18/02/10
    Yaş : 33
    Nerden : Nereye

    Pic16F877 Yapısı ve Özellikleri Empty Pic16F877 Yapısı ve Özellikleri

    Mesaj tarafından Admin Cuma Şub. 26, 2010 12:23 pm

    Pic16F877 Yapısı ve Özellikleri Icon_arrow Arkadaşlar aşağıdaki yazılar Pic16F877 'nin Yapısına ve Özelliklerine dair bilgiler
    içeriyor.
    Admin
    Admin
    Root Administrator
    Root Administrator


    Mesaj Sayısı : 97
    Rep Puanı : 220
    Kayıt tarihi : 18/02/10
    Yaş : 33
    Nerden : Nereye

    Pic16F877 Yapısı ve Özellikleri Empty Geri: Pic16F877 Yapısı ve Özellikleri

    Mesaj tarafından Admin Cuma Şub. 26, 2010 12:23 pm

    Genel Özellikleri:



    Çalışma hızı: DC-20Mhz

    Program Belleği: 8Kx14 word
    Flash ROM

    EEPROM Belleği: 256 byte

    Kullanıcı RAM: 368 x 8 byte

    Giriş / Çıkış port sayısı: 33

    Timer: Timer0, Timer1, Timer2

    A / D çevirici: 8 kanal 10 bit

    Capture / Comp / PWM: 16 bit
    Capture, 16 bit Compare, 10 bit PWM çözünürlük

    Seri Çevresel Arayüz: SPI
    (Master) ve I2C (Master / Slave) modunda SPI portu (senkron seri port)

    Paralel slave port: 8 bit,
    harici RD,WR ve CS kontrollu

    USART / SCI: 9 bit adresli



    *Pic16F877A Comparator destekli.
    Admin
    Admin
    Root Administrator
    Root Administrator


    Mesaj Sayısı : 97
    Rep Puanı : 220
    Kayıt tarihi : 18/02/10
    Yaş : 33
    Nerden : Nereye

    Pic16F877 Yapısı ve Özellikleri Empty Geri: Pic16F877 Yapısı ve Özellikleri

    Mesaj tarafından Admin Cuma Şub. 26, 2010 12:23 pm

    Pic16F877 Bacak
    Bağlantıları:




    Pic16F877 Yapısı ve Özellikleri Pic16f877
    Admin
    Admin
    Root Administrator
    Root Administrator


    Mesaj Sayısı : 97
    Rep Puanı : 220
    Kayıt tarihi : 18/02/10
    Yaş : 33
    Nerden : Nereye

    Pic16F877 Yapısı ve Özellikleri Empty Geri: Pic16F877 Yapısı ve Özellikleri

    Mesaj tarafından Admin Cuma Şub. 26, 2010 12:24 pm

    Data Belleği (RAM)
    Organizasyonu:




    Pic16F877 Yapısı ve Özellikleri 16F877tablo
    Admin
    Admin
    Root Administrator
    Root Administrator


    Mesaj Sayısı : 97
    Rep Puanı : 220
    Kayıt tarihi : 18/02/10
    Yaş : 33
    Nerden : Nereye

    Pic16F877 Yapısı ve Özellikleri Empty Geri: Pic16F877 Yapısı ve Özellikleri

    Mesaj tarafından Admin Cuma Şub. 26, 2010 12:24 pm

    Pic16F877 Akış
    Diyağramı:




    Pic16F877 Yapısı ve Özellikleri 16F877ad
    Admin
    Admin
    Root Administrator
    Root Administrator


    Mesaj Sayısı : 97
    Rep Puanı : 220
    Kayıt tarihi : 18/02/10
    Yaş : 33
    Nerden : Nereye

    Pic16F877 Yapısı ve Özellikleri Empty Geri: Pic16F877 Yapısı ve Özellikleri

    Mesaj tarafından Admin Cuma Şub. 26, 2010 12:24 pm

    PIC16F877’nin
    Özellikleri




    PIC16F877,belki en popüler PIC işlemcisi olan PIC16F84’ten sonra
    kullanıcılarına yeni ve gelişmiş olanaklar sunmasıyla hemen göze
    çarpmaktadır. Program belleği FLASH ROM olan PIC16F877’de, yüklenen
    program PIC16F84’te olduğu gibi elektriksel olarak silinip yeniden
    yüklenebilmektedir.



    Özellikle PIC16C6X ve PIC16C7X ailesinin tüm özelliklerini barındırması,
    PIC16F877’yi kod geliştirmede de ideal bir çözüm olarak gündeme
    getirmektedir. Konfigürasyon bitlerine dikkat etmek şartıyla C6X veya
    C7X ailesinden herhangi bir işlemci için geliştirilen kod hemen hiçbir
    değişikliğe tabi tutmadan F877’e yüklenebilir ve çalışmalarda
    denenebilir. Bunun yanı sıra PIC16F877, PIC16C74 ve PIC16C77
    işlemcileriyle de bire bir bacak uyumludur.



    PIC16F877 Portlarının Fonksiyonları



    PORT A



    Her bir bitibağımsız olarak giriş veya çıkış olarak
    tanımlanabilmektedir. 6 bit genişliğindedir (PICF84’de 5 bittir). RA0,
    RA1, RA2, RA3, RA4 ve RA5 bitleri analog / sayısal çevirici olarak
    konfigüre edilebilmektedir. Buna ek olarak RA2 ve RA3 gerilim referansı
    olarak da konfigüre edilebilmektedir. (bu durumda bu bitler aynı anda A /
    D çevirici olarak kullanılamamaktadır) . İlgili registerlar ve
    adresleri aşağıdaki gibidir.



    PORTA 0x05



    TRISA 0x85 ; giriş / çıkış belirleme registeri



    ADCON1 0x9F ; RA portlarının A / D, referans gerilimi veya sayısal giriş
    /çıkış olarak seçiminde kullanılmaktadır.



    İşlemciye ilk defa gerilim uygulandığında RA4 hariç diğer beş PORTA biti
    A / D çeviricidir. Eğer RA portunun bazı bitlerini sayısal giriş /
    çıkış olarak kullanmak istersek ADCON1 registerında değişiklik yapmamız
    gerekmektedir.



    ***



    PORT B



    Her bir biti bağımsız olarak sayısal giriş veya çıkış olarak
    tanımlanabilmektedir. 8 bit genişliğindedir. B portunun her bacağı
    dahili bir dirençle VDD’ye bağlıdır. ( weak pull-up). Bu özellik
    varsayılan olarak etkin değildir. Ancak OPTION registerinin 7.bitini 0
    yaparak B portunun bu özelliğini etkinleştirilebilir.



    RB4-RB7 bacakları aynı zamanda bacakların sayısal durumlarında bir
    değişiklik olduğunda INTCON registerının 0. biti olan RBIF bayrağını 1
    yaparak kesme oluşturmaktadır. Bu özelliği, işlemci SLEEP konumundayken,
    devreye bağlı tuş takımının her hangi bir tuşa basıldığında işlemcinin
    yeniden etkinleşmesi için kullanabilir. Bütün bunların yanı sıra RB6 ve
    RB7 yüksek gerilim programlama, RB3 ise düşük gerilim programlama
    modlarında da kullanılmaktadır. İlgili registerlar ve adresleri
    aşağıdaki gibidir.



    PORTA 0x06



    TRISB 0x86 ; giriş / çıkış belirleme registeri



    OPTION_REG 0x81 , 0x181



    ***



    PORT C



    Her bir biti bağımsız olarak sayısalgiriş veya çıkış olarak
    tanımlanabilmektedir. 8 bit genişliğindedir. Tüm port bacakları Schmitt
    Trigger girişlidir. TRISE registerının 4. biti olan PSPMODE bitini 1
    yaparak “parallel slave mode” da kullanılabilir. Bu fonksiyon
    aracılığıyla 8 bit genişliğindeki her hangi bir mikroişlemci bus’ına
    bağlanabilir. İlgili registerlar ve adresleri aşağıdaki gibidir.



    PORTC 0x07



    TRISC 0x087 ; giriş / çıkış belirleme registeri



    ***



    PORT D



    Her bir biti bağımsız olarak sayısal giriş veya çıkış olarak
    tanımlanabilmektedir. 8 bit genişliğindedir. Tüm port bacakları Schmitt
    Trigger girişlidir. TRISE registerının 4.biti olan PSPMODE bitini 1
    yaparak “parallel slave mode”da kullanılabilir. Bu fonksiyon
    aracılığıyla 8 bit genişliğindeki herhangi bir mikroişlemci bus’ına
    bağlanabilir.



    PORTD 0x08



    TRISD 0x88

    TRISE 0x89



    ***



    PORT E



    Her bir biti bağımsız olarak giriş veya çıkış olarak
    tanımlanabilmektedir. 3 bit genişliğindedir. RE0, RE1 ve RE2
    bacaklarında Schmitt Trigger giriş tamponları vardır. Her bir bacak
    analog / sayısal çevirici olarak konfigüre edilebilmektedir. Eğer PORTD
    paralel slave port olarak konfigüre edilirse, RE0, RE1 ve RE2 bacakları
    PORTD’nin bağlandığı mikroişlemci bus’ına sırasıyla READ, WRITE ve CHIP
    SELECT kontrol girişleri olarak kullanılabilmektedir. Bunun için TRISE
    uygun biçimde ayarlanmalıdır. İlgili registerlar ve adresleri aşağıdaki
    gibidir.





    PORTE 0x09



    TRISE 0x89 ; giriş / çıkış belirleme registeri



    ADCON1 0x9F ; RE portlarının A / D veya sayısal giriş / çıkış olarak



    seçiminde kullanılmaktadır.



    İşlemciye ilk defa gerilim uygulandığında üç PORTE biti de A / D
    çeviricidir. Eğer RE portunun bazı bitlerini sayısal giriş / çıkış
    olarak kullanmak istenirse ADCON1 registerında değişiklik yapılması
    gerekecektir.



    elektronik.gezgini'nden
    Admin
    Admin
    Root Administrator
    Root Administrator


    Mesaj Sayısı : 97
    Rep Puanı : 220
    Kayıt tarihi : 18/02/10
    Yaş : 33
    Nerden : Nereye

    Pic16F877 Yapısı ve Özellikleri Empty Geri: Pic16F877 Yapısı ve Özellikleri

    Mesaj tarafından Admin Cuma Şub. 26, 2010 12:25 pm

    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



    ***



    PORTE 0x09

    TRISE 0x89 ; giriş / çıkış belirleme
    registeri



    ADCON1 0x9F; RE portlarının A / D
    veya sayısal giriş / çıkış olarak seçiminde kullanılmaktadır.



    İşlemciye ilk defa gerilim uygulandığında üç PORTE biti de A / D
    çeviricidir. Eğer RE portunun bazı bitlerini sayısal giriş / çıkış
    olarak kullanmak istenirse ADCON1 registerında değişiklik yapılması
    gerekir...
    Admin
    Admin
    Root Administrator
    Root Administrator


    Mesaj Sayısı : 97
    Rep Puanı : 220
    Kayıt tarihi : 18/02/10
    Yaş : 33
    Nerden : Nereye

    Pic16F877 Yapısı ve Özellikleri Empty Geri: Pic16F877 Yapısı ve Özellikleri

    Mesaj tarafından Admin Cuma Şub. 26, 2010 12:25 pm

    Program ve Kullanıcı RAM
    Bellek Organizasyonu




    PIC16F877’de üç bellek bloğu bulunmaktadır. Program ve kullanıcı veri
    belleği ayrı bus yapısına sahiptir ve aynı anda erişilebilmektedir.
    F877’de 13 bitlik bir program sayacı vardır ve 8Kx14 word adreslemeye
    yeterlidir. Reset vektörü 0x00’da kesme vektörüyse 0x04’de yer
    almaktadır.



    Kullanıcı veri belleği birden fazla register bankasına bölünmüştür. Bu
    register banklarında hemgenel amaçlı registerlar hem de özel fonksiyon
    registerları (SFR) bulunmaktadır.Register bankasını seçmek için STATUS
    registerındaki RP1 ve RP0 bitleri kullanılmaktadır. F84’de iki register
    bankası olduğunu ve yalnızca RP0 bitini ayarlamak suretiyle ilgili
    register bankasının seçildiğine dikkat edilmelidir



    *******************************************

    Status Register:



    IRP * RP1 * RP0 * TO * PD * Z * DC * C

    --------------------------------------------------

    7.Bit*6.Bit*5.Bit *4.Bit*3.Bit*2.Bit *1.Bit*0.Bit





    ******************************************

    Status Register Bank Seçme Bitleri



    00 :Bank 0

    01 :Bank 1

    10 :Bank 2

    11 :Bank 3



    *******************************************

    < RP1, RP0 > bitleri " Status Register
    Bank Seçme Bitleri tablosundaki
    " gibi ayarlanarak istenilen
    register bankasına erişebilmektedir.

    Her register bankası 128 byte
    genişliğindedir
    . ( 7Fh).
    Admin
    Admin
    Root Administrator
    Root Administrator


    Mesaj Sayısı : 97
    Rep Puanı : 220
    Kayıt tarihi : 18/02/10
    Yaş : 33
    Nerden : Nereye

    Pic16F877 Yapısı ve Özellikleri Empty Geri: Pic16F877 Yapısı ve Özellikleri

    Mesaj 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 )
    Admin
    Admin
    Root Administrator
    Root Administrator


    Mesaj Sayısı : 97
    Rep Puanı : 220
    Kayıt tarihi : 18/02/10
    Yaş : 33
    Nerden : Nereye

    Pic16F877 Yapısı ve Özellikleri Empty Geri: Pic16F877 Yapısı ve Özellikleri

    Mesaj tarafından Admin Cuma Şub. 26, 2010 12:28 pm

    Pic16F877 Bacak Bağlantıları yukarıdadır.



    PIC16F877’nin Besleme Uçları ve Beslenmesi




    PIC16F877’nin besleme gerilimi 11, 12 ve 31, 32 numaralı pinlerden
    uygulanmaktadır. 11 ve 32 numaralı Vdducu +5 V’a ve 12, 31 numaralı Vss
    ucu toprağa bağlanır. PIC’e ilk defa enerji verildiği anda meydana
    gelebilecek gerilim dalgalanmaları nedeniyle, oluşabilecek istenmeyen
    arızaları önlemek amacıyla 100nF’lık dekuplaj kondansatörünün devreye
    bağlanması gerekmektedir. PIC’ler CMOS teknolojisi ile üretildiklerinden
    2 ila 6 volt arasında çalışabilmektedirler. +5 V’luk bir gerilim ise
    ideal bir değer olmaktadır.



    PIC16F877’nin Reset Uçları



    Kullanıcının programı kasti olarak kesip başlangıca döndürebilmesi için
    PIC’in 1 numaralı ucu MCLR olarak kullanılmaktadır. MCLR ucuna 0 Volt
    uygulandığında programın çalışması başlangıç adresine döner. Programın
    ilk başlangıç adresinden itibaren tekrar çalışabilmesi için, aynı uca +5
    v gerilim uygulanmalıdır.

      Forum Saati Cuma Mayıs 10, 2024 8:13 am