PRAKTIKUM MIKROKONTROLER 1
Oleh :
Muhamad Dwi Rizky Alfafa 2241170024
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.
Penyusun
1
Daftar Isi
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
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
6
Daftar Listing
7
BAB I
PENDAHULUAN
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
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.
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)
11
3. Mikrokontroler MCS 51
Gambar 5
Gambar 6
13
Gambar 7
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
Gambar 10
15
7. Klik Browse For Key File kemudian masuk ke folder Crack kemudian
pilih License2.lxk lalu klik Open.
Gambar 11
Gambar 12
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
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
Gambar 19
18
16. Pilih English lalu OK.
Gambar 20
Gambar 21
Gambar 22
19
19. Proteus sudah berhasil diaktivasi dan bisa kamu gunakan.
Gambar 23
Gambar 24
20
Gambar 25
Gambar 26
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
Gambar 30
22
10. Proses instalasi selesai, klik Finish.
Gambar 31
Gambar 32
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
Gambar 34
24
6. Pada tampilan Choose Destination Location klik Next.
Gambar 35
Gambar 36
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
Gambar 40
26
12. Pada tampilan Ready to Install the Program klik Next.
Gambar 41
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
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.
30
BAB II
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)
Gambar 47
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.
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
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
Port Fungsi
Pin Khusus
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.
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.
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
40
6. PWM (Pulse width modulation)
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
42
Berikut merupakan contoh pemrograman dari rangkaian lampu kedip :
43
2.3.2 Led Menyala Ketika Tombol Ditekan
Berikut merupakan contoh rangkaian jika tombol ditekan led akan
menyala:
45
2.3.3 Rangkaian led menyala bergantian
Berikut merupakan contoh rangkaian led menyala secara bergantian :
Berikut merupakan contoh pemrograman rangkaian led menyala
bergantian :
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.
47
BAB III
SEVEN SEGMENT
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
49
Gambar 58
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
51
Program 4. Coding Program 2 Digit
52
Gambar 63. Push Turun
53
BAB IV
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
56
Untuk Source Code rangkaian IC 74595 sebagai berikut :
57
Untuk Source Code rangkaian IC 74595 untuk 7 – Segment sebagai berikut :
58
4.3 Timer Interupsi untuk Refresh Seven Segment
Contoh pengaplikasian Timer Interupsi untuk Refresh 7 - Segment
menggunakan proteus 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
61
Gambar 72. Block diagram HD44780
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.
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
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.
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
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
68
Program Library LCD HD44780 :
#include <avr/io.h>
#include <util/delay.h>
#include "lcd.h"
#include <stdio.h>
#include <stdlib.h>
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();
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);
return 0;
}
70