MODUL PRAKTIKUM DASAR MIKROPROSESOR
Disusun Oleh: Asisten Laboratorium Instrumentasi
Nama NPM
LABORATORIUM INSTRUMENTASI JURUSAN TEKNIK ELEKTRO FAKULTAS TEKNIK UNIVERSITAS SULTAN AGENG TIRTAYASA 2017 i
STRUKTUR LABORATORIUM INSTRUMENTASI
Kepala Laboratorium Teknik Elektro Dr. Romi Wiryadinata, M.Eng
Kepala Laboratorium Instumentasi Rocky Alfanz S.T., M.Sc
Laboran Laboratorium Teknik Elektro Eirin Rismawan, A.Md
Koordinator Laboratorium Instrumentasi David Abraham
Asisten Laboratorium Instrumentasi Damar Prasetyo Dwi Rahmat Aryanto Dzulfiqar Dwi Yantoo Muhammad Prayogi
ii
PERATURAN PRAKTIKUM
1. FORMAT PENULISAN LAPORAN a. Margin : Top = 4 cm, Bottom = 3 cm Left = 4 cm, Right = 3cm b. Kertas A4 c. Judul Times New Roman 14 Pt, Bold d. talic untuk penggunaan bahasa inggris e. Isi Times New 12 Pt text-align justify f. Spasi 1,5 tidak ada space setelah dan sebelum paragraf g. Gambar
Gambar 1 Stabilitas Relatif Gambar dan nama gambar harus proporsional, jelas dengan ukuran yang tidak berlebihan, letak center, diberikan sumber referensi dari mana diperoleh gambar tersebut, berlaku untuk persamaan, dan bunyi hukum h. Setiap bab berisi BAB I MEDOTODOGI PENELITIAN Berisi langkah kerja atau prosedur percobaan pada saat praktikum minimal 2 lembar. BAB II TUGAS Berisi tugas pendahuluan, tambahan, dan modul minimal 2 lembar. BAB III ANALISIS
iii
Berisi analisis atau penjelasan praktikum yang dilakukan didasari teori yang berasal dari sumber yang terpercayaminimal 3 lembar. BAB IV PENUTUP Berisi kesimpulan dari percobaan yang dilakukan, merupakan jawaban dari tujuan pada saat praktikum minimal 1 lembar. DAFTAR PUSTAKA Berisi daftar rujukan atau pustaka yang telah digunakanpada laporan praktikum. Rujukan yang diperbolehkan meliputi jurnal ilmiah, prosiding seminar, textbook, majalah ilmiah dan sumber lain yang dapat dipertanggungjawabkan.Adapun tata cara penulisan referensi tergantung pada style penulisan sitasi yang digunakan. 1) Bagi yang menggunakan style APA Feit, S. (1998). TCP/IP: architecture, protocols, and implementation with IPv6 and IP security. United States of America: The McGrawHill Companies, Inc.
Jin, H.-W., and Yoo, C. (2007). Impact of Protocol Overheads on Network Throughput Over High-Speed Interconnects: Measurement, Analysis, and Improvement. The Journal of Supercomputing. Vol. 41, No. 1, pp. 17 – 40.
Hens, F. J. (2006). Copper vs. Fibre: The Dilemma of the Access Network. Tersedia dari : http://www.trendcomms.com. [URL dikunjungi pada 18 Oktober 2009] 2) Bagi yang menggunakan style numbered (angka) 1. Feit, S., TCP/IP : architecture, protocols, and implementation with IPv6 and IP security. 1998, United States of America: The McGraw-Hill Companies, Inc. 2. Jin, H.-W., & Yoo, C. Impact of Protocol Overheads on Network Throughput
Over
High-Speed
Interconnects:
Measurement,
Analysis, and Improvement. The Journal of Supercomputing. 2007. Vol. 41, No. 1, pp. 17 – 40.
iv
3. Hens, F. J. Copper vs. Fibre: The Dilemma of the Access Network. 2009. Tersedia dari : http://www.trendcomms.com.
[URL
dikunjungi pada 18 Maret 2016] i. Softcopy laporan di kirimkan ke email
[email protected] maksimal seminggu setelah praktikum. Apabila laporan tidak sesuai dengan format ataupun waktu yang telah diberikan maka akan diberikan pengurangan nilai ataupun laporan tidak diterima. j. Laporan
dikirimkan
melalui
email
dengan
subjek:
[DASMIK][Kode][Modul] nama praktikan. Contoh :[DASMIK][DA][2] Mad Dog Kode: [DA] untuk David Abraham [MP] untuk Muhammad Prayogi [DR] untuk Dwi Rahmat [DP] untuk Damar Prasetyo [DD] untuk Dzulfiqar Dwiyanto
2. TATA TERTIB PRAKTIKUM a. Waktu toleransi praktikum 10 menit keterlambatan jika melebihi dari waktu toleransi maka praktikan di wajibkan melakukan INHAL. b. Menggunakan PDH HME (rapih dan sopan) c. Modul praktikum di print dan dibawa saat praktikum dilaksanakan. d. Wajib membawa laptop yang telah di install software pendukung sesuai dengan instruksi asisten dan kebutuhan praktikum (jika dibutuhkan) e. Tidak ada pergantian jadwal praktikum. f. Dilarang membawa makanan atau minuman. g. Tidak membawa senjata tajam dan menciptakan keributan.
3. INHAL Dilakukan apabila praktikan tidak dapat melaksanakan praktikum sesuai dengan jadwal atau melanggar tata tertib praktikum, syarat dan ketentuan: a. Maksimal INHAL 2 Modul praktikum apabila lebih, maka nilai praktikum maksimal D
v
b. Pelaksanaan inhal pengganti dilakukan setelah praktikum selesai atau dijadwalkan berikutnya oleh asisten.
4. PRESENTASI TUGAS AKHIR Merupakan ujian yang bersifat aplikatif dari materi yang telah dipraktikkan, setiap kelompok mempresentasikan sebuah program dalam bentuk aplikasi serta mendemonstrasikannya.
5. RESPONSI Merupakan review dari awal sampai dengan akhir praktikum dalam bentuk test tertulis yang dilaksanakan setelah selesai praktikum. Bagi yang tidak mengikuti responsi maka praktikan dianggap gugur atau tidak mengikuti praktikum tersebut dan nilai maksimal yang diberikan D.
6. JADWAL PRAKTIKUM a. Waktu yang diberikan sesuai dengan hari kerja (senin s/d jumat) b. Batas jam yang diberikan dari jam 8.00 sampai dengan 21.00 c. Jadwal diberikan sesuai dengan kesepakatan antara asisten dan praktikan, selama tidak mengganggu jam kuliah.
vi
KATA PENGANTAR Puji syukur ke hadirat Tuhan YME, Modul Dasar Mikroprosesor ini dapat diselesaikan sebelum masa praktikum dimulai. Dengan demikian, pelatihan asisten sudah dapat menggunakan modul dalam bentuk yang sama dengan modul yang akan digunakan praktikan. Pada kesempatan ini, penulis ingin menyampaikan terima kasih yang besarbesarnya pada semua pihak yang telah terlibat dalam penyusunan petunjuk praktikum ini. Akhir kata, semoga semua usaha yang telah dilakukan berkontribusi pada dihasilkannya lulusan Program Studi Teknik Elektro sebagai engineer dengan standar internasional.
Cilegon, Februari 2017
vii
DAFTAT ISI
HALAMAN JUDUL ................................................................................................... i STRUKTUR LABORATORIUM INSTRUMENTASI ........................................ ii PERATURAN PRAKTIKUM ................................................................................ iii KATA PENGANTAR ............................................................................................. vii DAFTAR ISI ............................................................................................................ viii PRAKTIKUM 1 FLIP-FLOP..................................................................................................................1 PRAKTIKUM 2 BELL (PUSHBUTTON DAN BUZZER) ...............................................................6 PRAKTIKUM 3 KEY TONE................................................................................................................12 PRAKTIKUM 4 COUNTER UP (7 SEGMENT) ...............................................................................17 PRAKTIKUM 5 NUMBER KEY (7 SEGMENT) ..............................................................................23 PRAKTIKUM 6 NUMBER KEY (LCD) .............................................................................................29 PRAKTIKUM 7 COUNTER UP (LCD) ..............................................................................................36 PRAKTIKUM 8 WATER LEVEL .......................................................................................................42 FORM PENILAIAN .................................................................................................51
viii
PRAKTIKUM 1 FLIP-FLOP
A. TUJUAN PERCOBAAN 1) Mengetahui cara mengatur port yang akan digunakan sebagai output. 2) Mengetahui cara memanggil dan menggunakan library. 3) Menganalisa program filp-flop LED.
B. ALAT YANG DIGUNAKAN 1) 1 Unit komputer 2) Software CoSmart 3) Software CoIDE 4) 1 Unit modul NUVOTON Nu-LB-NUC140 V2.0 5) Kabel mini USB
C. DASAR TEORI LED (Light Emitting Dioda) adalah dioda yang dapat memancarkan cahaya pada saat mendapat arus bias maju (forward bias). LED (Light Emitting Dioda) dapat memancarkan cahaya karena menggunakan dopping galium, arsenic dan phosporus. Jenis doping yang berbeda dapat menghasilkan cahaya dengan warna yang berbeda. LED (Light Emitting Dioda) merupakann salah satu jenis dioda, sehingga hanya akan mengalirkan arus listrik satu arah saja. LED akan memancarkan cahaya apabil diberikan tegangan listrik dengan konfigurasi forward bias. Berbeda dengan dioda pada umumnya, kemampuan mengalirkan arus pada LED (Light Emitting Dioda) cukup rendah yaitu maksimal 20 mA. Apabila LED (Light Emitting Dioda) dialiri arus lebih besar dari 20 mA maka LED akan rusak, sehingga pada rangkaian LED dipasang sebuah resistor sebgai pembatas arus. Simbol dan bentuk fisik dari LED (Light Emitting Dioda) dapat dilihat pada gambar berikut :
1
Gambar 1.1 LED Pustaka (seringkali dirujuk sebagai library), adalah kumpulan fungsifungsi yang terkandung dalam satu file, Setiap file pustaka mempunyai satu Header file yang menyimpan cetak biru dari fungsi-fungsi yang terkandung dalam file pustaka. Berikut contoh penulisan listing program untuk memanggil library input dan output.
LED pada rangkaian hardware adalah digital output yang bersifat ACTIVE LOW, yaitu menyala jika diberi logika LOW, dan mati jika diberikan logika HIGH. •
Untuk memberikan logika HIGH gunakan perintah berikut: DrvGPIO_SetBit(Nama_port, Nomor_pin);
•
Untuk memberikan logika LOW gunakan perintah berikut: DrvGPIO_ClrBit(Nama_port, Nomor_pin);
•
Untuk membuat delay bisa menggunakan perintah berikut: DrvSys_Delay(Lama_delay_dalam_cycle);
•
Untuk bisa menggunakan perintah di atas, perlu memasukkan library #include “DrvGPIO.h“ #include “DrvSYS.h”
2
Nama_port diisi E_GPA / E_GPB / E_GPC / E_GPD / E_GPE. Dalam hal ini karena LED dihubungkan ke PORT C maka isi dengan E_GPC. Nomor_pin diisi dengan angka pin kaki mikrokontroler. Dalam hal ini empat buah LED sudah dihubungkan ke pin 12 s/d 15.
D. PROSEDUR PERCOBAAN Langkah ke 1: Pilih Chip 1) Panggil aplikasi CooCox Software > CoSmart dari Start Menu untuk membantu konfigurasi pin. 2) Klik tombol New Chip di tengah layar. 3) Pilih Nuvoton, lalu pilih NUC140VE3CN. 4) Akan muncul gambar chip NUC140VE3CN, dengan semua peripheralnya.
Langkah ke 2: Set pin LED 1) Contreng GPIOC pada gambar chip. 2) Di jendela Configuration pilih GPIOC. 3) Di bawahnya, klik pada Pin 12 s/d 15 agar Enable. 4) Scroll ke bawah, atur Pin Config 12 s/d 15:
Mode Control: Output
Langkah ke 3: Generate Project 1) Simpan konfigurasi dengan klik Project > Save lalu pilih folder dan ketikkan nama file, misal konfigurasi01. 2) Lalu klik Generate > Generate CoIDE Project lalu pilih folder dan ketikkan nama project, misal praktikum01. 3) CoSmart akan membuatkan file project dan membukanya otomatis di Windows Explorer. Langkah ke 4: Buka Project 1) Klik dua kali file praktikum01 untuk membuka project dengan CoIDE.
3
2) Terlihat bahwa file project sudah disiapkan, klik dua kali pada main.c untuk mulai memprogram.
Langkah ke 5: Pemrograman LISTING PROGRAM: #include "DrvGPIO.h" #include "DrvSYS.h" void Init(); int main(void) { Init(); while(1) { DrvGPIO_ClrBit(E_GPC,12); DrvSYS_Delay(1000000); DrvGPIO_SetBit(E_GPC,12); DrvSYS_Delay(1000000); } }
Langkah ke 6: Build dan Download program 1) Klik icon Build (F7) di toolbar untuk melakukan compile program. Pastikan Build Successful, tidak ada error. 2) Klik icon Download Code to Flash di toolbar untuk memasukkan program ke chip. Pastikan Done, tidak ada error.
E. PERTANYAAN DAN TUGAS 1) Sebutkan dan jelaskan apa saja library yang digunakan dan mengapa library tersebut digunakan. 2) Sebutkan dan jelaskan port apa saja yang digunakan dan mengapa port tersebut digunakan. 3) Jelaskan secara singkat bagaimana program diatas bekerja.
4
F. BLANGKO PERCOBAAN Tabel 1.1 Praktikum 1 No
Percobaan Listing
1
program
Keterangan #include
“DrvHPIO.h” dihilangkan lalu build dan download. Jika sudah kembalikan seperti semula. Listing
2
program
#include
“DrvSYS.h” dihilangkan lalu buil dan
download.
Jika
sudah
kembalikan seperti semula. Angka
1000000
pada
listing
program DrvSYS_delay(1000000); 3
Diganti menjadi 500000 lalu build dan download. Lakukan juga
dengan
angka
100000,
25000 dan 10000. Angka 12 pada listing program DrvGPIO_Clrbit(E_GPC,12); 4
diganti menjadi 13 lalu build dan download. Lakukan juga dengan angka 14, 15 dan 16.
5
PRAKTIKUM 2 BELL (PUSHBUTTON DAN BUZZER)
A. TUJUAN PERCOBAAN 1) Mengetahui cara mengatur port yang akan digunakan sebagai input dan output. 2) Mengetahui fungsi dan cara kerja if else 3) Menganalisa program Bell (Pushbutton dan Buzzer).
B. ALAT YANG DIGUNAKAN 1) 1 Unit komputer 2) Software CoSmart 3) Software CoIDE 4) 1 Unit modul NUVOTON Nu-LB-NUC140 V2.0 5) Kabel mini USB
C. DASAR TEORI Pada mikrokontroler terdapat pin-pin yang berfungsi sebagai input atau output, Pin-pin pada mikrikontoler biasanya mempunyai fungsi/kegunaan khusus namun pin tersebut harus diaktifkan terlebih dahulu, jika tidak diaktifkan pin-pin tersebut hanya akan berfugsi sebagai input atau output digital, itupun hanya biner (bernilai 1 atau 0). Statement if adalah salah satu statement yang digunakan untuk penyeleksian kondisi. Statement ini merupakan statement percabangan paling dasar, jika suatu terpenuhi alias bernilai true maka akan menjalankan tertentu. Dan jika tidak maka tersebut tidak akan dijalankan.
6
Gambar 2.2 Blok Diagram If Pushbutton switch pada rangkaian hardware adalah digital input yang bersifat ACTIVE LOW, yaitu jika ditekan memberikan logika LOW. •
Untuk mengambil nilai logika input digital gunakan perintah berikut: DrvGPIO_GetBit(Nama_port, Nomor_pin); Keterangan: Nama_port diisi E_GPA / E_GPB / E_GPC / E_GPD /
E_GPE. Dalam hal ini karena Pushbutton switch dihubungkan ke PORT B maka isi dengan E_GPB. Nomor_pin diisi dengan angka pin kaki mikrokontroler di PORT yang terhubung Pushbutton switch yang ingin dimainkan. Dalam hal ini empat buah Pushbutton switch sudah dihubungkan ke pin 15. Fungsi DrvGPIO_GetBit menghasilkan nilai 0 jika logika LOW (pushbutton ditekan), atau 1 jika logika HIGH (pushbutton tidak ditekan).
7
BUZZER pada rangkaian hardware adalah digital output yang bersifat ACTIVE LOW, yaitu berbunyi jika diberi logika LOW, dan mati jika diberikan logika HIGH. •
Untuk memberikan logika HIGH gunakan perintah berikut: DrvGPIO_SetBit(Nama_port, Nomor_pin);
•
Untuk memberikan logika LOW gunakan perintah berikut: DrvGPIO_ClrBit(Nama_port, Nomor_pin);
•
Untuk membuat delay bisa menggunakan perintah berikut: DrvSys_Delay(Lama_delay_dalam_cycle);
•
Untuk bisa menggunakan perintah di atas, perlu memasukkan library #include “DrvGPIO.h“ #include “DrvSYS.h” Nama_port diisi E_GPA / E_GPB / E_GPC / E_GPD / E_GPE. Dalam hal
ini karena BUZZER dihubungkan ke PORT B maka isi dengan E_GPB. Nomor_pin diisi dengan angka pin kaki mikrokontroler. Dalam hal ini BUZZER dihubungkan ke pin 11.
D. PROSEDUR PERCOBAAN Langkah ke 1: Pilih Chip 1) Panggil aplikasi CooCox Software > CoSmart dari Start Menu untuk membantu konfigurasi pin. 2) Klik tombol New Chip di tengah layar. 3) Pilih Nuvoton, lalu pilih NUC140VE3CN 4) Akan muncul gambar chip NUC140VE3CN, dengan semua peripheralnya. Langkah ke 2: Set Pin Pushbutton 1) Contreng GPIOB pada gambar chip. 2) Di jendela Configuration pilih GPIOB. 3) Di bawahnya, klik pada Pin 15 agar Enable. 4) Scroll ke bawah, atur Pin Config 15: Mode Control: Input
8
Digital Input: Enable Input Signal Deb: Enable Langkah ke 3: Set Pin Buzzer 1) Di jendela Configuration pilih GPIOB. 2) Di bawahnya, klik pada Pin 11 agar Enable. 3) Scroll ke bawah, atur Pin Config 11: Mode Control: Output Langkah ke 4: Generate Project 1) Simpan konfigurasi dengan klik Project > Save lalu pilih folder dan ketikkan nama file, misal konfigurasi01. 2) Lalu klik Generate > Generate CoIDE Project lalu pilih folder dan ketikkan nama project, misal praktikum01. 3) CoSmart akan membuatkan file project dan membukanya otomatis di Windows Explorer. Langkah ke 5: Buka Project 1) Klik dua kali file praktikum01 untuk membuka project dengan CoIDE. 2) Terlihat bahwa file project sudah disiapkan, klik dua kali pada main.c untuk mulai memprogram. Langkah ke 6: Pemrograman LISTING PROGRAM #include "DrvGPIO.h" #include "DrvSYS.h" void Init(); int main(void) { Init(); while(1) { if(DrvGPIO_GetBit(E_GPB,15)==0) { DrvGPIO_ClrBit(E_GPB,11);
9
} else { DrvGPIO_SetBit(E_GPB,11); } } }
Langkah ke 6: Build dan Download program 3) Klik icon Build (F7) di toolbar untuk melakukan compile program. Pastikan Build Successful, tidak ada error. 4) Klik icon Download Code to Flash di toolbar untuk memasukkan program ke chip. Pastikan Done, tidak ada error.
E. PERTANYAAN DAN TUGAS 1) Sebutkan dan jelaskan port apa saja yang digunakan dan mengapa port tersebut digunakan. 2) Jelakan fungsi dari if else pada program diatas dan mengapa perintah tersebut digunakan. 3) Jelaskan secara singkat bagaimana program diatas bekerja.
F. BLANGKO PERCOBAAN Tabel 2.1 Praktikum 2 No 1
Percobaan
Keterangan
Tekan tombol push button. Fungsi if dihilangkan lalu build
2
dan
download
kemudian
operasikan modul. Jika sudah kembalikan seperti semula. Fungsi else dihilangkan lalu build
3
dan
download
kemudian
operasikan modul. Jika sudah kembalikan seperti semula.
10
Fungsi if dan else dihilangkan 4
lalu
build
dan
download
kemudian operasikan modul. Jika sudah kembalikan seperti semula. Angka 15 pada listing program DrvGPIO_GetBit(E_GPB,15) diganti menjadi 14 lalu build dan
5
download kemudian operasikan modul. Lakukan juga dengan angka 16. Jika sudah kembalikan seperti semula. Angka 11 pada listing program DrvGPIO_ClrBit(E_GPB,11); dan DrvGPIO_SetBit(E_GPB,11);
6
diganti menjadi 10 lalu build dan download kemudian operasikan modul. Lakukan juga dengan angka 12. Jika sudah kembalika seperti semula. Masukkan
listing
program
DrvGPIO_ClrBit(E_GPC,14); 7
didalam fungsi else lalu build dan download kemudian operasikan modul.
11
PRAKTIKUM 3 KEY TONE
A. TUJUAN PERCOBAAN 1) Memahami cara kerja keypad matrix. 2) Dapat memprogram keypad matrix.
B. ALAT YANG DIGUNAKAN 1) 1 Unit komputer 2) Software CoSmart 3) Software CoIDE 4) 1 Unit modul NUVOTON Nu-LB-NUC140 V2.0 5) Kabel mini USB
C. DASAR TEORI Keypad matrix di Learning Board menggunakan metode scanning. Proses scanning dengan cara membaca logic di Row, ketika Column diberikan logic LOW. Jika tombol ditekan maka Column dan Row yang bersesuaian menjadi terhubung, sehingga Row ikut menjadi LOW •
Untuk membaca penekanan keypad, bisa menggunakan perintah berikut: Scankey();
•
Untuk bisa menggunakan perintah di atas, perlu memasukkan library #include “ScanKey.h“
•
Untuk menampung hasil pembacaan keypad, ada baiknya membuat suatu variabel, misal bernama Key bertipe data integer: int key; Hasil pembacaan adalah 0 jika tidak ada yang ditekan, atau berupa angka 1
s/d 9 jika ada yang ditekan.
12
BUZZER pada rangkaian hardware adalah digital output yang bersifat ACTIVE LOW, yaitu berbunyi jika diberi logika LOW, dan mati jika diberikan logika HIGH. •
Untuk memberikan logika HIGH gunakan perintah berikut: DrvGPIO_SetBit(Nama_port, Nomor_pin);
•
Untuk memberikan logika LOW gunakan perintah berikut: DrvGPIO_ClrBit(Nama_port, Nomor_pin);
•
Untuk membuat delay bisa menggunakan perintah berikut: DrvSys_Delay(Lama_delay_dalam_cycle);
•
Untuk bisa menggunakan perintah di atas, perlu memasukkan library #include “DrvGPIO.h“ #include “DrvSYS.h” Nama_port diisi E_GPA / E_GPB / E_GPC / E_GPD / E_GPE. Dalam hal
ini karena BUZZER dihubungkan ke PORT B maka isi dengan E_GPB. Nomor_pin diisi dengan angka pin kaki mikrokontroler. Dalam hal ini BUZZER dihubungkan ke pin 11.
D. PROSEDUR PERCOBAAN Langkah ke 1: Pilih Chip 5) Panggil aplikasi CooCox Software > CoSmart dari Start Menu untuk membantu konfigurasi pin. 6) Klik tombol New Chip di tengah layar. 7) Pilih Nuvoton, lalu pilih NUC140VE3CN 8) Akan muncul gambar chip NUC140VE3CN, dengan semua peripheralnya. Langkah ke 2: Set Pin Keypad 1) Contreng GPIOA pada gambar chip. 2) Di jendela Configuration pilih GPIOA. 3) Di bawahnya, klik pada Pin 0 s/d 5 agar Enable.
13
Langkah ke 3: Set Pin Buzzer 1) Di jendela Configuration pilih GPIOB. 2) Di bawahnya, klik pada Pin 11 agar Enable. 3) Scroll ke bawah, atur Pin Config 11: Mode Control: Output Langkah ke 4: Generate Project 1) Simpan konfigurasi dengan klik Project > Save lalu pilih folder dan ketikkan nama file, misal konfigurasi01. 2) Lalu klik Generate > Generate CoIDE Project lalu pilih folder dan ketikkan nama project, misal praktikum01. 3) CoSmart akan membuatkan file project dan membukanya otomatis di Windows Explorer. Langkah ke 5: Buka Project 1) Klik dua kali file praktikum01 untuk membuka project dengan CoIDE. 2) Terlihat bahwa file project sudah disiapkan, klik dua kali pada main.c untuk mulai memprogram. Langkah ke 6: Pemrograman Nuvoton telah menyediakan Board Support Package (yang sudah di-instal) yang berisi banyak library yang dapat mempermudah kita memprogram objectobject di Learning Board. Untuk keypad kita bisa coba pakai library dari BSP. Langkah 1: Klik kanan di cmsis_lib\Include \Driver, lalu pilih Add Files. Browseke C:\Nuvoton\BSPLibrary\NUC100SeriesBSP\NuvPlatform_Keil \Include\NUC1xx-LB_002 Pilih file ScanKey.h
14
Langkah 2: Klik kanan di cmsis_lib\Src \Driver, lalu pilih Add Files. Browse ke C:\Nuvoton \BSP Library \NUC100SeriesBSP\NuvPlatform_Keil \Src \NUC1xxLB_002 Pilih file ScanKey.c
LISTING PROGRAM: #include "DrvGPIO.h" #include "DrvSYS.h" #include "ScanKey.h" int key; void Init(); int main(void) { Init(); while(1) { key=Scankey(); if(key!=0) { DrvGPIO_ClrBit(E_GPB,11); } else { DrvGPIO_SetBit(E_GPB,11); } } }
Langkah ke 7: Build dan Download program 5) Klik icon Build (F7) di toolbar untuk melakukan compile program. Pastikan Build Successful, tidak ada error. 6) Klik icon Download Code to Flash di toolbar untuk memasukkan program ke chip. Pastikan Done, tidak ada error.
E. PERTANYAAN DAN TUGAS 1) Gambarkan rangkaian Keypad matrix ! 2) Buat dan tuliskan program keypad matrix dengan output LED !
15
F. BLANGKO PERCOBAAN Tabel 3.1 Praktikum 3 No 1 2
Percobaan Tekan satu persatu kesembilan tombol tombol keypad matrik. Tekan tombol push button. Listing
program
“ScanKey.h” 3
Keterangan
#include
dihilangkan
lalu
build dan download kemudian operasikan modul. Jika sudah kembalikan seperti semula. Masukkan
listing
program
DrvGPIO_ClrBit(E_GPC,13); didalam 4
fungsi
if
dan
DrvGPIO_SetBit(E_GPC,13); didalam fungsi else lalu build dan download kemudian operasikan modul. Fungsi while dihilangkan lalu
5
build dan download kemudian operasikan modul. Jika sudah kembalikan seperti semula. Letak
listing
program
DrvGPIO_ClrBit(E_GPB,11); dan 6
DrvGPIO_SetBit(E_GPB,11); ditukar lalu build dan download kemudian operasikan modul. Jika sudah kembalikan seperti semula.
16
PRAKTIKUM 4 COUNTER UP (7 SEGMENT)
A. TUJUAN PERCOBAAN 1) Mengetahui apa itu Identifier (Pengenal) pada pemrograman. 2) Mengetahui cara kerja 7-segment pada modul. 3) Menganalisa program COUNTER UP (7 SEGMENT) B. ALAT YANG DIGUNAKAN 1) 1 Unit komputer 2) Software CoSmart 3) Software CoIDE 4) 1 Unit modul NUVOTON Nu-LB-NUC140 V2.0 5) Kabel mini USB
C. DASAR TEORI Pushbutton switch pada rangkaian hardware adalah digital input yang bersifat ACTIVE LOW, yaitu jika ditekan memberikan logika LOW. •
Untuk mengambil nilai logika input digital gunakan perintah berikut: DrvGPIO_GetBit(Nama_port, Nomor_pin); Keterangan: Nama_port diisi E_GPA / E_GPB / E_GPC / E_GPD /
E_GPE. Dalam hal ini karena Pushbutton switch dihubungkan ke PORT B maka isi dengan E_GPB. Nomor_pin diisi dengan angka pin kaki mikrokontroler di PORT yang terhubung Pushbutton switch yang ingin dimainkan. Dalam hal ini empat buah Pushbutton switch sudah dihubungkan ke pin 15. Fungsi DrvGPIO_GetBit menghasilkan nilai 0 jika logika LOW (pushbutton ditekan), atau 1 jika logika HIGH (pushbutton tidak ditekan).
7-segment display di Learning Board menggunakan metode scanning. Untuk memunculkan angka di salah satu 7-segment maka berikan data selagi
17
salah satu 7-segment yang dituju diaktifkan, sementara 7-segment lain tidak diaktifkan. •
Untuk menonaktifkan semua 7-segment bisa menggunakan perintah berikut: close_seven_segment();
•
Untuk mengaktifkan dan memberi data salah satu 7-segment, gunakan perintah berikut: show_seven_segment(Nomor_7segment,Data_angka);
•
Untuk bisa menggunakan perintah di atas, perlu memasukkan library #include “Seven_Segment.h“ Keterangan: Nomor_7segment diisi dengan nomor urut 0-3, dihitung dari
paling kanan. Data_angka diisi dengan angka 0-9.
BUZZER pada rangkaian hardware adalah digital output yang bersifat ACTIVE LOW, yaitu berbunyi jika diberi logika LOW, dan mati jika diberikan logika HIGH. •
Untuk memberikan logika HIGH gunakan perintah berikut: DrvGPIO_SetBit(Nama_port, Nomor_pin);
•
Untuk memberikan logika LOW gunakan perintah berikut: DrvGPIO_ClrBit(Nama_port, Nomor_pin);
•
Untuk membuat delay bisa menggunakan perintah berikut: DrvSys_Delay(Lama_delay_dalam_cycle);
•
Untuk bisa menggunakan perintah di atas, perlu memasukkan library #include “DrvGPIO.h“ #include “DrvSYS.h” Nama_port diisi E_GPA / E_GPB / E_GPC / E_GPD / E_GPE. Dalam hal
ini karena BUZZER dihubungkan ke PORT B maka isi dengan E_GPB. Nomor_pin diisi dengan angka pin kaki mikrokontroler. Dalam hal ini BUZZER dihubungkan ke pin 11.
D. PROSEDUR PERCOBAAN
18
Langkah ke 1: Pilih Chip 1) Panggil aplikasi CooCox Software > CoSmart dari Start Menu untuk membantu konfigurasi pin. 2) Klik tombol New Chip di tengah layar. 3) Pilih Nuvoton, lalu pilih NUC140VE3CN 4) Akan muncul gambar chip NUC140VE3CN, dengan semua peripheralnya. Langkah ke 2a: Set Pin 7-Segment Data 1) Contreng GPIOE pada gambar chip. 2) Di jendela Configuration pilih GPIOE 3) Di bawahnya, klik pada Pin 0 s/d 7 agar Enable. 4) Scroll ke bawah, atur Pin Config 0 s/d 7: Mode Control: Output Langkah ke 2b: Set Pin 7-Segment Select 1) Di jendela Configuration pilih GPIOC. 2) Di bawahnya, klik pada Pin 4 s/d 7 agar Enable. 3) Scroll ke bawah, atur Pin Config 4 s/d 7: Mode Control: Output Langkah ke 3: Set Pin Pushbutton 1) Contreng GPIOB pada gambar chip. 2) Di jendela Configuration pilih GPIOB. 3) Di bawahnya, klik pada Pin 15 agar Enable. 4) Scroll ke bawah, atur Pin Config 15: Mode Control: Input Digital Input: Enable Input Signal Deb: Enable Langkah ke 4: Set Pin Buzzer 1) Di jendela Configuration pilih GPIOB. 2) Di bawahnya, klik pada Pin 11 agar Enable.
19
3) Scroll ke bawah, atur Pin Config 11: Mode Control: Output
Langkah ke 5: Generate Project 1) Simpan konfigurasi dengan klik Project > Save lalu pilih folder dan ketikkan nama file, misal konfigurasi01. 2) Lalu klik Generate > Generate CoIDE Project lalu pilih folder dan ketikkan nama project, misal praktikum01. 3) CoSmart akan membuatkan file project dan membukanya otomatis di Windows Explorer. Langkah ke 6: Buka Project 1) Klik dua kali file praktikum01 untuk membuka project dengan CoIDE. 2) Terlihat bahwa file project sudah disiapkan, klik dua kali pada main.c untuk mulai memprogram. Langkah ke 7: Pemrograman Nuvoton telah menyediakan Board Support Package (yang sudah di-instal) yang berisi banyak library yang dapat mempermudah kita memprogram objectobject di Learning Board.
Untuk 7-segment kita bisa coba pakai library dari BSP. Langkah 1: Klik kanan di cmsis_lib\Include \Driver, lalu pilih Add Files. Browse ke C:\Nuvoton
\BSP
Library
\NUC100SeriesBSP\NuvPlatform_Keil
\Include
\NUC1xx-LB_002 Pilih file Seven_Segment.h Langkah 2: Klik kanan di cmsis_lib\Src \Driver, lalu pilih Add Files. Browse ke C:\Nuvoton \BSP Library \NUC100SeriesBSP\NuvPlatform_Keil \Src \NUC1xxLB_002
20
Pilih file Seven_Segment.c LISTING PROGRAM: #include "DrvGPIO.h" #include "DrvSYS.h" #include "Seven_Segment.h" int nilai=0; void Init(); int main(void) { Init(); close_seven_segment(); show_seven_segment(0,nilai); while(1) { DrvGPIO_SetBit(E_GPB,11); if(DrvGPIO_GetBit(E_GPB,15)==0) { DrvGPIO_ClrBit(E_GPB,11); nilai=nilai+1; close_seven_segment(); show_seven_segment(0,nilai); DrvSYS_Delay(1000000); } } }
Langkah ke 8: Build dan Download program 1) Klik icon Build (F7) di toolbar untuk melakukan compile program. Pastikan Build Successful, tidak ada error. 2) Klik icon Download Code to Flash di toolbar untuk memasukkan program ke chip. Pastikan Done, tidak ada error.
E. PERTANYAAN DAN TUGAS 1) Apa yang dimaksud Identifier (Pengenal) dan fungsinga? 2) Jelaskan bagaimana cara kerja dari 7segment pada modul ini? 3) Jelaskan bagaimana program COUNTER UP (7 SEGMENT) ini bekerja
F. BLANGKO PERCOBAAN Tabel 4.1 Praktikum 4 No 1
Percobaan Tekan
tombol
push
Keterangan button
21
sebanyak 10 kali. Listing
program
#include
“Seven_Segment.h” dihilangkan 2
lalu
build
dan
download
kemudian operasikan modul. Jika sudah kembalikan seperti semula. Identifier (Pengenal) pada listing program 3
int
nilai=0;
diubah
menjadi int hasil=0; lalu build dan
download
kemudian
operasikan modul. Jika sudah kembalikan seperti semula. Identifier (Pengenal) pada listing program 4
int
nilai=0;
diubah
menjadi int nilai=7; lalu build dan download kemudian operasikan modul. Jika sudah kembalikan seperti semula. Listing program nilai = nilai + 1; diubah menjadi nilai = nilai + 2;
5
lalu
build
dan
download
kemudian operasikan modul. Jika sudah kembalikan seperti semula. Listing
program
int
nilai=0;
diubah menjadi int nilai=9; dan 6
listing program nilai=nilai-1; lalu build dan download kemudian operasikan modul. Jika sudah kembalikan seperti semula.
PRAKTIKUM 5
22
NUMBER KEY (7 SEGMENT)
A. TUJUAN PERCOBAAN 1) Mengetahui fungsi dan macam-macam tipe data pada pemrograman C. 2) Mengetahui cara menampilkan data yang ada pada keypad matrix ke 7segment 3) Menganalisa program NUMBER KEY (7 SEGMENT)
B. ALAT YANG DIGUNAKAN 1) 1 Unit komputer 2) Software CoSmart 3) Software CoIDE 4) 1 Unit modul NUVOTON Nu-LB-NUC140 V2.0 5) Kabel mini USB
C. DASAR TEORI 7-segment display di Learning Board menggunakan metode scanning. Untuk memunculkan angka di salah satu 7-segment maka berikan data selagi salah satu 7-segment yang dituju diaktifkan, sementara 7-segment lain tidak diaktifkan. •
Untuk menonaktifkan semua 7-segment bisa menggunakan perintah berikut: close_seven_segment();
•
Untuk mengaktifkan dan memberi data salah satu 7-segment, gunakan perintah berikut: show_seven_segment(Nomor_7segment,Data_angka);
•
Untuk bisa menggunakan perintah di atas, perlu memasukkan library #include “Seven_Segment.h“ Keterangan: Nomor_7segment diisi dengan nomor urut 0-3, dihitung dari
paling kanan. Data_angka diisi dengan angka 0-9.
23
Keypad matrix di Learning Board menggunakan metode scanning. Proses scanning dengan cara membaca logic di Row, ketika Column diberikan logic LOW. Jika tombol ditekan maka Column dan Row yang bersesuaian menjadi terhubung, sehingga Row ikut menjadi LOW •
Untuk membaca penekanan keypad, bisa menggunakan perintah berikut: Scankey();
•
Untuk bisa menggunakan perintah di atas, perlu memasukkan library #include “ScanKey.h“
•
Untuk menampung hasil pembacaan keypad, ada baiknya membuat suatu variabel, misal bernama Key bertipe data integer: int key; Hasil pembacaan adalah 0 jika tidak ada yang ditekan, atau berupa angka 1
s/d 9 jika ada yang ditekan.
BUZZER pada rangkaian hardware adalah digital output yang bersifat ACTIVE LOW, yaitu berbunyi jika diberi logika LOW, dan mati jika diberikan logika HIGH. •
Untuk memberikan logika HIGH gunakan perintah berikut: DrvGPIO_SetBit(Nama_port, Nomor_pin);
•
Untuk memberikan logika LOW gunakan perintah berikut: DrvGPIO_ClrBit(Nama_port, Nomor_pin);
•
Untuk membuat delay bisa menggunakan perintah berikut: DrvSys_Delay(Lama_delay_dalam_cycle);
•
Untuk bisa menggunakan perintah di atas, perlu memasukkan library #include “DrvGPIO.h“ #include “DrvSYS.h” Nama_port diisi E_GPA / E_GPB / E_GPC / E_GPD / E_GPE. Dalam hal
ini karena BUZZER dihubungkan ke PORT B maka isi dengan E_GPB.
24
Nomor_pin diisi dengan angka pin kaki mikrokontroler. Dalam hal ini BUZZER dihubungkan ke pin 11. D. PROSEDUR PERCOBAAN Langkah ke 1: Pilih Chip 1) Panggil aplikasi CooCox Software > CoSmart dari Start Menu untuk membantu konfigurasi pin. 2) Klik tombol New Chip di tengah layar. 3) Pilih Nuvoton, lalu pilih NUC140VE3CN 4) Akan muncul gambar chip NUC140VE3CN, dengan semua peripheralnya. Langkah ke 2a: Set Pin 7-Segment Data 1) Contreng GPIOE pada gambar chip. 2) Di jendela Configuration pilih GPIOE 3) Di bawahnya, klik pada Pin 0 s/d 7 agar Enable. 4) Scroll ke bawah, atur Pin Config 0 s/d 7: Mode Control: Output Langkah ke 2b: Set Pin 7-Segment Select 1) Di jendela Configuration pilih GPIOC. 2) Di bawahnya, klik pada Pin 4 s/d 7 agar Enable. 3) Scroll ke bawah, atur Pin Config 4 s/d 7: Mode Control: Output Langkah ke 3: Set Pin Keypad 1) Contreng GPIOA pada gambar chip. 2) Di jendela Configuration pilih GPIOA. 3) Di bawahnya, klik pada Pin 0 s/d 5 agar Enable. Langkah ke 4: Set Pin Buzzer 1) Di jendela Configuration pilih GPIOB. 2) Di bawahnya, klik pada Pin 11 agar Enable. 3) Scroll ke bawah, atur Pin Config 11:
25
Mode Control: Output
Langkah ke 5: Generate Project 1) Simpan konfigurasi dengan klik Project > Save lalu pilih folder dan ketikkan nama file, misal konfigurasi01. 2) Lalu klik Generate > Generate CoIDE Project lalu pilih folder dan ketikkan nama project, misal praktikum01. 3) CoSmart akan membuatkan file project dan membukanya otomatis di Windows Explorer. Langkah ke 6: Buka Project 1) Klik dua kali file praktikum01 untuk membuka project dengan CoIDE. 2) Terlihat bahwa file project sudah disiapkan, klik dua kali pada main.c untuk mulai memprogram. Langkah ke 7: Pemrograman Nuvoton telah menyediakan Board Support Package (yang sudah di-instal) yang berisi banyak library yang dapat mempermudah kita memprogram objectobject di Learning Board.
Untuk 7-segment kita bisa coba pakai library dari BSP. Langkah 1: Klik kanan di cmsis_lib\Include \Driver, lalu pilih Add Files. Browse ke C:\Nuvoton
\BSP
Library
\NUC100SeriesBSP\NuvPlatform_Keil
\Include
\NUC1xx-LB_002 Pilih file Seven_Segment.h Langkah 2: Klik kanan di cmsis_lib\Src \Driver, lalu pilih Add Files. Browse ke C:\Nuvoton \BSP Library \NUC100SeriesBSP\NuvPlatform_Keil \Src \NUC1xxLB_002 Pilih file Seven_Segment.c
26
LISTING PROGRAM: #include "DrvGPIO.h" #include "DrvSYS.h" #include "ScanKey.h" #include "Seven_Segment.h" int key; void Init(); int main(void) { Init(); while(1) { key=Scankey(); DrvGPIO_SetBit(E_GPB,11); if(key!=0) { close_seven_segment(); show_seven_segment(0,key); DrvGPIO_ClrBit(E_GPB,11); } } }
Langkah ke 8: Build dan Download program 1) Klik icon Build (F7) di toolbar untuk melakukan compile program. Pastikan Build Successful, tidak ada error. 2) Klik icon Download Code to Flash di toolbar untuk memasukkan program ke chip. Pastikan Done, tidak ada error.
E. PERTANYAAN DAN TUGAS 1) Gambarkan gambar data sheet rangkaian 7-segment ! 2) Buat dan tuliskan, agar ke empat 7-segment pada modul NUVOTON Nu-LBNUC140 V2.0 F. BLANGKO PERCOBAAN Tabel 5.1 Praktikum 5 No
Percobaan
Keterangan
1
Tekan satu persatu kesembilan
27
keypad matrix. 2
Tekan tombol push button.
3
Tekan tombol reset. Listing
program
dihilangkan 4
lalu
int
key;
build
dan
download kemudian operasikan modul. Jika sudah kembalikan seperti semula. Pada
listing
program
key=Scankey(); diubah menjadi 5
key=Scankey()+7; lalu build dan download kemudian operasikan modul. Jika sudah kembalikan seperti semula. Pada
listing
program
show_seven_segment(0,key); diubah 6
menjadi
show_seven_segment(1,key); lalu build dan download kemudia operasikan modul. Jika sudah kembalikan seperti semula. Tipe data pada listing program int key; diubah menjadi float key;
7
lalu
build
dan
download
kemudian operasikan modul. Jika sudah kembalikan seperti semula.
28
PRAKTIKUM 6 NUMBER KEY (LCD)
A. TUJUAN PERCOBAAN 1) Mengetahui cara menampilkan karakter pada LCD. 2) Mengetahui cara menampilkan data yang ada pada keypad matrix ke LCD. 3) Menganalisa program NUMBER KEY (LCD) B. ALAT YANG DIGUNAKAN 1) 1 Unit komputer 2) Software CoSmart 3) Software CoIDE 4) 1 Unit modul NUVOTON Nu-LB-NUC140 V2.0 5) Kabel mini USB C. DASAR TEORI Keypad matrix di Learning Board menggunakan metode scanning. Proses scanning dengan cara membaca logic di Row, ketika Column diberikan logic LOW. Jika tombol ditekan maka Column dan Row yang bersesuaian menjadi terhubung, sehingga Row ikut menjadi LOW •
Untuk membaca penekanan keypad, bisa menggunakan perintah berikut: Scankey();
•
Untuk bisa menggunakan perintah di atas, perlu memasukkan library #include “ScanKey.h“
•
Untuk menampung hasil pembacaan keypad, ada baiknya membuat suatu variabel, misal bernama Key bertipe data integer: int key; Hasil pembacaan adalah 0 jika tidak ada yang ditekan, atau berupa angka 1
s/d 9 jika ada yang ditekan.
29
BUZZER pada rangkaian hardware adalah digital output yang bersifat ACTIVE LOW, yaitu berbunyi jika diberi logika LOW, dan mati jika diberikan logika HIGH. •
Untuk memberikan logika HIGH gunakan perintah berikut: DrvGPIO_SetBit(Nama_port, Nomor_pin);
•
Untuk memberikan logika LOW gunakan perintah berikut: DrvGPIO_ClrBit(Nama_port, Nomor_pin);
•
Untuk membuat delay bisa menggunakan perintah berikut: DrvSys_Delay(Lama_delay_dalam_cycle);
•
Untuk bisa menggunakan perintah di atas, perlu memasukkan library #include “DrvGPIO.h“ #include “DrvSYS.h” Nama_port diisi E_GPA / E_GPB / E_GPC / E_GPD / E_GPE. Dalam hal
ini karena BUZZER dihubungkan ke PORT B maka isi dengan E_GPB. Nomor_pin diisi dengan angka pin kaki mikrokontroler. Dalam hal ini BUZZER dihubungkan ke pin 11. LCD Matrix Display pada rangkaian hardware dikontrol secara SPI, dan memiliki pin kontrol backlight di port D pin 14 yang bersifat ACTIVE LOW, yaitu menyala jika diberi logika LOW, dan mati jika diberikan logika HIGH. •
Untuk menulis karakter di LCD, bisa menggunakan perintah berikut: print_lcd(Nomor_baris,Tulisan); Show_Word(Nomor_baris,Nomor_kolom,Huruf);
•
Untuk bisa menggunakan perintah di atas, perlu memasukkan library #include “LCD_Driver.h“
•
Driver LCD_Driver membutuhkan file Ascii_Table.c untuk menggambar huruf.
•
Saat init pertama kali, perlu dipanggil perintah berikut: Initialize_pannel();
•
Untuk membersihkan display, bisa menggunakan perintah berikut: clr_all_pannal();
30
Keterangan: Nomor_baris diisi angka 0-3, dihitung dari paling atas. Nomor_kolom diisi angka 0-15, dihitung dari paling kiri.
D. PROSEDUR PERCOBAAN Langkah ke 1: Pilih Chip 1) Panggil aplikasi CooCox Software > CoSmart dari Start Menu untuk membantu konfigurasi pin. 2) Klik tombol New Chip di tengah layar. 3) Pilih Nuvoton, lalu pilih NUC140VE3CN 4) Akan muncul gambar chip NUC140VE3CN, dengan semua peripheralnya. Langkah ke 2: Set Pin Keypad 1) Contreng GPIOA pada gambar chip. 2) Di jendela Configuration pilih GPIOA. 3) Di bawahnya, klik pada Pin 0 s/d 5 agar Enable. Langkah ke 3: Set Pin Buzzer 1) Di jendela Configuration pilih GPIOB. 2) Di bawahnya, klik pada Pin 11 agar Enable. 3) Scroll ke bawah, atur Pin Config 11: Mode Control: Output Langkah ke 4a: Set Pin LCD Matrix 1) Contreng SPI3 pada gambar chip untuk mengaktifkan fitur komunikasi SPI ke LCD Matrix. Langkah ke 4b: Set Pin Backlight 1) Contreng GPIOD pada gambar chip. 2) Di jendela Configuration pilih GPIOD. 3) Di bawahnya, klik pada Pin 14 agar Enable. 4) Scroll ke bawah, atur Pin Config 14: Mode Control: Output
31
Langkah ke 5: Generate Project 1) Simpan konfigurasi dengan klik Project > Save lalu pilih folder dan ketikkan nama file, misal konfigurasi01. 2) Lalu klik Generate > Generate CoIDE Project lalu pilih folder dan ketikkan nama project, misal praktikum01. 3) CoSmart akan membuatkan file project dan membukanya otomatis di Windows Explorer. Langkah ke 6: Buka Project 1) Klik dua kali file praktikum01 untuk membuka project dengan CoIDE. 2) Terlihat bahwa file project sudah disiapkan, klik dua kali pada main.c untuk mulai memprogram. Langkah ke 7: Pemrograman Nuvoton telah menyediakan Board Support Package (yang sudah di-instal) yang berisi banyak library yang dapat mempermudah kita memprogram objectobject di Learning Board. Untuk keypad kita bisa coba pakai library dari BSP. Langkah 1: Klik kanan di cmsis_lib\Include \Driver, lalu pilih Add Files. Browse ke C:\Nuvoton \BSPLibrary \NUC100SeriesBSP \NuvPlatform_Keil
\Include
\NUC1xx-LB_002 Pilih file ScanKey.h
Langkah 2: Klik kanan di cmsis_lib\Src \Driver, lalu pilih Add Files. Browse ke C:\Nuvoton \BSP Library \NUC100SeriesBSP\NuvPlatform_Keil \Src \NUC1xxLB_002 Pilih file ScanKey.c
32
Untuk LCD Matrix Display bisa coba pakai library dari BSP. Langkah 1: Klik kanan di cmsis_lib\Include \Driver, lalu pilih Add Files. Browse ke C:\Nuvoton \BSP Library \NUC100SeriesBSP \NuvPlatform_Keil \Include \NUC1xx-LB_002 Pilih file LCD_Driver.h Langkah 2: Klik kanan di cmsis_lib\Src \Driver, lalu pilih Add Files. Browse ke C:\Nuvoton \BSP Library \NUC100SeriesBSP\NuvPlatform_Keil \Src \NUC1xxLB_002 Pilih file LCD_Driver.c Langkah 3: Klik kanan di cmsis_lib\Src \Driver, lalu pilih Add Files. Browse ke C:\Nuvoton \BSP Library \NUC100SeriesBSP \NuvPlatform_Keil \Src \NUC1xxLB_002 Pilih file Ascii_Table.c
LISTING PROGRAM: #include "DrvGPIO.h" #include "DrvSYS.h" #include "LCD_Driver.h" int key; void Init(); int main(void) { Init(); Initial_pannel(); DrvGPIO_ClrBit(E_GPD,14); clr_all_pannal(); print_lcd(0,"0"); while(1) { key=Scankey(); if(key!=0) { Show_Word(0,0,key+'0'); DrvGPIO_ClrBit(E_GPB,11); } else { DrvGPIO_SetBit(E_GPB,11); }
33
} }
Langkah ke 8: Build dan Download program 1) Klik icon Build (F7) di toolbar untuk melakukan compile program. Pastikan Build Successful, tidak ada error. 2) Klik icon Download Code to Flash di toolbar untuk memasukkan program ke chip. Pastikan Done, tidak ada error. E. PERTANYAAN DAN TUGAS 1) Jelaskan bagaimana cara menampilkan karakter pada LCD? 2) Buatlah listing program agar menampilkan “dasar mikro” pada LCD dan jelaskan bagaimana program tersebut bekerja? 3) Jelaskan bagaimana program COUNTER UP (7 SEGMENT) ini bekerja? F. BLANGKO PERCOBAAN Tabel 6.1 Praktikum 6 No 1 2
Percobaan Tekan satu persatu kesembilan tombol keypad matrix Tekan tombol reset. Listing
3
Keterangan
program
#include
“LCD_Driver.h” dihilangkan lalu build dan download. Jika sudah kembalikan seperti semula. Listing program print_lcd(0,”0”); diubah menjadi print_lcd(0,”7”);
4
lalu
build
dan
download
kemudian operasikan modul. Jika sudah kembalikan seperti semula.
34
Listing program print_lcd(0,”0”); diubah menjadi print_lcd(1,”0”); 5
lalu
build
dan
download
kemudian operasikan modul. Jika sudah kembalikan seperti semula. Pada
listing
program
Show_Word(0,0,key+’0’); diubah menjadi 6
Show_Word(0,0,key+’1’);
lalu
build dan download kemudia operasikan modul. Jika sudah kembalikan seperti semula. Pada
listing
program
Show_Word(0,0,key+’0’); diubah menjadi 7
Show_Word(1,2,key+’0’);
lalu
build dan download kemudia operasikan modul. Jika sudah kembalikan seperti semula.
35
PRAKTIKUM 7 COUNTER UP (LCD)
A. TUJUAN PERCOBAAN 1) Mengetahui cara menggunakan fungsi aritmatika pada pemrograman C. 2) Mengetahui cara kerja if bersarang. 3) Menganalisa program COUNTER UP (LCD) B. ALAT YANG DIGUNAKAN 1) 1 Unit komputer 2) Software CoSmart 3) Software CoIDE 4) 1 Unit modul NUVOTON Nu-LB-NUC140 V2.0 5) Kabel mini USB
C. DASAR TEORI Pushbutton switch pada rangkaian hardware adalah digital input yang bersifat ACTIVE LOW, yaitu jika ditekan memberikan logika LOW. •
Untuk mengambil nilai logika input digital gunakan perintah berikut: DrvGPIO_GetBit(Nama_port, Nomor_pin); Keterangan: Nama_port diisi E_GPA / E_GPB / E_GPC / E_GPD /
E_GPE. Dalam hal ini karena Pushbutton switch dihubungkan ke PORT B maka isi dengan E_GPB. Nomor_pin diisi dengan angka pin kaki mikrokontroler di PORT yang terhubung Pushbutton switch yang ingin dimainkan. Dalam hal ini empat buah Pushbutton switch sudah dihubungkan ke pin 15. Fungsi DrvGPIO_GetBit menghasilkan nilai 0 jika logika LOW (pushbutton ditekan), atau 1 jika logika HIGH (pushbutton tidak ditekan).
36
BUZZER pada rangkaian hardware adalah digital output yang bersifat ACTIVE LOW, yaitu berbunyi jika diberi logika LOW, dan mati jika diberikan logika HIGH. •
Untuk memberikan logika HIGH gunakan perintah berikut: DrvGPIO_SetBit(Nama_port, Nomor_pin);
•
Untuk memberikan logika LOW gunakan perintah berikut: DrvGPIO_ClrBit(Nama_port, Nomor_pin);
•
Untuk membuat delay bisa menggunakan perintah berikut: DrvSys_Delay(Lama_delay_dalam_cycle);
•
Untuk bisa menggunakan perintah di atas, perlu memasukkan library #include “DrvGPIO.h“ #include “DrvSYS.h” Nama_port diisi E_GPA / E_GPB / E_GPC / E_GPD / E_GPE. Dalam hal
ini karena BUZZER dihubungkan ke PORT B maka isi dengan E_GPB. Nomor_pin diisi dengan angka pin kaki mikrokontroler. Dalam hal ini BUZZER dihubungkan ke pin 11. LCD Matrix Display pada rangkaian hardware dikontrol secara SPI, dan memiliki pin kontrol backlight di port D pin 14 yang bersifat ACTIVE LOW, yaitu menyala jika diberi logika LOW, dan mati jika diberikan logika HIGH. •
Untuk menulis karakter di LCD, bisa menggunakan perintah berikut: print_lcd(Nomor_baris,Tulisan); Show_Word(Nomor_baris,Nomor_kolom,Huruf);
•
Untuk bisa menggunakan perintah di atas, perlu memasukkan library #include “LCD_Driver.h“
•
Driver LCD_Driver membutuhkan file Ascii_Table.c untuk menggambar huruf.
•
Saat init pertama kali, perlu dipanggil perintah berikut: Initialize_pannel();
•
Untuk membersihkan display, bisa menggunakan perintah berikut: clr_all_pannal();
37
Keterangan: Nomor_baris diisi angka 0-3, dihitung dari paling atas. Nomor_kolom diisi angka 0-15, dihitung dari paling kiri.
D. PROSEDUR PERCOBAAN Langkah ke 1: Pilih Chip 1) Panggil aplikasi CooCox Software > CoSmart dari Start Menu untuk membantu konfigurasi pin. 2) Klik tombol New Chip di tengah layar. 3) Pilih Nuvoton, lalu pilih NUC140VE3CN 4) Akan muncul gambar chip NUC140VE3CN, dengan semua peripheralnya. Langkah ke 2: Set Pin Pushbutton 1) Contreng GPIOB pada gambar chip. 2) Di jendela Configuration pilih GPIOB. 3) Di bawahnya, klik pada Pin 15 agar Enable. 4) Scroll ke bawah, atur Pin Config 15: Mode Control: Input Digital Input: Enable Input Signal Deb: Enable Langkah ke 3: Set Pin Buzzer 1) Di jendela Configuration pilih GPIOB. 2) Di bawahnya, klik pada Pin 11 agar Enable. 3) Scroll ke bawah, atur Pin Config 11: Mode Control: Output Langkah ke 4a: Set Pin LCD Matrix 1) Contreng SPI3 pada gambar chip untuk mengaktifkan fitur komunikasi SPI ke LCD Matrix. Langkah ke 4b: Set Pin Backlight 1) Contreng GPIOD pada gambar chip.
38
2) Di jendela Configuration pilih GPIOD. 3) Di bawahnya, klik pada Pin 14 agar Enable. 4) Scroll ke bawah, atur Pin Config 14: Mode Control: Output Langkah ke 5: Generate Project 1) Simpan konfigurasi dengan klik Project > Save lalu pilih folder dan ketikkan nama file, misal konfigurasi01. 2) Lalu klik Generate > Generate CoIDE Project lalu pilih folder dan ketikkan nama project, misal praktikum01. 3) CoSmart akan membuatkan file project dan membukanya otomatis di Windows Explorer. Langkah ke 6: Buka Project 1) Klik dua kali file praktikum01 untuk membuka project dengan CoIDE. 2) Terlihat bahwa file project sudah disiapkan, klik dua kali pada main.c untuk mulai memprogram. Langkah ke 7: Pemrograman Nuvoton telah menyediakan Board Support Package (yang sudah di-instal) yang berisi banyak library yang dapat mempermudah kita memprogram objectobject di Learning Board. Untuk LCD Matrix Display bisa coba pakai library dari BSP. Langkah 1: Klik kanan di cmsis_lib\Include \Driver, lalu pilih Add Files. Browse ke C:\Nuvoton
\BSP
Library
\NUC100SeriesBSP\NuvPlatform_Keil
\Include
\NUC1xx-LB_002 Pilih file LCD_Driver.h Langkah 2: Klik kanan di cmsis_lib\Src \Driver, lalu pilih Add Files. Browse ke C:\Nuvoton \BSP Library \NUC100SeriesBSP\NuvPlatform_Keil \Src \NUC1xxLB_002
39
Pilih file LCD_Driver.c Langkah 3: Klik kanan di cmsis_lib\Src \Driver, lalu pilih Add Files. Browse ke C:\Nuvoton \BSP Library \NUC100SeriesBSP\NuvPlatform_Keil \Src \NUC1xxLB_002 Pilih file Ascii_Table.c
LISTING PROGRAM: #include "DrvGPIO.h" #include "DrvSYS.h" #include "LCD_Driver.h" int nilai=0,a=0; void Init(); int main(void) { Init(); Initial_pannel(); DrvGPIO_ClrBit(E_GPD,14); clr_all_pannal(); print_lcd(0,"0"); while(1) { if(DrvGPIO_GetBit(E_GPB,15)==0) { if(a==0) { DrvGPIO_ClrBit(E_GPB,11); nilai=nilai+1; Show_Word(0,0,nilai%10+'0'); a=1; } } if(DrvGPIO_GetBit(E_GPB,15)==1) { DrvGPIO_SetBit(E_GPB,11); DrvSYS_Delay(10000); a=0; } } }
Langkah ke 8: Build dan Download program 1) Klik icon Build (F7) di toolbar untuk melakukan compile program. Pastikan Build Successful, tidak ada error. 2) Klik icon Download Code to Flash di toolbar untuk memasukkan program ke chip. Pastikan Done, tidak ada error.
40
E. PERTANYAAN DAN TUGAS 1) Apa saja fungsi aritmatika yang dapat digunakan pada pemrograman C? 2) Tuliskan contoh listing program masing-masing fungsi aritmatika dan menampilkan hasilnya di LCD? 3) Jelaskan bagaimana program COUNTER UP (LCD) ini bekerja?
41
PRAKTIKUM 8 WATER LEVEL
A. TUJUAN PERCOBAAN 1) Menganalisa program WATER LEVEL.
B. ALAT YANG DIGUNAKAN 1) 1 Unit komputer 2) Software CoSmart 3) Software CoIDE 4) 1 Unit modul NUVOTON Nu-LB-NUC140 V2.0 5) Kabel mini USB
C. DASAR TEORI LED pada rangkaian hardware adalah digital output yang bersifat ACTIVE LOW, yaitu menyala jika diberi logika LOW, dan mati jika diberikan logika HIGH. •
Untuk memberikan logika HIGH gunakan perintah berikut: DrvGPIO_SetBit(Nama_port, Nomor_pin);
•
Untuk memberikan logika LOW gunakan perintah berikut: DrvGPIO_ClrBit(Nama_port, Nomor_pin);
•
Untuk membuat delay bisa menggunakan perintah berikut: DrvSys_Delay(Lama_delay_dalam_cycle);
•
Untuk bisa menggunakan perintah di atas, perlu memasukkan library #include “DrvGPIO.h“ #include “DrvSYS.h” Nama_port diisi E_GPA / E_GPB / E_GPC / E_GPD / E_GPE. Dalam hal
ini karena LED dihubungkan ke PORT C maka isi dengan E_GPC. Nomor_pin diisi dengan angka pin kaki mikrokontroler. Dalam hal ini empat buah LED sudah dihubungkan ke pin 12 s/d 15.
42
Pushbutton switch pada rangkaian hardware adalah digital input yang bersifat ACTIVE LOW, yaitu jika ditekan memberikan logika LOW. •
Untuk mengambil nilai logika input digital gunakan perintah berikut: DrvGPIO_GetBit(Nama_port, Nomor_pin); Keterangan: Nama_port diisi E_GPA / E_GPB / E_GPC / E_GPD /
E_GPE. Dalam hal ini karena Pushbutton switch dihubungkan ke PORT B maka isi dengan E_GPB. Nomor_pin diisi dengan angka pin kaki mikrokontroler di PORT yang terhubung Pushbutton switch yang ingin dimainkan. Dalam hal ini empat buah Pushbutton switch sudah dihubungkan ke pin 15. Fungsi DrvGPIO_GetBit menghasilkan nilai 0 jika logika LOW (pushbutton ditekan), atau 1 jika logika HIGH (pushbutton tidak ditekan).
BUZZER pada rangkaian hardware adalah digital output yang bersifat ACTIVE LOW, yaitu berbunyi jika diberi logika LOW, dan mati jika diberikan logika HIGH. •
Untuk memberikan logika HIGH gunakan perintah berikut: DrvGPIO_SetBit(Nama_port, Nomor_pin);
•
Untuk memberikan logika LOW gunakan perintah berikut: DrvGPIO_ClrBit(Nama_port, Nomor_pin);
•
Untuk membuat delay bisa menggunakan perintah berikut: DrvSys_Delay(Lama_delay_dalam_cycle);
•
Untuk bisa menggunakan perintah di atas, perlu memasukkan library #include “DrvGPIO.h“ #include “DrvSYS.h” Nama_port diisi E_GPA / E_GPB / E_GPC / E_GPD / E_GPE. Dalam hal
ini karena BUZZER dihubungkan ke PORT B maka isi dengan E_GPB. Nomor_pin diisi dengan angka pin kaki mikrokontroler. Dalam hal ini BUZZER dihubungkan ke pin 11.
43
LCD Matrix Display pada rangkaian hardware dikontrol secara SPI, dan memiliki pin kontrol backlight di port D pin 14 yang bersifat ACTIVE LOW, yaitu menyala jika diberi logika LOW, dan mati jika diberikan logika HIGH. •
Untuk menulis karakter di LCD, bisa menggunakan perintah berikut: print_lcd(Nomor_baris,Tulisan); Show_Word(Nomor_baris,Nomor_kolom,Huruf);
•
Untuk bisa menggunakan perintah di atas, perlu memasukkan library #include “LCD_Driver.h“
•
Driver LCD_Driver membutuhkan file Ascii_Table.c untuk menggambar huruf.
•
Saat init pertama kali, perlu dipanggil perintah berikut: Initialize_pannel();
•
Untuk membersihkan display, bisa menggunakan perintah berikut: clr_all_pannal(); Keterangan: Nomor_baris diisi angka 0-3, dihitung dari paling atas.
Nomor_kolom diisi angka 0-15, dihitung dari paling kiri.
Variabel Resistor pada rangkaian hardware yang memberikan masukan sinyal analog. ARM NUC140 memiliki 8 channel pengkonversi sinyal analog ke nilai digital (ADC) dengan ketelitian 12 bit, yang dapat membaca level sinyal analog menjadi angka dalam range 0-4095. Clock ADC dapat menggunakan internal 22MHz dengan divisor 2. •
Untuk membaca sinyal analog, bisa menggunakan perintah berikut: DrvADC_StartConvert(); DrvADC_GetConversionData(Nomor_channel);
•
Untuk bisa menggunakan perintah di atas, perlu memasukkan library #include “DrvADC.h“
•
Untuk menampung hasil pembacaan ADC, ada baiknya membuat suatu variabel, misal bernama adc bertipe data integer.
44
Keterangan: Nomor_channel diisi angka 0-7, sesuai dengan pin tempat sinyal analog terhubung. Dalam hal ini, Variabel Resistor ada di channel 7.
D. PROSEDUR PERCOBAAN Langkah ke 1: Pilih Chip 1) Panggil aplikasi CooCox Software > CoSmart dari Start Menu untuk membantu konfigurasi pin. 2) Klik tombol New Chip di tengah layar. 3) Pilih Nuvoton, lalu pilih NUC140VE3CN 4) Akan muncul gambar chip NUC140VE3CN, dengan semua peripheralnya. Langkah ke 2: Set Pin LED 1) Contreng GPIOC pada gambar chip. 2) Di jendela Configuration pilih GPIOC. 3) Di bawahnya, klik pada Pin 12 s/d 15 agar Enable. 4) Scroll ke bawah, atur Pin Config 12 s/d 15: Mode Control: Output Langkah ke 3: Set Pin Pushbutton 1) Contreng GPIOB pada gambar chip. 2) Di jendela Configuration pilih GPIOB. 3) Di bawahnya, klik pada Pin 15 agar Enable. 4) Scroll ke bawah, atur Pin Config 15: Mode Control: Input Digital Input: Enable Input Signal Deb: Enable Langkah ke 4: Set Pin VR 1) Contreng ADC pada gambar chip. 2) Di jendela Configuration pilih ADC. 3) Klik pada Channel 7 agar Enable. 4) Scroll ke atas, klik pada Clock Source, pilih INTERNAL 22M.
45
5) Klik pada Clock Divisor, isi dengan angka 2. Langkah ke 5: Set Pin Buzzer 1) Di jendela Configuration pilih GPIOB. 2) Di bawahnya, klik pada Pin 11 agar Enable. 3) Scroll ke bawah, atur Pin Config 11: Mode Control: Output Langkah ke 6a: Set Pin LCD Matrix 1) Contreng SPI3 pada gambar chip untuk mengaktifkan fitur komunikasi SPI ke LCD Matrix. Langkah ke 6b: Set Pin Backlight 1) Contreng GPIOD pada gambar chip. 2) Di jendela Configuration pilih GPIOD. 3) Di bawahnya, klik pada Pin 14 agar Enable. 4) Scroll ke bawah, atur Pin Config 14: Mode Control: Output Langkah ke 7: Generate Project 1) Simpan konfigurasi dengan klik Project > Save lalu pilih folder dan ketikkan nama file, misal konfigurasi01. 2) Lalu klik Generate > Generate CoIDE Project lalu pilih folder dan ketikkan nama project, misal praktikum01. 3) CoSmart akan membuatkan file project dan membukanya otomatis di Windows Explorer. Langkah ke 8: Buka Project 1) Klik dua kali file praktikum01 untuk membuka project dengan CoIDE. 2) Terlihat bahwa file project sudah disiapkan, klik dua kali pada main.c untuk mulai memprogram.
46
Lnagkah ke 9: Pemrograman Nuvoton telah menyediakan Board Support Package (yang sudah di-instal) yang berisi banyak library yang dapat mempermudah kita memprogram objectobject di Learning Board. Untuk LCD Matrix Display bisa coba pakai library dari BSP. Langkah 1: Klik kanan di cmsis_lib\Include \Driver, lalu pilih Add Files. Browse ke C:\Nuvoton
\BSP
Library
\NUC100SeriesBSP\NuvPlatform_Keil
\Include
\NUC1xx-LB_002 Pilih file LCD_Driver.h Langkah 2: Klik kanan di cmsis_lib\Src \Driver, lalu pilih Add Files. Browse ke C:\Nuvoton \BSP Library \NUC100SeriesBSP\NuvPlatform_Keil \Src \NUC1xxLB_002 Pilih file LCD_Driver.c Langkah 3: Klik kanan di cmsis_lib\Src \Driver, lalu pilih Add Files. Browse ke C:\Nuvoton \BSP Library \NUC100SeriesBSP\NuvPlatform_Keil \Src \NUC1xxLB_002 Pilih file Ascii_Table.c
LISTING PROGRAM #include "DrvGPIO.h" #include "DrvSYS.h" #include "LCD_Driver.h" #include "DrvADC.h" int adc,a=0; void Init(); int main(void) { Init(); Initial_pannel(); DrvGPIO_ClrBit(E_GPD,14);
47
clr_all_pannal(); while(a==0) { print_lcd(0,"NUVOTON"); print_lcd(1,"DASAR MIKRO"); print_lcd(2,"TEKAN PUSH BTN"); print_lcd(3,"UNTUK MELANJUTKN"); if(DrvGPIO_GetBit(E_GPB,15)==0) { a=1; clr_all_pannal(); } } while(a==1) { if(DrvGPIO_GetBit(E_GPB,15)==1) { print_lcd(0,"ADC="); DrvADC_StartConvert(); adc=DrvADC_GetConversionData(7); Show_Word(0,5,adc/1000+'0'); Show_Word(0,6,adc%1000/100+'0'); Show_Word(0,7,adc%100/10+'0'); Show_Word(0,8,adc%10+'0'); if(adc<=999) { DrvGPIO_SetBit(E_GPC,15); DrvGPIO_SetBit(E_GPC,14); DrvGPIO_SetBit(E_GPC,13); DrvGPIO_SetBit(E_GPC,12); DrvGPIO_ClrBit(E_GPB,11); print_lcd(1,"LOW!!!"); } if(adc>=1000) { if(adc<=1999) { DrvGPIO_ClrBit(E_GPC,15);
48
DrvGPIO_SetBit(E_GPC,14); DrvGPIO_SetBit(E_GPC,13); DrvGPIO_SetBit(E_GPC,12); DrvGPIO_SetBit(E_GPB,11); print_lcd(1,"NORMAL"); } } if(adc>=2000) { if(adc<=2999) { DrvGPIO_ClrBit(E_GPC,15); DrvGPIO_ClrBit(E_GPC,14); DrvGPIO_SetBit(E_GPC,13); DrvGPIO_SetBit(E_GPC,12); DrvGPIO_SetBit(E_GPB,11); print_lcd(1,"NORMAL"); } } if(adc>=3000) { if(adc<=3999) { DrvGPIO_ClrBit(E_GPC,15); DrvGPIO_ClrBit(E_GPC,14); DrvGPIO_ClrBit(E_GPC,13); DrvGPIO_SetBit(E_GPC,12); DrvGPIO_SetBit(E_GPB,11); print_lcd(1,"NORMAL"); } } if(adc>=4000) { DrvGPIO_ClrBit(E_GPC,15); DrvGPIO_ClrBit(E_GPC,14); DrvGPIO_ClrBit(E_GPC,13); DrvGPIO_ClrBit(E_GPC,12); DrvGPIO_ClrBit(E_GPB,11);
49
print_lcd(1,"HIGH!!"); } }
} }
Langkah ke 12: Build dan Download program 1) Klik icon Build (F7) di toolbar untuk melakukan compile program. Pastikan Build Successful, tidak ada error. 2) Klik icon Download Code to Flash di toolbar untuk memasukkan program ke chip. Pastikan Done, tidak ada error.
50
FORM PENILAIAN
NAMA MAHASISWA
ANGKA
JENIS PENILAIAN : TES PENDAHULUAN (10%) PRAKTIKUM (20%) LAPORAN (45%) TOTAL PENILAIAN
51