Anda di halaman 1dari 12

MODUL 01 I/O DASAR

Devananda(13217061)
Asisten: Cheryl J. Ovani(13216109)
Tanggal Percobaan: 06/02/2020
EL3214-Praktikum Sistem Mikroprosesor
Laboratorium Dasar Teknik Elektro - Sekolah Teknik Elektro dan Informatika ITB

Abstrak luas. mulai dari mikroprosesor yang sederhana


yang sangat rumit. mikroprosesor seperti Arduino
Percobaan ini memiliki judul input atau output
makan contoh mikroprosesor sederhana.
dasar. Hal ini disebabkan karena dalam percobaan ini kita
sedangkan mikroprosesor yang sangat kompleks
akan berusaha memahami mengenai salah satu fitur penting
hutan dapat ditemukan dalam ponsel genggam
dari mikroprosesor yakni input dan output. seperti yang kita
ataupun laptop yang kita gunakan sehari-hari.
ketahui processor berperan sebagai otak dari suatu perangkat
sehingga dia harus mampu mengolah suatu informasi. Pada mikroprosesor yang paling sederhana
informasi ini akan diterima dalam wujud suatu input sekalipun, terdapat sejumlah fitur dan juga cara
kemudian input ini akan diproses oleh sistem tersebut sehingga untuk menggunakan mikroprosesor tersebut. Oleh
menghasilkan suatu output. proses penerimaan dan pemberian sebab itu pada praktikum ini kita akan meninjau
input dan output dilakukan dengan menggunakan sejumlah sejumlah fitur cara mengakses mikroprosesor
pin. Oleh sebab itu kita harus memahami Bagaimana cara tersebut. seperti yang di lakukan pada percobaan
mengatur pin pin tersebut. Pada percobaan ini kita akan pertama ini kita berusaha mengamati fitur input
menemukan bahwa untuk mengatur suatu pin untuk menjadi dan output pada mikroprosesor 8358. tentunya
output atau input adalah dengan menggunakan register yang kita akan memahami Bagaimana cara mengeset
telah dialokasikan untuk PIN tersebut. terdapat 3 register PIN dalam mikroprosesor menjadi suatu input atau
penting yakni register DDR, PORT, dan PIN. register ini suatu PIN output.
akan berperan menentukan fungsionalitas dari pin tersebut.
Fitur input dan output pada suatu
Berikutnya kita juga akan memahami prinsip fungsi dari
mikroprosesor pakan hal yang sangat penting dan
pull-up pada register input. Selain itu terdapat bit PUD
fundamental. Hal ini disebabkan untuk dapat
dalam register SFIOR yang dapat mendisable pull up.
mengolah sesuatu maka mikroprosesor harus
menerima suatu input baik berupa digital maupun
Kata kunci: DDRx, PORTxn, PINx, Inpur, Output, analog. Kemudian dari input ini mikroprosesor
mikroprosesor akan mengolah secara digital sehingga
menghasilkan suatu nilai keluaran yang dikenal
1. PENDAHULUAN sebagai output sistem. Oleh sebab itu kita harus
dapat memahami dengan betul Bagaimana cara
Dalam praktikum kali ini kita akan memahami mengatur pin pin pada mikroprosesor. Karena
bagaimana cara kerja suatu mikroprosesor. Oleh tidak setiap saat kita membutuhkan pin tersebut
sebab itu praktikum ini merupakan praktikum sebagai input saja atau output saja. Sehingga kita
sistem mikroprosesor. Mikroprosesor merupakan dapat melakukan pergantian fungsi pin.
sebuah IC (Integrated Circuit) yang digunakan
sebagai otak/pengolah utama dalam sebuah sistem Contoh setting input output ini biasanya
computer. dari definisi tersebut dapat kita pahami diaplikasikan dalam penggunaan sensor atau
bahwa mikroprosesor merupakan inti dari hampir switch. biasanya dalam penggunaan Arduino kita
seluruh komponen elektronik. Oleh sebab itu akan melakukan pengecatan PIN sebagai input
penting bagi seorang sarjana Teknik Elektro untuk ketika kita berusaha menerima dari sensor.
dapat memahami dengan baik Bagaimana cara kemudian dengan menggunakan maka kita akan
sistem mikroprosesor ini bekerja. dalam mengolah input tersebut memberikan respons atas
praktikum ini kita akan mengamati berbagai input yang masuk. kemudian merespon ini
macam hal mengenai mikroprosesor. dikeluarkan melalui suatu pin untuk diterima
sistem lainnya seperti untuk menyalakan LED.
Mikroprosesor dibuat dengan metode yang sehingga pada percobaan ini kita akan berusaha
sangat kompleks dan juga desain yang rumit. Oleh mengamati proses input output dengan
sebab itu pada praktikum ini kita berusaha untuk menggunakan lampu LED.Percobaan ini
memahami bagaimana mikroprosesor ini dapat merupakan percobaan yang sangat penting karena
berfungsi sebagai otak dari suatu pangkat. memiliki manfaat yang banyak. Maka dari
aplikasinya sendiri dalam dunia nyata sangatlah
Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB 1
percobaan inipun kita memiliki tujuan yang harus 2.2 KONFIGURASI PIN PORT
dicapai yakni sebagai berikut.
Setiap pin port terdiri dari tiga daftar bit:
DDxn, PORTxn, dan PINxn. Seperti yang
1. Memahami datasheet ATMega 8535
diperlihatkan dalam “Register Description for I/O-
Ports” pada halaman 66, bit-bit DDxn diakses di
2. Membuat aplikasi input dan output pada
alamat DDRx I/O, PORTxn bit pada alamat I/O
AVR dengan bahasa pemrograman C
PORTx, dan PINxn bit pada alamat PINx I/O.
pada WinAVR
Bit DDxn dalam DDRx Register memilih
3. Memahami pengesetan fuse yang arah pin ini. Jika DDxn adalah logika tertulis, Pxn
berkaitan dengan penggunaan besar dan dikonfigurasi sebagai pin output. Jika DDxn nol
jenis kristal logika tertulis, Pxn dikonfigurasi sebagai pin input.
Jika PORTxn dituliskan dengan logika
ketika pin dikonfigurasikan sebagai pin input,
2. STUDI PUSTAKA resistor pull-up diaktifkan. Untuk mematikan
resistor pull-up, PORTxn harus ditulis dengan
2.1 SKEMATIK I/O logika nol atau pin harus dikonfigurasi sebagai pin
Semua register dan referensi bit dalam keluaran. Pin port adalah tri-stated ketika kondisi
bagian ini ditulis dalam bentuk umum. Huruf kecil reset menjadi aktif, bahkan jika tidak ada jam
“x” mewakili penomoran untuk port, dan huruf berjalan.
kecil “n” mewakili nomor bit. Namun, ketika Jika PORTxn dituliskan logika ketika pin
menggunakan regoster atau bit mendefinisikan dikonfigurasi sebagai pin keluaran, pin port
dalam suatu program, bentuk yang tepat harus digerakkan tinggi (satu). Jika PORTxn dituliskan
digunakan. Sebagai contoh, PORTB3 untuk bit no. logika nol ketika pin dikonfigurasikan sebagai pin
3 di Port B, di sini secara umum didokumentasikan keluaran, pin port digerakkan rendah (nol).
sebagai PORTxn. Daftar I/O fisik dan lokasi bit
tercantum dalam "Register Description for I/O- Saat beralih di antara tri-state ({DDxn,
Port" pada halaman 66. PORTxn} = 0b00) dan output tinggi ({DDxn,
PORTxn} = 0b11), kondisi perantara dengan
Tiga lokasi alamat memori I/O diaktifkannya pull-up ({DDxn, PORTxn} = 0b01)
dialokasikan untuk setiap port, masing-masing atau output rendah ( {DDxn, PORTxn} = 0b10)
untuk Data Register - PORTx, Data Direction harus terjadi. Biasanya, keadaan yang diaktifkan
Register - DDRx, dan Port Input Pins - PINx. Lokasi pull-up sepenuhnya dapat diterima, karena
Port Input Pins I/O hanya membaca, sedangkan lingkungan dengan impedansi tinggi tidak akan
Data Register dan Data Direction Register melihat perbedaan antara driver tinggi yang kuat
membaca/menulis. Selain itu, Pull-up Disable - dan pull-up. Jika tidak demikian halnya, bit PUD
PUD bit di SFIOR menonaktifkan fungsi pull-up dalam Daftar SFIOR dapat diatur untuk
untuk semua pin di semua port saat diatur. menonaktifkan semua pull-up di semua port.
Menggunakan port I/O sebagai General Beralih antara input dengan pull-up dan
Digital I/O dijelaskan dalam “Ports as General output rendah menghasilkan masalah yang sama.
Digital I/O” pada halaman 52. Kebanyakan pin Pengguna harus menggunakan tri-state ({DDxn,
port di-multiplex dengan fungsi alternatif untuk PORTxn} = 0b00) atau status high output ({DDxn,
fitur perangkat pada perangkat. Bagaimana setiap PORTxn} = 0b10) sebagai langkah perantara. Tabel
fungsi alternatif berhubungan dengan pin port berikut merangkum sinyal kontrol untuk nilai pin
dijelaskan dalam “Alternate Port Functions” pada (pin value).
halaman 57.

2.3 PUD PADA SFIOR


Berikut secara singkat menjelaskan fungsi-
fungsi alternatif untuk setiap port, dan

Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB 2


menghubungkan sinyal-sinyal utama ke fungsi
alternatif.

Ketika bit ini ditulis ke salah satu, pull-up


di port I / O dinonaktifkan bahkan jika Register
DDxn dan PORTxn dikonfigurasi untuk
mengaktifkan pull-up ({DDxn, PORTxn} = 0b01).

2.4 REKOMENDASI UNTUK INISIALISASI


PADA PIN INPUT
3. Port C
Jika beberapa pin tidak digunakan,
disarankan untuk memastikan bahwa pin ini
memiliki level yang ditentukan. Meskipun
sebagian besar input digital dinonaktifkan dalam
mode tidur nyenyak seperti dijelaskan di atas,
input mengambang harus dihindari untuk
mengurangi konsumsi saat ini di semua mode lain
di mana input digital diaktifkan (Reset, mode aktif
dan mode idle).
Metode paling sederhana untuk
memastikan level pin yang tidak terpakai, adalah
mengaktifkan pull-up internal. Dalam hal ini, pull-
up akan dinonaktifkan selama reset. Jika konsumsi
daya rendah selama reset penting, disarankan 4. Port D
untuk menggunakan pull-up atau pull-down
eksternal. Menghubungkan pin yang tidak
digunakan secara langsung ke VCC atau GND
tidak disarankan, karena hal ini dapat
menyebabkan arus berlebih jika pin secara tidak
sengaja dikonfigurasi sebagai output.

2.5 DESKRIPSI REGISTER


Berikut merupakan deskripsi register dari
beberapa port.
1. Port A

3. METODOLOGI
Dalam percobaan kali ini kita akan
membutuhkan beberapa hal untuk mendukung
percobaan ini. Berikut ini merupakan daftar alat
dan bahan yang diperlukan untuk melakukan
eksperimen 1.
1. Komputer dengan perangkat lunak yang
sesuai.
2. Port B 2. Kit Module Praktikum]
3. Kabel

Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB 3


PORT A sebagai Output Pastikan persiapan 1.A telah
terpenuhi
Atur power supply pada
tegangan 9 V

Pelajari fasilitas delay AVR GCC


Hubungkan power supply pada
kit

Pastikan sumber clock sesuai


Hubungkan PORT A pada PORT
OUTPUT

Jalankan contoh program pada


Tugas I.B.1
Pelajari Apendix A

Amati hasilnya
Hubungkan Sismin ATMega8535
dengan PC

Modufikasi program di atas


sehingga mengjasilkan output led
Install driver usbasb

Jalankan contoh program pada


Tugas I.B.3
Jalankan contoh program pada
Tugas I.A.1

Modifikasi contoh program Tugas


I.B.3
Amati hasilnya

Modufikasi program di atas


4. HASIL DAN ANALISIS
sehingga mengjasilkan output led Tugas 1.A.1

PORT A sebagai Output dan PORT D sebagai Input Flowchart

Pastikan persiapan 1.A


telah terpenuhi

Hubungkan PORT D pada


PORT INPUT

Jalankan contoh program


pada Tugas I.C,1

Modifikasi contoh
program Tugas I.C.1

Fasilitas Delay pada AVR GCC


Dapat dilihat dari flowchart di atas bahwa
program ini merupakan program yang sederhana.

Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB 4


pertama kita harus mengatur PIN pada Telah berhasil diamati bahwa nilai led bit
mikroprosesor atmega sebut untuk menjadi output ke 3 telah menyala sesuai dengan nomor kelompok.
dengan cara register DDRA dan mengisi register ini
Tugas 1.B.1
dengan nilai 0 x FF. demikian kita langsung dapat
mengetahui bahwa port a akan jadi pin output. Flowchart
Oleh sebab itu berikutnya kita mengatur nilai port
a supaya kita dapat mengamati keluaran tersebut
dengan menggunakan LED. nantinya terdapat 8
LED yang diwakili oleh 8 bit yang tersimpan pada
port A. dengan menggunakan sejumlah rumus
logika maka akan mendapatkan nilai port A
dengan 01010101. sehingga kita akan
mendapatkan data hasil seperti di bawah.
Hasil

Nyala
Mati
Hasilnya telah menunjukkan kesesuaian
yang tepat antara lampu yang menyala dengan isi
bit yang diberikan dalam port a.
Tugas 1.A.2
Flowchart

Pada tugas 3 ini kita akan memanfaatkan


fungsi delay dimana fungsi linear akan bergantung
terhadap clock yang ada pada mikroprosesor itu
sendiri. Oleh sebab itu di awal percobaan kita
harus melakukan sejumlah pengaturan terhadap
lock dan juga fuse dari mikroprosesor. kemudian
setelah itu kita dapat amati flowchart diatas bahwa
program ini bukan seperti biasa inisialisasi register
DDRA dengan 1 sehingga port a berfungsi sebagai
output. kemudian dalam program kita lakukan
pengulangan yang terus-menerus dengan while.
pengulangan tersebut adalah mengubah nilai port
Pada percobaan ke-2 kita akan melakukan a menjadi 00110011. kemudian melakukan delay
hal yang tidak jauh berbeda, yakni kita akan selama 500 ms lalu mengubah nilai port a menjadi
menyalakan lampu sesuai dengan nomor 11001100 dan melakukan delay kembali.
kelompok praktikum dalam wujud biner. karena
kami merupakan kelompok 8 maka dalam biner Hasil
adalah 00001000. dengan demikian nilai PA3
dibuat satu. Berikut ini hasil dari percobaan yang
dilakukan
Hasil

Hasil yang didapatkan telah sesuai dengan


yang diinginkan. Delay terjado 0.5 s.
Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB 5
Tugas 1.B.2 sebelumnya sudah diatur supaya menjadi PIN
keluaran. dengan demikian karena Pin tersebut
Flowchart
terhubung ke LED maka kita dapat mengamati
bahwa lampu bergerak menyala dari kanan ke kiri
dan terjadi terulang-ulang. Hal ini disebabkan
karena nilai i tersebut sebenarnya mengalami
proses shifting ke kiri namun bagian kanannya cara
otomatis menjadi satu sehingga terdapat 1 lampu
yang mati seolah-olah bergerak dari kanan ke kiri
dengan delay 120 ms.

Tugas berikutnya tidak banyak mengubah


kode dari percobaan sebelumnya kita hanya
diminta untuk membuat lampu berkedip dalam
representasi biner dari masing-masing anggota
kelompok sehingga kita hanya perlu mengubah Hasil
angka pada port a dengan representasi biner dari
NIM kelompok kami. Oleh sebab itu dapat dilihat
pada flowchart tersebut bahwa awalnya port A
diisi dengan 001111000 kemudian diganti menjadi
00111101 Setelah 500 mili second.
Hasil

Tugas 1.B.3
Flowchart
Dapat diamati dari flowchart di bawah
bahwa program ini bukan pengulangan dengan Keterangan (Khusus)
menggunakan while lalu melakukan shift kiri
Nyala
sebanyak 1 di or kan dengan nilai save kanan
sejauh 7 terhadap nilai i. kemudian nilai inilah Mati
masukkan ke dalam port A. yang tentunya

Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB 6


Tugas 1.B.4
Flowchart

Tugas 1.C.1
Flowchart

Di percobaan ini kita diminta untuk


memodifikasi percobaan sebelumnya sehingga
ketika lampu yang mati mencapai di ujung kiri dia
akan berbalik dan bergerak dari arah kiri ke kanan.
Oleh sebab itu pada percobaan ini kita melakukan
modifikasi dengan cara di dalam while tersebut
kita melakukan looping dengan for sebanyak 8 kali
pergeseran ke arah kiri ke kanan kemudian kita
melakukan looping kembali sebanyak 8 kali
dengan for dengan menggunakan pergerakan dari
kanan ke kiri. Dengan demikian kita akan
mendapatkan pergerakan yang bolak balik seperti
gambar berikut. Untuk proses pergeseran tersebut
kita menggunakan proses shift dan juga or. seperti
pada flowchart. Jika pada percobaan percobaan
sebelumnya kita salah fokus dalam Bagaimana cara
Hasil
membuat hasil keluaran output LED sesuai dengan
spesifikasi yang diinginkan percobaan terakhir ini
kita akan mengamati Bagaimana cara melakukan
setan PIN menjadi sebuah PIN input. dapat
diamati pada flowchart tersebut pertama kita
melakukan inisialisasi biasa dan melakukan
Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB 7
pengecatan pada register DDR dapat diamati
untuk yang a kita sheet menjadi satu supaya
berfungsi sebagai output Sedangkan untuk yang
kita set 0 supaya menjadi input. kemudian kita
menyimpan input pada suatu variabel seperti pada
flowchart i = PIND. sehingga nilai input akan
tersimpan di i. selanjutnya opot akan disesuaikan
dengan input maka kita set port a dengan i.
Hasil

Oleh sebab itu kita akan mendapati hasil


Seperti di atas. Hasil tersebut merupakan hasil
ketika kita mengatur switch sehingga ketika switch
bit 0 ditekan dan bit 3 ditekan maka kita akan
mendapatkan lampu pada Bit-bit tersebut akan
menyala.

Tugas 1.C.2
Flowchart

Pada percobaan terakhir kita akan


memanfaatkan kode dari percobaan-percobaan
sebelumnya. pertama kita akan menerima inputan
dari switch dan ketika info switch berupa
representasi biner dari NIM 60 maka lampu akan
berkedip seperti pada percobaan 1.B.2. sedangkan
switch berada pada representasi biner dari NIM 61
maka lampu akan berjalan seperti pada percobaan
1.B.4 . sedangkan bila switch berada pada kondisi
lainnya maka ia akan menampilkan lampu seperti
pada tugas 1.A.2. Oleh sebab itu untuk
mewujudkan ini kita menggunakan contoh
conditional if. seperti biasa pertama kita
melakukan proses inisialisasi untuk mengatur port.
kemudian kita simpan nilai input dari switch pada
suatu variabel. berikutnya kita lakukan proses if
terhadap variabel tersebut dan melakukan
eksekusi sesuai dengan kode tugas yang
sebelumnya telah dibuat.

Hasil saat 00111100

Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB 8


Tentunya tidak jauh berbeda dengan
pengesatan outpun maka pengesetan input juga
terkait dengan tiga buah register yang menjadi
alokasi utama dari suatu pin. Walau demikian
untuk pin input, kita harus memperhatikan
terdapat register lain yang khusu mengatur resistor
Hasil saat 00111101 pull-up. Register ini adalah SFIOR, dimana bit
keduanya adalah bit PUD yang berfungsi dalam
mendisable pull up input. Untuk pin inout
direkomendasikan diberikan pull-up atau pull
down. Oleh sebab itu kita harus menset nilai dari
SFIOR bagian PUD nya.
Untuk menghasilkan suatu pin input maka
secara sederhana kita dapat mengatur DDR pin
tersebut dengan mengisi nilai register dengan 0x00,
maka pin tersebut akan menjadi pin input. Dimana
nilai input dari luar akan tersimpan pada register
PINx. Resistor pull up berfungsi dalam mengatur
kondisi dari register pin input ketika sedang tidak
ada input yang diterima. Sehingga resistor pull up
mengakibatkan tidak terjadinya floating pada nilai
input.

Keterangan (Khusus) 5. KESIMPULAN


Nyala Dari percobaan ini didapatkan kesimpulan
sebagai berikut:
Mati
 Untuk melakukan pengesetan pin maka
terdapat 3 register yang berperan yakni
Hasil saat kondisi lain PORTxn, DDRx, PINx. Dan register khusus
SFIOR untuk diable pull up
 Untuk mengeset pin menjadi output, maka
kita harus mengisi nilai register DDRx
Analisis dengan 0xFF. Dan memberikan nilai pada
register PORTx
Pada dasarnya ketika kita ingin melakukan
pengesetan suatu pin maka kita harus atur dua  Untuk mengeset pin menjadi input, maka
buah alokasi register dari pin tersebut. 2 buah kita harus mengisi nilai register DDRx
resistor tersebut merupakan DDR dan juga PORT. dengan 0x)). Dan mengambil atau
sebenarnya terdapat satu lagi register yaitu PIN membaca nilai input dari register PINx.
yang hanya dapat di read saja dan digunakan pada
 Pull-ip pada tegangan input diatur oleh
pin input. untuk mengatur suatu pin sehingga
register SFIOR. Rangkaian pull up ini
menjadi sebuah output maka kita perlu menset
berfungsi untuk mencegah floating pada
nilai dari DDR pin yang akan digunakan bernilai
nilai input.
0xff. kemudian setelah melakukan
penginisialisasian tersebut pin tersebut akan  Sistem mikroprosesor mengandalkan clock
menjadi pin output kemudian kita harus dalam mengatur segala proses dan
mendefinisikan atau mengatur nilai dari pin pengolahan instruksi. Maka delat juga
keluaran tersebut dengan cara memasukkan suatu akan bergantung dengan clock.
nilai ke dalam register port sesuai dengan Pin
tersebut. Kemudian kita dapat mengubah nilai-
nilai yang dimasukkan ke dalam port tersebut
DAFTAR PUSTAKA
sehingga nilai dari tegangan output dapat
berubah-ubah. [1] Petunjuk Praktikum Sistem Mikroprosesor,
Bandung , 2020.

Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB 9


Lampiran
Tugas 1.A.1
#include <avr/io.h>
int main(void)
{
DDRA = 0xFF;
PORTA = (1<<PA6)|(1<<PA4)|(1<<PA2)|(1<<PA0);

return 0;
}

Tugas 1.A.2
#include <avr/io.h>
int main(void)
{
DDRA = 0xFF;
PORTA = (1<<PA3);

return 0;
}

Tugas 1.B.1
#include <avr/io.h>
#define F_CPU 7372800UL
#include <util/delay.h>
int main(void)
{
DDRA = 0xFF;
PORTA = 0xFF;
while(1)
{
PORTA = 0b00110011;
_delay_ms(500);
PORTA = 0b11001100;
_delay_ms(500);
}
return 0;
}

Tugas 1.B.2
#include <avr/io.h>
#define F_CPU 7372800UL
#include <util/delay.h>
int main(void)
{
DDRA = 0xFF;
PORTA = 0xFF;
while(1)
{
PORTA = 0b00111100;
_delay_ms(500);
PORTA = 0b00111101;
_delay_ms(500);
Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB 1
0
}
return 0;
}

Tugas 1.B.3
#include <avr/io.h>
#define F_CPU 7372800UL
#include <util/delay.h>
int main(void)
{
unsigned char i = 0xFE;
DDRA = 0xFF;
PORTA = i;
while(1)
{
PORTA = i;
_delay_ms(120);
i=(i<<1)|(i>>7);
}
return 0;
}

Tugas 1.B.4
#include <avr/io.h>
#define F_CPU 7372800UL
#include <util/delay.h>
int main(void)
{
unsigned char i = 0xFE, j;
DDRA = 0xFF;
PORTA = i;
while(1)
{
for (j = 1; j < 8; j++){
PORTA = i;
_delay_ms(120);
i=(i<<1)|(i>>7);
}
for (j = 1; j < 8; j++){
PORTA = i;
_delay_ms(120);
i=(i<<7)|(i>>1);
}
}
return 0;
}

Tugas 1.C.1
#include <avr/io.h>
int main(void)
{
unsigned char i;
DDRA = 0xFF;
DDRD = 0x00;

Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB 11


SFIOR = 0<<PUD;
PORTA = 0xFF;
while(1)
{
i = PIND;
PORTA = i;
}
return 0;
}

Tugas 1.C.2
#include <avr/io.h>
#define F_CPU 7372800UL
#include <util/delay.h>
int main(void)
{
unsigned char i, n, m;
DDRA = 0xFF;
DDRD = 0x00;
SFIOR = 0<<PUD;
PORTA = 0xFF;
while(1)
{
i = PIND;
if (i == 0b00111100)
{
PORTA = 0b00111100;
_delay_ms(500);
PORTA = 0b00111101;
_delay_ms(500);
}
else if (i == 0b00111101)
{
m = 0xFE;
for (n = 1; n < 8; n++)
{
PORTA = m;
_delay_ms(120);
m=(m<<1)|(m>>7);
}
for (n = 1; n < 8; n++)
{
PORTA = m;
_delay_ms(120);
m=(m<<7)|(m>>1);
}
}
else
{
PORTA = 0x8;
}
}
return 0;
}

Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB 12

Anda mungkin juga menyukai