2.2.6 Port IO ATMega8535
Port IO pada mikrokontroler ATmega8535 dapat difungsikan sebagai input ataupun output dengan keluaran high atau low. Untuk mengatur fungsi port IO
sebagai input ataupun output, perlu dilakukan setting pada DDR dan Port. Berikut tabel pengaturan port IO:
Tabel 2.1 Konfigurasi setting untuk Port IO
DDR bit = 1 DDR bit = 0
Port bit = 1
Output High Input Pull-Up
Port bit = 0
Output Low Input Floating
Dari tabel di atas, menyetting inputoutput adalah:
a. Sebagai Input; DDR bit 0 Low dan Port bit 1 High b. Untuk Output High; DDR bit 1 High dan Port bit 1 Low
c. Untuk Output Low; DDR bit 1 High dan Port bit 0 Low
Contohnya dalam kode program untuk mengeset setiap Port IO:
ldi R16, 0xff ;Isi register dengan nilai High semua
ldi R17, 0x00 ;Isi register dengan nilai Low semua
out DDRA, R17 ;input
;Input ADC out PORTA, R17
;floating ;Tanpa pull-up
out DDRB, R16 ;output
;Output sensor out PORTB, R17
;low ;Aktif High
out DDRC, R16 ;output
;Output ke Motor dan Pompa out PORTC, R17
;low ;Aktif High
out DDRD, R17 ;input
;Input sensor out PORTD, R16
;pullup ;Dengan pull-ip
Universitas Sumatera Utara
Logika port IO dapat diubah-ubah dalam program secara byte atau hanya bit tertentu. Mengubah sebuah keluaran bit IO dapat dilakukan menggunakan perintah
cbi clear bit IO untuk menghasilkan output low atau perintah sbi set bit IO untuk menghasilkan output high. Perubahan secara byte dilakukan dengan perintah in atau
out yang menggunakan register bantu.
Port IO sebagai output hanya memberikan arus sourcing sebesar 20mA sehingga untuk menggerakkan motor atau kendali alat elektronis yang lain, perlu
diberikan penguat tambahan atau dapat juga dengan konfigurasi port sebagai sinking current
, seperti pada port yang digunakan untuk menyalakan LED, yang akan menyala saat port diberikan logika low dan mati saat port logika high.
2.2.7 Instruksi Transfer Data
Instruksi transfer data digunakan untuk memindahkan data antar register, antara port dan register, juga antara GPR General Purpose Register dengan internal pheripheral
register register inti AVR. Beberapa contoh instruksi transfer data.
a. in; membaca data IO Port atau internal peripheral register Timers, UART,