IO Ports Media pembelajaran

201 PEREKAYASAAN SISTEM KONTROL

4.5 IO Ports

Semua port AVR memiliki fungsi true Read-Modify-Write ketika digunakan sebagai port IO digital.Maksudnya bahwa arah satu port pin dapat dirubah tanpa merubah arah port pin yang lain dengan instruksi SBI dan CBI. Hal yang sama juga berlaku untuk mengubah nilai keluaran jika dikonfigurasi sebagai output atau enabledisable resistor pull-up internal jika dikonfigurasi sebagai input. Setiap buffer keluaran memiliki karakteristik pengendalian yang simetri baik untuk high sink maupun source. Driver pin cukup kuat untuk men-drive LED secara langsung. Semua port memeiliki selektor resistor pull-up sendiri-sendiri dengan suatu sumber tegangan dengan resistansi yang bervariasi. Semua pin IO memiliki dioda proteksi ke Vcc dan Gorund. Gambar 4.10 Rangkaian equivalent pin IO Pada penjelasan berikutnya dipakai symbol “x” untuk mewakili port dan symbol “n” unutk mewakili bit, contoh PORTB3 untuk port B bit 3 dapat ditulis sebagai PORTxn. Tiga buah lokasi memory IO terletak pada setiap port. Satu untuk register data – PORTx, Data Direction Register – DDRx dan Port Input Pins – PINx. Lokasi Port Port Input Pins IO adalah read only ketika Register Data dan Data Direction 202 PEREKAYASAAN SISTEM KONTROL Register sedang dibaca atau ditulisi. Pull-up Disable – PUD bit dalam SFIOR memungkinkan fungsi pull-up untuk semua pin jika diset. Setiap pin port terdiri dari tiga register bits, yaitu DDxn, PORTxn dan PINxn. DDxn bits diakses pada alamat DDRx IO, PORTxn bits pada PORTx IO address dan PINxn bits pada PINx IO. DDxn bit pada Register DDRx dipergunakan untuk mengatur arah data pin. Jika DDxn ditulisi dengan logika 1, maka Pxn dikonfigurasi sebagai pin keluaran. Jika DDxn diberilogika 0, maka Pxn dikonfigurasi sebagai pin masukan. Jika PORTxn diberi logika 1 ketika pin dikonfigurasi sebagai input, resistor pull-up akan diaktifkan. Untuk melepas saklar resistor pull-up, PORTxn harus diberi logika 0 atau pin dikonfigurasi sebagai pin keluaran. Ketika pin reset aktif, pin port akan dikodisikan tri-stated meskipun tidak ada pulsa clock. Jika PORTxn diberi logika 1 ketika pin dikonfigurasi sebagai pin keluaran, maka pin port akan di-drive ke logika tinggi 1. Jika PORTxn diberi logika 0 ketika pin dikonfigurasi sebagai pin keluaran, maka pin port akan di-drive ke logika rendah 0. Ketika switching antara tri-state {DDxn, PORTxn} = 0b00 and output high {DDxn, PORTxn} = 0b11, dimungkinkan sebuah intermediate state dengan pull- up {DDxn, PORTxn} =0b01 atau output low {DDxn, PORTxn} = 0b10 akan muncul. Pada umumnya pull-up enabled state dapat diakses penuh sebagai high-impedant environment tanpa perbedaan antara strong high driver dan pull- up. Jika tidak demikian, maka PUD bit dalam register SFIOR dapat diset ke disable untuk semua pull-up pada semua port. Switching antara input dengan pull-up dan output low menghasilkan masalah yang sama. Pemakai harus menggunakan tri-state {DDxn, PORTxn} = 0b00 atau output high state{DDxn, PORTxn} = 0b10 sebagai suatu intermediate step. Tabel 1.1 Konfigurasi Pin Port 203 PEREKAYASAAN SISTEM KONTROL

4.6 TimerCounter