Anda di halaman 1dari 32

A.

JUDUL PERCOBAAN
SEVEN SEGMEN

B. Tujuan Percobaan
1. Mahasiswa dapat memahami rangkaian mikrokontroller dengan menggunakan seven segmen. 2. Mampu membuat program untuk mikrokontroller yang menggunakan saklar untuk menampilkan huruf dan angka pada seven segmen 3. Memahami instruksi yang digunakan dalam mikrokontroller yang

menggunakan saklar untuk menampilkan huruf dan angka pada seven segmen. 4. Mahasiswa mampu memahami instruksi Subroutine dan look up.

C. Teori Dasar
Gambar Rangkaian Mikrikontroller Seven Segmen dengan PushButton dan Saklar geser.

NASRULLAH YUSUF_1129040100 | 1

Mikrokontroler adalah sebuah sistem komputer lengkap dalam satu chip. Mikrokontroler lebih dari sekedar sebuah mikroprosesor karena sudah terdapat atau berisikan ROM (Read-Only Memory), RAM (Read-Write Memory), beberapa port masukan maupun keluaran, dan beberapa peripheral seperti pencacah/pewaktu, ADC (Analog to Digital converter), DAC (Digital to Analog converter) dan serial komunikasi. Salah satu mikrokontroler yang banyak

digunakan saat ini yaitu mikrokontroler AVR. AVR adalah mikrokontroler RISC (Reduce Instuction Set Compute) 8 bit berdasarkan arsitektur Harvard. Secara umum mikrokontroler AVR dapat dapat dikelompokkan menjadi 3 kelompok, yaitu keluarga AT90Sxx, ATMega dan ATtiny. Pada dasarnya yang membedakan masing-masing kelas adalah memori, peripheral, dan fiturnya Seperti

mikroprosesor pada umumnya, secara internal mikrokontroler ATMega16 terdiri atas unit-unit fungsionalnya Arithmetic and Logical Unit (ALU), himpunan register kerja, register dan dekoder instruksi, dan pewaktu serta komponen kendali lainnya. Berbeda dengan mikroprosesor, mikrokontroler menyediakan memori dalam chip yang sama dengen prosesornya (in chip).

Kabel Jumper
Jenis atau tipe switch on/off yang bentuknya sederhana. Jumper ini umumnya berukuran kecil, merupakan konduktor eksternal, terbuat dari logam yang terbungkus plastik, yang bisa dilepas (dicabut) dan dipasang pada pin-pin tertentu. Jumper tersebut berfungsi untuk mengubungkan dua buah sirkuit yang pada kondisi aslinya sengaja tidak dihubungkan jalurnya.

NASRULLAH YUSUF_1129040100 | 2

Saklar dan PushButton Saklar dan PushButton adalah sebuah perangkat yang digunakan untuk memutuskan jaringan listrik, atau untuk menghubungkannya. Jadi saklar dan PushButton pada dasarnya adalah alat penyambung atau pemutus aliran listrik. Selain untuk jaringan listrik arus kuat, saklar berbentuk kecil juga dipakai untuk alat komponen elektronika arus lemah.

Seven Segment Seven segment (7-segments) adalah sebuah komponen untuk

menampilkan bilangan 0 sampai 9 yang banyak digunakan pada aplikasi yang memerlukan tampilan angka. 7-segments pada dasarnya adalah LED (Light Emitting Diode), yaitu diode yang dapat mengeluarkan cahaya bila diberi tegangan pada pin-nya. Gambar di bawah ini memperlihatkan gambaran tentang 7-segment yang masing-masing segment diberi notasi mulai dari a, b, c, d, e, f, dan g.

Instruksi Sub-Rutin Instruksi-instruksi untuk membuat dan memakai sub-rutin/modul program, selain melibatkan Program Counter, melibatkan pula Stack yang diatur oleh Register Stack Pointer. Sub-rutin merupakan suatu potong program yang karena berbagai pertimbangan dipisahkan dari program utama. Bagian-bagian di program utama akan memanggil (CALL) sub-rutin, artinya mikrokontroler sementara

meninggalkan alur program utama untuk mengerjakan instruksi-instruksi dalam sub-rutin, selesai mengerjakan sub-rutin mikrokontroler kembali ke alur program utama. Satu-satunya cara membentuk sub-rutin adalah memberi instruksi RET pada akhir potongan program sub-rutin. Program sub-rutin di-panggil dengan
NASRULLAH YUSUF_1129040100 | 3

instruksi ACALL atau LCALL. Agar nantinya mikrokontroler bisa meneruskan alur program utama, pada saat menerima instruksi ACALL atau LCALL, sebelum mikrokontroler pergi mengerjakan sub-rutin, nilai Program Counter saat itu disimpan dulu ke dalam Stack (Stack adalah sebagian kecil dari memori-data yang dipakai untuk menyimpan nilai Program Counter secara otomatis, kerja dari Stack dikendalikan oleh Register Stack Poiner). Selanjutnya mikrokontroler mengerjakan instruksi-instruksi di dalam sub-rutin sampai menjumpai instruksi RET yang berfungsi sebagai penutup dari sub-rutin. Saat menerima instruksi RET, nilai asal Program Counter sebelum mengerjakan sub-rutin yang disimpan di dalam Stack, dikembalikan ke Program Counter sehingga mikrokontroler bisa meneruskan pekerjaan di alur program utama. Instruksi ACALL dipakai untuk me-manggil program sub-rutin dalam daerah memori-program 2 KiloByte yang sama, setara dengan instruksi AJMP yang sudah dibahas di atas. Sedangkan instruksi LCALL setara dengan instruksi LCALL, yang bisa menjangkau seluruh memori-program mikrokontroler MCS51 sebanyak 64 KiloByte. (Tapi tidak ada instrusk SCALL yang setara dengan instruksi SJMP).

NASRULLAH YUSUF_1129040100 | 4

D. Langkah Kerja dan Hasil


Percobaan 1
1. Buka aplikasi BASCOM-AVR

2. Buat file baru, klik File lalu pilih New (Ctrl+N)

3. Ketikkan Programnya Flowchartnya :

NASRULLAH YUSUF_1129040100 | 5

NASRULLAH YUSUF_1129040100 | 6

4. Simpan program yang telah anda buat, klik File lalu pilih Save (Ctrl S) 5. Compile program dengan mengklik icon seperti gambar berikut atau tekan F7.

6. Langkah pembuatan program sampai dengan compile program telah selesai. Langkah selanjutnya kita mendownload program yang telah kita buat ke Mikrokontroller ATMega 16 menggunakan aplikasi AvrProg. Lakukan uji coba untuk melihat kebenaran hasil program.
NASRULLAH YUSUF_1129040100 | 7

7. Hasil Program Counter UP selalu menambah 1, program ini akan menampilkan angka mulai dari 0000 sampai 9999.

Percobaan 2
1. Buat file baru, Klik lalu pilih New (Ctrl N) 2. Ketikkan Programnya Flowchartnya :

NASRULLAH YUSUF_1129040100 | 8

NASRULLAH YUSUF_1129040100 | 9

3. Simpan Program, klik File lalu pilih Save. 4. Compile program dengan mengklik icon seperti gambar berikut atau tekan F7. 5. Langkah pembuatan program sampai dengan compile program telah selesai. Langkah selanjutnya kita mendownload program yang telah kita buat ke
NASRULLAH YUSUF_1129040100 | 10

Mikrokontroller ATMega 16 menggunakan aplikasi AvrProg. Lakukan uji coba untuk melihat kebenaran hasil program.

6. Hasil Program Kalkulator sederhana penjumlahan

=
Percobaan 3 1. Buat file baru, Klik lalu pilih New (Ctrl N) 2. Ketikkan Programnya Flowchartnya :

NASRULLAH YUSUF_1129040100 | 11

3. Simpan Program, klik File lalu pilih Save. 4. Compile program dengan mengklik icon seperti gambar berikut atau tekan F7. 5. Langkah pembuatan program sampai dengan compile program telah selesai. Langkah selanjutnya kita mendownload program yang telah kita buat ke

NASRULLAH YUSUF_1129040100 | 12

Mikrokontroller ATMega 16 menggunakan aplikasi AvrProg. Lakukan uji coba untuk melihat kebenaran hasil program.

6. Hasil Program Program ini akan menampilkan angka secara berurut mulai dari 0 9 lalu kembali lagi ke 0.

sampai

Lalu kembali lagi ke Percobaan 4 1. Buat file baru, Klik lalu pilih New (Ctrl N) 2. Ketikkan Programnya Flowchartnya :

NASRULLAH YUSUF_1129040100 | 13

NASRULLAH YUSUF_1129040100 | 14

3. Simpan Program, klik File lalu pilih Save. 4. Compile program dengan mengklik icon seperti gambar berikut atau tekan F7. 5. Langkah pembuatan program sampai dengan compile program telah selesai. Langkah selanjutnya kita mendownload program yang telah kita buat ke Mikrokontroller ATMega 16 menggunakan aplikasi AvrProg. Lakukan uji coba untuk melihat kebenaran hasil program.

6. Hasil Program Akan Menampilkan Pesan Berjalan Sudah.Benar.Yes

Percobaan 5 1. Buat file baru, Klik lalu pilih New (Ctrl N) 2. Ketikkan Programnya Flowchartnya :

NASRULLAH YUSUF_1129040100 | 15

3. Simpan Program, klik File lalu pilih Save. 4. Compile program dengan mengklik icon seperti gambar berikut atau tekan F7. 5. Langkah pembuatan program sampai dengan compile program telah selesai. Langkah selanjutnya kita mendownload program yang telah kita buat ke Mikrokontroller ATMega 16 menggunakan aplikasi AvrProg. Lakukan uji coba untuk melihat kebenaran hasil program.
NASRULLAH YUSUF_1129040100 | 16

6. Hasil Program Menampilkan Angka 0, 1, 3, 4 - 9 secara acak.

Tantangan Kalkulator Kalkulator sederhana pengurangan 1. Buat file baru, Klik lalu pilih New (Ctrl N) 2. Ketikkan Programnya Flowchartnya :

NASRULLAH YUSUF_1129040100 | 17

NASRULLAH YUSUF_1129040100 | 18

NASRULLAH YUSUF_1129040100 | 19

3. Simpan Program, klik File lalu pilih Save. 4. Compile program dengan mengklik icon seperti gambar berikut atau tekan F7. 5. Langkah pembuatan program sampai dengan compile program telah selesai. Langkah selanjutnya kita mendownload program yang telah kita buat ke Mikrokontroller ATMega 16 menggunakan aplikasi AvrProg. Lakukan uji coba untuk melihat kebenaran hasil program.

6. Hasil Program Kalkulator sederhana pengurangan.

=
NASRULLAH YUSUF_1129040100 | 20

E. ANALISA DATA
Percobaan 1
Sama seperti percobaan percobaan sebelumnya hal awal yang kita lakukan yaitu mendeklarasikan Mikrokontroller yang kita gunakan,

mendeklarasikan variable dan member nilai pada variable. Langsung saja pada inti percobaannya, instruksi Do instruksi ini adalah batas tempat perulangan, ketika terjadi perulangan program akan diulang mulai dari sini. selanjutnya ketika kita menekan dan melepas push button artinya kita men-set dan mereset pinc.0 yang tehubung pada push button, oleh karena itu ada instruksi Bitwait Pinc.0 , Set dan Bitwait Pinc.0 , Reset. Setelah instruksi tersebut ada instruksi Call Test(a1 , 4), Call Test(a2 , 3), Call Test(a3 , 2), dan Call Test(a4 , 1) . Instruksi tersebut lah yang menampilkan angka pada seven segmen yang dimana diinstruksi ini dilakukan pengecekan sub-rutine pada subroutine test. Pada subroutine test ada parameter B1 dan B2, misalnya instruksi Call Test(a1, 4). Nilai dari a1 ini adalah untuk parameter B1, sedangkan 4 adalah untuk B2. Selanjutnya instruksi A1 = A1 + 1 jadi A1 tadi yang nilainya 0 ditambah 1 kemudian hasilnya disimpan kembali di A1. Jadi nilai A1 sekarang berubah jadi 1. Kemudian dilakukan pengecekan kondisi If A1 = 10 Then maksudnya jika A1 = 10 maka statement If akan dieksekusi. Jika tidak maka instruksi akan kembali ke Do. Statement If A1 = 10 Then adalah A1 = 0 maksudnya nilai A1 kembali dijadikan 0, Setelah itu proses selanjutnya adalah A2 = A2 + 1 jadi nilai A2 ditambah 1 kemudian disimpan kembali ke A2, nilai awal A2 tadi adalah 0 kemudian ditambah 1 maka nilai A2 sekarang samadengan 1. Kemudian instruksi End If untuk mengakhiri statement If A1 = 10. Kemudian dilakukan pengecekan kondisi lagi If A2 = 10 Then maksudnya jika A2 = 10 maka statement If akan dieksekusi. Jika tidak maka instruksi akan kembali ke Do. Statement If A2 = 10 Then adalah A2 = 0 maksudnya nilai A2 kembali dijadikan 0, Setelah itu proses selanjutnya adalah A3 = A3 + 1 jadi nilai A3 ditambah 1 kemudian disimpan kembali ke A3, nilai awal A3 tadi adalah 0 kemudian ditambah 1 maka nilai A3 sekarang samadengan 1. Kemudian instruksi End If untuk mengakhiri statement If A2 = 10 Then. Kemudian dilakukan pengecekan kondisi lagi If A3 = 10 Then maksudnya jika A3 = 10 maka statement If akan dieksekusi. Jika tidak maka instruksi akan kembali ke Do. Statement If A3 = 10
NASRULLAH YUSUF_1129040100 | 21

Then adalah A3 = 0 maksudnya nilai A3 kembali dijadikan 0, Setelah itu proses selanjutnya adalah A4 = A4 + 1 jadi nilai A4 ditambah 1 kemudian disimpan kembali ke A4, nilai awal A4 tadi adalah 0 kemudian ditambah 1 maka nilai A4 sekarang samadengan 1. Kemudian instruksi End If untuk mengakhiri statement If A3 = 10 Then. Kemudian dilakukan pengecekan kondisi lagi If A4 = 10 Then maksudnya jika A4 = 10 maka statement If akan dieksekusi. Jika tidak maka instruksi akan kembali ke Do. Statement If A4 = 10 Then adalah A4 = 0 maksudnya nilai A4 kembali dijadikan 0 Kemudian instruksi End If untuk mengakhiri statement If A4 = 10 Then. Lalu kita masukkan instruksi Loop artinya Perintah perulangan, ulangi ke awal (mulai dari instruksi do). Kemudian instruksi End artinya program utama selesai. Selanjutnya masuk ke Program Sub-Rutine yang terpisah dari program utama, dimana bagian dari program utama akan memanggil sub-rutin. Berikut program pada sub-rutin Sub Test(b1 As Byte , Byval B2 As Byte) jadi jika Call Test(a1,4) maka a1 itu untuk b1-nya dan 4 itu untuk B2-nya. Select Case B2 case untuk B2. Case 1 : Segmen = Empat case nilai pada B2 itu adalah 1 maka Segmen yang aktif adalah 4. Selanjutnya Case 2 : Segmen = Tiga case nilai pada B2 itu adalah 2 maka Segmen yang aktif adalah 3. Kemudian Case 3 : Segmen =

Dua case nilai pada B2 itu adalah 3 maka Segmen yang aktif adalah 2. Kemudian Case 4 : Segmen = Satu case nilai pada B2 itu adalah 4 maka Segmen yang aktif adalah 1. Kemudian End Select untuk mengakhiri Subrutine Select Case B2. Select Case B1 case untuk B1 Case 1 : Tampilan = Angka1 case nilai pada B1 itu adalah 1 maka Tampilan pada segmen adalah Angka 1. Selanjutnya Case 2 : Tampilan = Angka2 case nilai pada B1 itu adalah 2 maka Tampilan pada segmen adalah Angka 2. Selanjutnya Case 3 : Tampilan = Angka3 case nilai pada B1 itu adalah 3 maka Tampilan pada segmen adalah Angka 3. Selanjutnya Case 4 : Tampilan = Angka4 case nilai pada B1 itu adalah 4 maka Tampilan pada segmen adalah Angka 4. Selanjutnya Case 5 : Tampilan = Angka5 case nilai pada B1 itu adalah 5 maka Tampilan pada segmen adalah Angka 5. Selanjutnya Case 6 : Tampilan = Angka6 case nilai pada B1 itu adalah 6 maka Tampilan pada segmen adalah Angka 6. Selanjutnya Case 7 : Tampilan = Angka7 case nilai pada B1 itu adalah
NASRULLAH YUSUF_1129040100 | 22

7 maka Tampilan pada segmen adalah Angka 7. Selanjutnya Case 8 : Tampilan = Angka8 case nilai pada B1 itu adalah 8 maka Tampilan pada segmen adalah Angka 8. Selanjutnya Case 9 : Tampilan = Angka9 case nilai pada B1 itu adalah 9 maka Tampilan pada segmen adalah Angka 9. Selanjutnya Case 0 : Tampilan = Angka0 case nilai pada B1 itu adalah 0 maka Tampilan pada segmen adalah Angka 0. Selanjutnya End Select untuk mengakhiri Subrutine Select Case B1. Kemudian End Sub mengakhiri instruksi Sub-Rutine.

Percobaan 2
Sama seperti percobaan percobaan sebelumnya hal awal yang kita lakukan yaitu mendeklarasikan Mikrokontroller yang kita gunakan,

mendeklarasikan variable dan member nilai pada variable. Langsung saja pada inti percobaannya, instruksi Do instruksi ini adalah batas tempat perulangan, ketika terjadi perulangan program akan diulang mulai dari sini. Kemudian instruksi Cek_tombol If Tombol > &H00 And Tambah = 0 Then A2 = A1 Call Test(a1 , 4) End If Instruksi diatas maksudnya ketika kita menekan pushbutton kita lakukan cek subrutine tombol maka nilai A1 telah ditentukan sesuai dengan push button yang kita tekan. Selanjutnya kita cek kondisi, apabila Tombol lebih besar dari &H00 dan Tambah = 0, maka A2 = A1. Selanjutnya kita lakukan cek subroutine Test Call Test(A1,4). Setelah instruksi ini maka tampillah angka sesuai nilai a1 pada segmen 4. If Tambah = 1 And Tombol > &H00 Then A3 = A1 Call Test(a3 , 4) End If Selanjutnya kita cek kondisi, apabila Tombol lebih besar dari &H00 dan Tambah = 1, maka A3 = A1. Selanjutnya kita lakukan cek subroutine Test Call Test(a3,4). Setelah instruksi ini maka tampillah angka sesuai nilai a3 pada segmen 4.
NASRULLAH YUSUF_1129040100 | 23

If Samadengan = 1 Then A4 = A3 + A2 Call Test(a4 , 4) End If Jika Samadengan = 1 maka terjadi proses A3 + A2 kemudian hasilnya disimpan pada A4. Setelah itu hasil ditampilkan dengan melakukan pemanggilan Call Test(A4,4), Setelah instruksi ini maka tampillah angka sesuai nilai a4 pada segmen 4. setelah itu instruksi end If mengakhiri Statement If. Selanjutnya instruksi Loop batasan looping. Kemudian instruksi End untuk mengakhiri program utama. Lalu instruksi dibawah ini adalah untuk Subrutinenya berikut Scriptnya. Sub Cek_tombol Select Case Tombol Case &H01 : A1 = 1 Case &H02 : A1 = 2 Case &H04 : A1 = 3 Case &H08 : A1 = 4 Case &H10 : A1 = 5 Case &H20 : A1 = 6 Case &H40 : A1 = 7 Case &H80 : A1 = 8 Case &H81 : A1 = 9 Case &H82 : A1 = 0 End Select End Sub Instruksi diatas maksudnya apabila Tombol = &H01 maka nilai A1 = 1. Jika Tombol = &H02 maka nilai A1 = 2. Jika Tombol = &H04 maka nilai A1 = 3. Jika Tombol = &H08 maka nilai A1 = 4. Jika Tombol = &H10 maka nilai A1 = 5. Jika Tombol = &H20 maka nilai A1 = 6. Jika Tombol = &H40 maka nilai A1 = 7. Jika Tombol = &H80 maka nilai A1 = 8. Jika Tombol = &H81 maka nilai A1 = 9. Jika Tombol = &H82 maka nilai A1 = 0. Sub Test(b1 As Byte , Byval B2 As Byte) Select Case B2 Case 1 : Segmen = Satu
NASRULLAH YUSUF_1129040100 | 24

Case 2 : Segmen = Dua Case 3 : Segmen = Tiga Case 4 : Segmen = Empat End Select Select Case B1 Case 1 : Tampilan = Angka1 Case 2 : Tampilan = Angka2 Case 3 : Tampilan = Angka3 Case 4 : Tampilan = Angka4 Case 5 : Tampilan = Angka5 Case 6 : Tampilan = Angka6 Case 7 : Tampilan = Angka7 Case 8 : Tampilan = Angka8 Case 9 : Tampilan = Angka9 Case 0 : Tampilan = Angka0 End Select End Sub Instruksi diatas juga merupakan sub-rutine untuk seb-rutine test. Untuk sub-rutine ini berbeda dengan subroutine tadi karena memiliki parameter B1 dan B2, jadi misalkan instruksi Call Test(a3,4), nilai A3 ini untuk B1-nya dan 4 untuk B2-nya. Jika B2 = 1 maka Segmen yang aktif yaitu 1. Jika B2 = 2 maka Segmen yang aktif yaitu 2. Jika B2 = 3 maka Segmen yang aktif yaitu 3. Jika B2 = 4 maka Segmen yang aktif yaitu 4. Untuk B2 sendiri jika B2 = 1 maka tampilan pada segmen yaitu Angka 1. Jika B2 = 2 maka tampilan pada segmen yaitu Angka 2. Jika B2 = 3 maka tampilan pada segmen yaitu Angka 3. Jika B2 = 4 maka tampilan pada segmen yaitu Angka 4. Jika B2 = 5 maka tampilan pada segmen yaitu Angka 5. Jika B2 = 6 maka tampilan pada segmen yaitu Angka 6. Jika B2 = 7 maka tampilan pada segmen yaitu Angka 7. Jika B2 = 8 maka tampilan pada segmen yaitu Angka 8.

Percobaan 3
Sama seperti percobaan percobaan sebelumnya hal awal yang kita lakukan yaitu mendeklarasikan Mikrokontroller yang kita gunakan, mendeklarasikan variable dan member nilai pada variable. Langsung saja pada inti percobaannya, instruksi
NASRULLAH YUSUF_1129040100 | 25

Do instruksi ini adalah batas tempat perulangan, ketika terjadi perulangan program akan diulang mulai dari sini. Kemudian instruksi Bitwait Pinc.0 , Set artinya menunggu inputan untuk mengeset PinC.0 dan instruksi Bitwait Pinc.0 , Reset artinya menunggu inputan untuk meReset PinC.0. kemudian masuk ke instruksi Look up yaitu A1 = Lookup(a2 , Segmen) kita cek nilai a2 pada Lookup Segmen, kemudian hasilnya disimpan pada varibel A1. Segmen = 1 Tampilan tampil di Segmen 1 Tampilan = A1 Tampilannya sama dengan nilai yang ada di A1. A2 = A2 + 1 Proses merubah nilai dari A2, A2 yang tadinya adalah 0 ditambah 1 jadi nilai A2 sekarang adalah 1. Kemudian masuk ke instruksi If A2 = 10 Then A2 = 0 End If Artinya jika nilai A2 = 10 maka nila A2 kembali jadi 0 kemudian End If mengakhiri Statement IF. Kemudian masuk ke instruksi Loop artinya Perintah perulangan, ulangi ke awal (mulai dari instruksi do). Kemudian instruksi End artinya program utama selesai. Instruksi dibawah ini adalah instruksi Lookup yang terpisah dari program utama. Segmen: Data &H3F , &H06 , &H5B , &H4F , &H66 , &H6D , &H7C , &H07 , &H7F , &H6F Misalnya pada instruksi diatas A1 = Lookup(a2, Segmen), apabila a2 = 0 maka A1 = &H3F, Jika a2 = 1 maka A1 = &H06, Jika a2 = 2 maka A1 = &H5B, Jika a2 = 3 maka A1 = &H5B, Jika a2 = 4 maka A1 = &H66, Jika a2 = 5 maka A1 = &H6D, Jika a2 = 6 maka A1 = &H7C, Jika a2 = 7 maka A1 = &H07, Jika a2 = 8 maka A1 = &H7F, Jika a2 = 9 maka A1 = &H6F.

Percobaan 4
Sama seperti percobaan percobaan sebelumnya hal awal yang kita lakukan yaitu mendeklarasikan Mikrokontroller yang kita gunakan, mendeklarasikan variable dan member nilai pada variable. Langsung saja pada inti percobaannya, instruksi Do instruksi ini adalah batas tempat perulangan, ketika terjadi perulangan
NASRULLAH YUSUF_1129040100 | 26

program akan diulang mulai dari sini. Kemudian instruksi Bitwait Pinc.0 , Set artinya menunggu inputan untuk mengeset PinC.0 dan instruksi Bitwait Pinc.0 , Reset artinya menunggu inputan untuk meReset PinC.0. Kemudian masuk ke instruksi C1 = A1 + 1 C2 = A1 + 2 C3 = A1 + 3 Dari Instruksi diatas jadi nilai C1 = 1, C2=2, dan C3=3 tapi nilai tersebut tidak selamanya seperti itu karena nilai A1 pada instruksi dibawah akan berubah karena ditambah 1. Selanjutnya instruksi A2 = Lookup(a1 , Tampilsegmen) kita cek nilai a1 pada Lookup Segmen, kemudian hasilnya disimpan pada varibel A2. A3 = Lookup(c1 , Tampilsegmen) kita cek nilai c1 pada Lookup Segmen, kemudian hasilnya disimpan pada varibel A3. A4 = Lookup(c2 , Tampilsegmen) kita cek nilai c2 pada Lookup Segmen, kemudian hasilnya disimpan pada varibel A4. A5 = Lookup(c3 , Tampilsegmen) kita cek nilai c3 pada Lookup Segmen, kemudian hasilnya disimpan pada varibel A5. Instruksi diatas berarti nilai A2,A3, A4, dan A5 samadengan nilai yang dicek pada instruksi Lookup. Segmen = 1 Segmen yang aktif yaitu Segmen 1 Tampilan = A5 Tampilan pada segmen Sama dengan nilai yang ditunjuk oleh A5 Segmen = 2 Segmen yang aktif yaitu Segmen 1 Tampilan = A4 Tampilan pada segmen Sama dengan nilai yang ditunjuk oleh A4 Segmen = 4 Segmen yang aktif yaitu Segmen 1 Tampilan = A3 Tampilan pada segmen Sama dengan nilai yang ditunjuk oleh A3 Segmen = 8 Segmen yang aktif yaitu Segmen 1 Tampilan = A2 Tampilan pada segmen Sama dengan nilai yang ditunjuk oleh A2 Kemudian proses A1 = A1 + 1 artinya nilai pada A1 ditambah 1. Selanjutnya instruksi If A1 = 12 Then A1 = 0 End If Instruksi diatas menjelaskan bahwa jika A1 = 12 maka A1 kembali menjadi 0.
NASRULLAH YUSUF_1129040100 | 27

Lalu kita masukkan instruksi Loop artinya Perintah perulangan, ulangi ke awal (mulai dari instruksi do). Kemudian instruksi End artinya program utama selesai. Instruksi dibawah ini adalah instruksi Lookup yang terpisah dari program utama. Tampilsegmen: Data &H6D , &H1C , &H5E , &H5F , &H74 , &H80 , &H7C , &H7B , &H54 , &H5F , &H50 , &H80 , &H6E , &H7B , &H6D Misalnya pada instruksi diatas A2 = Lookup(a1 , Tampilsegmen), apabila a1 = 0 maka A2 = &H6D, Jika a1 = 1 maka A2 = &H1C, Jika a1 = 2 maka A2 = &H5E, Jika a1 = 3 maka A2 = &H5F, Jika a1 = 4 maka A2 = &H74, Jika a1 = 5 maka A2 = &H80, Jika a1 = 6 maka A2 = &H7C, Jika a1 = 7 maka A2 = &H7B, Jika a1 = 8 maka A2 = &H54, Jika a1 = 9 maka A2 = &H5F. Jika a1 = 10 maka A2 = &H50, Jika a1 = 11 maka A2 = &H80, Jika a1 = 12 maka A2 = &H6E, Jika a1 = 13 maka A2 = &H7B, dan Jika a1 = 14 maka A2 = &H6D,

Percobaan 5
Sama seperti percobaan percobaan sebelumnya hal awal yang kita lakukan yaitu mendeklarasikan Mikrokontroller yang kita gunakan, mendeklarasikan variable dan member nilai pada variable. Langsung saja pada inti percobaannya, instruksi Do instruksi ini adalah batas tempat perulangan, ketika terjadi perulangan program akan diulang mulai dari sini. Kemudian instruksi Bitwait Pinc.0 , Set artinya menunggu inputan untuk mengeset PinC.0 dan instruksi Bitwait Pinc.0 , Reset artinya menunggu inputan untuk meReset PinC.0. Kemudian instruksi A3 = Rnd(10) instruksi ini berarti nilai A3 yang berjumlah 10 dirandom. Kemudian instruksi A1 = Lookup(a3 , Tampilansegmen) Maksudnya nilai A1 samadengan data yang ada pada Lookup(a3, Tampilan Segmen) Segmen = 1 Segmen yang diaktifkan adalah segmen 1 Tampilan = A1 Tampilan pada segmen 1 adalah Data yang ada pada A1. Kemudian diproses A2 = A2 + 1 jadi nilai A2 berubah ditambah 1. Kemudian instruksi If A2 = 10 Then A2 = 0 End If
NASRULLAH YUSUF_1129040100 | 28

Instruksi diatas maksudnya jika A2 = 10 maka A2 kembali jadi 0, dan end if untuk mengakhiri Statement If. Lalu kita masukkan instruksi Loop artinya Perintah perulangan, ulangi ke awal (mulai dari instruksi do). Kemudian instruksi End artinya program utama selesai. Instruksi dibawah ini adalah instruksi Lookup yang terpisah dari program utama. Tampilansegmen: Data &H3F , &H06 , &H4F , &H66 , &H6D , &H7C , &H07 , &H7F , &H6F Misalnya pada instruksi diatas a1 = Lookup(a3, TampilanSegmen), apabila a3 = 0 maka A1 = &H3F, Jika a3 = 1 maka A1 = &H06, Jika a3 = 2 maka A1 = &H5B, Jika a3 = 3 maka A1 = &H5B, Jika a3 = 4 maka A1 = &H66, Jika a3 = 5 maka A1 = &H6D, Jika a3 = 6 maka A1 = &H7C, Jika a3 = 7 maka A1 = &H07, Jika a3 = 8 maka A1 = &H7F, Jika a3 = 9 maka A1 = &H6F.

Tantangan Kalkulator
Sama seperti percobaan percobaan sebelumnya hal awal yang kita lakukan yaitu mendeklarasikan Mikrokontroller yang kita gunakan, mendeklarasikan variable dan member nilai pada variable. Langsung saja pada inti percobaannya, instruksi Do instruksi ini adalah batas tempat perulangan, ketika terjadi perulangan program akan diulang mulai dari sini. Kemudian instruksi Cek_tombol If Tombol > &H00 And Kurang = 0 Then A2 = A1 Call Test(a1 , 4) End If jadi instruksi diatas menjelaskan bahwa ketika kita menekan tombol maka akan dilakukan pengecekan pada subroutine tombol sesuai dengan tombol yang kita tekan kemudian akan disimpan pada A1. Lalu dilakukan pengecekan kondisi apabila Tombol > &H00 dan Kurang = 0 maka nilai dari variable A1 disimpan juga pada A2. Selanjutnya dilakukan pemanggilan subroutine Test, setelah instruksi ini maka tampillah angka sesuai nilai A1 pada segmen 4. If Kurang = 1 And Tombol > &H00 Then A3 = A1 Call Test(a3 , 4) End If
NASRULLAH YUSUF_1129040100 | 29

Selanjutnya kita cek kondisi, apabila Tombol lebih besar dari &H00 dan Kurang = 1, maka A3 = A1. Selanjutnya kita lakukan cek subroutine Test Call Test(a3,4). Setelah instruksi ini maka tampillah angka sesuai nilai a3 pada segmen 4. Selanjutnya instruksi If Samadengan = 1 Then Instruksi diatas maksudnya Jika samadengan = 1 maka statement akan dilaksanakan, statementnya yaitu If A2 < A3 Then Segmen = Satu Tampilan = R Waitms 10 Segmen = Dua Tampilan = O Waitms 10 Segmen = Tiga Tampilan = R Waitms 10 Segmen = Empat Tampilan = E Waitms 10 Lalu kita cek kondisi lagi, jika A2 lebih kecil dari A3 maka diaktifkan segmen 1 dan tampilan = R kemudian delay 10ms, lalu diaktifkan segmen 2 dan tampilan = O kemudian delay 10ms, lalu diaktifkan segmen 3 dan tampilan = R kemudian delay 10ms, lalu diaktifkan segmen 4 dan tampilan = E kemudian delay 10ms. Instruksi inilah yang akan menampilkan pesan error jika terjadi min pada hasil pengurangannya dan jika tidak maka Else A4 = A2 - A3 Call Test(a4 , 4) End If End If Maksudnya A2 A3 hasilnya disimpan pada A4. Selanjutnya instruksi Loop batasan looping. Kemudian instruksi End untuk mengakhiri program utama.
NASRULLAH YUSUF_1129040100 | 30

Lalu instruksi dibawah ini adalah untuk Subrutinenya berikut Scriptnya. Sub Cek_tombol Select Case Tombol Case &H01 : A1 = 1 Case &H02 : A1 = 2 Case &H04 : A1 = 3 Case &H08 : A1 = 4 Case &H10 : A1 = 5 Case &H20 : A1 = 6 Case &H40 : A1 = 7 Case &H80 : A1 = 8 Case &H81 : A1 = 9 Case &H82 : A1 = 0 End Select End Sub Instruksi diatas maksudnya apabila Tombol = &H01 maka nilai A1 = 1. Jika Tombol = &H02 maka nilai A1 = 2. Jika Tombol = &H04 maka nilai A1 = 3. Jika Tombol = &H08 maka nilai A1 = 4. Jika Tombol = &H10 maka nilai A1 = 5. Jika Tombol = &H20 maka nilai A1 = 6. Jika Tombol = &H40 maka nilai A1 = 7. Jika Tombol = &H80 maka nilai A1 = 8. Jika Tombol = &H81 maka nilai A1 = 9. Jika Tombol = &H82 maka nilai A1 = 0. Sub Test(b1 As Byte , Byval B2 As Byte) Select Case B2 Case 1 : Segmen = Satu Case 2 : Segmen = Dua Case 3 : Segmen = Tiga Case 4 : Segmen = Empat End Select Select Case B1 Case 1 : Tampilan = Angka1 Case 2 : Tampilan = Angka2 Case 3 : Tampilan = Angka3 Case 4 : Tampilan = Angka4 Case 5 : Tampilan = Angka5
NASRULLAH YUSUF_1129040100 | 31

Case 6 : Tampilan = Angka6 Case 7 : Tampilan = Angka7 Case 8 : Tampilan = Angka8 Case 9 : Tampilan = Angka9 Case 0 : Tampilan = Angka0 End Select End Sub Instruksi diatas juga merupakan sub-rutine untuk seb-rutine test. Untuk sub-rutine ini berbeda dengan subroutine tadi karena memiliki parameter B1 dan B2, jadi misalkan instruksi Call Test(a3,4), nilai A3 ini untuk B1-nya dan 4 untuk B2-nya. Jika B2 = 1 maka Segmen yang aktif yaitu 1. Jika B2 = 2 maka Segmen yang aktif yaitu 2. Jika B2 = 3 maka Segmen yang aktif yaitu 3. Jika B2 = 4 maka Segmen yang aktif yaitu 4. Untuk B2 sendiri jika B2 = 1 maka tampilan pada segmen yaitu Angka 1. Jika B2 = 2 maka tampilan pada segmen yaitu Angka 2. Jika B2 = 3 maka tampilan pada segmen yaitu Angka 3. Jika B2 = 4 maka tampilan pada segmen yaitu Angka 4. Jika B2 = 5 maka tampilan pada segmen yaitu Angka 5. Jika B2 = 6 maka tampilan pada segmen yaitu Angka 6. Jika B2 = 7 maka tampilan pada segmen yaitu Angka 7. Jika B2 = 8 maka tampilan pada segmen yaitu Angka 8.

F. KESIMPULAN
Setelah melakukan percobaan ini kita dapat menarik kesimpulan bahwa pada seven segmen kita bisa menampilkan bilangan 0 sampai 9, dan juga beberapa huruf,. Kita bisa menggunakan Saklar untuk menampilkan huruf dan angka pada seven segmen dengan menngunakan instruksi Sub-Rutine dan Lookup. Sub-rutin merupakan suatu potong program. Bagian-bagian di program utama akan memanggil (CALL) sub-rutin, artinya mikrokontroler sementara meninggalkan alur program utama untuk mengerjakan instruksi-instruksi dalam sub-rutin, selesai mengerjakan sub-rutin mikrokontroler kembali ke alur program utama. Sedangkan Lookup sendiri hampir sama dengan subroutine dia juga diluar program utama, bedanya pada subroutine kita bisa membuat program lagi misalnya penggunaan Select Case, sedangkan pada Lookup hanya yang tersimpan didalamnya.
NASRULLAH YUSUF_1129040100 | 32

Anda mungkin juga menyukai