Anda di halaman 1dari 59

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 McGraw-
Hill 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 lab.instrumentasi.jte@gmail.com
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 besar-
besarnya 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 fungsi-
fungsi 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 Keterangan
Listing program #include
DrvHPIO.h dihilangkan lalu
1
build dan download. Jika sudah
kembalikan seperti semula.
Listing program #include
DrvSYS.h dihilangkan lalu buil
2
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 Percobaan Keterangan
1 Tekan tombol push button.
Fungsi if dihilangkan lalu build
dan download kemudian
2
operasikan modul. Jika sudah
kembalikan seperti semula.
Fungsi else dihilangkan lalu build
dan download kemudian
3
operasikan modul. Jika sudah
kembalikan seperti semula.

10
Fungsi if dan else dihilangkan
lalu build dan download
4
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 object-
object 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 \NUC1xx-
LB_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 Percobaan Keterangan
Tekan satu persatu kesembilan
1
tombol tombol keypad matrik.

2 Tekan tombol push button.

Listing program #include


ScanKey.h dihilangkan lalu
3 build dan download kemudian
operasikan modul. Jika sudah
kembalikan seperti semula.
Masukkan listing program
DrvGPIO_ClrBit(E_GPC,13);
didalam fungsi if dan
4 DrvGPIO_SetBit(E_GPC,13);
didalam fungsi else lalu build dan
download kemudian operasikan
modul.
Fungsi while dihilangkan lalu
build dan download kemudian
5
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 object-
object 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 \NUC1xx-
LB_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 Percobaan Keterangan
1 Tekan tombol push 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 int nilai=0; diubah
menjadi int hasil=0; lalu build
3
dan download kemudian
operasikan modul. Jika sudah
kembalikan seperti semula.
Identifier (Pengenal) pada listing
program int nilai=0; diubah
menjadi int nilai=7; lalu build dan
4
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
listing program nilai=nilai-1; lalu
6
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 7-
segment
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 object-
object 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 \NUC1xx-
LB_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-LB-
NUC140 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 int key;
dihilangkan lalu build dan
4 download kemudian operasikan
modul. Jika sudah kembalikan
seperti semula.
Pada listing program
key=Scankey(); diubah menjadi
key=Scankey()+7; lalu build dan
5
download kemudian operasikan
modul. Jika sudah kembalikan
seperti semula.
Pada listing program
show_seven_segment(0,key);
diubah menjadi
6 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 object-
object 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 \NUC1xx-
LB_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 \NUC1xx-
LB_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 \NUC1xx-
LB_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 Percobaan Keterangan
Tekan satu persatu kesembilan
1
tombol keypad matrix
2 Tekan tombol reset.
Listing program #include
LCD_Driver.h dihilangkan lalu
3
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 object-
object 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 \NUC1xx-
LB_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 \NUC1xx-
LB_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 object-
object 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 \NUC1xx-
LB_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 \NUC1xx-
LB_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

Anda mungkin juga menyukai