untuk memperoleh gelar Sarjana Teknik pada
Program Studi Teknik Elektro
Fakultas Sains dan Teknologi Universitas Sanata Dharma
Disusun oleh: EDI GUNAWAN
045114070
PROGRAM STUDI TEKNIK ELEKTRO
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2009
CONTROL) USED MICROCONTROLLER ATMEGA32
In partial fulfilment of the requirements
For the degree of Sarjana Teknik
Electrical Engineering Study Program
Electrical Engineering Departement
Science and Technology Faculty Sanata Dharma University
By :
EDI GUNAWAN 045114070
ELECTRICAL ENGINEERING STUDY PROGRAM
ELECTRICAL ENGINEERING DEPARTEMENT
SCIENCE AND TECHNOLOGY FACULTY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2009Karya ini ku persembahkan kepada :
Ku ucapkan syukur kepada Tuhan Yang Maha Esa.
Kedua orang tuaku yang sudah memberikan kepercayaan untuk melanjutkan studi di Yogyakarta.
Mbak Rinawati yang selalu memberikan semangat untuk segera menyelesaikan skripsi ini dan aku mensyukuri keberadaan mu di sisi ku.
Teman-teman yang sudah membantu.
Hidup itu tidak semudah membalikkan telapak tangan.
Ada kemauan pasti ada jalan
Terus berjuang tiada henti
.
Pada CPU PLC data kiriman akan diolah dan dieksekusi hingga didapatkan output dari CPU PLC.
CPU PLC ini bekerja setelah mendapatkan kode kiriman dan, kode kiriman berupa intruksi-intruksi PLC. Kode kiriman akan dieksekusi dan dibandingkan dengan kode yang tersimpan di dalam CPU PLC. Pengkodean intruksi-intruksi logika PLC dalam bentuk biner dan heksa. Kode kiriman yang diterima akan diproses oleh CPU PLC dan CPU PLC dari memori mikrokontroler ATmega32.
Dari hasil penelitian dan percobaan, CPU PLC ini telah bekerja sesuai dengan perancangan. Hal ini dapat dibuktikan dari hasil pengujian kode kiriman dari konsol atapun dari PC berupa bahasa mnemonic LD 001 AND 002 OUT 101, LD 001 OR 002 ANDNOT 003 OUT 101, LD 001 TIM #100 LD TIM 001 OUT 101, LD 001 OR 002 OUT 101, LD 001 CNT #05 LD CNT 001 OUT 101, LD 005 OUT NOT 105. Program TIM mencacah 100 detik dan program CNT mencacah dari luar sebanyak 5 kali. Untuk semua modul input dan output dapat berfungsi sesuai dengan perancangan. Kegagalan komunikasi dikarenakan penerimaan data komunikasi masih belum sempurna, sehingga CPU PLC mengalami kegagalan pengiriman data.
Kata kunci: Bahasa Mnemonik, CPU PLC, Intruksi-intruksi PLC.
From result of research and this attempt, CPU PLC have worked as according to plane. This matter can be provable from result of examination of consignment code from console and PC form of programe and mnemonic language LD 001 AND 002 OUT 101, LD 001 OR 002 AND NOT 003 OUT 101, LD 001 TIM # 100 LD TIM 001 OUT 101, LD 001 OR 002 OUT 101, LD 001 CNT # 05 LD CNT 001 OUT 101, LD 005 OUT NOT 105. Programe of count TIM start 100 second and programe the CNT count from outside as much 5 rivers. For all module of input and output can function agree with of scheme. Communications failure because of acceptance of communications date not yet complete, so that CPU PLC experience of the failure of date delivery.
Keyword: Mnemonic Language, CPU PLC, Instrucsion-Instrucsion PLC.
dan rahmat-Nya sehingga penulis dapat menyelesaikan karya tulis berjudul
“Implementasi CPU PLC (POGRAMMABLE LOGIC CONTROL) Menggunakan
mikrokontroler ATMEGA32”.
Karya tulis ini merupakan salah satu syarat untuk memperoleh gelar Sarjana
Teknik pada Program Studi Teknik Elektro Universitas Sanata Dharma. Penulisan
skripsi ini didasarkan pada hasil-hasil yang penulis dapatkan selama tahap
perancangan, pembuatan dan pengujian alat.
Penulisan skripsi ini tidak terlepas dari bantuan berbagai pihak. Untuk itu,
penulis mengucapkan terima kasih kepada:
1. Yosef Agung Cahyanta, S.T.,M.T.. Selaku Dekan Fakultas Sains dan Teknologi Universitas Sanata Dharma Yogyakarta.
2. B. Wuri Harini, S.T.,M.T.. selaku Ketua Jurusan Teknik Elektro Universitas Sanata Dharma Yogyakarta.
3. Bapak Martanto, S.T., M.T., selaku dosen pembimbing I karya tulis
yang telah meluangkan waktu, tenaga, dan pikirannya untuk
membimbing penulis.
4. Ibu Wiwien Widyastuti, S.T., M.T., selaku dosen pembimbing II karya tulis yang telah meluangkan waktu, tenaga, dan pikirannya untuk
membimbing penulis.
5. Segenap karyawan sekretariat Fakultas Sains dan Teknologi.
6. Segenap dosen dan laboran Teknik Elektro Universitas Sanata
Dharma.
Halaman Pengesahan oleh Pembimbing... iii
Halaman Pengesahan oleh Penguji... iv
Halaman Pernyataan Keaslian Karya... v
Halaman Persembahan dan Moto Hidup... vi
Halaman Pernyataan Persetujuan Publikasi Karya Ilmiah Untuk... Kepentingan Akademis... vii
Intisari... viii
Abstract... ix
Kata Pengantar... x
Daftar Isi ... xii
Daftar Gambar ...xviii
Daftar Tabel ... xxv
Daftar Lampiran ...xxvi
BAB I PENDAHULUAN ... 1
1.1Judul ... 1
1.2Latar Belakang Masalah ... 1
1.3Tujuan dan Manfaat Penelitian ... 2
1.4Batasan Masalah ... 2
1.5Metodologi Penelitian ... 3
1.6Sistematika Penulisan ... 4
2.1.1.1 Normally Open ... 8
2.1.1.2 Normally Close ... 9
2.1.1.3 Keluaran (Output) ... 9
2.1.2 Instruksi-instruksi Logika dalam PLC ... 9
2.1.2.1 Instruksi LOAD (LD) dan LOAD Not (LDNOT) ... 10
2.1.2.2 Instruksi AND dan AND NOT ... 10
2.1.2.3 Instruksi OR dan ORNOT ... 12
2.1.2.4 Instruksi END ... 14
2.2 Mnemonic ... 15
2.3 Mikrokontroller ATmega32 ... 16
2.3.1 Fitur ATmega32 ... 17
2.3.2 Organisasi Memori ... 20
2.3.2.1 Memori Program ... 21
2.3.2.2 Memori Data ... 21
2.3.2.3 EEPROM ... 22
2.3.2.3.1 Register EEARH and EEARL ... 22
2.3.2.3.2 Register EEDR ... 23
2.3.2.3.3 Register EECR ... 23
2.3.3 Register Serbaguna ... 24
2.3.5 Register I/O dan Port I/O ... 26
2.3.6 Timer/Counter ... 29
2.3.6.1 TIMSK (Timer/Counter Interrupt Mask Register) ... 30
2.3.6.2 TIFR ... 31
2.3.6.3 Special Function Register I/O ... 31
2.3.7 SPI (Serial Peripheral Interface) ... 32
2.3.8 USART ... 33
2.4 Komunikasi Serial ... 37
2.5 Relay ... 40
2.6 Driver Relay ... 41
BAB III PERANCANGAN PENELITIAN ... 42
3.1 Diagram Blok Perancangan CPU PLC ... 42
3.2 Perancangan Perangkat Keras ... 43
3.2.1 Rangkaian Mikrokontroller ... 43
3.2.1.1 Konstruksi Rangkaian Mikrokontroller ... 43
3.2.1.2 Rangkaian Reset ... 44
3.2.1.3 Rangkaian Osilator ... 44
3.2.1.4 Indikator LED ... 45
3.2.1.4.1 Indikator Error ... 46
3.2.1.4.2 Indikator Komunikasi Serial RS-232 ... 46
3.2.1.4.3 Indikator Supplay CPU PLC ... 47
3.2.1.4.4 Indikator Input ... 48
3.3.2 Diagram Alir Utama pada Mikrokontroller ... 55
3.3.2.1 Subrutin Pembacaan Isi Alamat Memori PLC ... 57
3.3.2.2 Subrutin Pemilihan Kode ... 58
3.3.2.3 Subrutin Logika LD ... 62
3.3.2.4 Subrutin Logika LDNOT ... 63
3.3.2.5 Subrutin Logika AND ... 65
3.3.2.6 Subrutin Logika ANDNOT ... 66
3.3.2.7 Subrutin Logika OR ... 67
3.3.2.8 Subrutin Logika ORNOT ... 68
3.3.2.9 Subrutin Logika Timer ... 69
3.3.2.10 Subrutin Logika LD TIM ... 73
3.3.2.11 Subrutin Logika LD TIM NOT ... 74
3.3.2.12 Subrutin Logika AND TIM ... 75
3.3.2.13 Subrutin Logika AND TIM NOT ... 76
3.3.2.14 Subrutin Logika OR TIM ... 78
3.3.2.15 Subrutin Logika OR TIM NOT ... 79
3.3.2.16 Subrutin Logika OUT ... 80
3.3.2.17 Subrutin Logika OUTNOT ... 81
3.3.2.18 Subrutin Logika Counter ... 83
3.3.2.20 Subrutin Logika LD CNT NOT ... 87
3.3.2.21 Subrutin Logika AND CNT ... 88
3.3.2.22 Subrutin Logika AND CNT NOT ... 89
3.3.2.23 Subrutin Logika OR CNT ... 90
3.3.2.24 Subrutin Logika OR CNT NOT ... 91
BAB IV HASIL PENGAMATAN dan PEMBAHASAN... 93
4.1Model CPU PLC ... 93
4.2Prinsip dan Cara Kerja CPU PLC ... 94
4.3Analisa Perangkat Lunak ... 96
4.3.1 Inisialisasi... 96
4.3.2 Komunikasi ... 96
4.3.3 Pembacaan kode Kiriman Pada memori CPU PLC ... 98
4.3.4 Pembandingan Kode Kiriman dengan Kode Yang Disimpan... Pada Memori CPU PLC ... 99
4.4 Analisa Perangkat Keras(komunkasi console dengan CPU PLC) ... 100
4.4.1 Logika LD dan Logika AND ... 100
4.4.2 Logika LD dan Logika OR ... 104
4.4.3 Logika Counter... 107
4.4.4 Logika Timer... 112
4.4.5 Logika ON-OFF ... 117
4.4.6 Logika LD NOT dan Logika OR NOT ... 119
4.4.7 Logika LD dan logika OUT ... 121
5.1 Kesimpulan ... 133
Gambar 2.3 Konfigurasi Simbol NC ... 9
Gambar 2.4 Konfigurasi Simbol Output ... 9
Gambar 2.5 Diagram Ladder Instruksi LD dan LDNOT ... 10
Gambar 2.6 Diagram Ladder Instruksi AND dan ANDNOT ... 10
Gambar 2.7 Diagram Ladder Instruksi OR dan ORNOT ... 13
Gambar 2.8 Diagram Ladder Instruksi END ... 15
Gambar 2.9 Konfigurasi Pin ATmega32 ... 18
Gambar 2.10 Arsitektur ATmega32 ... 19
Gambar 2.11 Organisasi Memori ATmega32 ... 20
Gambar 2.12 Peta Memori data AVR ATmega32 ... 21
Gambar 2.13 Register EEARH dan EEARL ... 22
Gambar 2.14 Register EEDR ... 23
Gambar 2.15 Register EECR ... 23
Gambar 2.16 Register Serbaguna dari ATmega32 ... 25
Gambar 2.17 Register Serbaguna ... 25
Gambar 2.18 Stack Pointer ... 26
Gambar 2.19 Register I/O dan Port I/O ... 27
Gambar 2.20 Register SFIOR ... 27
Gambar 2.21 Port A,B,C,D ... 28
Gambar 2.22 Lanjutan gambar Port A,B,C,D sebagai register I/O... 29
Gambar 2.26 SPI (Serial Pheripheral Interface) ... 33
Gambar 2.27 USART ... 34
Gambar 2.28 UBRRH dan UBRRL ... 35
Gambar 2.29 UCSRC ... 35
Gambar 2.30 Komunikasi Serial DB9 ... 38
Gambar 2.31 IC MAX232 ... 39
Gambar 2.32 Relay ... 40
Gambar 2.33 IC ULN2803 Driver Relay... 41
Gambar 3.1 Diagram Blok Sistem CPU PLC ... 42
Gambar 3.2 Konfigurasi Rangkaian Reset ... 44
Gambar 3.3 Konfigurasi Rangkaian Osilator ... 44
Gambar 3.4 Indikator Error CPU PLC ... 46
Gambar 3.5 Indikator Komunikasi Serial RS-232 dengan CPU PLC ... 47
Gambar 3.6 Indikator Supply CPU PLC ... 47
Gambar 3.7 Indikator Input ... 49
Gambar 3.8 Indikator Output dan Relay ... 51
Gambar 3.9 Konfigurasi Komunikasi RS-232 ... 53
Gambar 3.10 Subrutin Komunikasi Serial ... 54
Gambar 3.11 Aktivasi Komunikasi Serial ... 55
Gambar 3.13 Diagram alir Pembacaan Isi Alamat Memori PLC ... 58
Gambar 3.14 Subrutin Pemilihan Kode ... 59
Gambar 3.15 Lanjutan Subrutin Pemilihan Kode ... 60
Gambar 3.16 Lanjutan Subrutin Pemilihan Kode ... 61
Gambar 3.17 Lanjutan Subrutin Pemilihan Kode ... 62
Gambar 3.18 Diagram Alir Subrutin LD ... 63
Gambar 3.19 Diagram alir Subrutin LD NOT ... 64
Gambar 3.20 Diagram alir Subrutin AND ... 65
Gambar 3.21 Diagram Alir Subrutin ANDNOT ... 66
Gambar 3.22 Diagram Alir Subrutin OR ... 67
Gambar 3.23 Diagram Alir Subrutin ORNOT ... 69
Gambar 3.24 Aktivasi Timer ... 70
Gambar 3.25 Subrutin Timer ... 72
Gambar 3.26 Logika LD TIM ... 73
Gambar 3.27 Logika LD TIM NOT ... 74
Gambar 3.28 Logika AND TIM ... 75
Gambar 3.29 Logika AND TIM NOT ... 77
Gambar 3.30 Logika OR TIM ... 78
Gambar 3.31 Logika OR TIM NOT ... 79
Gambar 3.32 Diagram alir Logika OUT ... 81
Gambar 3.33 Diagram alir Logika OUT NOT ... 82
Gambar 3.34 Logika Counter ... 83
Gambar 3.39 Logika AND CNT NOT ... 89
Gambar 3.40 Logika OR CNT ... 91
Gambar 3.41 Logika OR CNT NOT ... 92
Gambar 4.1 Model CPU PLC ... 93
Gambar 4.2 Potongan Program Komunikasi ... 96
Gambar 4.3 Program Menyimpan Pada Memori CPU PLC ... 97
Gambar 4.4 Hasil komunikasi disimpan pada memori CPU PLC ... 97
Gambar 4.5 Program pembacaan memori ... 98
Gambar 4.6 kode yang terbaca pada memori CPU PLC... 99
Gambar 4.7 potongan program kode yang akan dibandingkan... 99
Gambar 4.8 diagram ladder 1... 100
Gambar 4.9 logika LD 001 aktif dan logika AND 002 tidak aktif ... 101
Gambar 4.10 logika LD 001 tidak aktif dan logika AND 002 aktif ... 101
Gambar 4.11 program eksekusi logika LD ... 102
Gambar 4.12 hasil eksekusi yang tersimpan di memori CPU PLC ... 102
Gambar 4.13 program logika AND 002... 103
Gambar 4.14 program logika OUT 101 ... 103
Gambar 4.15 hasil diagram ladder 1 ... 104
Gambar 4.16 diagram ladder 2... 104
Gambar 4.18 hasil diagram ladder 2 logika LD ... 106
Gambar 4.19 hasil diagram ladder 2 logika OR ... 107
Gambar 4.20 diagram ladder 3 logika counter ... 107
Gambar 4.21 pembacaan logika LD untuk logika counter ... 109
Gambar 4.22 alur kerja logika counter... 109
Gambar 4.23 logika LD CNT untuk memanggil hasil eksekusi CNT ... 110
Gambar 4.24 hasil dari logika counter ... 111
Gambar 4.25 logika CNT tidak mendapat input ... 111
Gambar 4.26 hasil diagram ladder 3 dari logika counter... 111
Gambar 4.27 diagram ladder 4 logika timer... 112
Gambar 4.28 hasil diagram ladder 4 dari logika timer 100ms... 112
Gambar 4.29 hasil pengujian TIM 50ms... 114
Gambar 4.30 hasil pengujian TIM 150ms... 114
Gambar 4.31 hasil pengujian TIM 200ms... 115
Gambar 4.32 hasil pengujian TIM 250ms... 115
Gambar 4.33 hasil pengujian TIM 50ms... 115
Gambar 4.34 hasil pengujian TIM 150ms... 115
Gambar 4.35 hasil pengujian TIM 200ms... 116
Gambar 4.36 hasil pengujian TIM 250ms... 116
Gambar 4.37 diagram ladder 5 logika ON OFF... 117
Gambar 4.38 logika ON-OFF untuk logika LD 01 ... 118
Gambar 4.39 logika ON-OFF untuk logika OR 02... 118
dan logika OR NOT 005 aktif... 120
Gambar 4.43 hasil logika LD NOT 004 tidak aktif ...
dan logika OR NOT 005 aktif ... 120
Gambar 4.44 logika LD NOT 004 aktif ...
dan logika OR NOT 005 tidak aktif ... 120
Gambar 4.45 hasil logika LD NOT 004 aktif ...
dan logika OR NOT 005 tidak aktif ... 120
Gambar 4.46 logika LD NOT 004 aktif dan logika OR NOT 005 aktif ... 120
Gambar 4.47 hasil logika LD NOT 004 aktif ...
dan logika OR NOT 005 aktif ... 121
Gambar 4.48 diagram ladder 7 logika LD dan logika OUT ... 121
Gambar 4.49 hasil dari diagram ladder 7 logika LD 001 dan OUT 101... 122
Gambar 4.50 hasil dari diagram ladder 7 logika LD 002 dan OUT 102... 123
Gambar 4.51 hasil dari diagram ladder 7 logika LD 003 dan OUT 103... 123
Gambar 4.52 hasil dari diagram ladder 7 logika LD 004 dan OUT 104... 123
Gambar 4.53 hasil dari diagram ladder 7 logika LD 005 dan OUT 105... 123
Gambar 4.54 hasil dari diagram ladder 7 logika LD 006 dan OUT 106... 124
Gambar 4.55 hasil dari diagram ladder 7 logika LD 007 dan OUT 107... 124
Gambar 4.56 hasil dari diagram ladder 7 logika LD 008 dan OUT 108... 124
Gambar 4.58 logika LD 002 aktif dan logika OUT 102 aktif... 125
Gambar 4.59 logika LD 003 aktif dan logika OUT 103 aktif... 126
Gambar 4.60 logika LD 004 aktif dan logika OUT 104 aktif... 126
Gambar 4.61 logika LD 005 aktif dan logika OUT 105 aktif... 127
Gambar 4.62 logika LD 006 aktif dan logika OUT 106 aktif... 127
Gambar 4.63 logika LD 007 aktif dan logika OUT 107 aktif... 128
Gambar 4.64 logika LD 008 aktif dan logika OUT 108 aktif... 128
Gambar 4.65 hasil komunikasi antara PC dengan CPU PLC ... 129
Gambar 4.66 Diagram ladder 8 logika LD 001 dan logika OUT 101... 129
Gambar 4.67 diagram ladder 8 logika LD 001 aktif ...
dan logika OUT 101 aktif ... 129
Gambar 4.68 hasil pengujian CPU PLC ... 130
Gambar 4.69 Data error saat komunikasi... 130
Gambar 4.70 diagram ladder logika 9 OUT NOT ... 131
Gambar 4.71 diagram ladder logika OUT NOT mendapat input LD 005 ... 131
Gambar 4.72 hasil diagram ladder 9 logika OUT NOT... 131
Tabel 2.6 Pengaturan prescaler ... 31
Tabel 2.7 Pengaturan Baud Rate ... 36
Tabel 2.8 Komunikasi Serial DB9 ... 38
Tabel 4.1 Hasil Pengujian CPU PLC dari diagram ladder 1 ... 100
Tabel 4.2 Hasil Pengujian CPU PLC dari diagram ladder 2 ... 105
Tabel 4.3 Hasil Pengujian CPU PLC dari diagram ladder 5 ... 116
Tabel 4.4 Hasil Pengujian CPU PLC dari diagram ladder 6 ... 119
Tabel 4.5 Hasil Pengujian CPU PLC dari diagram ladder 7 ... 121
Tabel 4.6 Perbandingan PLC umum dengan CPU PLC ... 131
Tabel 4.7 hasil logika OUT NOT... 131
1. Kode intruksi dan data ... 134
2. Listing Program... 139
1.2
Latar Belakang Masalah
Pada masa kini, perkembangan teknologi sangat pesat. Hal ini berdampak
pada pola hidup manusia yang menuntut segala sesuatunya bergerak cepat,
praktis, dan serba instan. Dalam industri sistem pengontrolannya masih dengan
elektromekanik yang menggunakan relay-relay, yang masih mempunyai banyak
kelemahan, diantaranya kontak-kontak yang dipakai mudah aus karena
panas/terbakar atau karena hubung singkat, serta membutuhkan biaya yang cukup
besar untuk instalasi, pemeliharaan dan modifikasi dari sistem yang telah dibuat
jika di kemudian hari diperlukan modifikasi. Dengan menggunakan PLC hal-hal
ini dapat diatasi, karena sistem PLC mengintegrasikan berbagai macam komponen
yang berdiri sendiri menjadi suatu sistem kendali terpadu dan dengan mudah
merenovasi tanpa harus mengganti semua instrumen yang ada[1].
PLC (Programmable Logic Controller) adalah suatu sistem elektronika
yang dirancang untuk industri, yang menggunakan memori yang dapat diprogram
sebagai penyimpanan internal dari instruksi-instruksi untuk menjalankan
fungsi-fungsi logika, sequence, waktu, pencacah, dan aritmatika untuk mengontrol
berbagai jenis mesin atau proses melalui input dan output digital atau analog[1].
Seiring perkembangan teknologi yang semakin maju terutama pada
peralatan elektronika baik PLC ataupun mikrokontroler, penulis berencana akan
merancang PLC dengan menggunakan mikrokontroler. Pada mikrokontroler
tersebut akan dibuat master program dari fungsi-fungsi logika PLC. Alat ini sering
disebut dengan CPU. Master program fungsi-fungsi logika PLC tersebut akan
disimpan dalam EEPROM mikrokontroler ATmega32, dan CPU itu akan bekerja
sebagai PLC jika CPU itu diprogram sebagai fungsi-fungsi logika PLC. Alat yang
digunakan untuk memprogram CPU itu adalah Konsol dan PC.
1.3
Tujuan dan Manfaat Penelitian
Tujuan dari pembuatan alat ini adalah merancang dan membuat sebuah
PLC baik perangkat keras dan perangkat lunak dengan menggunakan kontrol dari
komputer maupun konsol yang dihubungkan ke mikrokontroler sebagai CPU.
Dalam mikrokontroler akan dibuat master program yang sesuai dengan
fungsi-fungsi logika PLC yang di implementasikan pada mikrokontroler ATmega32.
Penelitian ini dapat memberikan manfaat:
1. Sebagai dasar untuk mengembangkan aplikasi selanjutnya.
2. Sebagai referensi yang dapat mendukung penelitian selanjutnya
yang berkaitan aplikasi mikrokontroler, komunikasi serial dan
PLC.
1.4
Batasan Masalah
Alat ini mempunyai batasan masalah seperti:
3. 8 Port Input dan 8 Port Output yang digunakan dalam CPU PLC.
4. Proses komunikasi data menggunakan komunikasi serial dan
komunikasinya hanya satu arah.
5. Fungsi-fungsi logika PLC meliputi: LD, LDNOT, AND,
ANDNOT, OR, ORNOT, TIMER, COUNTER, OUT, OUT NOT,
END.
6. Hanya 1 macam timer saja yang digunakan dalam CPU PLC.
7. Hanya 1 counter saja yang digunakan dalam CPU PLC.
1.5
Metodologi Penelitian
Agar dapat melakukan perancangan alat dengan baik, maka penulis
membutuhkan masukan serta referensi yang didapatkan dengan metode :
1. Studi kepustakaan yang mencakup literatur-literatur,
gambar-gambar, dan manual.
2. Mencari informasi dari berbagai media termasuk dari dunia maya
(internet).
3. Membuat perencanaan dan merancang perangkat keras dan
perangkat lunak.
4. Melakukan pengamatan dan pengujian dengan alat yang sudah
dirancang terlebih dahulu untuk mengetahui alat sudah bekerja
1.6
Sistematika Penulisan
Sistematika penulisan tugas akhir ini terbagi menjadi lima bab yang
disusun sebagai berikut:
BAB I. PENDAHULUAN
Berisi latar belakang masalah, tujuan dan manfaat penelitian,
batasan masalah, metodologi penelitian, dan sistematika penulisan.
BAB II. DASAR TEORI
Berisi dasar teori komponen-komponen yang akan digunakan
dalam penelitian.
BAB III. RANCANGAN PENELITIAN
Berisi diagram blok dan penjelasan cara kerja secara singkat
rancangan perangkat keras dan perangkat lunak.
BAB IV. HASIL PENELITIAN DAN PEMBAHASAN
Berisi pengamatan kerja dari perangkat keras dan perangkat lunak
yang telah dibuat.
BAB V. PENUTUP
Berisi kesimpulan dan saran untuk perbaikan alat dan penelitian
Mikrokontroller ATmega32”. Dalam perancangan dan pembuatan PLC ini, harus mengetahui terlebih dahulu prinsip kerja dasar dan piranti atau komponen
yang akan digunakan.
2.1
PLC
PLC atau kendali logika terprogram merupakan suatu piranti elektronik yang
dirancang untuk dapat beroperasi secara digital dengan menggunakan memori
sebagai media penyimpanan intruksi-intruksi internal untuk menjalankan
fungsi-fungsi logika, seperti fungsi-fungsi pencacah, fungsi-fungsi urutan proses, fungsi-fungsi pewaktu,
fungsi aritmatika, dan fungsi yang lainnya dengan cara memprogramnya.
Program-program dibuat kemudian dikirim ke PLC melalui programmer/monitor.
Pembuatan program dapat digunakan komputer sehingga dapat mempercepat hasil
pekerjaan. Fungsi lain pada PLC dapat digunakan untuk memonitor jalannya
proses pengendalian yang sedang berlangsung, sehingga dapat dengan mudah
dikenali urutan kerja proses pengendalian yang terjadi pada saat itu. Seperti
halnya komputer, PLC juga mempunyai kelengkapan yaitu CPU (Central
Processing Unit), memori (RAM dan ROM), programmer/monitor dan modul I/O
(input/output)[2].
Dalam sistem PLC ini terdapat 4 (empat) komponen bagian utama, keempat
komponen bagian utama tersebut adalah:
1. Central Processing unit (CPU), merupakan otak dari PLC yang terdiri
dari 3 bagian, yaitu:
a. Mikroprosesor merupakan otak dari PLC yang difungsikan untuk
operasi matematika dan opersi logika.
b. Memori, merupakan daerah CPU yang digunakan untuk melakukan
proses penyimpanan dan pengiriman data pada PLC.
c. Catu daya, berfungsi untuk mengubah sumber masukan tegangan
bolak-balik menjadi tegangan searah.
2. Programmer/monitor
3. Input/Output Modules
Secara blok diagram, hubungan bagian utama dari PLC secara umum dapat
di lihat pada gambar 2.1.
Programmer/Monitor
Mikroprosesor memori
Catu Daya
Modul keluaran Modul
masukkan
2. Deteksi dan koreksi kesalahan lebih mudah
3. Harga relatif murah
4. Pengamatan visual
5. Kecepatan operasi yang tinggi
6. Implementasi proyek lebih singkat
7. Lebih sederhana dan mudah dalam penggunaannya, memodifikasi lebih
mudah tanpa tambahan biaya
8. Dokumentasi mudah
Syarat-syarat yang harus dimiliki oleh sebuah PLC :
1. Hardware harus mudah diprogram ulang.
2. Semua komponen mampu beroperasi tanpa alat bantu dan memenuhi
persyaratan lingkungan.
3. Sistem yang dipakai mudah dirawat dan diperbaiki, beberapa indikator
dan alat bantu harus tersedia sebagai bagian dari sistem untuk
memudahkan pelacakan kerusakan.
4. Hardware hanya membutuhkan ruang dan daya yang kecil dibandingkan
dengan sistem elektromekanis.
5. PLC mampu berkomunikasi dengan pusat untuk pemantauan proses
6. Sistem kontrol menerima catu daya AC standar melalui push-button dan
limit switch yang ada pada sistem[2].
7. Sinyal output PLC mampu menjalankan motor stater dan solenoid valve
yang bekerja dengan catu daya AC, setiap output mampu memutuskan
atau mengalirkan arus sebesar 2A.
8. Hardware memiliki konfigurasi yang dapat dikembangkan dengan
minimal perubahan pada sistem maupun downtime.
9. Struktur memory PLC mudah dikembangkan.
2.1.1
Diagram Ladder
Pada PLC diagram kontrol dinamakan dengan diagram ladder (tangga).
Dinamakan diagram tangga dikarenakan bentuknya menyerupai tangga (bersusun
seperti tangga), seperti berjalan menuruni tangga mulai tangga atas dan perlahan
kebawah. Pada penggambaran diagram tangga dikenal simbol-simbol yang hampir
sama dengan relai-relai mekanik, yaitu: Normally Open (NO), Normally Close
(NC), Keluaran(output).[2]
2.1.1.1
Normally Open
NO merupakan salah satu jenis saklar yang dalam keadaan normal
berkondisi OFF , berupa satu kutub (berasal dari satu sumber) dan menghantarkan
arus hanya ke satu beban. Penghantaran arus dan tegangan (kondisi ON) dari
suatu sumber terjadi jika saklar terhubung, dan pemutusan arus dan tegangan
(kondisi OFF) terjadi saat saklar tidak terhubung atau ketika tidak mendapat arus,
2.1.1.2
Normally Close
Saklar ini menandakan keadaan saklar yang normalnya pada keadaan
ON/tertutup, jadi jika saklar tersebut diaktifkan akan menjadi OFF/terbuka.
Gambar konfigurasi simbol NC dapat dilihat pada gambar 2.3.
2.1.1.3
Keluaran (Output)
Keluaran dapat berupa relai yang akan mengaktifkan kontak-kontak NO
dan NC. Gambar konfigurasi simbol output dapat dilihat pada gambar 2.4. Gambar 2.3konfigurasi simbol NC[2]
Gambar 2.4konfigurasi simbol output[2]
2.1.2
Instruksi-instruksi Logika dalam PLC
Instruksi-instruksi tangga atau ladder instruction adalah instruksi-instruksi
yang terkait dengan kondisi-kondisi di dalam diagram tangga. Instruksi-instruksi
tangga, baik yang independen maupun kombinasi atau gabungan dengan blok
2.1.2.1
Instruksi LOAD (LD) dan LOAD Not (LDNOT)
Instruksi LD digunakan untuk memasukkan masukan yang awal dari
tangga. Sedangkan NOT untuk menandakan kontak NC. Intruksi LD dan LDNOT
dibutuhkan hanya satu kondisi logika saja pada awal program. Bentuk diagram
ladder perintah tersebut dapat dilihat pada gambar 2.5.
LD
LDNOT
Gambar 2.5 Diagram ladder instruksi LD dan LDNOT[2]
2.1.2.2
Instruksi AND dan ANDNOT
Instruksi AND digunakan untuk memasukkan masukan yang di seri
dengan masukkan yang sebelumnya. Tentunya instruksi yang di seri harus
terpenuhi semuanya untuk mengeluarkan satu keluaran. Dalam bentuk ladder
perintah tersebut dapat dilihat pada gambar 2.6.
LD AND
ANDNOT
a. Kemungkinan pertama, masukan A = 0 dan B = 0. Dengan kata lain
tidak ada masukan, maka keluarannya Q = 0.
b. Kemungkinan kedua, masukan pada A = 1 dan B = 0. Terdapat
masukan hanya di A dan tidak ada masukan pada B, maka
keluarannya Q = 0.
c. Kemungkinan ketiga, masukan pada A = 0 dan B = 1. Terdapat
masukan hanya di B dan tidak ada masukan pada A, maka
keluarannya Q = 0.
d. Kemungkinan keempat, masukan pada A = 1 dan B = 1. Terdapat
masukan pada A dan B, maka keluarannya Q = 1.
Tabel 2.1. Tabel kebenaran gerbang AND A B Q
0 0 0 1 0 0 0 1 0 1 1 1
Untuk menganalisa gerbang ANDNOT dengan 2 buah masukan A dan B
dengan keluaran Q, maka terdapat 4 (empat) kemungkinan dan dapat dilihat pada
tabel 2.2.
a. Kemungkinan pertama, masukan A = 0 dan B = 0. Dengan kata lain
b. Kemungkinan kedua, masukan pada A = 1 dan B = 0. Terdapat
masukan hanya di A dan tidak ada masukan pada B, maka
keluarannya Q = 1.
c. Kemungkinan ketiga, masukan pada A = 0 dan B = 1. Terdapat
masukan hanya di B dan tidak ada masukan pada A, maka
keluarannya Q = 1.
d. Kemungkinan keempat, masukan pada A = 1 dan B = 1. Terdapat
masukan pada A dan B, maka keluarannya Q = 0.
Tabel 2.2. Tabel kebenaran gerbang ANDNOT
A B Q 0 0 1 1 0 1 0 1 1 1 1 0
2.1.2.3
Instruksi OR dan ORNOT
Instruksi OR digunakan untuk memasukkan masukan yang diparalelkan
dengan masukkan yang sebelumnya. Beberapa instruksi memungkinkan terletak
pada garis terpisah secara paralel, maka kondisi pertama merupakan instruksi load
(LD) dan sisanya berhubungan dengan instruksi OR atau ORNOT, gambar
ORNOT
Gambar 2.7 Diagram ladder instruksi OR dan ORNOT[2]
Untuk menganalisa gerbang OR, terdapat 4 (empat) kemungkinan dan
dapat dilihat pada tabel 2.3.
a. Kemungkinan pertama, masukan pada A = 0 dan B = 0. Dengan kata
lain tidak ada masukan, maka keluarannya Q = 0.
b. Kemungkinan kedua, masukan pada A = 1 dan B = 0. Terdapat
masukan pada A = 1 dan tidak ada masukan pada B, maka
keluarannya Q = 1.
c. Kemungkinan ketiga, masukan pada A = 0 dan B = 1. Terdapat
masukan pada B dan tidak ada masukan A, maka keluarannya Q = 1.
d. Kemungkinan keempat, masukan pada A = 1 dan B = 1. Terdapat
masukan pada A dan B, maka keluarannya Q = 1.
Tabel 2.3. Tabel kebenaran gerbang OR A B Q
Untuk menganalisa gerbang ORNOT, terdapat 4 (empat) kemungkinan
dan dapat dilihat pada tabel 2.4.
e. Kemungkinan pertama, masukan pada A = 0 dan B = 0. Dengan kata
lain tidak ada masukan, maka keluarannya Q = 1.
f. Kemungkinan kedua, masukan pada A = 1 dan B = 0. Terdapat
masukan pada A = 1 dan tidak ada masukan pada B, maka
keluarannya Q = 0.
g. Kemungkinan ketiga, masukan pada A = 0 dan B = 1. Terdapat
masukan pada B dan tidak ada masukan A, maka keluarannya Q = 0.
h. Kemungkinan keempat, masukan pada A = 1 dan B = 1. Terdapat
masukan pada A dan B, maka keluarannya Q = 0.
Tabel 2.4. Tabel kebenaran gerbang ORNOT
A B Q 0 0 1 0 1 0 1 0 0 1 1 0
2.1.2.4
Instruksi END
Instruksi terakhir yang harus dituliskan atau digambarkan dalam diagram
tangga adalah instruksi END. CPU pada PLC akan mengerjakan semua instruksi
dalam program dari awal (baris pertama) hingga ditemui instruksi END yang
pertama, sebelum kembali lagi mengerjakan instruksi dalam program dari awal
END
Gambar 2.8 Diagram ladder instruksi END[2]
2.2
Mnemonic
Secara umum bahasa pemrograman yang digunakan pada PLC ada dua,
yakni bahasa kode dan bahasa gambar. Bahasa kode sering kita jumpai dengan
istilah kode mnemonic atau STL (statement list). Sedangkan bahasa gambar sering
kita jumpai dengan istilah ladder diagram atau diagram tangga.
Untuk berkomunikasi dengan PLC atau memprogram PLC digunakan suatu
alat yang disebut programmer/monitor. Dengan menggunakan
programmer/monitor ini dapat dimasukkan program ke dalam PLC dan juga dapat
memonitor proses yang dilakukan oleh PLC. Programmer/monitor sering juga
disebut hand held programmer danmempunyai beberapa fungsi yaitu:
1. Off, difungsikan untuk mematikan PLC sehingga program yang dibuat
tidak dapat dijalankan
2. Run, difungsikan untuk pengendalian suatu proses pada saat program
dalam kondisi diaktifkan.
3. Monitor untuk mengetahui keadaan suatu proses yang terjadi pada PLC
4. Program yang menyatakan suatu keadaan dimana programmer/monitor
Kode mnemonik juga bahasa teknik yang merupakan sarana perantara untuk
memasukkan program ke dalam PLC khususnya menggunakan Personal
Computer atau konsole. Kode ini memuat keterangan mengenai instruksi dan data operand. Deskripsi suatu proses kerja dari sebuah sistem yang dikontrol dapat
dituangkan ke dalam sebuah kode mnemonic yang memuat keterangan-keterangan
mengenai alamat dan tanggapan dari input-output, serta fungsi-fungsi program
pengontrol. Contoh tabel mnemonic dapat dilihat pada table 2.5 mnemonic PLC.
Tabel 2.5 Mnemonic PLC
LD 00
AND 01
OUT 102
END
2.3
Mikrokontroller
ATmega32
Mikrokontroler ATmega32 memiliki fitur yang cukup lengkap. Mulai dari
dari kapasitas memori program dan memori data yang cukup besar, interupsi,
timer/counter, PWM, RTC, USART, TWI, SPI, analog comparator, EEPROM
internal dan juga ADC internal semuanya ada dalam ATmega32. Sehingga dengan
fitur yang cukup lengkap kita dapat merancang suatu sistem untuk kepentingan
komersial mulai dari sistem yang sederhana sampai dengan sistem yang relative
kompleks hanya dengan menggunakan satu IC saja, yaitu dengan IC
siklus clock.
b. 328-bit register serba guna.
c. Kecepatan mencapai 16 MIPS dengan clock 16MHz.
d. 32 KByte Flash Memori, yang memiliki fasilitas in-system
Programming.
e. 1024 Byte internal EEPROM dan 2 KByte SRAM.
f. Programming Lock, fasilitas untuk mengamankan kode program.
g. 2 buah timer/counter 8-bit dan 1 buah timer/counter 16-bit.
h. 4 channel output PWM
i. 8 channel ADC 10-bit dan serial USART.
1. 8 singgle-ended channel
2. 7 differential channel hanya pada kemasan TQFP
3. 2 differential channel dengan programmable gain 1x, 10x, atau
200x.
j. Master/Slave SPI serial interface dan serial TWI
k. Tegangan :
1. 2.7-5.5V untuk ATmega32L
Gambar 2.9 Konfigurasi pin ATmega32[4]
Pada gambar 2.9 menunjukkan konfigurasi pin ATmega32 , sehingga pin
tersebut dapat di deskripsikan sebagai berikut:
a. Power, VCC dan GND (ground)
b. PORTA (PORTA07), merupakan pin IO dua arah dan berfungsi khusus
sebagai pin masukan ADC
c. PORTB (PORTB07), merupakan pin IO dua arah dan fungsi khusus
sebagai pin timer/counter, komparator analog dan SPI
d. PORTC (PORTC07), merupakan pin IO dua arah dan fungsi khusus
e. PORTD (PORTD07), merupakan pin IO dua arah dan fungsi khusus
f. RESET adalah pin untuk me-reset mikrokontroler
Gambar 2.10 Arsitektur ATmega32[4]
Pada gambar 2.10 Mikrokontroler ATmega32 memiliki Hardvard, yaitu
memisahkan memori untuk kode program dan memori untuk data sehingga dapat
memaksimalkan unjuk kerja dan paralelisme. Instruksi-instruksi dalam memori
program dieksekusi dalam satu alur tunggal, dimana pada saat satu instruksi
dikerjakan instruksi berikutnya sudah diambil (pre-fetched) dari memori program.
Konsep inilah yang memungkinkan instruksi-instruksi dapat dieksekusi dalam
setiap satu siklus clock[3].
32 x 8-bit register serba guna digunakan untuk mendukung operasi pada
Arithmetic Logic Unit (ALU) yang dapat dilakukan dalam satu siklus. 6 dari
mode pengalamatan tak langsung untuk mengambil data pada ruang memori data.
Ketiga register pointer 16-bit ini disebut dengan register X (gabungan R26 dan
R27), register Y (gabungan R28 dan R29), dan register Z (gabungan R30 dan
R31).
Hampir semua instruksi AVR memiliki format 16-bit (word). Setiap alamat
memori program terdiri dari instruksi 16-bit atau 32-bit. Selain register serbaguna
diatas, terdapat register lain yang terpetakan dengan teknik memory mapped I/O
selebar 64 byte. Beberapa register ini digunakan untuk fungsi khusus antara lain
sebagai register kontrol Timer/Counter, Interupsi, ADC, UASRT, SPI, EEPROM
dan fungsi I/O lainnya. Register-register ini menempati memori pada alamat
0x20h-0x5Fh[3].
2.3.2
Organisasi Memori
2.3.2.1
Memori Program
ATmega32 memiliki kapasitas memori program sebesar 32 Kbyte yang
terpetakan dari alamat 0000h-3fffh dimana masing-masing alamat memiliki lebar
data 16 bit. Sehingga organisasi memori program seperti ini sering dituliskan
dengan 16K x 16 bit. Memori program ini terbagi menjadi 2 bagian yaitu bagian
program boot dan bagian program aplikasi. Jika kita tidak menggunakan fitur
Boot Loader Flash maka semua kapasitas memori programdiatas dapat digunakan
untuk program aplikasi. Tetapi jika kita menggunakan fitur Boot Loader Flash
maka pembagian ukuran kedua bagian ini ditentukan oleh BOOTSZ fuse[3].
2.3.2.2
Memori Data
ATmega32 memiliki 2144 alamat memori data yang terbagi menjadi 3
bagian, yaitu 32 buah register file, 64 buah IO register file dan 2048byte internal
SRAM. Peta Memori Data AVR ATmega32 dapat dilihat pada gambar 2.12.
Tampak pada peta memoti data diatas bahwa alamat $0000-$001F ditempati oleh
register file. I/O register menempati alamat dari $0020-$005F. Sedangkan sisanya
sebagai internal SRAM sebesar 2048 byte ($0060-$085F)[3].
2.3.2.3
EEPROM
ATmega32 juga memliki memori data berupa EEPROM 8 bit sebesar
1024 byte yang terpisah dari memori program maupun memori data. Memori
EEPROM ini hanya dapat diakses dengan menggunakan register-register I/O yaitu
register EEPROM. Untuk mengakses memori EEPROM ini diperlakukan seperti
mengakses data eksternal sehingga waktu eksekusinya relatif lebih lama bila
dibandingkan dengan mengakses data dari SRAM[3].
2.3.2.3.1
Register EEARH and EEARL
Gambar 2.13 Register EEARH dan EEARL[4]
Register EEARH dan EEARL digunakan untuk menyimpan alamat
memori EEPROM yang akan diakses. Dengan kapasitas EEPROM sebesar 1024
Kbyte maka dibutuhkan 9-bit alamat (EEAR8...EEAR0)[3]. Gambar register
Gambar 2.14 Register EEDR[4]
Bits 7..0 – EEDR7.0: data EEPROM
Pada proses penulisan EEPROM, register ini berisi data yang akan
dituliskan pada alamat EEPROM yang ditunjuk dalam register EEAR, sedangkan
pada opersi pembacaan EEPROM, register ini berisi data yang dibaca dari alamat
EEPROM yang ditunjuk dalam EEAR[3]. Gambar register EEDR dapat dilihat
pada gambar 2.14.
2.3.2.3.3
Register EECR
Gambar 2.15 Register EECR[4].
Gambar 2.15 merupakan register EECR. Register EECR merupakan
register yang mengontrol proses akses terhadap EEPROM. Bit yang digunakan
dalam register ini adalah bit EEMWE, EEWE, dan EERE yang masing-masing
menempati bit 0, bit 1, bit 2, dalam register tersebut.
Bits 7..4 – Res: Reserved Bits
Pada bit 7..4 ini akan selalu dibaca 0 (tidak digunakan)
Bit EERIE digunakan untuk mengaktifkan interupsi EEPROM jika
bernilai ’1’ maka aktif dan jika bernilai ’0’ maka tidak aktif.
Bit 2 – EEMWE: EEPROM Master Write Enable
Bit EEMWE digunakan untuk mengaktifkan operasi tulis. Jika bit
EEMWE bernilai ’1’ maka pada saat bit EEWE diset ’1’ akan
menyebabkan data pada register EEDR dituliskan ke memori
EEPROM dengan alamat sesuai isi register EEAR dalam 4 siklus
clock. Tetapi jika bit EEMWE bernilai ’0’ maka pada saat bit EEWE
diset ’1’ tidak akan berpengaruh terhadap operasi tulis[3].
Bit 1 – EEWE:EEPROM Write Enable
Bit EEWE digunakan untuk memulai proses menulis data ke
EEPROM. Jika alamat dan data yang akan ditulis sudah ditentukan
maka data tersebut akan dituliskan ke EEPROM segera setelah bit
EEWE ini diset ’1’. Setelah proses menulis data selesai maka secara
otomatis bit EEWE akan bernilai ’0’.
Bit 0 – EERE: EEPROM Read Enable
Bit EEWE digunakan untuk memulai proses membaca data dari
EEPROM. Jika alamat dan data yang akan dibaca sudah ditentukan
maka data tersebut akan segera dibaca setelah bit EERE ini diset
’1’[3].
2.3.3
Register serbaguna
ATmega32 memiliki 32 byte register serbaguna yang terletak pada awal
Gambar 2.16. Register Serbaguna dari ATmega32[4]
Dari 32 byte register serbaguna diatas, 6 byte terakhir juga digunakan
sebagai register pointer yaitu register pointer X, register pointer Y dan register
pointer Z[3].
2.3.4
Stack Pointer
Gambar 2.18 Gambar stack pointer[4]
Stack pointer digunakan untuk menyimpan data sementara (data variabel)
atau untuk menyimpan alamat program yang sedang dikerjakan pada saat terjadi
instruksi percabangan atau interupsi. Stack pointer menempati alamat memori
RAM paling atas dan akan turun semakin kebawah dengan bertambahnya data
yang disimpan. Instruksi PUSH digunakan untuk menyimpan data ke stack
pointer kemudian secara otomatis stack pointer berkurang 1. Sebaliknya instruksi
POP digunakan untuk mengambil data dari stack pointer kemudian secara
otomatis stack pointer bertambah 1[3]. Gambar stack pointer dapat dilihat pada
gambar 2.18.
2.3.5
Register I/O dan Port I/O
ATmega32 memiliki 64 byte register I/O yang dapat diakses sebagai
bagian dari memori RAM (menggunakan instruksi LD atau ST) atau dapat juga
diakses sebagai I/O (menggunakan instruksi IN atau OUT). Jika register I/O
diakses seperti mengakses data pada memori RAM maka register I/O di atas
menempati alamat 0020-005F, tetapi jika register I/O diakses seperti mengakses
I/O maka register I/O menempati alamat memori 0000-003F. Gambar register I/O
Gambar 2.19 gambar register I/O dan port I/O[4]
Semua port keluarga AVR bersifat bi-directional (dua arah) pada saat
berfungsi sebagai port I/O digital. Bahkan setiap pin dapat dikonfigurasikan baik
sebagai input maupun output secara individu tanpa mempengaruhi pin-pin yang
lain. Hal ini dapat dilakukan dengan perintah SBI dan CBI. Pengaturan pull-up
resistor internal. Meskipun demikian pengaturan pull-up resistor bisa saja
dinon-aktifkan melalui bit PUD pada register SFIOR. Jika bit PUD diset ’1’ maka berarti
konfigurasi pull-up port I/O non-aktif[3]. Register SFIOR dapat dilihat pada
gambar 2.20.
Gambar 2.20 gambar register SFIOR[4]
Tiga alamat memori I/O dialokasikan untuk mengatur konfigurasi setiap
port I/O yaitu:
1. Data Register (PORTx)
2. Data Direction Register (DDRx)
3. Port Input Pin (PINx)
Data Direction Register (DDRx) digunakan untuk mendefinisikan port
sebagai input atau sebagai output. Jika DDRx diisi ’1’ berarti sebagai output dan
menyimpan data yang akan ditulis/dikeluarkan ke port I/O pada saat dikonfigurasi
sebagai output sedangkan Port Input Pin (PINx) digunakan untuk menyimpan data
yang terbaca dari port I/O pada saat dikonfigurasi sebagai input. Gambar port A,
B, C, D sebagai port I/O dapat dilihat pada gambar 2.21 dan gambar 2.22.
Gambar 2.22 lanjutan gambar port A,B , C, D sebagai register I/O[4]
2.3.6
Timer/Counter
ATmega32 memiliki 3 modul timer yang terdiri dari 2 buah timer/counter
8-bit dan 1 buah timer/counter 16-bit. Ketiga modul timer/counter ini dapat diatur
dalam mode yang berbeda secara individu dan tidak saling mempengaruhi satu
sama lain. Selain itu semua timer/counter juga dapat difungsikan sebagai sumber
interupsi. Masing-masing timer/counter ini memiliki register tertentu yang
digunakan untuk mengatur mode dan cara kerjanya tetapi ada 2 register yang
digunakan secara bersama-sama yaitu register TIMSK dan register TIFR. Gambar
2.3.6.1
TIMSK (Timer/Counter Interrupt Mask Register)
Gambar 2.23 TIMSK (Timer/Counter Interupt Mask Register)[4]
Bit 7 – OCIE2: Timer/Counter 2 Output compare Match Interupsi
Enable. OCIE2 digunakan untuk mengaktifkan interupsi Output
Compare Match Timer/Counter 2.
Bit 6 – TOIE2: Timer/Counter 2 Overflow Interrupt Enable. TICIE0
digunakan untuk mengaktifkan interupsi Overflow Timer/Counter 2.
Bit 5 – TICIE1: Timer/Counter 1 Input Capture Interrupt Enable.
TICIE1 digunakan untuk mengaktifkan interupsi Input capture
Timer/Counter 1.
Bit 4 – OCIE1A: Timer/Counter 1 Output Compare A Match Interrupt
Enable. OCIE1A digunakan untuk mengaktifkan interupsi Output
Compare A Match Timer/Counter 1.
Bit 3 – OCIE1B : Timer/Counter 1 Output Compare B match interrupt
Enable. OCIE1B digunakan untuk mengaktifkan interrupsi Output
Compare B Match Timer/Counter 1.
Bit 2 – TOIE1: Timer/Counter 1 Overflow Interrupt Enable. TOIE0
digunakan untuk mengaktifkan interupsi Overflow Timer/Counter 1.
Bit 1 – OCIE0: Timer/Counter 0 Output Compare Match Interrupt
Enable. OCIE0 digunakan untuk mengaktifkan interupsi Output
Gambar 2.24 TIFR[4]
TIFR merupakan register yang digunakan untuk mengetahui apakah
terjadi permintaan interupsi timer/counter atau tidak. Jika bernilai ’1’ berarti
terdapat permintaan interupsi, dan jika layanan interupsi diaktifkan maka program
akan melompat ke alamat vektor interupsi yang sesuai. Untuk mengatur semua
timer dibutuhkan prescaler, pengaturan prescaler dapat dilihat pada tabel 2.6
Tabel 2.6 pengaturan prescaler
CS12 CS11 CS10 Description
0 0 0 No clock source (timer/counter stopped) 0 0 1 ClkIO/1 (No prescaling)
0 1 0 ClkIO/8 (No prescaling)
0 1 1 ClkIO/64 (No prescaling)
1 0 0 ClkIO/256 (No prescaling)
1 0 1 ClkIO/1024 (No prescaling)
1 1 0 Ekternal clock source on T1 pin. Clock on falling edge 1 1 1 Ekternal clock source on T1 pin. Clock on rising edge
2.3.6.3
Special Function Register I/O
Gambar 2.25 Special Function Register I/O[4]
Bit PSR10 digunakan untuk mereset skala clock pada timer/counter 1
dan timer/counter 0. jika bit PSR10 diset ’1’ maka akan mereset skala
clock timer/counter 1 dan timer/counter 0 menjadi 0.
Bit 1 – PSR2: Prescalar Reset Timer/Counter 2
Bit PSR2 digunakan untuk mereset skala clock pada timer/counter 2. jika
bit PSR2 diset ’1’ maka akan mereset skala clock timer/counter 2
menjadi 0. gambar special function register I/O dapat dilihat pada
gambar 2.25.
2.3.7
SPI (Serial Peripheral Interface)
Serial Peripheral Interface (SPI) merupakan salah satu mode komunikasi serial syncrhronous kecepatan tinggi yang dimiliki oleh ATmega32. Komunikasi
SPI membutuhkan 3 jalur yaitu MOSI, MISO dan SCK. Melalui komunikasi SPI
ini data dapat saling dikirimkan baik antar mikrokontroler maupun antara
mikrokontroler dengan peripheral lain di luar mikrokontroler. Gambar SPI dapat
dilihat pada gambar 2.26.
1. MOSI : Master Output Slave Input Artinya jika dikonfigurasi sebagai
master maka pin MOSI ini sebagai output tetapi jika dikonfigurasi
sebagai slave maka pin MOSI ini sebagai input.
2. MISO : Master Input Slave Output Artinya berkebalikan dengan MOSI
di atas, jika dikonfigurasi sebagai master maka pin MISO ini sebagai
input tetapi jika dikonfigurasi sebagai slave maka pin MISO ini
dari master)[3].
Gambar 2.26 SPI (Serial Pheripheral Interface)[4]
2.3.8
USART
Universal Synchronous and Asynchronous Serial Receiver and
Transmitter (USART) juga merupakan salah satu mode komunikasi serial yang
memiliki fleksibilitas tinngi, yang dapat digunakan untuk melakukan transfer data
baik antar mikrokontroler maupun dengan modul-modul eksternal termasuk PC
Gambar 2.27 USART[4]
USART memungkinkan transmisi data baik secara synchronous maupun
asynchronous sehingga dengan demikian USART pasti kompatibel dengan
UART. Pada Atmega32, secara umum pengaturan mode komunikasi baik
synchronous maupun asynchronous adalah sama. Perbedaannya hanyalah terletak pada sumber clock saja. Jika pada mode asynchronous masing –masing peripheral
memiliki sumber clock sendiri maka pada mode synchronous hanya ada satu
sumber clock yang digunakan secara bersama-sama. Dengan demikian secara
hardware untuk mode asynchronous hanya membutuhkan 2 pin yaitu TXD dan
RXD sedangkan untuk mode synchronous harus 3 pin yaitu TXD, RXD dan XCK.
baud rate menggunakan register UBRRL-UBRRH.
UBRRL dan UBRRH atau sering disebut sebagai UBRR merupakan
register yang digunakan untuk mengatur kecepatan/baudrate transmisi data pada
komunikasi USART. UBRR sebetulnya berupa register 16-bit tetapi untuk upper
bytenya yaitu register UBRRH digunakan bersama-sama dengan register UCSRC.
Sehingga untuk mengaksesnya diperlukan pemilihan register dengan
menggunakan bit URSEL[3].
Gambar 2.28 UBRRH dan UBRRL[4]
Gambar 2.29 UCSRC[4]
1. Bit 15-URSEL: Register Select
Jika bit URSEL, bernilai ’1’ berarti mengakses register UCSRC dan
jika bit URSEL benilai ’0’ berarti mengakses register UBRRH.
2. Bit 14:12-Tidak digunakan
UBRR11:0 adalah register dengan lebar 12-bit yang digunakan untuk
menentukan baudrate komunikasi USART. Pengaturan baudrate dan
penentuan nilai register UBBR dapat dihitung dengan rumus pada
tabel 2.7.
Tabel 2.7 Pengaturan Baud Rate[3]
Keterangan:
BAUD : Baudrate (bps)
Fosc : Frekuensi Osilator (Frekuensi kristal)
UBRR : Nilai register UBRR (UBRRH-UBRRL)
Pada tabel 2.7 pengaturan Baud Rate dapat dilihat perhitungan baudrate
sering dilakukan pendekatan terhadap hasil perhitungan rumus. Sebagai hasil
pendekatan akan menyebabkan terjadinya error, error yang muncul akibatnya
pendekatan ini dirumuskan:
% 100 1
BaudRate BaudRate
Error ClosestMatch
Keterangan:
Error :prosentase error yang dihasilkan
Komunikasi serial adalah pengiriman data secara serial (data dikirim satu per satu
secara berurutan) sehingga komunikasi serial jauh lebih lambat daripada
komunikasi parallel. Serial Port lebih sulit ditangani karena peralatan yang
duhubungkan ke serial port harus berkomunikasi menggunakan transmisi serial,
sedangkan data dikomputer diolah secara paralel. Oleh karena itu, data dari serial
port harus dikonversikan kebentuk paralel untuk bisa digunakan jika
menggunakan perangkat keras. Kelebihan serial port adalah jangkauan panjang
kabel yang lebih jauh dibandingkan paralel karena serial port mengirimkan logika
1 dengan kisaran tegangan – 3 volt sampai - 25 volt dan logika 0 sebagai + 3 volt
hingga + 25 volt, sehingga kehilangan daya karena panjangnya kabel bukan
masalah utama. Komunikasi serial port bersifat asinkron sehingga sinyal detak
tidak dikirim bersama data. Setiap word (kata) disinkronkan dengan start bit dan
satu pulsa detak (clock) internal di kedua sisi menjaga bagian data saat
pewaktuan.
Spesifikasi elektris dari serial port adalah sebagai berikut:
1. “Space” (logika 0) adalah tegangan antar +3 hingga + 25 volt.
2. “Mark” (logika 1) adalah tegangan antara – 3 hingga – 25 volt.
3. Daerah antara +3 volt hingga – 3 volt tidak didifinisikan atau tidak
terpakai.
5. Arus hubungan singkat tidak boleh melebihi 500 mA.
Gambar 2.30 Komunikasi Serial DB9
Konektor serial port terdiri atas 2 (dua) jenis yaitu konektor 25 pin (DB 25)
dan 9 pin (DB9) yang berpasangan (jantan dan betina). Bentuk dari konektor
DB-25 sama persis dengan port paralel [5]. Konfigurasi komuniksai serial dapat
dilihat pada tabel 2.8.
Tabel 2.8 Komunikasi Serial DB9
PIN SIGNAL 1 Data Carrier Detect
2 Received Data
3 Transmitted Data
4 Data Terminal Ready
5 Signal Ground
6 Data Set Ready
7 Request To Send
8 Clear to Send
9 Ring Indicator
MAX232 adalah multichannel RS232 driver / receiver yang hanya
membutuhkan single supply sebesar 5V. MAX232 memiliki jalur komunikasi RX
dan TX namun yang digunakan hanya bagian TX (Transmiter) saja dengan
microcontroller, mengolahnya dan mengirimkan sinyal. Antarmuka serial merupakan pintu gerbang komunikasi antara mikrokontroler dengan Base
Terminal (telepon seluler). Terminal memiliki gerbang serial yang dapat
digunakan untuk berkomunikasi dengan perangkat-perangkat yang lain.
Komunikasi serial tersebut menggunakan standar komunikasi serial UART
dengan 1 start-bit, 8 data-bit, dan 1 stop-bit. Pada antarmuka serial ini dibutuhkan
sebuah IC MAX232 sebagai pengkonversi tegangan digital yang dikeluarkan
gerbang serial yang dimiliki mikrokontroler dari tegangan standar 0-5 volt. Kaki
RXD merupakan kaki yang akan menerima data-data serial, sedangkan TXD
berfungsi mentransmisikan data-data serial dari mikrokontroler [5]. IC MAX232
dapat dilihat pada gambar 2.31.
2.5
Relay
Relay adalah suatu komponen elektronika yang akan bekerja bila ada arus yang melalui kumparannya. Sebuah relay terdiri dari kumparan yang dililitkan
pada inti besi dan kontak-kontak penghubung. Apabila kumparan yang melilit inti
besi dilalui arus listrik maka akan menimbulkan induksi medan magnet, dan
induksi ini akan menarik kontak-kontak penghubung relay. Diagram relay
ditunjukkan pada gambar 2.32 berikut ini.
Gambar 2.32 Relay
Kontak penghubung relay terdiri dari dua bagian, yaitu :
1. Kontak NC (Normally Close)
Kontak penghubung dalam kondisi menutup atau terhubung bila relay
tidak mendapat masukan tegangan pada kumparannya. Tetapi bila
diberi tegangan yang mencukupi pada kumparannya maka kontak
penghubung menjadi terbuka.
2. Kontak NO (Normally Open)
Kontak penghubung dalam kondisi terbuka bila relay tidak mendapat
tegangan pada kumparannya. Tetapi bila diberi tegangan yang
mencukupi pada kumparannya maka kontak penghubung menjadi
berfungsi untuk menghubungkan atau memutus aliran arus listrik yang dikontrol
dengan memberikan tegangan dan arus tertentu pada koilnya dengan memberikan
tegangan dan arus tertentu pada koilnya. Pada IC ULN2803 ini terdapat transistor
darlington yang digunakan untuk menguatkan arus dari mikrokontroler yang
terhubung dengan relay[7], gambar IC ULN 2803 sebagai driver relay dapat
dilihat pada gambar 2.33.
3.1
Diagram Blok Perancangan CPU PLC
CPU PLC dapat diprogram menggunakan 2 alat pemrogram yaitu PC dan
konsol. Untuk komunikasi konsol dengan CPU PLC menggunakan komunikasi
serial 232 dan juga PC dengan CPU PLC menggunakan komunikasi serial
RS-232. Dalam pembuatan CPU PLC ini diperlukan perancangan perangkat keras
maupun perangkat lunak. Penulis disini merancang pada bagian CPU PLC,
komunikasi RS232, input, output. Input terdiri dari 8 saklar on/off dan indikator
led. Output terdiri dari 8 port output yang masing-masing port terhubung dengan
IC driver relay dan output dari IC tersebut terhubung dengan indikator led dan
relay. Perancangan peralatan yang dibuat meliputi penyusunan diagram blok,
rancangan perangkat keras dan bagan alir program (flow chart). Diagram blok
Sistem PLC dapat ditunjukkan pada gambar 3.1.
`
CPU PLC Mikrokontroler
ATmega32 RS 232 untuk
komunikasi INPUT dan
INPUT CNT, TIM
OUTPUT PC atau
KOMPUTER
CONSOLE
Gambar 3.1 Diagram blok sistem CPU PLC
menggunakan komunikasi serial RS-232.
3.2.1
Rangkaian Mikrokontroler
3.2.1.1
Konstruksi Rangkaian Mikrokontroler
Pada perancangan rangkaian CPU PLC yang menggunakan
mikrokontroler ATmega32 ini digunakan untuk menerima data yang masuk,
melalui TX dan RX, yang dikirim lewat PC (personal computer) atau konsol. Di
dalam rangkaian CPU PLC itu akan diolah datanya dan menjalankan subrutinnya
sesuai perintah dari konsol atau PC (personal computer). Dalam pengiriman dan
penerimaan data mikrokontroler menggunakan komunikasi serial RS-232. Untuk
rangkaian utama sistem CPU PLC dapat dilihat pada lampiran. Dari PC data
dikirim melalui konektor DB9 secara serial dan dihubungkan dengan IC max232,
dari IC dihubungkan ke mikrokontroler. Prosesor yang digunakan IC ATmega32
dengan kapasitas memori 32Kbyte terdiri dari 1Kbyte EEPROM dan 2Kbyte
SRAM. Supply untuk mikro sebesar 5 volt. Dalam rangkaian mikro terdapat
indikator-indikator, macam indikator adalah indikator error dihubungkan dengan
pin PD6, indikator RUN dihubungkan dengan pin PD4, indikator supply
dihubungkan dengan pin VCC. Kristal yang digunakan sebesar 4MHz dengan
kapasitor 22pF. Input dan output dihubungkan dengan konektor 10 kaki dengan 2
kaki VCC dan ground dan yang lainnya sebagai penghubung hardware yang
3.2.1.2
Rangkaian Reset
Gambar rangkaian reset dapat dilihat pada gambar 3.2. Reset digunakan
untuk mengembalikan keseluruhan sistem (program) ke awal. Reset terjadi
dengan adanya logika 1 selama minimal 2 cycle (2μ detik) pada kaki reset (pin 9)
berdasarkan datasheet. Pada perancangan, waktu pengosongan dipilih sebesar 10
ms dengan asumsi waktu reset telah lebih dari 2 µs. Bila nilai hambatannya (R)
dipilih 10 kΩ, maka nilai C adalah:
C R
T
0,1 = 10.000 x C
C = 10 µF
C4 10uF
SW1
SW PUSHBUTTON
RESET PIN 9
GND
VCC R
10k
Gambar 3.2 Konfigurasi Rangkaian Reset
Saat tombol push button ditekan rangkaian reset akan memberikan
masukan ke mikrokontroler dengan logika low, sedangkan saat tombol reset
dilepas akan berlogika high.
3.2.1.3
Rangkaian Osilator
C2 22pF C1 22pF
GND
Y 1
4MHz
XTAL1 XTAL2
Dalam perancangan, kristal yang digunakan adalah kristal 7.2 MHz, karena
dengan kristal ini detak limpahan yang diperoleh berupa bilangan bulat. Gambar
rangkaian osilator dapat dilihat pada gambar 3.3. Untuk perancangan ini, baud
rate kecepatan serial yang digunakan adalah 9600bps dan frekuensi osilator yang
digunakan 7.2MHz, maka dapat diperoleh dengan perhitungan sebagai berikut
dengan menggunakan rumus yang ada pada tabel 2.6:
a. Untuk U2X = 0
46 1 9600 16 7200000 UBRR UBRR
b. Untuk U2X = 1
93 1 9600 8 7200000 UBRR UBRR
Nilai UBRR di atas akan digunakan pada pemrograman mikrokontroler
sebagai inisialisasi komunikasi serial.
3.2.1.4
Indikator LED
Indikator LED berperan penting dalam CPU PLC. Seperti halnya CPU
PLC yang lainnya juga membutuhkan indikator/penanda. Indikator-indikator yang
dibutuhkan CPU PLC berupa indikator Error, indikator untuk komunikasi serial,
3.2.1.4.1
Indikator Error
Indikator Error digunakan untuk mendeteksi bila ada data
instruksi-instruksi yang tidak cocok dengan data yang dituliskan di dalam memori CPU
PLC. Pada gambar 3.4 yang menunjukkan rangkaian LED yang digunakan
sebagai indikator error. Untuk menghidupkan LED pada indikator ini, pin PD7
harus bernilai low yang menyatakan error. VCC bernilai sebesar 5V yang
digunakan untuk menghidupkan LED.
VCC R1 330 D1 LED PD7
Gambar 3.4 Indikator Error CPU PLC
I = 13mA (LED sudah memenuhi arus minimal yang diperlukan agar LED
menyala).
330.76 330
10 . 13 7 . 0 5 0 3 2 2 2 I V VCC R I V VCC V I VCC LED R LED LED R
3.2.1.4.2
Indikator Komunikasi Serial RS-232
Indikator Komunikasi serial digunakan untuk mendeteksi bila ada
program dari Konsol atau PC yang dikirim ke CPU PLC. Pada gambar 3.5 yang
menyala).
330.76 330 10 . 13 7 . 0 5 0 3 2 2 2 I V VCC R I V VCC V I VCC LED R LED LED R R1 RESISTOR D1 LED
RX MAX MIKRO
GND TX MAX232
Gambar 3.5 Indikator Komunikasi Serial RS-232 dengan CPU PLC
3.2.1.4.3
Indikator Supply CPU PLC
Indikator Supply CPU PLC digunakan untuk mendeteksi CPU PLC
sudah keadaan ON. Pada gambar 3.6 yang menunjukkan rangkaian indikator
supply, indikator ini mendapatkan VCC 5V dan terhubung ke pin VCC pada
mikrokontroler.
I = 13mA (LED sudah memenuhi arus minimal yang diperlukan agar LED menyala).
330.76 330
10 . 13 7 . 0 5 0 3 2 2 2 I V VCC R I V VCC V I VCC LED R LED LED R
3.2.1.4.4
Indikator Input
Input pada CPU PLC terdiri dari 8 port input, 8 port terhubung dengan
saklar on/off dan indikator led. Jika saklar keadaan on mikro akan aktif dan
memberi inputan data. Indikator Input digunakan untuk memberi tanda ke CPU
PLC, ketika CPU PLC membutuhkan masukkan sesuai dengan program yang
dikirim oleh konsol atau PC. Indikator itu dihubungkan ke pin PA0-7. dan VCC
yang digunakan 5V untuk menghidupkan LED dan saklar on/off yang
dihubungkan ke pin PA0-7 dengan logika high. Pada gambar 3.7 adalah gambar
indikator input.
I = 13mA (LED sudah memenuhi arus minimal yang diperlukan agar LED
menyala).
330.76 330
Gambar 3.7 Indikator Input
3.2.1.4.5
Indikator Output dan Relay
Indikator Output digunakan untuk memberikan tanda keadaan port
output aktif tinggi dan aktif rendah yang nanti akan dihubungkan dengan relay.
Indikator itu dihubungkan ke pin PC0-7
I = 13mA (LED sudah memenuhi arus minimal yang diperlukan agar LED
menyala).
330.76 330
Port output dari CPU PLC menggunakan 8 port output, tiap port output
akan dihubungkan dengan IC driver relay. IC yang digunakan yaitu IC
ULN2803A. IC disini adalah sekumpulan transistor Darlington Array dengan
konfigurasi darlington sehingga mempunyai β (penguatan arus) yang besar. IC ini
mampu menguatkan arus dari keluaran mikro untuk mengaktifkan relay. Pada
gambar 3.8 adalah gambar indikator output yang terhubung dengan relay dan
driver relay.
3.2.2
Komunikasi Serial RS-232
Komunikasi secara serial (serial communications) merupakan cara
menghantar data yang lebih mudah dikendalikan berbanding dengan komunikasi
parallel (parallel communications) disebabkan sistem komunikasi parallel terlalu
mahal untuk kegunaan jarak jauh. Data yang bernilai 8 bit dikirim secara satu bit
demi satu bit ke mikrokontroler. Pengiriman data pada IC mikrokontroler fasilitas
yang digunakan untuk komunikasi serial adalah UART (Universal Asynchronous
Receiver Transmitter). Komunikasi serial juga boleh disifatkan sebagai simpleks
(simplex), dupleks setengah (half duplex), dan dupleks penuh (full duplex). Port
serial yang terdapat pada PC (personal computer) biasanya berfungsi sebagai port
dupleks penuh. Tegangan pada level RS-232 menjadi level logika “1”
didefinisikan -3 volt sampai -15 volt, dan logika “0” didefinisikan +3 volt sampai
+15 volt. Pada level TTL yang didefinisikan untuk kondisi “0” volt sampai 0,4
volt dan untuk kondisi “1” tegangannya 2,4 volt sampai 5 volt. Dalam
perancangan ini untuk mengubah level tegangan tersebut digunakan IC MAX-232
dengan 5 buah kapasitor sebesar 1uF/25volt, dengan tegangan catunya sebesar 5
volt. Dengan perangkat tersebut diharapkan dapat digunakan untuk mengirimkan
data/karakter dari komputer ke mikrokontroler dengan sempurna. Baud rate yang
digunakan adalah 9600 Bps, dengan frekuensi osilator 7.2MHz pada
mikrokontroler. Pada gambar 3.9 adalah gambar konfigurasi komunikasi serial
C4 1u F /2 5V C3 1u F /2 5v C2 1uF/25V GND C1 1uF/25v VCC +5v 3 4 5 6 7 8 9 GND MAX232_0 8 11 10 1 3 4 5 2 6 9 14 7 16 15 R1IN R2IN T1IN T2IN C+ C1-C2+ C2-V+ V-R1OUT R2OUT T1OUT T2OUT VCC GND C5 1u F /2 5v GND VCC
Gambar 3.9 Konfigurasi Komunikasi RS-232
3.3
Perancangan Perangkat Lunak
Mikrokontroler adalah bentuk minimum dari komputer pada sebuah IC yang
berfungsi sebagi unit pengontrol suatu aplikasi tertentu. Mikrokontroler terdiri
dari perangkat keras dan perangkat lunak. Oleh karena itu agar mikrokontroler
dapat dipakai sebagai unit pengontrol tentunya harus diprogram terlebih dahulu.
3.3.1
Komunikasi Serial
Komunikasi data secara serial pada perangkat lunak mikrokontroller
ATmega32 dimulai dengan inisialisasi penggunaan port serial dengan menentukan
mode operasi port serial, pengaturan baudrate, mode komunikasi serial. Dalam
penerimaan data dan pengiriman data secara serial melibatkan USART (Universal
Synchronous and Ashincrounous Serial Receiver and Transmitter), USART
merupakan komunikasi yang memiliki fleksibilitas tinggi, yang dapat digunakan
modul-modul eksternal termasuk PC yang memiliki fitur UART. Untuk mengatur mode
dan prosedur komunikasi USART dilakukan melalui register UCSRA, UCSRB,
UCSRC, UBRRH, UBRRL, dan UDR. Pada gambar 3.10 adalah subrutin
komunikasi serial.
Inisialisasi USART (USART keadaan default)
Ada data masuk ?
Tampung di UDR dan kirim ke memori PLC (memori EEPROM)
Data selesai kirim ? Tidak
Baca data di memori CPU PLC
Ya
Ya
Tidak
End Start
Gambar 3.10 Subrutin komunikasi serial
Inisialisasi USART
Dalam proses inisialisasi ada beberapa buah regis