Anda di halaman 1dari 3

5 MENGIRIM DATA KE OUTPUT

Mikrokontroler ATMEGA8535 mempunyai 4 buah port yaitu:


• Port A
• Port B
• Port C
• Port D
Semua port yang dimiliki oleh mikrokontroler ATmega8535 dapat digunakan untuk keluaran
maupun masukan sesuai dengan pengesetan pada register DDR (Data Direction Register).
Port ini dapat dialamati bit-per bit (contoh: PORTA.0, PORTB.2, PORTC.4 dan PORTD.7)
maupun
sebagai 1 byte (contoh: PORTA, PORTB, PORTC, PORTD).

Pengalamatan Port per bit:


Untuk mengeluarkan data melalui pengalamatan bit per bit dapat menggunakan perintah
setb dan clr.
Contoh :
setb p2.5 ; port 2 pin ke 5 akan menghasilkan logika 1
clr p1.3 ; port 1 pin ke 3 akan menghasilkan logika 0
Pengalamatan Port per byte:
Sedangkan untuk mengeluarkan data sebanyak 1 byte (8 bit) melalui port MCS-51 dapat
menggunakan perintah mov.
Contoh:
Mov P1, #55h ; port 1 menghasilkan logika 01010101 = 55h= 85
Mov P1, #145d ; port 1 menghasilkan logika 10010001 = 145
Mov P1, #69 ; port 1 menghasilkan logika 01000101 = 69
Mov P1, # 10111011b ;port 1 menghasilkan logika 10111011 = 187
Pada modul Haline HB2000P, tersedia 8 buah led yang terhubung ke port 1 sebagai indikator
keluaran seperti Gambar 3.1. Pada konfigurasi tersebut:
• LED akan nyala bila diberi logika LOW ‘0’ melalui port 0, dan
• LED akan padam bila diberi logika HIGH ‘1’ melalui port 0.
Agar Display LED ini dapat aktif maka jumper EN LED harus dihubungkan singkat
Tuliskan program berikut ini dengan memberi data pada PORTA dalam bentuk bit.Download program ke
dalam mikrokontroler dan lihat hasilnya. Kemudian ubah data dalam bentuk heksadesimal.

Program LED1

PORTA=0b00001111; //menyalakan 4 bit LED terendah (0-3) di portA


delay_ms(1000); //delay 1 detik
PORTA=0b11110000; //menyalakan 4 bit LED tertinggi (4-7) di portA
delay_ms(1000); //delay 1 detik

Program LED2

PORTA=0b01010101; //menyalakan LED bit ke 1,3,5,7 di portA


delay_ms(1000); //delay 1 detik
PORTA=0b10101010; //menyalakan LED bit ke 2,4,6,8 di portA
delay_ms(1000); //delay 1 detik

Program LED3 (LED bergerak dari tengah ke pinggir kembali ke tengah lagi)

PORTA=0b11100111;
delay_ms(1000);
PORTA=0b11011011;
delay_ms(1000);
PORTA=0b10111101;
delay_ms(1000);
PORTA=0b01111110;
delay_ms(1000);
PORTA=0b10111101;
delay_ms(1000);
PORTA=0b11011011;
delay_ms(1000);
PORTA=0b11100111;
delay_ms(1000);

Program LED4 (LED bergerak dari bit tertinggi ke bit terendah)

PORTA=0b00000001;
delay_ms(1000);
PORTA=0b00000010;
delay_ms(1000);
PORTA=0b00000100;
delay_ms(1000);
PORTA=0b00001000;
delay_ms(1000);
PORTA=0b00010000;
delay_ms(1000);
PORTA=0b00100000;
delay_ms(1000);
PORTA=0b01000000;
delay_ms(1000);
PORTA=0b10000000;
delay_ms(1000);

Anda mungkin juga menyukai