Anda di halaman 1dari 71

LAPORAN KULIAH

PRAKTIKUM MIKROKONTROLER 1

Oleh :
Muhamad Dwi Rizky Alfafa 2241170024

Syifa Nabila Huwaida 2241170120

D4 TEKNIK ELEKTRONIKA
JURUSAN TEKNIK ELEKTRO
POLITEKNIK NEGERI MALANG
2023
Kata Pengantar
Puji syukur kami panjatkan kehadirat Tuhan Yang Maha Esa karena telah melimpahkan
rahmat-Nya berupa kesempatan dan pengetahuan sehingga kami dapat menyelesaikan tugas
pada mata kuliah Sistem Mikrokontroler 1 berupa laporan kuliah.

Laporan ini diajukan untuk memenuhi salah satu tugas mata kuliah Sistem Mikrokontroler
1 semester III dengan dosen pengampu Sidik Nurcahyo, S.T., M.T. . Tidak lupa kami
sampaikan terima kasih kepada dosen pengampu mata kuliah Sistem Mikrokontroler 1 yang
telah memberikan arahan dan bimbingan dalam pembuatan laporan ini.

Akhirnya, kami sampaikan terima kasih atas perhatiannya terhadap laporan ini, dan kami
berharap semoga laporan ini bermanfaat bagi kami khususnya. Dengan segala kerendahan
hati,saran dan kritik yang konstruktif sangat kami harapkan dari pembaca guna
meningkatkan penyelesaian laporan pada tugas yang lain pada waktu mendatang.

Malang, 10 September 2023

Penyusun

1
Daftar Isi

Kata Pengantar ........................................................................................................................... 1


Daftar Isi .................................................................................................................................... 2
Daftar Gambar............................................................................................................................ 4
Daftar Tabel ............................................................................................................................... 6
Daftar Listing ............................................................................................................................. 7
BAB I ........................................................................................................................................ 8
1.1 Mengenal Mikrokontroler ................................................................................................... 8
1.1.1 Pengertian Mikrokontroler......................................................................................... 8
1.1.2 Fungsi Mikrokontroler .............................................................................................. 9
1.1.3 Contoh Penerapan Mikrokontroler ............................................................................. 9
1.1.4 Cara Menggunakan Mikrokontroler ........................................................................... 9
1.2 Jenis Mikrokontroler ......................................................................................................... 10
1.3 Tool Program .................................................................................................................... 12
1.4 Tool Hardware .................................................................................................................. 29
1.5 Kesimpulan ....................................................................................................................... 30
1.6 Soal Latihan ...................................................................................................................... 30
BAB II ................................................................................................................................... 311
2.1 Arsitektur Mikrokontroler AVR ....................................................................................... 31
2.1.1 Tipe Mikrokontroler AVR ...................................................................................... 31
2.1.2 Memory Map Mikrokontroler ................................................................................ 342
2.1.3 Penjelasan Fungsi Pin Mikrokontroler AVR ........................................................... 344
2.2 GPIO ................................................................................................................................ 42
2.2.1 Pengertian GPIO ..................................................................................................... 41
2.2.2 Konfigurasi pin GPIO ............................................................................................ 41
2.3 Percobaan Rangkaian Menggunakan Atmega 32 ........................................................... 422
2.3.1 Lampu Kedip .......................................................................................................... 42
2.3.2 Led Menyala Ketika Tombol Ditekan..................................................................... 44
2.3.3 Rangkaian led menyala bergantian ......................................................................... 46
BAB III .................................................................................................................................... 48
3.1 Mengenal Seven Segment ................................................................................................. 48
3.1.1 Pengertian Seven Segment ...................................................................................... 48
3.1.2 Seven Segment LED ............................................................................................... 48
3.1.3 Tipe Seven Segment LED........................................................................................ 49
3.1.4 Prinsip Kerja Dasar Driver System pada LED 7 Segmen ......................................... 50
3.1.5 Tabel Pengaktifan Seven Segment Display .............................................................. 51
3.2 Display 2 Digit Seven Segment........................................................................................ 52
3.3 Display Seven Segment 3 Digit Common Anoda ............................................................. 52

2
BAB IV .................................................................................................................................. 484
4.1 Mengenal 74586 ............................................................................................................. 524
4.1.1 Definisi 74HC595 ................................................................................................. 484
4.1.2 Fitur 74HC595 ...................................................................................................... 485
4.1.3 Datasheet 74HC595 dan Rangkaian ....................................................................... 486
4.2 Seven Segment Display dengan IC 74HC595 .................................................................. 527
4.3 Timer Interupsi untuk Refresh Seven Segment ................................................................ 529
4.4 Aplikasi Seven Segment 8 Digit, 4 Digit Counter Up dan 4 Digit Counter Down ............... 60
BAB V ..................................................................................................................................... 61
5.1 Mengenal LCD Teks HD44780 ......................................................................................... 61
5.1.1 Definisi LCD .......................................................................................................... 61
5.1.2 Diagram Blok dan Cara Kerja LCD HD44780 ......................................................... 61
5.2 Cara Menyambung ke Mikrokontroler ............................................................................... 64
5.3 Board Adapter I2C untuk LCD .......................................................................................... 65
5.4 Library dan Cara Menggunakan ........................................................................................ 66
5.1 Simulasi Rangkaian........................................................................................................... 68

3
Daftar Gambar

Gambar 1. Mikrokontroler AVR................................................................................................... 10


Gambar 2. Mikrokontroler PIC ................................................................................................... 11
Gambar 3. Mikrokontroler MCS 51 ............................................................................................. 12
Gambar 4. Mikrokontroler ARM.................................................................................................. 12
Gambar 5 ................................................................................................................................... 13
Gambar 6 ................................................................................................................................... 13
Gambar 7 ................................................................................................................................... 14
Gambar 8 ................................................................................................................................... 14
Gambar 9 ................................................................................................................................... 15
Gambar 10.................................................................................................................................. 15
Gambar 11 .................................................................................................................................. 16
Gambar 12.................................................................................................................................. 16
Gambar 13.................................................................................................................................. 16
Gambar 14.................................................................................................................................. 17
Gambar 15.................................................................................................................................. 17
Gambar 16.................................................................................................................................. 17
Gambar 17.................................................................................................................................. 18
Gambar 18.................................................................................................................................. 18
Gambar 19.................................................................................................................................. 18
Gambar 20.................................................................................................................................. 19
Gambar 21.................................................................................................................................. 19
Gambar 22.................................................................................................................................. 19
Gambar 23.................................................................................................................................. 20
Gambar 24.................................................................................................................................. 20
Gambar 25.................................................................................................................................. 21
Gambar 26.................................................................................................................................. 21
Gambar 27.................................................................................................................................. 21
Gambar 28.................................................................................................................................. 22
Gambar 29.................................................................................................................................. 22
Gambar 30.................................................................................................................................. 22
Gambar 31.................................................................................................................................. 23
Gambar 32.................................................................................................................................. 23
Gambar 33.................................................................................................................................. 24
Gambar 34.................................................................................................................................. 24
Gambar 35.................................................................................................................................. 25
Gambar 36.................................................................................................................................. 25
Gambar 37.................................................................................................................................. 25
Gambar 38.................................................................................................................................. 26
Gambar 39.................................................................................................................................. 26
Gambar 40.................................................................................................................................. 26
Gambar 41.................................................................................................................................. 27
Gambar 42.................................................................................................................................. 27
Gambar 43.................................................................................................................................. 27
Gambar 44.................................................................................................................................. 28
Gambar 45.................................................................................................................................. 28
Gambar 46. Diagram Blok AVR .................................................................................................. 31
Gambar 47.................................................................................................................................. 32
Gambar 48. AVR Atmega 8535 .................................................................................................... 34
Gambar 49. Sistem Minimum Mikrokontroler ATMega 8535 ....................................................... 38

4
Gambar 50. Status Register ATMega8 ......................................................................................... 38
Gambar 51.................................................................................................................................. 40
Gambar 52. Pin GPIO RASPBERRY PI 3.................................................................................... 41
Gambar 53. Raspberry Pi GPIO Header ..................................................................................... 41
Gambar 54. Rangkaian Lampu Kedip ......................................................................................... 42
Gambar 55. Rangkaian Led On jika Button ditekan ..................................................................... 44
Gambar 56. Rangkaian Led Menyala secara BergantianProgram 3. Led On jika push button
ditekan ........................................................................................................................................ 44
Gambar 57. Rangkaian Led Menyala secara BergantianProgram 4. Led On jika push button
ditekan ........................................................................................................................................ 44
Gambar 58. Rangkaian Led Menyala secara BergantianProgram 5. Led On jika push button
ditekan ........................................................................................................................................ 44
Gambar 59. Rangkaian Led Menyala secara BergantianProgram 7. Led On jika push button
ditekan ........................................................................................................................................ 44
Gambar 60. Rangkaian Led Menyala secara BergantianProgram 8. Led On jika push button
ditekan ........................................................................................................................................ 44
Gambar 61. Rangkaian Led Menyala secara BergantianProgram 9. Led On jika push button
ditekan ........................................................................................................................................ 44
Gambar 62. Push Naik ................................................................................................................ 52
Gambar 63. Push Turun .............................................................................................................. 53
Gambar 64. Coding Program 3 DigitGambar 65. Push Turun ..................................................... 53
Gambar 66.................................................................................................................................. 53
Gambar 67.................................................................................................................................. 53
Gambar 68. Rangkaian 74HC595 ............................................................................................... 53
Gambar 69. Rangkaian IC 74595 Untuk 7 - Segment................................................................... 53
Gambar 70. Rangkaian Timer Interupsi Untuk Refresh 7 - Segment ............................................. 53
Gambar 71. LCD HD44780 ........................................................................................................ 53
Gambar 72. Block diagram HD44780 ......................................................................................... 53
Gambar 73. Penyambungan ke dalam Mikrokontroler ................................................................. 53
Gambar 74. Adapter l2C ............................................................................................................. 53
Gambar 75. File Library ............................................................................................................. 53
Gambar 76. Cara Menambahkan Library Source File ................................................................. 53
Gambar 77. Cara Menambahkan Library Header File ................................................................ 53
Gambar 78. Menambahkan Library ke Program Utama .............................................................. 53
Gambar 79. Rangkaian LCD HD44780 ...................................................................................... 53

5
Daftar Tabel

Table 1. Link unduh Tool Program .............................................................................................. 12


Table 2. Fungsi Pin B .................................................................................................................. 35
Table 3. Fungsi Pin D ................................................................................................................. 36
Table 4. Urutan Pin Konektor, Simbol, dan Kegunannya ............................................................. 53

6
Daftar Listing

Program 1. Program Lampu Kedip ............................................................................................. 43


Program 2. Led On jika push button ditekan................................................................................ 44
Program 3. Led On jika push button ditekan................................................................................ 44
Program 4. Led On jika push button ditekan................................................................................ 44
Program 5. Led On jika push button ditekan................................................................................ 44
Program 6. Led On jika push button ditekan................................................................................ 44
Program 7. Led On jika push button ditekan................................................................................ 44
Program 8. Led On jika push button ditekan................................................................................ 44
Program 9. Led On jika push button ditekan................................................................................ 44
Program 10. Pemrograman IC 74595.......................................................................................... 53
Program 11. Source Code Rangkaian IC 74595 Untuk 7 - Segment ............................................. 53
Program 12. Source Code rangkaian IC 74595 Timer Interupsi untuk Refresh 7 - Segment .......... 53
Program 13. Aplikasi Seven Segment 8 Digit, 4 Digit Counter Up dan 4 Digit Counter Down ..... 53

7
BAB I

PENDAHULUAN

1.1 Mengenal Mikrokontroler


1.1.1 Pengertian Mikrokontroler
Mikrokontroler adalah komputer kecil yang dikemas dalam bentuk chip IC
(Integrated Circuit) dan dirancang untuk melakukan tugas atau operasi tertentu.
Mikrokontroler dapat menerima sinyal input, mengolahnya dan memberikan sinyal
output sesuai dengan program yang diisikan ke dalamnya.
Berikut adalah beberapa karakteristik umum dari mikrokontroler :
 CPU: Mikrokontroler memiliki unit pemrosesan pusat (CPU) yang dapat
menjalankan instruksi-instruksi program yang disimpan dalam memori.
 Memori: Mikrokontroler biasanya memiliki dua jenis memori, yaitu
memori program (flash memory) untuk menyimpan program yang akan
dijalankan dan memori data (RAM) untuk menyimpan data yang sedang
diproses.
 Input/Output (I/O): Mikrokontroler memiliki berbagai pin I/O yang
dapat digunakan untuk berkomunikasi dengan perangkat eksternal
seperti sensor, motor, layar, dan perangkat lainnya. Ini memungkinkan
mikrokontroler untuk mengontrol berbagai perangkat dan menerima data
dari sensor.
 Pengaturan Daya: Mikrokontroler sering dilengkapi dengan pengaturan
daya yang dapat mengoptimalkan konsumsi daya sesuai dengan aplikasi
tertentu. Ini penting dalam perangkat bergerak atau berbaterai.
 Perangkat Khusus: Beberapa mikrokontroler juga dapat memiliki
perangkat khusus seperti PWM (Pulse Width Modulation) untuk
mengendalikan kecepatan motor, komunikasi serial untuk
berkomunikasi dengan perangkat lain, dan banyak lagi.

8
1.1.2 Fungsi Mikrokontroler
Mikrokontroler memiliki beberapa fungsi diantaranya yaitu :
a. Sebagai timer atau pewaktu
b. Sebagai pembangkit osilasi
c. Sebagai Flip-flop
d. Sebagai ADC (Analog to Digital Converter)
e. Sebagai counter atau penghitung
f. Sebagai decoder dan encoder

1.1.3 Contoh Penerapan Mikrokontroler


Fungsi mikrokontroler ini sering digunakan pada sistem atau perangkat yang
dikendalikan secara otomatis. Berikut adalah penggunaan mikrokontroler pada
beberapa bidang yaitu :
1. Otomotif
Penggunaan mikrokontroler dalam bidang otomotif yaitu seperti
Engine Control Unit, air bag, antilock braking system, transmisi otomatis,
speedometer, navigasi, suspensi aktif, dan yang lainnya.
2. Industri
Beberapa penggunaan mikrokontroler di bidang industri yaitu untuk
aplikasi monitoring, aplikasi data logger, aplikasi kontrol dan otomasi.
3. Perlengkapan Rumah Tangga dan Perkantoran
Beberapa contoh peralatannya adalah printer, mesin fotokopi,
timbangan digital, air conditioner, dan yang lainnya.
4. Robotika
Dalam bidang robotika mikrokontroler sangat banyak digunakan
karena kemampuan yang dimiliki mikrokontroler itu sendiri. Dengan
menggunakan mikrokontroler maka beberapa jenis robot seperti robot
pemadam api, line follower, dan robot penendang bola dapat dibuat dengan
mengkombinasikan beberapa sensor dan aktuator.

9
1.1.4 Cara Menggunakan Mikrokontroler
Secara umum, cara kerja mikrokontroler adalah sebagai berikut:
1. Mikrokontroler menerima input dari perangkat eksternal melalui pin-pin inputnya.
2. Input yang diterima diolah oleh mikrokontroler menggunakan program yang di-
load ke dalam memori internalnya.
3. Mikrokontroler mengeksekusi perintah yang diperlukan sesuai dengan program
yang di-load.
4. Mikrokontroler mengirimkan output ke perangkat eksternal melalui pin-pin
outputnya.
5. Mikrokontroler dapat mengontrol berbagai macam perangkat elektronik seperti
relay, motor, lampu, dll. dan dapat digunakan dalam aplikasi-aplikasi kontrol
proses, otomasi, robotika, dan perangkat elektronik portable.

1.2 Jenis Mikrokontroler


Berikut penjelasan singkat dari setiap jenis mikrokontroler adalah sebagai
berikut :
1. Mikrokontroler AVR

Gambar 1. Mikrokontroler AVR

Mikrokontroler AVR (Alf and Vegard’s Risc Processor) merupakan salah


satu komponen yang umum digunakan pada bidang instrumentasi dan elektronika.
AVR sendiri diambil dari nama Alf Egil Bogen dan Vegard Wollan yang merupakan
penemu berkebangsaan Norwegia. Dilengkapi dengan arsitektur RISC (Reduce
Instruction Set Computing) memungkinkan AVR dapat menjalankan berbagai
instruksi hanya 1 siklus, kecuali intruksi percabangan yang memerlukan 2 siklus.

10
AVR diproduksi oleh perusahaan bernama Atmel, dan kini sudah ada 10
kelas sebagai berikut :

 AVR LCD
 AVR CAN
 AVR Otomotif
 AVR USB
 TinyAVR
 Mega AVR
 XMEGA
 AVR Z-Link
Kelebihan mikrokontroler AVR dibandingkan dengan mikrokontroler lain
yaitu AVR memiliki kecepatan eksekusi program yang lebih cepat karena sebagian
besar instruksi dieksekusi dalam satu siklus clock, selain itu mikrokontroler AVR
memiliki fitur yang lengkap (ADC internal, EEPROM Internal, Timer/Counter,
PWM, Port I/O, komunikasi serial, dll).Pada dasarnya masing-masing kelas di atas
memiliki arsitektur dan instruksi yang hampir sama. Hanya saja berbeda dalam
fungsinya, kapasitas memori, serta peripheral. Seri AVR yang paling banyak
digunakan yaitu Attiny2313, mikrokontroler Atmega8535, mikrokontroler Arduino.
2. Mikrokontroler PIC (Progammable Interface Controller)

Gambar 2. Mikrokontroler PIC

PIC merupakan mikrokontroler keluaran Microchip Technology yang


pertama kali dibuat pada tahun 1975. Saat itu, PIC digunakan bersama CPU 1600
untuk meringankan beban kerjanya.

11
3. Mikrokontroler MCS 51

Gambar 3. Mikrokontroler MCS 51

MCS 51 merupakan produksi dari ATMEL, sama seperti AVR. MCS-51


dibuat dalam dua versi yaitu 40 kaki dan 20 kaki. Secara umum, keduanya memiliki
arsitektur yang sama. Perbedaan utamanya pada bagian kapasitas memori-data,
memori-program dan jumlah pewaktu 16 bit.
4. Mikrokontroler ARM

Gambar 4. Mikrokontroler ARM

ARM (Advanced RISC Machine, sebelumnya Acorn RISC Machine)


merupakan keluaran dari ARM Holding sebagai prosesor yang memiliki arsitektur
RISC dengan set instruksi 32 bit. Awalnya, ARM dikembangkan oleh Acorn
Computers. Saat itu, pengembangan ARM difungsikan untuk Personal Computer
(PC).

1.3 Tool Program


Tool program yang digunakan pada mikrokontroler yaitu Proteus, WinAVR,
dan AVR Studio. Aplikasi tersebut digunakan karena dapat membantu pengguna
dalam mensimulasikan program tanpa perlu adanya fisik hardware tersebut.
Aplikasi Link
Proteus Klik disini
AVR Studio Klik disini
WinAVR Klik disini
Table 1. Link unduh Tool Program

Berikut cara Instalasi dan Aktivasi Proteus :


12
1. Setelah kamu mendownload file installer Proteus, selanjutnya ekstrak filenya
dengan cara klik kanan > pilih Extract to.

Gambar 5

2. Klik dua kali pada Setup untuk menjalankan installer.

Gambar 6

3. Selanjutnya klik Next.

13
Gambar 7

4. Centang I accept the terms of this agreement kemudian klik Next.

Gambar 8

14
5. Disini kita akan memasukkan lisensi secara offline, maka dari itu pilih Use a
locally installed license key. Kemudian klik Next.

Gambar 9

6. Klik Next untuk melanjutkan.

Gambar 10

15
7. Klik Browse For Key File kemudian masuk ke folder Crack kemudian
pilih License2.lxk lalu klik Open.

Gambar 11

8. Selanjutnya klik Install untuk menambahkan lisensi tersebut.

Gambar 12

9. Jika muncul notifikasi seperti ini, klik Yes untuk melanjutkan.

Gambar 13

16
10. Lisensi berhasil ditambahkan, selanjutnya klik Close.

Gambar 14

11. Jika kamu ingin mengimport project atau pengaturan, silakan centang opsi
dibawah ini. Berhubung ini pertama kalinya saya menginstall Proteus, jadi
langsung saya pilih Next.

Gambar 15

12. Untuk jenis instalasinya, pilih saja Typical.

Gambar 16

17
13. Tunggu proses instalasi hingga selesai.

Gambar 17

14. Proteus sudah berhasil diinstall. Tapi ini belum selesai ya, ada langkah terakhir
yang perlu kamu lakukan. Klik Close.

Gambar 18

15. Masuk ke folder Patch kemudian klik 2X Patch.

Gambar 19

18
16. Pilih English lalu OK.

Gambar 20

17. Klik Start untuk memulai.

Gambar 21

18. Tunggu sampai completed, lalu klik Exit.

Gambar 22

19
19. Proteus sudah berhasil diaktivasi dan bisa kamu gunakan.

Gambar 23

20. Tampilan Lembar Kerja Program Proteus.

Gambar 24

Berikut cara Instalasi dan Aktivasi WinAVR :

1. Download software WinAVR Klik disini lalu buka file tersebut.


2. Buka setup WinAVR lalu install dengan cara klik kiri 2 kali.
3. Akan muncul User Account Control, klik Yes.
4. Muncul tampilan Installer Language, pilih English lalu klik OK.

20
Gambar 25

5. Muncul tampilan Welcome to WinAVR 20100110 Setup Wizard. Klik Next.

Gambar 26

6. Pada tampilan License Agreement klik I Agree.

Gambar 27

21
7. Pada tampilan Choose Install Location klik Next.

Gambar 28

8. Centang pilihan yang ada pada tampilan Choose Components, kemudian klik
Instal.

Gambar 29

9. Tunggu proses instalasi hingga selesai.

Gambar 30

22
10. Proses instalasi selesai, klik Finish.

Gambar 31

11. Hasil instalasi program WinAVR ditunjukkan dalam.

Gambar 32

Berikut cara Instalasi dan Aktivasi AVR Studio :

1. Download software AVR Studio Klik disini lalu buka file tersebut.
2. Buka setup AVR Studio lalu install dengan cara klik kiri 2 kali.
3. Akan muncul User Account Control, klik Yes.

23
4. Muncul tampilan Welcome to the InstalledShield Wizard for AVR Studio 4.19.
Klik Next.

Gambar 33

5. Pilih I accept the terms of license agreement, lalu klik Next.

Gambar 34

24
6. Pada tampilan Choose Destination Location klik Next.

Gambar 35

7. Pada tampilan Ready to Install the Program klik Next.

Gambar 36

8. Tunggu proses instalasi hingga selesai.

Gambar 37

25
9. Muncul tampilan Welcome to the InstalledShield Wizard for AVR Studio
Jungo USB. Klik Next.

Gambar 38

10. Pilih I accept the terms of license agreement, lalu klik Next.

Gambar 39

11. Pada tampilan Choose Destination Location klik Next.

Gambar 40

26
12. Pada tampilan Ready to Install the Program klik Next.

Gambar 41

13. Muncul tampilan Windows Security. Klik Install.

Gambar 42

14. Pada tampilan AVR Jungo USB InstallShield Wizard Complete klik Finish.

Gambar 43

27
15. Pada tampilan AVR Studio 4. 19 InstallShield Wizard Complete klik Finish.

Gambar 44

16. Hasil instalasi AVRStudio seperti ditunjukkan dalam Gambar 45.

Gambar 45

28
1.4 Tool Hardware
Berikut adalah beberapa tool hardware umum yang sering digunakan dalam
pengembangan mikrokontroler beserta cara menggunakannya:
 Mikrokontroler : pilih jenis mikrokontroler yang sesuai dengan proyek dan
pastikan memiliki perangkat fisiknya.
 Kabel pemograman : kabel pemograman atau kabel usb untuk menghubungkan
mikrokontroler ke komputor.
 Papan pengembangan (Development board) : penggunaan papan pengembangan
sangat dianjurkan karena papan ini menyediakan lingkungan yang nyaman
untuk menghubungkan mikrokontroler, komponen tambahan, dan menyediakan
daya yang diperlukan. Papan seperti Arduino, Raspberry Pi, atau papan
pengembangan khusus mikrokontroler .
 Sensor dan perangkat eksternal : seperti LED, motor, keypad, layar, atau sensor
suhu diperlukan dengan kebutuhan proyek. Hubungkan perangkat ini ke I/O
mikrokontroler sesuai dengan instruksi pengembangan.
 Power supply : memiliki sumber daya yang cukup untuk mengoperasikan
mikrokontroler dan komponen lainnya. Penggunaan baterai atau adaptor daya
eksternal seringkali diperlukan tergantung pada proyek.
 Oscilloscope : digunakan untuk melihat sinyal pada tingkat yang lebih
mendetail.
 Breadboard dan kabel jumper : digunakan untuk membuat prototipe sementara
sirkuit elektronik dan menghubungkan komponen elektronik dengan mudah
menggunakan breadboard dan kabel jumper.
 Debugger dan programmer : untuk pemecahan masalah dan pemograman
mikrokontroler. Dan memelurkan programmer khusus yang sesuai dengan
mikrokontroler. Mikrokontroler memiliki pemrograman melalui usb, sementara
yang lain memerlukan alat pemrograman eksternal.
 Multimeter : digunakan untuk mengukur tegangan, arus, resistansi dalam siklus
elektronik. Berguna untuk pemecah masalah dan pengujian.

29
1.5 Kesimpulan
Mikrokontroler merupakan sebuah perangkat komputer kecil yang terintegrasi
dalam bentuk chip, yang berfungsi sebagai otak dalam berbagai perangkat elektronik.
Fungsinya meliputi pengendalian, pemrosesan data, dan interaksi dengan perangkat lain
dalam berbagai aplikasi, seperti kendaraan otomotif, peralatan rumah tangga pintar,
perangkat medis, dan banyak lagi.

Penerapannya sangat luas dan memengaruhi berbagai aspek kehidupan sehari-hari.


Misalnya, mikrokontroler digunakan untuk mengatur kinerja mesin dalam kendaraan,
mengontrol perangkat rumah tangga pintar, memantau dan mengatur peralatan medis, serta
menggerakkan berbagai perangkat dalam loT (Internet of Things). Kemampuannya untuk
mengintegrasikan berbagai fungsi dalam satu chip membuatnya menjadi komponen penting
dalam teknologi modern.

Secara keseluruhan, mikrokontroler adalah fondasi dari berbagai perangkat


elektronik yang kita gunakan setiap hari. Memahami apa itu mikrokontroler, fungsinya, dan
bagaimana penerapannya sangat penting dalam memahami teknologi masa kini dan masa
depan, serta dalam merancang solusi teknologi yang inovatif dan efisien.

1.6 Soal Latihan


1. Jelaskan fungsi dan kegunaan mikrokontroler?
2. Sebutkan berapa macam mikrokontroler yang digunakan dan jelaskan jenis yang
akan Anda pelajari?
3. Apa keunggulan AVR dibanding mikrokontroler lainnya?
4. Sebutkan beberapa aplikasi nyata di mana mikrokontroler ATmega32 dapat
digunakang akan Anda pelajari?

30
BAB II

AVR dan GPIO

2.1 Arsitektur Mikrokontroler AVR


2.1.1 Tipe Mikrokontroler AVR
Mikrokontroler AVR sudah menggunakan konsep arsitektur Harvard yang
memisahkan memori dan bus untuk data dan program, serta sudah menerapkan
single level pipelining. Selain itu mikrokontroler AVR juga mengimplementasikan
RISC (Reduced Instruction Set Computing) sehingga eksekusi instruksi dapat
berlangsung sangat cepat dan efisien.
Blok sistem mikrokontroler AVR adalah sebagai berikut.

Gambar 46. Diagram Blok AVR

Salah satu seri mikrokontroler AVR yang banyak menjadi andalan saat ini
adalah tipe ATtiny2313 dan ATmega8535. Seri ATtiny2313 banyak digunakan
untuk sistem yang relatif sederhana dan berukuran kecil. Berikut adalah feature-
feature mikrokontroler seri ATtiny2313.
 Kapasitas memori Flash 2 Kbytes untuk program
 Kapasitas memori EEPROM 128 bytes untuk data
 Maksimal 18 pin I/O
 8 interrupt
 8-bit timer

31
 Analog komparator
 On-chip oscillator
 Fasilitas In System Programming (ISP)
Sedangkan ATmega8535 banyak digunakan untuk sistem yang kompleks,
memiliki input sinyal analog, dan membutuhkan memori yang relatif lebih besar.
Berikut adalah feature-feature mikrokontroler seri ATmega8535.
 Memori Flash 8 Kbytes untuk program
 Memori EEPROM 512 bytes untuk data
 Memori SRAM 512 bytes untuk data
 Maksimal 32 pin I/O
 20 interrupt
 Satu 16-bit timer dan dua 8-bit timer
 8 channel ADC 10 bit
 Komunikasi serial melalui SPI dan USART
 Analog komparator
 4 I/O PWM
 Fasilitas In System Programming (ISP)

2.1.2 Memory Map Mikrokontroler

Gambar 47

Memori atmega terbagi menjadi tiga yaitu :


1. Memori Flash

32
Memori flash adalah memori ROM tempat kode-kode program
berada. Kata flash menunjukan jenis ROM yng dapat ditulis dan dihapus
secara elektrik. Memori flash terbagi menjadi dua bagian yaitu bagian
aplikasi dan bagian boot. Bagian aplikasi adalah bagian kode-kode
program apikasi berada. Bagian boot adalah bagian yang digunakan
khusus untuk booting awal yang dapat diprogram untuk menulis bagian
aplikasi tanpa melalui programmer/downloader, misalnya melalui
USART.
2. Memori Data
Memori data adalah memori RAM yang digunakan untuk keperluan
program. Memori data terbagi menjadi empat bagian yaitu : 32 GPR
(General Purphose Register) adalah register khusus yang bertugas untuk
membantu eksekusi program oleh ALU (Arithmatich Logic Unit), dalam
instruksi assembler setiap instruksi harus melibatkan GPR. Dalam bahasa
C biasanya digunakan untuk variabel global atau nilai balik fungsi dan
nilainilai yang dapat memperingan kerja ALU. Dalam istilah processor
komputer sahari-hari GPR dikenal sebagai “chace memory”. I/O register
dan Aditional I/O register adalah register yang difungsikan khusus untuk
mengendalikan berbagai pheripheral dalam mikrokontroler seperti pin
port, timer/counter, usart dan lain-lain. Register ini dalam keluarga
mikrokontrol MCS51 dikenal sebagi SFR (Special Function Register).
3. EEPROM
EEPROM adalah memori data yang dapat mengendap ketika chip
mati (off), digunakan untuk keperluan penyimpanan data yang tahan
terhadap gangguan catu daya.

33
2.1.3 Penjelasan Fungsi Pin Mikrokontroler AVR
IC mikrokontroler dikemas (packaging) dalam bentuk yang berbeda.
Namun pada dasarnya fungsi kaki yang ada pada IC memiliki persamaan.
Gambar salah satu bentuk IC seri mikrokontroler AVR ATmega8535 dapat
dilihat berikut.

Gambar 48. AVR Atmega 8535

Berikut adalah penjelasan fungsi tiap kaki.


A. Port A
Merupakan 8-bit directional port I/O. Setiap pinnya dapat
menyediakan internal pull-up resistor (dapat diatur per bit). Output buffer
Port A dapat memberi arus 20 mA dan dapat mengendalikan display LED
secara langsung. Data Direction Register port A (DDRA) harus disetting
terlebih dahulu sebelum Port A digunakan. Bit-bit DDRA diisi 0 jika ingin
memfungsikan pin-pin port A yang bersesuaian sebagai input, atau diisi 1 jika
sebagai output. Selain itu, kedelapan pin port A juga digunakan untuk
masukan sinyal analog bagi A/D converter.
B. Port B
Merupakan 8-bit directional port I/O. Setiap pinnya dapat
menyediakan internal pull-up resistor (dapat diatur per bit). Output buffer
Port B dapat memberi arus 20 mA dan dapat mengendalikan display LED
secara langsung.

34
Data Direction Register port B (DDRB) harus disetting terlebih dahulu
sebelum Port B digunakan. Bit-bit DDRB diisi 0 jika ingin memfungsikan
pin-pin port B yang bersesuaian sebagai input, atau diisi 1 jika sebagai output.
Pin-pin port B juga memiliki untuk fungsi-fungsi alternative khusus seperti
yang dapat dilihat dalam tabel berikut.

Port Fungsi
Pin Khusus

PB0 T0 = timer/counter 0 external counter input

PB1 T1 = timer/counter 0 external counter input

PB2 AIN0 = analog comparator positive input

PB3 AIN1 = analog comparator negative input

PB4 SS = SPI slave select input

PB5 MOSI = SPI bus master output / slave input

PB6 MISO = SPI bus master input / slave output

PB7 SCK = SPI bus serial clock


Table 2. Fungsi Pin B

C. Port C
Merupakan 8-bit directional port I/O. Setiap pinnya dapat
menyediakan internal pull-up resistor (dapat diatur per bit). Output buffer
Port C dapat memberi arus 20 mA dan dapat mengendalikan display LED
secara langsung. Data Direction Register port C (DDRC) harus disetting
terlebih dahulu sebelum Port C digunakan. Bit-bit DDRC diisi 0 jika ingin
memfungsikan pin-pin port C yang bersesuaian sebagai input, atau diisi 1 jika
sebagai output. Selain itu, dua pin port C (PC6 dan PC7) juga memiliki fungsi
alternatif sebagai oscillator untuk timer/counter 2.

35
D. Port D

Merupakan 8-bit directional port I/O. Setiap pinnya dapat


menyediakan internal pull-up resistor (dapat diatur per bit). Output buffer
Port D dapat memberi arus 20 mA dan dapat mengendalikan display LED
secara langsung. Data Direction Register port D (DDRD) harus disetting
terlebih dahulu sebelum Port D digunakan. Bit-bit DDRD diisi 0 jika ingin
memfungsikan pin-pin port D yang bersesuaian sebagai input, atau diisi 1 jika
sebagai output. Selain itu, pin-pin port D juga memiliki untuk fungsi-fungsi
alternatif khusus seperti yang dapat dilihat dalam tabel berikut.

Port Fungsi
Pin Khusus

PD0 RDX (UART input line)

PD1 TDX (UART output line)

PD2 INT0 ( external interrupt 0 input )

PD3 INT1 ( external interrupt 1 input )

PD4 OC1B (Timer/Counter1 output compareB match output)

PD5 OC1A (Timer/Counter1 output compareA match output)

PD6 ICP (Timer/Counter1 input capture pin)

PD7 OC2 (Timer/Counter2 output compare match output)


Table 3. Fungsi Pin D
E. RESET
pada pin 9 merupakan reset dari AVR. Jika pada pin ini diberi
masukan low selama minimal 2 machine cycle maka system akan di-reset.
F. XTAL1
XTAL1 adalah masukan ke inverting oscillator amplifier dan input
ke internal clock operating circuit.

36
G. XTAL2
XTAL2 adalah output dari inverting oscillator amplifier.
H. AVcc
Avcc adalah kaki masukan tegangan bagi A/D Converter. Kaki ini
harus secara eksternal terhubung ke Vcc melalui lowpass filter.
I. AREF
AREF adalah kaki masukan referensi bagi A/D Converter. Untuk
operasionalisasi ADC, suatu level tegangan antara AGND dan Avcc harus
dibeikan ke kaki ini.
J. AGND
AGND adalah kaki untuk analog ground. Hubungkan kaki ini ke
GND, kecuali jika board memiliki anlaog ground yang terpisah.

Rangkaian Sistem Minimum AVR 8535Sistem minimum (sismin)


mikrokontroler adalah rangkaian elektronikminimum yang diperlukan
untuk beroperasinya IC mikrokontroler. Sismin inikemudian bisa
dihubungkan dengan rangkaian lain untuk menjalankan fungsitertentu.
Di keluarga mikrokontroler AVR, seri 8535 adalah salah satu seri
yangsangat banyak digunakan.

Untuk membuat rangkaian sismin Atmel AVR 8535 diperlukan


beberapa komponen yaitu:

 IC mikrokontroler ATmega8535
 1 XTAL 4 MHz atau 8 MHz (XTAL1)
 kapasitor kertas yaitu dua 22 pF (C2 dan C3) serta 100 nF (C4)
 1 kapasitor elektrolit 4.7 uF (C12) 2 resistor yaitu 100 ohm (R1) dan 10
Kohm(R3)
 1 tombol reset pushbutton (PB1)
 Selain itu tentunya diperlukan power suply yang bisa memberikan
tegangan 5VDC.

37
Rangkaian sistem minimum ini sudah siap untuk menerima sinyal
analog (fasilitasADC) di port A. Rangkaiannya dapat dilihat dalam Gambar 49.

Gambar 49. Sistem Minimum Mikrokontroler ATMega


8535

Gambar 50. Status Register ATMega8

Pada AVR status register mengandung beberapa informasi mengenai


hasil dari kebanyakan hasil eksekusi instruksi aritmatik. Informasi ini
digunakan untuk altering arus program sebagai kegunaan untuk meningkatkan
performa pengoperasian. Register ini di-update setelah operasi ALU
(Arithmetic Logic Unit) hal tersebut seperti yang tertulis dalam datasheet
khususnya pada bagian Instruction Set Reference. Dalam hal ini untuk
beberapa kasus dapat membuang penggunaan kebutuhan instrukasi
perbandingan yang telah didedikasikan serta dapat menghasilkan peningkatan
dalam hal kecepatan dan kode yang lebih sederhana dan singkat. Register ini
tidak secara otomatis tersimpan ketika memasuki sebuah rutin interupsi dan
juga ketika menjalankan sebuah perintah setelah kembali dari interupsi.
Namun hal tersebut harus dilakukan melalui software. Berikut adalah gambar
status register.

38
 Bit 7(I)
Merupakan bit Global Interrupt Enable. Bit ini harus di-set agar semua
perintah interupsi dapat dijalankan. Untuk perintah interupsi individual
akan di jelaskan pada bagian yang lain. Jika bit ini di-reset, maka semua
perintah interupsi baik yang individual maupun yang secara umum akan
di abaikan. Bit ini akan dibersihkan atau cleared oleh hardware setelah
sebuah interupsi di jalankan dan akan di-set kembali oleh perintah RETI.
Bit ini juga dapat diset dan di-reset melalui aplikasi dan intruksi SEI dan
CLL.
 Bit 6(T)
Merupakan bit Copy Storage. Instruksi bit Copy Instructions BLD (Bit
Load) and BST (Bit Store) menggunakan bit ini sebagai asal atau tujuan
untuk bit yang telah dioperasikan. Sebuah bit dari sebuah register dalam
Register File dapat disalin ke dalam bit ini dengan menggunakan
instruksi BST, dan sebuah bit di dalam bit ini dapat disalin ke dalam bit
di dalam register pada Register File dengan menggunakan perintah BLD.
 Bit 5(H)
Merupakan bit Half Carry Flag. Bit ini menandakan sebuah Half Carry
dalam beberapa operasi aritmatika. Bit ini berfungsi dalam aritmatika
BCD.
 Bit 4(S)
Merupakan Sign bit. Bit ini selalu merupakan sebuah ekslusif di antara
Negative Flag (N) dan two’s Complement Overflow Flag (V).
 Bit 3(V)
Merupakan bit Two’s Complement Overflow Flag. Bit ini menyediakan
fungsi aritmatika dua komplemen.
 Bit 2(N)
Merupakan bit Negative Flag. Bit ini mengindikasikan sebuah hasil
negative di dalam sebuah fungsi logika atai aritmatika.
 Bit 1(Z)
Merupakan bit Zero Flag. Bit ini mengindikasikan sebuah jasil nol “0”
dalan sebuah fungsi aritmatika atau logika.

39
 Bit 0(C)
Merupakan bit Carry Flag. Bit ini mengindikasikan sebuah Carry atau
sisa dalam sebuah aritmatika atau logika.

2.2 GPIO
2.2.1 Pengertian GPIO
GPIO adalah pin atau terminal tambahan input output yang khusus dipasang
diboard raspberry pi untuk koneksi ke perangkat luar, gambar dilingkari merah, biasa
disebut sebagai header GPIO. Untuk bisa memanfaatkannya kita hanya butuh
mengenal fungsi pin dan sedikit settingan dari sisi program. GPIO di raspi ada yang
memiliki 26 pin dan 40 pin tergantung model dari raspi.

Gambar 51

GPIO dimanfaatkan sebagai alternatif komunikasi raspi ke dunia luar persis


seperti USB port atau Ethernet. Yang membedakannya adalah lebih flexible dalam
pengkabelan. Melalui terminal GPIO kita bisa menghidupkan lampu LED, memutar
dinamo, membaca suhu dari sensor dan banyak lagi. Isi utama dari header GPIO
adalah.
1. Power supply (3.3 V dan 5 V, masing masing 2 set)
2. UART ( Universal asynchronous receiver transmitter, 1 set)
3. SPI (Serial Peripheral Interface)
4. I2C (Inter-Integrated Circuit) -EEPROM
5. GPIO (General Purpose Input Output)

40
6. PWM (Pulse width modulation)

Gambar 52. Pin GPIO RASPBERRY PI 3

2.2.2 Konfigurasi pin GPIO


Header GPIO memiliki pin isi 26 dan isi 40, keduanya memiliki
konfigurasi yang sama. Pin gpio memiliki dua sistem penomoran
 Broadcom (BCM) sistem penomoran di software.

 GPIO Board, nomor yang langsung tampak di boar PCB.

Kita hanya boleh menggunakan salah satu sistem penomoran. Untuk


menentukan pilihan dibutuhkan inisialisasi, yaitu dengan mendeklarasikan sistem
penomoran di script program. Tabel dibawah menunjukkan perbedaan penomoran
BCM, pin di board dan Wiring pi.

Gambar 53. Raspberry Pi GPIO Header

41
Pin GPIO juga dapat diakses untuk mengendalikan output perangkat keras,
seperti LED, motor, dan relay. Adapun input, Raspberry Pi dapat membaca status
tombol, switch, dan cepat, atau dapat membaca sensor, seperti suhu, cahaya, dan
gerak. Dalam Bahasa pemrograman AVR kali ini dengan menggunakan Python,
dapat dijelaskan sebagai berikut:
Python merupakan bahasa pemrograman yang berorientasi obyek dinamis
yang paling mudah untuk dipelajari sehingga dapat digunakan untuk bermacam-
macam pengembangan perangkat lunak. Python menyediakan dukungan yang kuat
untuk integrasi dengan bahasa pemrograman lain dan alat-alat bantu lainnya.
Python hadir dengan pustaka-pustaka standar yang dapat diperluas [10]. Beberapa
fitur yang dapat dikatakan sebagai keunggulan bahasa pemrograman Python
adalah :
1. Python sangat kuat dan cepat
2. Python dapat berjalan baik dengan bahasa pemrograman lain
3. Python dapat berjalan untuk banyak sistem operasi
4. Python mudah dipelajari
5. Python terbuka

2.3 Percobaan Rangkaian Menggunakan Atmega 32


2.3.1 Lampu Kedip
Berikut merupakan contoh rangkaian lampu kedip :

Gambar 54. Rangkaian Lampu Kedip

42
Berikut merupakan contoh pemrograman dari rangkaian lampu kedip :

Program 1. Program Lampu Kedip

Berikut merupakan penjelasan dari kode diatas:


• #include <avr/io.h> dan #include <util/delay.h> adalah inklusi yang
diperlukan untuk mengakses fungsi dan registri AVR.
• DDRB |= (1 << PB0); mengatur pin PB0 sebagai output.
• Loop while (1) adalah loop tak terbatas yang akan menjalankan
program utama terus-menerus.
• PORTB |= (1 << PB0); mengatur PB0 ke logika 1 (menyalakan LED).
• _delay_ms(1000); adalah fungsi tunda yang akan membuat program
menunggu selama 1 detik.
• PORTB &= ~(1 << PB0); mengatur PB0 kembali ke logika 0
(mematikan LED).
Kode di atas akan membuat lampu LED yang terhubung ke pin PB0
berkedip dengan interval 1 detik (1 detik menyala dan 1 detik mati). Anda dapat
mengganti nilai delay untuk mengubah kecepatan berkedipnya lampu sesuai
dengan kebutuhan Anda. Pastikan mikrokontroler Anda sudah diinisialisasi dan
dikonfigurasi dengan benar sebelum menjalankan kode ini.

43
2.3.2 Led Menyala Ketika Tombol Ditekan
Berikut merupakan contoh rangkaian jika tombol ditekan led akan
menyala:

Gambar 55. Rangkaian Led On jika Button ditekan

Berikut merupakan contoh pemrograman rangkaian jika tombol ditekan led


akan menyala :

Program 2. Led On jika push button ditekan

Berikut merupakan penjelasan dari kode diatas:


Gambar 56.
1. Rangkaian Led Menyala
Inklusi Library: secara kita
Pertama, BergantianProgram 3. Leddua
perlu mengimpor On jika
library AVR
push button ditekan
standar yang penting, yaitu avr/io.h untuk mengakses dan
mengendalikan pin pada mikrokontroler ATMega32 serta
Gambar 57. Rangkaian Led Menyala secara BergantianProgram 4. Led On jika
util/delay.h untuk
pushmenghasilkan
button ditekan penundaan (delay) dalam kode.
2. Mendefinisikan Konstanta: Kita mendefinisikan beberapa
konstanta yang akan digunakan dalam program:
Gambar 58. Rangkaian Led Menyala secara BergantianProgram 5. Led On jika
push button ditekan

Program 6. Led On jika push button ditekan


44

Gambar 59. Rangkaian Led Menyala secara BergantianProgram 7. Led On jika


push button ditekan
 BUTTON_PIN: Ini adalah pin yang digunakan untuk
tombol (dalam hal ini, PB 2).
 LED_PIN: Ini adalah pin yang digunakan untuk lampu LED
(dalam hal ini, PD0).
3. Inisialisasi Pin: Kita mengatur penggunaan pin dengan langkah-
langkah berikut:
 DDRB &= ~BUTTON_PIN;: Menjadikan pin tombol
sebagai input dengan mengubah bit terkait di DDRD
menjadi 0 (input).
 DDRD |= LED_PIN;: Menjadikan pin LED sebagai output
dengan mengubah bit terkait di DDRD menjadi 1 (output).
 PORTB |= BUTTON_PIN;: Mengaktifkan pull-up resistor
internal untuk pin tombol dengan mengatur bit terkait di
PORTD menjadi 1 (logika tinggi).
4. Loop Utama (Main Loop): Program utama berada dalam loop tak
terbatas (while (1)) yang selalu berjalan. Di dalam loop ini:
 if (!(PINB & BUTTON_PIN)): Ini adalah pernyataan
kondisional yang memeriksa apakah tombol ditekan. Ketika
tombol ditekan, input pada pin tombol (PINB) akan menjadi
logika rendah (0) karena pull-up resistor aktif, dan kondisi
ini akan terpenuhi.
 PORTD |= LED_PIN;: Jika tombol ditekan, maka kita
mengatur pin LED (PORTD) menjadi logika tinggi (1), yang
akan menyalakan lampu LED.
 else: Jika tombol tidak ditekan, maka kita mengatur pin LED
menjadi logika rendah (0), yang akan mematikan lampu
LED.
Kode ini akan terus berjalan dalam loop utama dan memeriksa status
tombol secara terus-menerus. Ketika tombol ditekan, lampu LED akan menyala,
dan saat tombol dilepaskan, lampu LED akan mati. Hal ini terjadi karena kita
menggunakan pull-up resistor internal pada pin tombol untuk menentukan
statusnya (ditekan atau tidak).

45
2.3.3 Rangkaian led menyala bergantian
Berikut merupakan contoh rangkaian led menyala secara bergantian :
Berikut merupakan contoh pemrograman rangkaian led menyala
bergantian :

Gambar 56. Rangkaian Led On jika Button ditekan

Berikut merupakan penjelasan dari kode diatas :

Program 3. Led Menyala secara Bergantian

1. Inklusi Library:Sama seperti pemrograman sebelumnya juga kita


memasukkan library yang diperlukan.
2. Mendefinisikan Konstanta: Kita mendefinisikan konstanta yang akan
digunakan dalam program:
 AVR (I/O): Sebagai masukkan input dan output dalam
pemrograman.
 LED_COUNT: Jumlah LED yang akan digunakan dalam
rangkaian.

46
 DELAY_MS: Waktu penundaan antara perubahan status LED
(dalam milidetik).
 WHILE: Sebagai pengulang dalam pemrograman.
 INT MAIN: Fungsi utama dalam sebuah program.
3. Inisialisasi Pin: Kita mengatur semua pin pada DDRB =
0xFF;.sebagai output.
4. Variabel led_state: Variabel ini digunakan untuk menyimpan status
LED yang sedang menyala.
5. Loop Utama (Main Loop): Program utama berada dalam loop tak
terbatas (while (1)) yang selalu berjalan. Di dalam loop ini:
 PORTB |=(1<<PB0): Mengatur status LED. Ini akan
mengirim logika 1 yang membuat status LED menyala.
 PORTB &=~(1<<PB0): Sama dengan sebelumnya, yang
membedakan jika ini akan mengirim logika 0 yang membuat
status LED akan mati.
 Ddelay_ms(DELAY_MS);: Menyebabkan penundaan selama
DELAY_MS milidetik sebelum mengganti status LED
berikutnya. Dan bisa mengatur periode waktunya juga.
 Led_state <<= 1;: Mengubah nilai led_state yang semula
(berlogika 1 menjadi berlogika 0) yang membuat status LED
menjadi nyala dan mati secara bergantian dari LED awal
sampai akhir dan kembali lagi ke awal sampai seterusnya.

Kode ini akan membuat LED-LED yang terhubung ke PORTB secara


bergantian menyala satu per satu dengan penundaan waktu tertentu di antara
perubahan status LED.

47
BAB III

SEVEN SEGMENT

3.1 Mengenal Seven Segment


3.1.1 Pengertian Seven Segment
Seven Segment Display (7 Segment Display) dalam bahasa Indonesia disebut
dengan Layar Tujuh Segmen adalah komponen Elektronika yang dapat menampilkan
angka desimal melalui kombinasi-kombinasi segmennya. Seven Segment Display
pada umumnya dipakai pada Jam Digital, Kalkulator, Penghitung atau Counter
Digital, Multimeter Digital dan juga Panel Display Digital seperti pada Microwave
Oven ataupun Pengatur Suhu Digital . Seven Segment Display pertama
diperkenalkan dan dipatenkan pada tahun 1908 oleh Frank. W. Wood dan mulai
dikenal luas pada tahun 1970-an setelah aplikasinya pada LED (Light Emitting
Diode).
Seven Segment Display memiliki 7 Segmen dimana setiap segmen
dikendalikan secara ON dan OFF untuk menampilkan angka yang diinginkan.
Angka-angka dari 0 (nol) sampai 9 (Sembilan) dapat ditampilkan dengan
menggunakan beberapa kombinasi Segmen. Selain 0 – 9, Seven Segment Display
juga dapat menampilkan Huruf Hexadecimal dari A sampai F. Segmen atau elemen-
elemen pada Seven Segment Display diatur menjadi bentuk angka “8” yang agak
miring ke kanan dengan tujuan untuk mempermudah pembacaannya. Pada beberapa
jenis Seven Segment Display, terdapat juga penambahan “titik” yang menunjukan
angka koma decimal. Terdapat beberapa jenis Seven Segment Display, diantaranya
adalah Incandescent bulbs, Fluorescent lamps (FL), Liquid Crystal Display (LCD)
dan Light Emitting Diode (LED).

3.1.2 Seven Segment LED


Seven Segment Display sering dipakai oleh para peminat Elektronika adalah
7 bagian yang memakai LED (Light Emitting Diode) sebagai penerangnya. LED 7
Segmen tersebut biasanya mempunyai 7 Segmen atau elemen garis dan 1 segmen
titik yang menandakan “koma” Desimal. Jumlah semua segmen atau elemen LED
sebenarnya adalah 8.

48
Cara kerjanya juga sangat gampang, ketika elemen tersebut diberikan
gelombang listrik, maka Display akan menampilkan angka atau digit yang
diinginkan sesuai dengan kombinasi yang diberikan. LED 7 Segmen terbagi menjado
dua jenis yaitu “LED 7 Segmen common Cathode” dan “LED 7 Segmen common
Anode”.
3.1.3 Tipe Seven Segment LED
Terdapat 2 Jenis LED 7 Segmen, diantaranya adalah “LED 7 Segmen
common Cathode” dan “LED 7 Segmen common Anode”.
1. LED 7 Segmen Tipe Common Cathode (Katoda)
Pada LED 7 Segmen jenis Common Cathode (Katoda), Kaki Katoda
pada semua segmen LED adalah terhubung menjadi 1 Pin, sedangkan
Kaki Anoda akan menjadi Input untuk masing-masing Segmen LED.
Kaki Katoda yang terhubung menjadi 1 Pin ini merupakan Terminal
Negatif (-) atau Ground sedangkan Signal Kendali (Control Signal)
akan diberikan kepada masing-masing Kaki Anoda Segmen LED.

Gambar 57

2. LED 7 Segmen Tipe Common Anode (Anoda)


Pada LED 7 Segmen jenis Common Anode (Anoda), Kaki Anoda
pada semua segmen LED adalah terhubung menjadi 1 Pin, sedangkan
kaki Katoda akan menjadi Input untuk masing-masing Segmen LED.
Kaki Anoda yang terhubung menjadi 1 Pin ini akan diberikan
Tegangan Positif (+) dan Signal Kendali (control signal) akan
diberikan kepada masing-masing Kaki Katoda Segmen LED.

49
Gambar 58

3.1.4 Prinsip Kerja Dasar Driver System pada LED 7 Segmen


Berikut ini adalah Blok Diagram Dasar untuk mengendalikan LED 7
Segmen:

Gambar 59

Blok Dekoder pada diagram diatas mengubah sinyal Input yang diberikan
menjadi 8 jalur yaitu “a” sampai “g” dan poin decimal (koma) untuk meng-ON-kan
segmen sehingga menghasilkan angka atau digit yang diinginkan. Contohnya, jika
output dekoder adalah a, b, dan c, maka Segmen LED akan menyala menjadi angka
“7”. Jika Sinyal Input adalah berbentuk Analog, maka diperlukan ADC (Analog to
Digital Converter) untuk mengubah sinyal analog menjadi Digital sebelum masuk ke
Input Dekoder. Jika Sinyal Input sudah merupakan Sinyal Digital, maka Dekoder
akan menanganinya sendiri tanpa harus menggunakan ADC.
Fungsi daripada Blok Driver adalah untuk memberikan arus listrik yang
cukup kepada Segmen/Elemen LED untuk menyala. Pada Tipe Dekoder tertentu,
Dekoder sendiri dapat mengeluarkan Tegangan dan Arus listrik yang cukup untuk
menyalakan Segmen LED maka Blok Driver ini tidak diperlukan. Pada umumnya
Driver untuk menyalakan 7 Segmen ini adalah terdiri dari 8 Transistor Switch pada
masing-masing elemen LED.

50
3.1.5 Tabel Pengaktifan Seven Segment Display

Gambar 60

3.2 Display 2 Digit Seven Segment

Gambar 61. Seven Segment 2 Digit

51
Program 4. Coding Program 2 Digit

3.3 Display Seven Segment 3 Digit Common Anoda


Berikut Program Counter Via Tombol Up/Down dan Display Seven
Segment 3 Digit Common Anoda.

Gambar 62. Push Naik

52
Gambar 63. Push Turun

Gambar 64. Coding Program 3 DigitGambar 65. Push Turun

Program 5. Coding Program 3 Digit

53
BAB IV

SEVEN SEGMENT 74595 dan TIMER

4.1 Mengenal 74595


4.1.1 Definisi 74HC595
74HC595 adalah komponen yang memiliki fungsi sebagai shift register
serial to parallel 8-bit, yaitu berarti mengubah inputan berupa data serial ke
bentuk output paralel 8bit. Komponen ini sering dimanfaatkan untuk ekspansi
port pada mikrokontroler atau fungsi lainnya. Intinya dapat menghemat port
karena kita hanya membutuhkan 2 atau 3 pin saja untuk menghasilkan 8 pin baru,
bahkan kelipatan 8 yang sangat banyak jika digabungkan.
Dalam pengaplikasiannya IC ini seringkali digunakan untuk membuat
matrix led yang membutuhkan banyak sekali port output untuk mengendalikan
tiap kolom dotmatrix. Namun perlu diingat bahwa kecepatan data serial dan
paralel berbeda. Jika paralel data semisal 8bit dikirimkan akan langsung terkirim
karena paket dikirim 8bit bersamaan. Berbeda dengan data serial yang harus
bergantian sehingga memerlukan waktu penundaan per bit yang dikirimkan.
Pin inti dalam IC ini adalah OE (Output Enable), MR (Reset), DS (Data),
SH_CP (Clock), ST_CP (Leached) dan Q0 s/d Q7 untuk outputnya dapat dilihat
pada slide gambar. Untuk menggunakan IC ini dengan cara memberi tegangan 5v
pada kaki 16 dan GND pada kaki 8. Memberi logika 1 pada MR agar tidak tereset,
dan memberi logika 0 pada EO. Data yang akan dikirim diset di pin DS (Data)
misal kita ingin mengirimkan data 0 maka pin DS diberi logika 0, sedangkan
SH_CP dan ST_CP dapat digabung untuk menjalankan clock. Setiap clock terjadi
akan menggeset data ke output didepannya. Misalnya pada clock pertama kondisi
pin DS adalah 1 dan pada saat clock kedua kondisinya 0 maka data 1 tadi
diberikan ke Q1 dan kondisi terbaru yaitu logika 0 akan diberikan Q0, dan
seterusnya.

54
4.1.2 Fitur 74HC59

Gambar 66

El 74HC595 adalah IC yang cukup mudah. Ini adalah register geser 8-bit,
yaitu memiliki 8 sandal jepit untuk menyimpan 8 bit. Pin-out atau pin chip ini
dapat dilihat pada gambar di atas, dengan Vcc dan GND untuk daya, dan kemudian
yang ditandai sebagai Q yang merupakan datanya. Sisanya sesuai dengan sinyal
jam / kontrol.
Itu input memilikinya secara seri dan output secara paralel. Oleh karena
itu, dengan satu masukan, 8 keluaran ini dapat dikontrol secara bersamaan. Anda
hanya membutuhkan tiga pin dari mikrokontroler bekas (misal: Arduino) untuk
mengendarainya. Itu adalah Latch, Clock dan Data. Latch adalah pin 13 dalam
kasus ini, meskipun mungkin berbeda, jadi Anda harus berkonsultasi dengan
lembar data pabrikan Anda. Jam bisa 11 atau lainnya, dan bit datanya 14.
La tanda jam itu akan memberi makan sirkuit untuk menentukan ketukan
atau ritme di mana itu akan bekerja. Keluaran data akan mengubah perilaku chip.
Misalnya, ketika mengubah dari RENDAH ke TINGGI dan menghasilkan pulsa
jam baru dengan melewatkan jam dari TINGGI ke RENDAH, yang dicapai adalah
mencatat posisi saat ini di mana perpindahan berada, nilai yang dimasukkan oleh
pin data ini. Jika Anda mengulang ini 8 kali, maka Anda akan merekam semua 8
posisi dan menyimpan satu byte (Q0-Q7).

55
4.1.3 Datasheet 74HC595 dan Rangkaian
Berikut adalah Datasheet 74HC595.

Gambar 67

Berikut merupakan contoh rangkaian 74HC595.

Gambar 68. Rangkaian 74HC595

56
Untuk Source Code rangkaian IC 74595 sebagai berikut :

Program 10. Pemrograman IC 74595

4.2 Seven Segment Display dengan IC 74HC595


Untuk menghemat penggunaan dari pin Arduino dalam mengontrol seven
segment display, dapat digunakan component IC shift register. Component yang
bisa digunakan salah satunya adalah Component IC 74HC595 adalah IC shift
register yang dilengkapidengan media penyimpanan data.
Contoh pengaplikasian IC 74595 untuk 7 – Segment menggunakan proteus
sebagai berikut :

Gambar 69. Rangkaian IC 74595 Untuk 7 - Segment

57
Untuk Source Code rangkaian IC 74595 untuk 7 – Segment sebagai berikut :

Program 11. Source Code Rangkaian IC 74595 Untuk 7 - Segment

58
4.3 Timer Interupsi untuk Refresh Seven Segment
Contoh pengaplikasian Timer Interupsi untuk Refresh 7 - Segment
menggunakan proteus sebagai berikut :

Gambar 70. Rangkaian Timer Interupsi Untuk Refresh 7 - Segment

Untuk Source Code rangkaian IC 74595 Timer Interupsi untuk Refresh 7 -


Segment sebagai berikut :

59
Program 12. Source Code rangkaian IC 74595 Timer Interupsi untuk
Refresh 7 - Segment

4.4 Aplikasi Seven Segment 8 Digit, 4 Digit Counter Up dan 4 Digit Counter Down
Contoh pengaplikasian Seven Segment 8 Digit, 4 Digit Counter Up dan 4
Digit Counter Down menggunakan proteus sebagai berikut :

Program 13. 4.4 Aplikasi Seven Segment 8 Digit, 4 Digit Counter Up dan 4 Digit Counter
Down

60
BAB V

Display LCD Teks HD44780

5.1 Mengenal LCD Teks HD44780


5.1.1 Definsi LCD
LCD adalah display yang menggunakan pemantulan cahaya dari luar sebagai
tampilannya. LCD (Liquid Crystal Display) Dot-Matrix HD44780 adalah salah satu
jenis LCD dot-matrik dengan 4×20 karakter dan dikendalikan oleh kontroler hitachi
HD44780. LCD (Liquid Crystal Display) Dot-Matrix HD44780 ini dapat
menampilkan karakter angka numeric, huruf alphabet, huruf jepang dan simbol.
Kedua komponen tersebut dikemas dalam suatu PCB sehingga membentuk satu modul
yang dapat langsung digunakan. Maka ini mempunyai delapan jalur data (DB0 s/d
DB7) dan tiga jalur control (RS, R/W, E). Modul ini menggunakan tegangan Vcc
sebesar +5V. Dapat dilihat gambar dibawah ini merupakan LCD HD44780

Gambar 71. LCD HD44780

5.1.2 Diagram Blok dan Cara Kerja LCD HD44780


Diagram blok pada LCD HD44680 bisa dilihat pada Gambar 72. dimana
pada gambar tersebut terdapat beberapa pin yaitu pin E, pin R/W, pin RS, pin Vee,
pin Vcc, pin Vss. Pin- pin tersebut memiliki beberapa fungsi yang dimana bisa
dilihat pada Tabel 4. Untuk pin DB0- DB7 terdapat dua arah panah dimana hal
tersebut mengindikasikan bahwa pin tersebut dapat menjalankan 2 perintah yaitu
read dan write.

61
Gambar 72. Block diagram HD44780

Table 5. . Urutan Pin Konektor, Simbol, dan Kegunannya

Table 4. Urutan Pin Konektor, Simbol, dan Kegunannya

HD44870 mempunyai dua register 8-bit yaitu Register Instruksi (IR) dan
Register Data (DR). Register IR berfungsi untuk menyimpan kode perintah seperti
Clear Display, Geser Cursor dan menyimpan alamat informasi untuk Display Data
RAM (DDRAM) dan karakter generator (CGRAM). Register IR dapat ditulisi
mikroprosesor tetapi tidak dapat dibaca Register Data (DR) berfungsi menyimpan
sementara data yang dituliskan ke DDRAM atau CGRAM dan juga menyimpan
sementara data yang dibaca dari DDRAM atau CGRAM. Data dari mikroprosesor
yang dituliskan ke DR dengan operasi internal secara otomatis dituliskan ke
DDRAM atau CGRAM. Register DR juga digunakan untuk menyimpan data yang
dibaca dari DDRAM dan CGRAM. Saat alamat dituliskan pada register IR dengan
operasi internal, data dari DDRAM atau CGRAM dibaca ke register DR.
Pentransferan data ke mikroprosesor selesai setelah mikroprosesor membaca DR.

62
Setelah mikroprosesor membaca DR, data di dalam DDRAM dan CGRAM pada
alamat berikutnya dikirim ke DR untuk pembacaan mikroprosesor berikutnya

LCD HD44780 adalah salah satu jenis tampilan karakter yang sering
digunakan dalam berbagai aplikasi elektronik, seperti alat-alat pengukur, peralatan
rumah tangga, dan produk-produk lainnya. Ini adalah jenis tampilan karakter yang
menggunakan teknologi Liquid Crystal Display (LCD) dan dikendalikan oleh driver
HD44780. Berikut adalah cara kerja umum dari LCD HD44780 :
1. Matriks Karakter: LCD HD44780 terdiri dari matriks karakter, yang
biasanya berupa beberapa baris dan kolom karakter. Contoh umum
adalah 16x2, yang berarti memiliki 2 baris dengan masing-masing baris
memiliki 16 karakter. Kontrol Interface: Untuk mengendalikan LCD
HD44780, mikrokontroler atau perangkat lainnya perlu terhubung ke
LCD melalui antarmuka kontrol. Antarmuka ini biasanya terdiri dari
beberapa kabel, termasuk kabel untuk daya (VCC dan GND), kabel
untuk transfer data (sering disebut sebagai kabel data), dan kabel kontrol
(seperti RS, RW, dan E).
2. RS (Register Select): Sinyal RS digunakan untuk memilih apakah data
yang dikirim ke LCD adalah instruksi kontrol atau data karakter. Ketika
RS berada pada tingkat logika tinggi, data yang dikirim akan dianggap
sebagai karakter yang akan ditampilkan di layar. Ketika RS berada pada
tingkat logika rendah, data yang dikirim dianggap sebagai instruksi
kontrol untuk mengendalikan LCD.
3. RW (Read/Write): Sinyal RW digunakan untuk menunjukkan apakah
operasi yang akan dilakukan adalah operasi baca atau tulis. Biasanya,
dalam aplikasi umum, RW selalu diatur ke tingkat logika rendah (tulis)
karena kita ingin mengirim data ke LCD untuk ditampilkan.
4. E (Enable): Sinyal E (Enable) digunakan untuk memberi tahu LCD
bahwa data yang dikirim sedang dikirim. Ketika E naik dari rendah ke
tinggi, LCD membaca data yang ada di kabel data dan menjalankan
instruksi atau menampilkan karakter yang sesuai.
5. Instruksi dan Karakter: Instruksi kontrol yang dikirim ke LCD HD44780
dapat mencakup perintah seperti menghapus layar, mengatur posisi
kursor, dan mengaktifkan atau menonaktifkan berkedipnya kursor.

63
Karakter yang dikirim akan ditampilkan di posisi yang saat ini diatur oleh
instruksi.
6. Sinyal Kabel Data: Kabel data adalah tempat di mana karakter atau
instruksi dikirimkan ke LCD. Biasanya, kabel data terdiri dari 8 bit data,
tetapi dalam mode 4-bit, hanya 4 bit data yang digunakan.
7. Tampilan: LCD HD44780 akan menampilkan karakter atau teks sesuai
dengan data yang dikirim kepadanya. Karakter atau teks dapat
ditampilkan di lokasi yang sesuai di layar berdasarkan instruksi kontrol.

Selain fungsi-fungsi dasar di atas, HD44780 juga mendukung berbagai fitur


tambahan seperti pengaturan kontras layar, pengaturan pencahayaan latar belakang
(jika ada), dan lainnya, tergantung pada spesifikasi dan implementasi masing-masing
LCD HD44780. Prinsip dasar ini membantu dalam mengendalikan dan menampilkan
teks atau karakter pada LCD HD44780 dalam berbagai aplikasi.

5.2 Cara Menyambung ke Mikrokontroler

Gambar 73. Penyambungan ke dalam Mikrokontroler

Dapat dijelaskan dari gambar diatas tentang cara menyambungkan Atmega8


ke dalam LCD:
 Kaki PortD 0 dihubungkan ke dalam pin RS LCD
 Kaki PortD 1 dihubungkan ke dalam pin RW LCD
 Kaki PortD 2 Dihubungkan ke dalam pin EN LC

64
 Kaki PortD 3 dihubungkan ke dalam pin D4 LCD
 Kaki PortD 4 dihubungkan ke dalam pin D5 LCD
 Kaki PortD 5 dihubungkan ke dalam pin D6 LCD
 Kaki PortD 6 dihubungkan ke dalam pin D7 LCD

5.3 Board Adapter I2C untuk LCD

Gambar 74. Adapter l2C

Untuk menghubungkan LCD karakter, seperti HD44780, ke sebuah


mikrokontroler atau perangkat lain melalui antarmuka I2C (Inter-Integrated Circuit),
Anda memerlukan modul atau board adapter I2C yang biasanya disebut "I2C LCD
backpack" atau "I2C LCD module". Board ini menyederhanakan penghubungan LCD
ke perangkat mikrokontroler Anda dengan mengganti kabel data yang kompleks
dengan 48 koneksi I2C yang lebih sederhana. Berikut adalah langkah-langkah umum
untuk menghubungkan LCD HD44780 ke sebuah board adapter I2C:
1. Siapkan LCD HD44780: Pastikan Anda telah memiliki LCD
HD44780 yang ingin Anda hubungkan. LCD ini harus memiliki
konektor yang sesuai atau dapat dihubungkan dengan soldering.
2. Siapkan Board Adapter I2C: Beli atau siapkan board adapter I2C yang
kompatibel dengan LCD HD44780 Anda. Beberapa contoh board
adapter yang populer adalah PCF8574, PCF8574A, MCP23008, atau
sejenisnya.
3. Hubungkan LCD ke Board Adapter: Solder atau hubungkan pin LCD
ke board adapter I2C. Koneksi yang umum termasuk VCC (daya),

65
GND (ground), SDA (Serial Data), dan SCL (Serial Clock). Pastikan
koneksi sesuai dengan dokumentasi LCD dan board adapter Anda.
4. Hubungkan Board Adapter I2C ke Mikrokontroler: Sambungkan
kabel I2C dari board adapter I2C ke mikrokontroler Anda. Ini
biasanya melibatkan kabel SDA dan SCL, serta koneksi daya dan
ground yang sesuai.
5. Pasang Library atau Driver: Untuk mengendalikan LCD melalui I2C,
Anda perlu mengunduh dan menginstal library atau driver yang sesuai
dengan mikrokontroler Anda. Library ini akan membantu Anda
berkomunikasi dengan LCD melalui protokol I2C.
6. Inisialisasi LCD: Setelah menghubungkan semua komponen dan
menginstal library, Anda perlu melakukan inisialisasi LCD. Ini
biasanya melibatkan pengaturan alamat I2C yang benar dan
konfigurasi lainnya sesuai dengan board adapter dan LCD Anda.
7. Tulis Kode: Tulis kode program yang sesuai untuk mengirim perintah
dan data ke LCD melalui koneksi I2C. Dengan menggunakan library
atau driver yang tepat, Anda dapat dengan mudah mengendalikan
LCD dan menampilkan teks atau karakter sesuai kebutuhan.
8. Uji LCD: Uji koneksi dan fungsi LCD dengan menjalankan program
Anda. Pastikan teks atau karakter ditampilkan dengan benar di layar
LCD.

Board adapter I2C untuk LCD memungkinkan Anda untuk mengendalikan


LCD dengan lebih mudah dan efisien menggunakan hanya dua kabel (SDA dan SCL)
daripada menghubungkan banyak kabel data secara langsung. Ini sangat berguna
dalam aplikasi di mana pin mikrokontroler terbatas atau untuk menyederhanakan 49
koneksi fisik.

5.4 Library dan Cara Menggunakan


Perpustakaan (Library) adalah paket kode (kebanyakan fungsi) yang dapat
digunakan untuk melakukan tugas pemrograman tertentu. Perpustakaan membuat
pemrograman di Arduino jauh lebih mudah. Mereka menyederhanakan dan
mengurangi jumlah kode yang diperlukan dalam program Anda. Ribuan perpustakaan
Arduino tersedia untuk diunduh secara gratis, untuk berbagai tugas pemrograman
66
seperti mengontrol tampilan LCD, mengemudi servos, sensor membaca dan banyak
lagi. Cara menggunakan library pada mikrokontroller AVR sebagai berikut.
1. Pertama, kita harus mempunyai file library yang akan kita gunakan ke
project kita. Bisa dilihat gambar dibawah ini

Gambar 75. File Library

2. Setelah itu kita buka lembar kerja avr yang ada di proteus, pada bagian
kiri sebelah lembar kerja klik kanan pada source code dan pilih add new
file lalu pilih file library yang berformat .c. Bisa dilihat Digambar
dibawah ini

Gambar 76. Cara Menambahkan Library Source File

3. Dan tambahkan juga file format .h nya ke Header Files dengan cara klik
kanan pada Header Files dan pilih add new file lalu pilih file library
yang berformat .h. Dapat dilihat gambar dibawah ini

67
Gambar 77. Cara Menambahkan Library Header File

4. Setelah itu kita cukup mengetik #include “ lcd.h “ untuk memanggil


perintah library ke program utama. Bisa dilihat gambar dibawah ini.

Gambar 78. Menambahkan Library ke Program Utama

5.5 Simulasi Rangkaian

Gambar 79. Rangkaian LCD HD44780

68
Program Library LCD HD44780 :
#include <avr/io.h>
#include <util/delay.h>
#include "lcd.h"
#include <stdio.h>
#include <stdlib.h>

enum newchar{ //karakter pada lcd


SKULL,
MONSTER
};

int main(){
char str[20];
int integerNumber = 0; //angka bulat
float floatNumber = 100; //angka float

uint8_t Skull[8] = {
0b00000,
0b01110,
0b10101,
0b11011,
0b01110,
0b01110,
0b00000,
0b00000
};
uint8_t Monster[8] = {
0b11111,
0b10101,
0b11111,
0b11111,
0b01110,
0b01010,
0b11011,
0b00000
};
lcd_init();
lcd_on();

//buat karakter baru


lcd_create_char(SKULL,Skull);
lcd_create_char(MONSTER,Monster);

while(1){
// Tampilkan angka integer
lcd_set_cursor(0,0);
sprintf(str, "NAIK+: %d ", integerNumber);
lcd_puts(str);

69
// Tampilkan angka float
lcd_set_cursor(0,1);
lcd_puts("TURUN-=");

dtostrf(floatNumber, 6, 2, str);
lcd_puts(str);

_delay_ms(50);

// Tingkatkan nilai
integerNumber += 2; //tingkatkan bulat
floatNumber -= 0.3; //tingkatan float
lcd_set_cursor(14,1);
lcd_write(SKULL);

lcd_set_cursor(14,0);
lcd_write(MONSTER);

_delay_ms(200);

if (integerNumber > 100) integerNumber = 0; //mereset angka bulat


if (floatNumber < 0.3) floatNumber = 100.0; //mereset angka float
}

return 0;
}

70

Anda mungkin juga menyukai