Disusun Oleh :
Register Port
Setiap port dalam AT Mega8535 memiliki tiga buah register yang berkaitan yaitu
Port mikrokontroler AVR dapat dikonfigurasi sebagai input atau output, dengan
cara mengubah isi I/O register DDRx. Bit-bit pada DDRx menentukan arah pin.
Setiap pin pada AVR juga memiliki internal pull-up, untuk mengaktifkannya
dilakukan dengan memberikan nilai 0xFF pada register PORTx.
Untuk membaca data pada salah satu port, dapat digunakan fungsi PINx,
sedangkan membaca data per pin pada suatu port maka ditentukan bit pin-nya yaitu
PINx.bit.
V. HASIL PRAKTIKUM
Terlampir
VI. PEMBAHASAN
Dalam praktikum pertama mata kuliah mikrokontroler dan PLC ini yaitu
mengenai Pemrograman C Mikrokonroler dan Paralel Input Output yang
mempunyai tujuan tujuan mampu memahami Input output mikrokontroler AVR AT
Mega, mampu memahami Input output AVR AT Mega dan mampu membuat
program dalam bahasa C untuk input output Port mikrokontroler dan penerapannya.
Pada Port I/O mempunyai tiga alamat memori yang digunakan untuk mengatur
konfigurasi setiap port I/O yaitu ;
a. Data Register (PORTx) yang digunakan untuk menyimpan data yang akan
ditulis/dikeluarkan ke port I/O pada saat dikonfigurasi.
b. Data Direction Register (DDRx) yang fungsikan untuk mendifinisikan port
sebagai input atau sebagai output.
c. Port Input Pin (PINx) yang digunakan untuk menyimpan data yang terbaca
dari port I/O pada saat konfigurasi sebagai input.
Pada praktikum kali ini dilakukan deteksi port dan memberikan keluaran kondisi
yang ditunjukkan oleh LED. Praktikum ini dilakukan dengan lima percobaan
dengan program yang berbeda-beda.
Setelah dapat menginstall K-125 pada PC yangd iguanakan maka langkah selanjutnya
mengintall AVR Prog dengan langkahlangkah sebagai berikut :
a. Koneksikan K-125R pada computer PC/Laptop anda
b. Aktifkan program AVRProg (Pada programmer AVRProg hardware harus terpasang
terlebih dahulu) jika software dapat berjalan/terbuka maka K-125R telah terkoneksi/ter-
install dengan baik
c. Klik Browse dan kemudian pilih file hex yang ingin didownload
d. Pilih Device yang anda ingin download
e. Kemudian klik Program
Catatan: Jika K-125R tidak terkoneksi dengan AVR yang hendak didownload maka
akan tampil tulisan “Address: 0x0000, Expected: 0x940c, Received: 0xffff” (set pada
ATmega8535)
f. Klik Advanced untuk melakukan setting fuse bit dan lock bit
Setelah hal-hal yang dilakukan diatas, maka langkah selanjutnya adalah menginstall
pada PROGRAM Code Vision AVR dengan langkah-langkah sebagai berikut :
a. Bukalah Program CodeVision AVR 1.25.9
b. Klik settings dan kemudian pilih Programmer
c. Kemudian pilih AVR Chip Programmer Type: Atmel AVRProg(AVR910)
d. Set boud Rate 115200bps dan pilih Communication Port yang terdeteksi.
e. K-125R Siap digunakan dalam CodeVision AVR.
1. Program 1
Pada program yang dijalankan pada percobaan ini, dapat dilihat bahwa
Port D menjadi Output karena DDRx diatur pada port D sebagaimana pada
koding program ini tertulis DDRD dan diberi nilai 0xFF yang berniali 0 atau
low sehingga port D sebagai output. Selanjutnya koding PORTD = 0xFF berarti
bahwa port D menjadi active low, dimana keluarannya akan menyala (active)
ketika berlogika 0. Pada port D ini memiliki 8 pin keluaran dari POTD.0 hingga
PORTD.7 yang diatur sebagai berikut
Pin 0 bernilai 0
Pin 1 bernilai 1
Pin 2 bernilai 1
Pin 3 bernilai 1
Pin 4 bernilai 0
Pin 5 bernilai 1
Pin 6 bernilai 1
Pin 7 bernilai 1
Maka ketika program dijalankan, led yang akan menyala pada modul ada
pada led 0 dan led 4. Hal ini sesuai dengan hasil percobaan yang dilakukan
dimana hanya led 0 dan led 4 yang menyala. Maksud dari perintah while (1)
maka program tersebut akan melakukan perulangan atau looping hingga daya
mikrokontroler tidak tersedia
2. Program 2
Pada percobaan ini terdapat 2 Port yang digunakan yaitu Port A dan Port
D. Pada program tersebut diketahui bahwa Port A digunakan sebagai input dan
Port D digunakan sebagai output. ATMega8535 memfasilitasi setiap PORT I/O-
nya dengan fitur internal pull-up yang dapat diatur aktif/tidaknya. Fitur internal
pull-up diletakkan pada Port A yang dimana Port A ini diatur sebagai input.
Maka setiap pin pada Port A seolah tersambung ke Vcc melalui sebuah resistor,
sehingga pada kondisi tidak ada rangkaian lain yang terhubung dengan pin
tersebut maka logika yang terbaca berlogika high (1). Port A dihubungkan pada
switch/push button, dimana tugas Port A ini akan menghubungkan dan
menyalin data dari switch yang selanjutnya akan terhubung pada keluaran Port
D. Hasil yang tertampil setelah program 2 dijalankan adalah led yang ditekan
switchnya akan menyala. Dikarenakan program ini adalah active low, maka
ketika penekanan switch akan berlogika 0 yang menyebabkan led menyala.
3. Program 3
4. Program 4
\
5. Program 5
Pada program 5 tersebut kami membuat running LED yang berjalan
dari kanan dan kiri atau dari kedua ujung kemudian bertemu dititik tengah.
Pada praktikum program ke-5 ini port D dijadikan sebagai output, sedangkan
port B digunakan sebagai input. Pada program 5 ini kami juga membuat flip
flop untuk menyalakan dan mematikan LED secara serempak dengan
membaca input port B dan diteruskan sebagai output oleh port D.
Pada program ini berisi program dengan input port B dengan 2 kondisi
yaitu ketika pin B0=0 dan pin B1=0, dimana pin B0 digunakan untuk
menyalakan running LED dan pin B1 digunakan untuk menyalakan flip flop.
PIN B0
Pada program running LED, program diset untuk dieksekusi
melakukan pengulangan sebanyak 3 kali (a) dimulai dari 0. Pada program
ini output D ditentukan akan bernilai high ketika program bernilai 0 karena
output D diset 0XFF. Program akan mengeksekusi running LED yang
menyala sesuai dengan nilai array yang kita atur untuk kemudian diubah
menjadi nilai biner dan menyalakan running LED sesuai data di bawah ini
:
No Desimal Biner
1 255 1111 1111
2 0 0000 0000
3 255 1111 1111
4 0 0000 0000
VII. KESIMPULAN
1. Pada percobaan 1, hasil yang dieksekusi pada program menghasilkan led yang
menyala pada pin 0 dan 4 pada Port D.
2. Pada percobaan 2, dengan adanya switch dan internal pull up maka led akan
menyala pada saat switch ditekan dimana saat itu pin berlogika 0.
3. Pada percobaan 3, lampu led menyala dengan delay 250 ms dari kanan menuju
kiri lalu kembali ke kanan.
4. Pada percobaan 4, lampu led menyala dengan delay 250 ms dari kanan ke kiri
lalu dari kiri ke kanan.
5. Pada percobaan 5, lampu led menyala dari bagian ujung hingga ke tengah lalu
menyala semua.