2015 (3) Pemrograman Input-Output
2015 (3) Pemrograman Input-Output
MODUL III
PEMROGRAMAN INPUT-OUTPUT
I. Tujuan Praktikum
1. Memahami pola pemrograman bahasa C untuk mikrokontroler.
2. Dapat mewujudkan program akses I/O.
3. Dapat menerapkan program akses I/O.
II. Alat dan Bahan
1. Sistem minimum AVR ATmega16.
III. Pengantar
Konfigurasi port I/O pada AVR mempergunakan tiga tingkat register yaitu
tingkat register port (PortX), register arah data (Data Direction Register, DDRX)
dan pin masukan (Pin Input, PINX), setiap register menempati alamatnya sendiri.
Pemberian data pada setiap register mempengaruhi proses I/O yang terjadi.
PortX merupakan register yang bersentuhan dengan kondisi diluar chip,
namun keadaan luar tidak serta merta dapat diakses melalui pembacaan PortX.
Hal ini karena arah I/O harus didefinitifkan terlebih dahulu dengan memberikan
data pada register DDRX. Gambar 2.25 menunjukkan konfigirasi register I/O
untuk PORTA.
Gambar 1
Data bit berlogika 1 pada akan bit-bit pada portX sebagai output, dan
sebaliknya. Pemberian logika 1 pada bit DDRX membuat pull-up internal aktif,
demikian sebaliknya. Data membuat register PINX mengikuti data pada DDRX.
Data pada PINX inilah yang dapat dibaca melalui register R16 amapi R31. Proses
output data tidak serumit proses input data, output data dapat langsung dilakukan
dengan memberikan data ke PORTX.
IV. Cara Pengambilan Data
Catatlah setiap apa yang terjadi dari pelaksanaan langkah kerja.
IV. Langkah Kerja
A Percobaan output
1. Buat Project baru sekaligus foldernya pada AVRStudio, beri nama dengan
format [nomor mahasiswa_modul ke] tanpa spasi.
Sebagai contoh:
13210001_3
int main()
{unsigned char i;
DDRC=0xFF;
PORTC=0x00;
i=0b00000001;
for (;;)
{
PORTC=i;
asm("nop");
i=i<<1;
if (i==0)
{i=0b00000001;}
}
Setelah
kali
penekanan,
nilai
PORTC
berubah
menjadi
Perubahan nilai PORTC adalah karena proses yang diakibatkan oleh perintah
..
5. Buka program Downloader, yaitu program Khazama.
Cari file yang yang akan didownload dengan menekan tombol Load Flash
Hex to Buffer.
6. Amati
nyala
LED
.
7. Tambahkan kode program include agar program dapat mempergunakan
delay.
Letakkan kode program #include
"avr/io.h"
dibawah #include
"avr/io.h".
nyala
LED
.
10. Ubah besaran delay menjadi 1000. Compile dan downloadkan ke
mikrokontroler target.
11. Amati
nyala
LED
.
12. Simpulkan
percobaan
berikut..
Anda
pada
baris-baris
..
..
..
..
..
..
..
B Percobaan input
13. Buat project baru dengan folder pada AVRStudio, beri nama dengan format
[nomor mahasiswa_program ke] tanpa spasi.
Sebagai contoh:
13210001_3
//
//
//
//
//
// no operation
// i mendapat data dari PINA
// i di AND dengan 0xFF
// i diumpan ke PORTC
15. Compile dan simulasikan program, amati setiap kali menekan F11 atau tombol
Step Into.
16. Simulasikan sampai terjadi 1 kali perulangan, amati register PINA dan PORTC.
Register PINA bernilai awal .
Register PORTC bernilai awal .
Beri logika 1 pada salah satu bit PINA!. Tekan F11. Amati penunjukan data
pada PORTC.
Cari file yang yang akan didownload dengan menekan tombol Load Flash
Hex to Buffer.
19. Rubah posisi saklar input data dan amati tampilan lampu LED. Isilah tabel
berikut,
Input data
Output data
01010101
10101010
11001100
00110011
01010101
11111111
20. Apa yang dapat Anda simpulkan dari penggunaan PORT sebagai input?
Dari cara pendefinisian PORT sebagai input...
..
..
..
..
21. Proses perjalanan data diambil dari PIN sampai ditampilkan sebagai berikut
..
..
..
..
..
22. Apakah fungsi DIP switch pada percobaan tersebut?
..
..
..
V.
Tugas