Membuat Flip Flop Berbasis Mikrokontroler ATMEGA16

Sebentar lagi Uji Kompetensi Keahlian (UKK) 2020 Teknik Elektronika Industri, sebelum membuat program pengendali untuk tugas UKK menggunakan mikrokontroler ada baiknya membuat program aplikasi mikrokontroler yang lebih sederhana terlebih dahulu misalkan pengendali Flip Flop atau dua buah LED menyala bergantian.

Pada jejak kali ini akan mencoba membuat pengendali Flip Flop Berbasis Mikrokontroler Atmega16 dengan harapan menjadi dasar untuk memahami pemograman untuk pengendali berbasis mikrokontroler yang lainnya.

Seperti biasa sebelum membuat program dibuat dulu flowchart atau diagram alir untuk pengendali Flip Flop Berbasis Mikrokontroler Atmega16 yang ditunjukkan gambar di bawah ini.

Rangkaian untuk simulasi pengendali Flip Flop Berbasis Mikrokontroler yang dibuat pada aplikasi Proteus seperti gambar di bawah ini.

Rangkaian Simulasi Flip Flop

Sedangkan rangkaian pengawatan atau rangkaian sebenarnya ditunjukkan seperti pada gambar di bawah ini.

Rangkaian Pengawatan Flip Flop

 

Dari rangkaian di atas dapat terlihat jika tombol Start ditekan maka LED1 dan LED2 akan menyala bergantian terus menerus sampai tombol Stop ditekan. LED1 dan LED2 akan menyala bergantian lagi jika tombol Start ditekan lagi.

Gambar rangkaian pada perangkat lunak Proteus tidak akan berbentuk simulasi tanpa ada program yang dimasukan ke komponen mikrokontroler tersebut. Untuk membuat program sesuai rangkaian yang dibuat bisa menggunakan perangkat lunak CodeVisionAVR, karena dengan CodeVision bisa menyimpan file dengan format HEX dan dapat diintegrasikan ke perangkat lunak Proteus.

Daftar program untuk sistem di atas menggunakan Bahasa C seperti berikut ini.

#include <mega16.h>

#include <delay.h>

int i=0;

#define START   PINA.0

#define STOP    PINA.1

#define LED1    PORTC.0

#define LED2    PORTC.1

#define ON  1

#define OFF 0

void main(void)

{

DDRA=0x00;

PORTA=0x03;

DDRC=0x03;

PORTC=0x00;

while (1)

      {

      if (START == 0)

        {

        while (i<1)

            {

            LED1 = ON;

            LED2 = OFF;

            if (STOP == 0){LED1=OFF;LED2=OFF;break;}

            delay_ms(1000);

            LED1 = OFF;

            LED2 = ON;

            if (STOP == 0){LED1=OFF;LED2=OFF;break;}

            delay_ms(1000);

            }

        }   

      }

}

Untuk lebih jelasnya prinsip kerja rangkaian bisa dilihat dalam Video Simulasi berikut.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *