You are on page 1of 6

`w ct~|~ Tt~t `|~x

Antarmuka AVR ATMega dengan switch


Tujuan:
Mahasiswa memahami cara kerja switch push button dan dapat membedakannya dengan switch toggle
Mahasiswa mampu membuat program untuk mendetekasi perubahan kondisi logika pada switch
Mahasiswa mampu membuat ladder diagram untuk sistem antar muka dengan switch
Mahasiswa mampu menerjemahkan diagram ladder menjadi persamaan boolen dan membuat program
bahasa C berdasarkan persamaan boolean tersebut
Aktifitas 1.
Antarmuka dengan switch push button : deteksi rising edge
Rangkailah sistem DT Combo sebagai berikut.
Port A terhubung dengan led dan PortB terhubung dengan switch
Program uC dengan Program 1 sebagai berikut, lihat apa yang terjadi pada sistem.
Program 1
bit old=0, new=0, out=0;
void main()
{
DDRA=0xFF; DDRB=0x00;
PORTA=0xFF; PORTB=0xFF;
while(1)
{
new=!PINB.0;
if(new && !old)
{
out=1;
}
old=new;
PORTA.0= !out;
}
}

bx{ mt|t T{tw|


1

`w ct~|~ Tt~t `|~x


Aktifitas 2
Antarmuka dengan switch push button : deteksi falling edge
Modifikasilah Program 1 pada aktifitas 1 sehingga led akan nyala pada saat tombol dilepas
Program 2
bit old=0, new=0, out=0;
void main()
{
DDRA=0xFF; DDRB=0x00;
PORTA=0xFF; PORTB=0xFF;
while(1)
{
new=!PINB.0;
if(!new && old)
{
out=1;
}
old=new;
PORTA.0= !out;
}
}

Aktifitas 3
Antarmuka dengan switch push button : on / off dengan satu tombol
Modifikasilah program pada aktifitas sebelumnya sehingga led akan on atau off secara bergantian
ketika tombol ditekan. Sekali tekan off, kemudian penekanan berikutnya off.
Program 3
bit old=0, new=0, out=0;
void main()
{
DDRA=0xFF; DDRB=0x00;
PORTA=0xFF; PORTB=0xFF;
while(1)
{
new=PINB.0;
if(new && !old)
{
out=!out;
}
old=new;
PORTA.0= !out;
}
}

bx{ mt|t T{tw|


2

`w ct~|~ Tt~t `|~x


Aktifitas 4
Modifikasi program sebelumnya sehingga tombol pada PINB.0 berguna untuk menyalakan led, dan
tombol pada PINB.1 digunakan untuk mematikan led.
Program 4
bit old=0, new=0, old1=0, new1=0, out=0;
void main()
{
DDRA=0xFF; DDRB=0x00;
PORTA=0xFF; PORTB=0xFF;
while(1)
{
new=PINB.0; new1=PINB.1;
if(!new && old)
{
out=1;
}
if(!new1 && old1)
{
out=0;
}
old=new;
old1=new1;
PORTA.0= !out;
}
}

Aktifitas 5
Diagram ladder dari aktifitas 1 dapat digambarkan sebagai berikut
I0

Q0

Persamaan Boolean :
Q0 = I0 || Q0;
Q0

Dibuat menjadi bahasa C dengan CV AVR sebagai berikut


Program 5
bit I0=0, Q0=0;
void main()
{
DDRA=0xFF; DDRB=0x00;
PORTA=0xFF; PORTB=0xFF;
while(1)
{
I0= !PINB.0;
Q0= I0 || Q0;
PORTA.0 = !Q0;

// baca input
// proses
// kirim output

}
}

bx{ mt|t T{tw|


3

`w ct~|~ Tt~t `|~x


Aktifitas 6
Diagram ladder dari aktifitas 4 dapat digambarkan sebagai berikut. Tuliskan persamaan boolean dan
programnya dalam bahasa C
Persamaan Boolean :
I0

I1

Q0

Program dalam bahasa C: Program 6


Q0

Aktifitas 7
Diagram ladder dari aktifitas 2 dapat digambarkan sebagai berikut. Tuliskan persamaan boolean dan
programnya dalam bahasa C
Ladder Diagram
new

Persamaan Boolean :
old

Q0

Program dalam bahasa C: Program 7

new

old

bx{ mt|t T{tw|


4

`w ct~|~ Tt~t `|~x


Aktifitas 8
Diagram ladder dari aktifitas 3 dapat digambarkan sebagai berikut.
Ladder diagram
Persamaan Boolean :
new

old

Q0

M0

new1

old1

Q0

M1

Program dalam bahasa C: Program 8

M0

M1

Q0

Q0

new

old

bx{ mt|t T{tw|


5

`w ct~|~ Tt~t `|~x


Aktifitas 9
Buatlah persamaan boolean dari diagram ladder berikut ini. Kemudian implementasikan dalam bahasa C
dengan CV AVR.
Main - Prioritas
Persamaan Boolean :
Penentuan prioritas penekanan tombol:
Diagram tangga ini digunakan untuk menentukan pemain mana yang menekan duluan
Setelah pertanyaan kuis
000.01

010.02

010.03

005.00

Pemain1

StatP2

StatP3

StatReset

000.02

010.01

010.03

Pemain2

StatP1

StatP3

000.03

010.01

010.02

Pemain3

StatP1

StatP2

010.00

Buzzer

Network 2 - Pemain1
Jaringan untuk Pemain 1
000.01

010.02

010.03

000.00

Pemain1

StatP2

StatP3

Reset

000.00

010.01

Program CVAVR: Program 9


StatP1

010.01

StatP1

Network 3 Pemain 2
Jaringan untuk Pemain 2
000.02

010.01

010.03

Pemain2

StatP1

StatP3

Reset

010.02

StatP2

010.02

StatP2

Network 4 Pemain 3
Jaringan untuk Pemain 3
000.03

010.01

010.02

000.00

Pemain3

StatP1

StatP2

Reset

010.03

StatP3

010.03

StatP3

Network 6 - Reset
Untuk mereset pemain, dilakukan penekanan tombol reset oleh juri
000.00

005.00

Reset

StatReset

bx{ mt|t T{tw|


6

You might also like