PIC18 Serisi MCU I / O Port Operasyon Kaydı ve Uygulaması

Test çipi: Mikroçip PIC 18F4550

Tümleşik geliştirme ortamı: MPLAB IDE v8.53

Derleyici: Microchip C18

PIC18 serisi tek çipli mikrobilgisayarlar, Microchip'in 8 bitlik mikro denetleyici serisinde üst düzey bir seridir.Herhangi bir G / Ç pini tarafından izin verilen maksimum batırma akımı veya maksimum kaynak akımı, doğrudan LED'leri ve röleleri çalıştırabilen 25mA'dır. PORTA, PORTB ve PORTE'nin toplam maksimum batma akımı veya maksimum kaynak akımı 200mA, PORTC ve PORTD'nin toplam maksimum lavabo akımı veya maksimum kaynak akımı 200mA ve PORTF ve PORTG'nin toplam maksimum lavabo akımı veya maksimum kaynak akımı 100mA'dır (Not: PIC18F4550 Bu iki bağlantı noktası olmadan).

Mikro denetleyici ve çevre birimler arasındaki etkileşim, G / Ç bağlantı noktası aracılığıyla gerçekleştirilir ve her G / Ç bağlantı noktasında üç çalışma kaydı bulunur:

1. TRISx Veri yönü kaydı

I / O pinlerinin yönünü, yani PORTx'in giriş mi yoksa çıkış mı olduğunu kontrol etmek için kullanılır.

2. PORTx Bağlantı noktası kaydı

Çıkış verilerini kilitlemek için kullanılır. PORTx'i okurken, cihaz doğrudan G / Ç pin seviyesini okur (kalıcı değeri değil).

3. LATx - çıkış veri mandalı

Bağlantı noktasına yazmak, mandala (LATx) yazmak anlamına gelir. Veri mandalı ayrıca doğrudan okunabilir ve yazılabilir. Çevre birimi pimi kullanmazsa ve TRISx bit pimi bir çıkış olarak yapılandırırsa, mandaldaki veriler pime çıkarılır.

Sıfırlama durumunda, TRISx'in sıfırlama değeri 0xff, yani TRISx kaydının 8 bitinin (D0 ~ D7) değeri 1'dir. Bu sırada, ilgili PORTx pini bir giriş olarak tanımlanır ve karşılık gelen çıkış sürücüsü, yüksek empedans durumu sunar. 0 olarak ayarlandığında, ilgili pin çıkış olarak tanımlanır.

Burada PORT yazmanın LAT yazdığına dikkat edilmelidir, ancak PORT okumak LAT okumaktan farklıdır. PORT'u okumak, pinin bir giriş pini veya bir çıkış pini olarak ayarlanıp ayarlanmadığına bakılmaksızın pinin durumunu okur. LAT okunarak elde edilen değer, çıkış verisi mandalının saklanan değeridir.LAT okunarak elde edilen değer PORT okunarak elde edilen değerden farklı olabilir.

Microchip C18'de, G / Ç bağlantı noktasının üç işlem kaydı bit veya bayt olarak çalıştırılabilir.

Örneğin, B portunun yön kaydı TRISB (veya DDRB) ile temsil edilir ve bir bit, TRISBbits.TRISB0 (veya DDRB bitleri.RB0) ile temsil edilir. Bayt, TRISB (veya DDRB) ile temsil edilir.

Örneğin, B bağlantı noktasının PORT kaydı PORTB ile temsil edilir ve belirli bir bit PORTBbits.RB0 ile temsil edilir. Bayt, PORTB ile temsil edilir.

Örneğin, B bağlantı noktasının çıkış veri mandalı LATB ile temsil edilir ve belirli bir bit LATBits.LATB0 ile temsil edilir. Bayt, LATB ile temsil edilir.

LATx (PORTx) mandalının değeri, yonga sıfırlandıktan sonra rastgele olduğundan, G / Ç pin seviyesinde hata olasılığını ortadan kaldırmak için, bağlantı noktasını başlatırken, önce PORT veri mandalını (LAT veya PORT yazmacı) ve sonra veri yönü yazmacı TRIS'i başlatın.

Spesifik uygulamayı açıklamak için bir örnek kullanalım: Aşağıdaki şekil PIC18F4550 ve güç kaynağı, kristal osilatör ve ışık yayan diyot, aynı anda yanması için 8 ışık yayan diyot gerektiren en basit 8 bitlik mikro denetleyici sistemini oluşturur.

İlk olarak, bitsel işlem yöntemini seçebilirsiniz. Bit-bazlı çalışmanın aslında PORTB'ye bağlı 8 LED'in eşzamanlı aydınlatmasını gerçekleştirmediğini görmek zor değildir, ancak LED'lerin gecikme etkisi, bunların sıralı olarak yanması gerçeğini aydınlatarak nihai etkinin eşzamanlı aydınlatma elde etmesini sağlar. Aşağıda, bitsel işlemin uygulama kodu verilmiştir.

#Dahil etmek

void main (void)

{

PORTBbits.RB0 = 1;

TRISBbits.TRISB0 = 0; // ilk LED'i yak

PORTBbits.RB1 = 1;

TRISBbits.TRISB1 = 0; // ikinci LED'i yakar

PORTBbits.RB2 = 1;

TRISBbits.TRISB2 = 0; // üçüncü LED'i yak

PORTBbits.RB3 = 1;

TRISBbits.TRISB3 = 0; // 4. LED'i yak

PORTBbits.RB4 = 1;

TRISBbits.TRISB4 = 0; // 5. LED'i yak

PORTBbits.RB5 = 1;

TRISBbits.TRISB5 = 0; // 6. LED'i yak

PORTBbits.RB6 = 1;

TRISBbits.TRISB6 = 0; // 7. LED'i yak

PORTBbits.RB7 = 1;

TRISBbits.TRISB7 = 0; // 8. LED'i yak

while (1);

}

İkinci olarak, bayt işlemiyle gerçekleştirilebilir, kod bitsel işlemden çok daha basittir ve eşzamanlı aydınlatma gereksinimini gerçekten gerçekleştirir. Aşağıda bayt işleminin uygulama kodu verilmiştir.

PORTB = 0xff;

TRISB = 0x00; // 8 LED yakar

Feragatname: Bu web sitesinin orijinal içeriğini yeniden yazdırmanız gerekirse, lütfen kaynağı belirtin; bu web sitesinde çoğaltılan içeriğin (makaleler, resimler, videolar) ve diğer materyallerin telif hakkı orijinal web sitesine aittir. Herkese açıklamamanız gereken makaleler veya resimler kullanırsak ve her iki tarafa da gereksiz ekonomik kayıplardan kaçınmak için zamanında onaylamazsak, lütfen bize e-posta gönderin, böylece uygun önlemleri hızlı bir şekilde alabiliriz; katkılarınızı bekliyoruz, e-posta: editors @ eccn. com.tr.

Uber ile uzlaşan Waymo, otonom sürüş teknolojisini uygulamak istiyor.
önceki
Sevgi veya para, öğrencisi olmayı seçtiğin kişi
Sonraki
China Construction Expo: 1000 metrekarelik "Dragon · Ahead" temalı sergisinin açılışı Huitailong izleyenleri şoke etti!
Acemi Xiaobai, pratik yapmak için manuel bir araba satın almak istiyor, Arrizo 5 ve Rena nasıl seçilir?
Yi Xiaoxing Beidiao, "Fatty Youth" u besteleyen Çin ve Japonya'dan üç büyük yönetmenin gerçek bir uyarlamasını deneyimledi.
Bir bahar gezisi için sahip olunması gereken bir öğe - güzel görünümlü ve kullanımı kolay Polaroid kameraların geniş bir koleksiyonu
Qin Shuo: Wang Shi'yi takdir edin, girişimcilik girişimini son gülen yaptınız Broad Vision
Hareket halindeki görüntü sensörlerine izin verme konusundaki güven, ADAS ve otonom sürüşün anahtarıdır
Huawei, B5 bileziğinin AMOLED renkli ekran tasarımı kullandığını resmen duyurdu
Huang Jianxiang tutkuyla "Son Top" hakkında yorum yaptı Savaş klasik kükreme reprodüksiyonunda yalnız değilsiniz
Dört önemli nokta ünlüleri ikna etti, vivo X21, deneyimden sonra hayran olacak
Dikkatli ol! GPS gizliliğinizi ortaya çıkarır
Konuşma tanımayı gerçekleştirmek için MCU kullanılsın mı? MSP432 bunu yapabilir!
Köpek Yılı'na veda etmek için uçun ve Biyokimyasalın Domuz Yılını kutlamasını bekleyin! UCG Spring Festival Joint Journal listelendi
To Top