Istilah "port" mengacu kepada sekelompok pin pada mikrokontroler yang dapat diakses secara bersamaan, atau di mana kita bisa mengatur kombinasi yang diinginkan dari nol dan satu, atau membaca status yang ada. Secara fisik, port adalah register di dalam mikrokontroler yang dihubungkan dengan kabel ke pin mikrokontroler. Port merupakan koneksi fisik dari Central Processing Unit dengan dunia luar (Perangkat Luar). Mikrokontroler menggunakan Port untuk memantau atau mengontrol komponen atau perangkat lain. Karena fungsi, beberapa pin memiliki peran ganda seperti PA4/TOCKI misalnya, yang dalam waktu bersamaan bit keempat Port A dan input eksternal untuk Free-Run Counter. Seleksi salah satu dari dua fungsi pin dilakukan di salah satu register konfigurasi. Sebuah ilustrasi ini adalah T0CS bit kelima dalam register OPTION. Dengan memilih salah satu fungsi yang lainnya dinonaktifkan.
Semua port pin dapat ditunjuk sebagai input atau output , sesuai dengan kebutuhan perangkat yang sedang dikembangkan. Dalam rangka untuk mendefinisikan pin sebagai pin input atau output, kombinasi yang tepat dari nol dan satu harus ditulis dalam register TRIS. Jika bit yang sesuai dari register TRIS berisi logika "1", maka pin adalah pin masukan, dan jika sebaliknya ini merupakan pin output. Setiap port memiliki register TRIS. Dengan demikian, port A memiliki TRISA, dan port B TRISB. PortA dan PORTB terletak pada register memori bank 0, sedangkan TRISA dan TRISB pin register berlokasi di bank 1.
PORTB dan TRISB
PORTB berisi 8 pin. Register yang tepat untuk mengatur arah data adalah TRISB. Mengatur bit register TRISB mendefinisikan pin port sebagai input, dan mereset bit di register TRISB berarti mendefinisikan pin port yang sesuai sebagai output.
Setiap pin PORTB memiliki internal pull-up resistor yang lemah (resistor yang mendefinisikan baris ke logika satu) yang dapat diaktifkan dengan mengatur ulang RBPU bit ketujuh dalam register OPTION. 'pull-up' ini resistor otomatis akan dimatikan bila pin port dikonfigurasi sebagai output. Bila mikrokontroler diaktifkan, pull-up dinonaktifkan.
Empat pin PORTB, RB7: RB4 dapat menyebabkan interupsi yang terjadi ketika status mereka berubah dari logika satu ke logika nol dan berlawanan. Hanya pin dikonfigurasi sebagai input dapat menyebabkan interupsi ini terjadi (jika ada RB7:. pin RB4 dikonfigurasi sebagai output, interrupt tidak akan dihasilkan pada perubahan status) opsi interupsi ini bersama dengan internal pull-up resistor membuatnya lebih mudah untuk memecahkan masalah-masalah umum kita temukan dalam praktek misalnya keyboard matriks.
Contoh di atas menunjukkan bagaimana pin 0, 1, 2, dan 3 di set sebagai input, dan pin 4, 5, 6, dan 7 untuk output, setelah pin output PORTB diatur ke satu.
PORTA dan TRISA
PORTA memiliki 5 pin yang berdampingan. Register yang sesuai untuk arah data TRISA pada alamat 85h. Seperti dengan PORTB, Mengset bit (1) di register TRISA juga mendefinisikan pin port yang sesuai sebagai input, dan mereset bit (0) di register TRISA mendefinisikan pin port yang sesuai sebagai output.
Penting untuk dicatat bahwa PORTA pin RA4 hanya dapat menjadi input. Pada pin ini juga terletak input eksternal untuk timer TMR0.
Contoh menunjukkan bagaimana pin 0, 1, 2, 3, dan 4 ditujukan sebagai input, dan pin 5, 6, dan 7 sebagai output.
Empat pin PORTB, RB7: RB4 dapat menyebabkan interupsi yang terjadi ketika status mereka berubah dari logika satu ke logika nol dan berlawanan. Hanya pin dikonfigurasi sebagai input dapat menyebabkan interupsi ini terjadi (jika ada RB7:. pin RB4 dikonfigurasi sebagai output, interrupt tidak akan dihasilkan pada perubahan status) opsi interupsi ini bersama dengan internal pull-up resistor membuatnya lebih mudah untuk memecahkan masalah-masalah umum kita temukan dalam praktek misalnya keyboard matriks.
bsf | STATUS, RP0 | ;Bank1 |
movlw | 0x0F | ;Mengatur pin input dan output |
movwf | TRISB | ;Menulis ke register TRISB |
bcf | STATUS, RP0 | ;Bank0 |
bsf | PORTB, 4 | ;PORTB <7:4>=0 |
bsf | PORTB, 5 | |
bsf | PORTB, 6 | |
bsf | PORTB, 7 |
Contoh di atas menunjukkan bagaimana pin 0, 1, 2, dan 3 di set sebagai input, dan pin 4, 5, 6, dan 7 untuk output, setelah pin output PORTB diatur ke satu.
PORTA dan TRISA
PORTA memiliki 5 pin yang berdampingan. Register yang sesuai untuk arah data TRISA pada alamat 85h. Seperti dengan PORTB, Mengset bit (1) di register TRISA juga mendefinisikan pin port yang sesuai sebagai input, dan mereset bit (0) di register TRISA mendefinisikan pin port yang sesuai sebagai output.
Penting untuk dicatat bahwa PORTA pin RA4 hanya dapat menjadi input. Pada pin ini juga terletak input eksternal untuk timer TMR0.
bsf | STATUS, RP0 | ;Bank1 |
movlw | b'11111100' | ;Mengatur pin input dan output |
movwf | TRISA | ;Menulis Register TRISA |
bcf | STATUS, RP0 | ;Bank0 |
Contoh menunjukkan bagaimana pin 0, 1, 2, 3, dan 4 ditujukan sebagai input, dan pin 5, 6, dan 7 sebagai output.