I/O DASAR
I. Pendahuluan
A. Skematik I/O
PORTA= 0b01010101
D. Deskripsi Register (Untuk Port A)
port A menggunakan while (1) atau while looping dengan
menggunakan delay_ms berfungsi sebagai penunda eksekusi
suatu program. Sama seperti sebelumnya DRRA bernilai
0xFF (mengatur nilai bit dalam port A) dengan port A
sebagai output, program akan masuk pada looping dengan
Pada port A terdapat nilai bit 0b01010101 menandakan
while loop. Program while loop pada port A awal benilai
bahwa LED ke 0, 2,4, 6 bernilai 1 akan menyebabkan LED
0b00110011 menghasilkan output dengan menyalanya LED
menyala sedangkan pada 1,3,5,7 bernilai 0 menyebabkan
ke 0,1,4,5 setelah LED program akan mengaalami delay
LED akan tetap mati. Software CV AVR akan dihubungkan
sebesar 500 ms , setelah mengalami delay program aktif
dengan ATMega 8535 akan menghasilkan output seperti
kembali pada port A yang kedua dengan nilai bit
gambar dibawah ini
0b11001100 dan menghasilkan output dengan menyalakan
LED ke 2,3,6,7 kemudian program mengalami delay
LED 7 6 5 4 3 2 1 0
sebesar 500ms. Setelah melakukan program pada percobaan
ke 2 maka program akan kembali menjalan seperti
sebelumnya yang membuat LED padapapan ATMega 8535
B. Tugas 1.A.2 Output Led Display (sesuai nomor akan menyala secara bergantian .
kelompok)
DDRA = 0xFF
PORTA = (1<<PORTA5)
DDRA = 0xFF
PORTA = 0b11001100
LED 7 6 5 4 3 2 1 0
Delay_ms(500)
DDRA = 0xFF
DDRA = 0xFF
i = 0xFE
PORTA = 0b00110110
Delay_ms(500)
PORTA = 0b00101011
Delay_ms(5000)
Delay_ms(500)
i = (i<<1)|(i>>7)
Tugas 1.C.1
Tugas 1.B.4
DDRA = 0xFF
DDRD = 0x00
Delay_ms(5000)
i = (i<<1)|(i>>7)
Delay_ms(5000) i = PIND
i = (i>>1)|(i<<7)
#include int
main (void)
PORTA = i; //Inisialisasi nilai
{
PORT A
DDRA = 0XFF ; //inisialisasi PORTA sebagai OUTPUT
while (1)
PORTA = (1 << PA6) | (1 << PA4) | (1 << PA2) | (1 << PA0); // nilai
{ while (i != 0b01111111) //gerakan ke kiri
OUTPUT
{ PORTA = i;
return 0; }
delay_ms(120); i = (i<>7); }
while (i != 0b11111110) //gerakan ke kanan
{ PORTA = i;
delay_ms(120);
#include<avr/io.h>
i = (i>>1) | (i<<7)
int main (void)
}
{ DDRA = 0XFF ; //inisialisasi PORTA sebagai OUTPUT return 0;
PORTA = 0b00001011; // nilai OUTPUT
}
return 0; }
}
#include<avr/io.h> #include<avr/io.h>
#define F_CPU 7372800UL
int main (void)
int main (void)
{ unsigned char i;
{ DDRA = 0XFF; DDRA = 0xFF;//inisialisasi PORTA sebagai output
PORTA = 0XFF;
DDRD = 0x00;//inisialisasi PORTD sebagai input
while (1)
SFIOR = 0 << PUD; // aktivasi resistor pull-up internal
{ PORTA = 0b00110011; PORTA = 0xFF;
delay_ms(500);
while (1)
PORTA = 0b11001100;
{ i=PIND;
delay_ms(500); } PORTA = i; }
return 0; }
return 0; }
#include<avr/io.h>
#define F_CPU 8000000UL
int main (void)
{ DDRA = 0XFF;
PORTA = 0XFF;
while (1)
{ PORTA = 0b00101110; //representasi biner menunjukkan angka 046
delay_ms(500);
PORTA = 0b00110011; //representasi biner menunjukkan angka 051
delay_ms(500); }
return 0; }
#include<avr/io.h>
#define F_CPU 8000000UL
#include int main (void)
{ unsigned char i=0xFE;
DDRA = 0xFF;
PORTA = i;
while (1)
{ PORTA = i;
delay_ms(120);
i = (i<>7); }
return 0; }
#include<avr/io.h>
#define F_CPU 80000000UL
int main (void)
{ unsigned char i=0xFE; //inisialisasi nyala LED
DDRA = 0xFF; //PORT A output