RANGKAIAN INTERFACE MIKROKONTROLER ATMEGA8535 DENGAN LED 8 BIT, SAKLAR TOGGLE 8 BIT, 2 BUAH SEVEN SEGMEN, DAN KEYPAD 2x2.
PROGRAM INTERFACE DENGAN LED 8 BIT,
DIHUBUNGKAN KE PORTA SEBAGAI OUTPUT.
Program
LED1
PORTA=0x0f; //menyalakan
4 bit LED terendah (0-3) di portA dalam bilangan heksa
delay_ms(1000); //delay 1 detik
PORTA=0xf0 ; //menyalakan 4 bit LED tertinggi (4-7) di
portA dalam bilangan heksa
delay_ms(1000); //delay
1 detik
Program
LED2
PORTA=0b00001111; //menyalakan 4 bit LED terendah (0-3) di portA
dalam bilangan biner
delay_ms(1000); //delay 1 detik
PORTA=0b11110000; //menyalakan
4 bit LED tertinggi (4-7) di portA dalam bilangan biner
delay_ms(1000); //delay
1 detik
Program
LED3
PORTA=0b01010101; //menyalakan
LED bit ke 0,2,4,6 di portA
delay_ms(1000); //delay 1 detik
PORTA=0b10101010; //menyalakan
LED bit ke 1,3,5,7 di portA
delay_ms(1000); //delay 1 detik
Program
LED4 (2 buah LED bergerak dari tengah ke pinggir kembali ke tengah lagi dan
berulang)
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
LED5 (LED bergerak dari bit terendah ke bit tertinggi dan berulang)
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);
PROGRAM INTERFACE DENGAN SAKLAR TOGGLE
8 BIT (PORTB, INPUT) DAN LED 8 BIT (PORTA, OUTPUT)
PROGRAM
ON/OFF LED SESUAI KONDISI SAKLAR TOGGLE
// Declare
your local variables here
unsigned char
datain;
while (1)
{
// Place your code here
datain=PINB;
PORTA=datain;
}
PROGRAM INTERFACE DENGAN 2 BUAH SEVEN
SEGMEN (PORTA, PORTB.6 DAN PORTB.7, OUTPUT)
PROGRAM
MENAMPILKAN ANGKA 5 PADA SEGMEN KANAN DAN ANGKA 2 PADA SEGMEN KIRI
// Port A
initialization
PORTA=0x00;
DDRA=0xFF;
// Port B
initialization
PORTB=0xF0;
DDRB=0xF0;
while (1)
{
//
Place your code here
PORTB.7=1;
PORTB.6=0; //AKTIFKAN SEVEN SEGMEN KANAN
PORTA=0x6d; //
DATA ANGKA 5
delay_ms(100);
PORTB.7=0; // AKTIFKAN SEVEN SEGMEN KIRI
PORTB.6=1;
PORTA=0x5b // DATA ANGKA 2
delay_ms(100)
}
PROGRAM
MEMBUAT COUNTER 00-99
// Declare
your global variables here
unsigned char
bil[10] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f};
// Declare
your local variables here
int kiri,
kanan, i;
// Port A
initialization
PORTA=0x00;
DDRA=0xFF;
// Port B
initialization
PORTB=0xF0;
DDRB=0xF0;
while (1)
{
// Place your code here
kiri=0;
kanan=0;
for (kiri=0;kiri<10;kiri++)
{
for (kanan=0;kanan<10;kanan++)
{
for(i=0;i<100;i++)
{
PORTB.7=0;
PORTB.6=1;
PORTA=bil[kiri];
delay_ms(5);
PORTB.7=1;
PORTB.6=0;
PORTA=bil[kanan];
delay_ms(5);
}
}
}
}
PROGRAM MEMBACA KEYPAD 2X2 DENGAN
SISTEM SCANNING DAN DITAMPILKAN KE LED 8 BIT (PORTA, OUTPUT, PORT B.4 DAN
PORTB.5, OUTPUT, PORTB.0 DAN PORTB.1, INPUT)
// Declare
your global variables here
unsigned char
key;
unsigned char
keypad();
void
main(void)
{
// Port A
initialization
PORTA=0x00;
DDRA=0xFF;
// Port B
initialization
PORTB=0xff;
DDRB=0xf0;
while (1)
{
// Place your code here
PORTA=0x00; //led
dimatikan awal program
key=keypad(); //baca keypad
if (key=='1')
{
PORTA=0b10000000; //jika key1 ditekan maka nyalakan
LED bit 7
delay_ms(1000);
}
if (key=='2')
{
PORTA=0b01000000; //jika key2 ditekan maka nyalakan
LED bit 6
delay_ms(1000);
}
if (key=='3')
{
PORTA=0b00100000; //jika key3 ditekan maka nyalakan
LED bit5
delay_ms(1000);
}
if (key=='4')
{
PORTA=0b00010000; //jika key4 ditekan maka nyalakan
LED bit 4
delay_ms(1000);
}
}
}
unsigned char
keypad()
{
PORTB.4=0; //pORTB.4 diberi logika0, scan baris1
PORTB.5=1;
delay_ms(100);
if (PINB.0==0) return ('1'); //baca kolom1
if (PINB.1==0) return ('3'); //baca kolom2
PORTB.4=1;
PORTB.5=0; //portb.5 diberi logika 0, scan baris2
delay_ms(100);
if (PINB.0==0) return ('2'); //baca kolom1
if (PINB.1==0) return ('4'); //baca kolom2
}
0 comments:
Post a Comment