Ini adalah salah satu project kenangan praktikum teknik kontrol di sekolah saya saat itu tahun 2009, tepatnya di SMKN 2 Yogyakarta. Materi ini disusun bersama 2 konco kenthel saya yaitu 10) Oki Yuditya Richi Pratama 3AV2, 33) Zulki Adzani Sidiq Fathoni 3AV2, dan saya sendiri 26) Wawan Chahyo Nugroho 3AV2.

Substansi:
- Membuat PCB
- Merakit komponen mikrokontrol AT89S51
- Menulis program dan download ke mikrokontrol AT89S51
- Hasil download Program yang sudah dipraktekkan
1. Membuat PCB
Dengan cara menggunakan software Protel PCB Designer maka kita dapat membuat layout dan sekaligus membuat tataletaknya. Hal inilah yang mempermudah cara kerja kita di dalam merencanakan sebuah PCB.
Adapun cara menginstall software tersebut kita bisa menggunakan panduan sebagai berikut:
- Membuka master protel 27 advanced PCB pada folder tersebut.
- Klik bagian setup.
- Tuggu tampilan installation options dan klik install.
- Muncul tampilan destination directory, klik OK.
- Maka akan muncul tampilan question, klik yes dan tunggu proses penginstallan.
- Setelah selesai, maka akan muncul tampilan README, klik tanda silang di pojok kanan atas (close).
- Untuk membuka software, pilih advanced PCB.
- Maka akan muncul tampilan acces code, klik acces code.
- Untuk mengambil code, open file SERIALNO -- copy code.
- Pindahkan ke tampilan toolbar dengan cara paste file.
- Lakukan pengetesan dengan cara klik test.
- Langkah terakhir, kliok OK, maka software sudah dapat digunakan.
1.1 Membuat Desain PCB Tampilan Batas Area
- Open Advanced PCB.
- Pilih new page pada baris menu file.
- Buat batas area, dengan memilih keep out layer pada option layer.
- Tentukan ukuran track, pad, dan grid pada menu current.
- Buat batas area dengan ukruan 7 cm x 10 cm.
1.2 Membuat Desain PCB Tampilan Batas Bawah (Layout)
- Pilih bottom layer sebagai tanda untuk membuat lay out.
- Tentukan ukuran track, pad dan grid yang dikehendaki melalui baris menu current.
- Mulai mendesain.
Untuk membuat jalur pada lapisan tembaga, terlebih dahulu:
- Membuat desain dengan komputer menggunakan software "PROTEL27 ADVANCED PCB".
- Kemudian diprint dan di fotokopi "XEROX" menggunakan transparansi/mika.
- Hasil fotokopi ditempelkan pada lapisan tembaga di PCB kemudian disetrika dengan panas ukuran sedang. Tujuannya agar tinta menempel di tembaga.
- Proses selanjutnya melarutkan lapisan yang tidak digunakan dengan Feri Chlorida + air secukupnya.
- Tinta dibersihkan menggunakan steelwool
- Mengebor untuk kaki komponen, sebelum dibor diberi titik dahulu dengan paku untuk memudahkan pengeboran.
- Melapisi jalur tembaga dengan larutan gondorukem + tiner. Tunggu hingga kering.

Gb.1.2 PCB tampak bawah
1.3 Membuat PCB Pandangan Atas(Tata Letak Komponen)
- Untuk memilih dan menampilkan komponen dapat melalui baris menu librarycomponent.
- Maka akan muncul tampilan browse libraries, di sana anda dapat menampilkan komponen yang dikehendaki dengan cara klik display, dan dapat memindahkan ke halaman kerja dengan cara klik place.
- Melakukan pengaturan tata letak sesuai perencanaan.
Langkah pembuatan PCB pandangan atas:
- Membuat desain dengan computer menggunakan software "PROTEL27 ADVANCED PCB".
- Kemudian diprint dan di fotokopi "XEROX" menggunakan transparansi/mika.
- Hasil fotokopi ditempelkan pada lapisan bagian atas di PCB kemudian disetrika dengan panas ukuran sedang. Tujuannya agar tinta menempel di permukaan atas.

Gb.1.3 PCB tampak atas
2. Merakit Komponen Mikrokontrol AT89S51
Dalam perakitan komponen downloader dibutuhkan alat dan bahan sebagai berikut:
Alat:
- Solder listrik 40W
- Multimeter
- Tang potong dan tang jepit
Bahan:
1. PCB downloader AT89S51
2. komponen yang meliputi:
- IC AT89S51 ............................ 1 biji
- IC 7805 ................................... 1 biji
- Elco 1000uf/16v ...................... 1 biji
- Elco 10 uf/16v ......................... 1 biji
- Kapasitor 20pf ......................... 2 biji
- Kristal 3-33MHz ...................... 1 biji
- Resistor 10K ........................... 1 biji
- Resistor 2201.......................... 7 biji
- Led ..........................................17 biji
- Microswitch .............................1 biji
- Saklar ON/OFF .......................1 biji
3. timah

Gb.2.1 rangkaian downloader AT89S51

Gb.2.2 downloader AT89S51 (Tampilan Atas)

Gb.2.3 downloader AT 89S51 (Tampilan Bawah)
2.1 Memasang Ampenol Dengan Kabel Data
Dalam memasang ampenol dengan kabel data diperlukan alat yang bernama tanggem untuk menekan pengunci ampenol agar terpasang rapat. Cara memasang ampenol:
- Letakkan kabel data di atas ampenol.
- Masukkan penjepit, kemudian dirapatkan dengan tanggem.
- Kabel data dibekokkan, memasang pengunci kemudian dirapatkan dengan tanggem.

Gb.2.4 skema pemasangan ampenol
2.2 Memasang Ampenol Dengan Kabel Data dan DB25
Pemasangan kabel data dengan DB25 harus disesuaikan pada port(nama) di rangkaian. Karena kalau sampai terjadi kesalahan maka tidak dapat untuk mendownload.

Gb.2.5 DB25 tampak depan

Gb.2.5 Skema pemasangan DB25 dari belakang
2.3 Memasang Kabel USB pada Rangkaian Mikrokontrol
Di dalam kabel USB terdapat 4 kabel yang berbeda warnanya yaitu merah, hitam, putih, dan hijau. Untuk pemasangan pada rangkaian mikrokontroler hanya dibutuhkan 2 kabel saja yaitu:
- Merah sebagai catudaya (+)5v
- Hitam sebagai ground
2.4 Memasang Saklar Untuk Download Program
Saklar di pasang sesuai pada gambar rangkaian. Jika saklar terhubung (ON) maka rangkaian bekerja. Kalau digunakan untuk program/untuk mendownload maka posisi saklar harus terputus(OFF). Seandainya dalam posisi terhubung proses pendownloadan tidak dapat berjalan.
3. Menulis Program dan Download ke Mikrokontrol AT89S51
3.1 Cara Menulis Program dengan Bahasa Assembler
Secara fisik, kerja dari sebuah mikrokontroler dapat dijelaskan sebagai siklus pembacaan instruksi yang tersimpan di dalam memori. Mikrokontroler menentukan alamat dari memori program yang akan dibaca, dan melakukan proses baca data di memori. Data yang dibaca diinterprestasikan sebagai instruksi. Alamat instruksi disimpan oleh mikrokontroler di register, yang dikenal sebagai program counter. Instruksi ini misalnya program aritmatika yang melibatkan 2 register. Sarana yang ada dalam program assembly sangat minim, tidak seperti dalam bahasa pemrograman tingkat atas (high level language programming) semuanya sudah siap pakai. Penulis program assembly harus menentukan segalanya, menentukan letak program yang ditulisnya dalam memori-program, membuat data konstan dan tablel konstan dalam memori-program, membuat variabel yang dipakai kerja dalam memori-data dan lain sebagainya
Cara menulis program dengan bahasa assembly:
- Menginstal dahulu "win8051"
- Membuka software "8051 IDE"
- Klik "file" kemudian pilih "new"
- Mulai menulis program.
Bentuk program assembly yang umum ialah sebagai berikut:

3.2 Cara Mengkonversi Software
- Program ditulis dahulu menggunakan bahasa assembly dan di simpan.
- Klik ikon yang berbentuk seperti tumpukan kertas.

- Jika program benar maka kata "error"menunjukkan 0
- Program sudah terkonversi ke dalam bentuk Hex.
- Program siap untuk di download ke rangkaian mikrokontrol
3.3 Cara Download ke Rangkaian Mikrokontrol AT89S51
- Menghubungkan kabel DB25 ke komputer
- Menulis program di "8051 IDE" kemudian dikonversikan ke bentuk Hex.
- Membuka program IspPgm.exe
- Maka akan muncul

- Klik "open file" kemudian mencari program yang di tulis tadi
- Memilih program yang berbentuk Hex. Klik "open"
- Klik "write"dan muncul proses download. Program berhasil didownload apabila proses download OK.
3.4 Cara Download ke Rangkaian Mikrokontrol AT89S51 dari File
- Menghubungkan kabel DB25 ke computer
- Membuka program "IspPrg.exe"
- Pada Isp-Flash Programmer klik "open file".
- Mencari program yang akan didownload yang berbentuk .hex
- Klik "open" program yang dipilih
- Klik "write" pada Isp-Flash Programmer. Proses download sedang berjalan. Program telah berhasil didownload.
4. Hasil Download Progarm yang Telah Berhasil Dipraktikkan
4.1 Program-1 Output flip-flop pada P0
;------------------------
; flip-flop di port 0
;------------------------
org 0h nop
mulai:
mov p0,#00001111b
call delay
mov p0,#11110000b
call delay
jmp mulai
;------------------------
; delay
;------------------------
delay:
mov r0,#0ffh
delay1:
mov r1,#0ffh
delay2:
nop
djnz r1,delay2
djnz r0,delay1
ret
end
4.2 Program-2 Variasi flip-flop menggunakan P0 dan P2
;---------variasi led----------
org 0h nop go:
mov p0,#11000000b
mov p2,#11000000b
call delay
mov p0,#00110000b
mov p2,#00110000b
call delay
mov p0,#00001100b
mov p2,#00001100b
call delay
mov p0,#00000011b
mov p2,#00000011b
call delay
mov p0,#00000011b
mov p2,#00000011b
call delay
mov p0,#00001100b
mov p2,#00001100b
call delay
mov p0,#00110000b
mov p2,#00110000b
call delay
mov p0,#11000000b
mov p2,#11000000b
call delay
mov p0,#00000000b
mov p2,#00000000b
call delay
mov p0,#10000000b
mov p2,#10000000b
call delay
mov p0,#01000000b
mov p2,#01000000b
call delay
mov p0,#00100000b
mov p2,#00100000b
call delay
mov p0,#00010000b
mov p2,#00010000b
call delay
mov p0,#00001000b
mov p2,#00001000b
call delay
mov p0,#00000100b
mov p2,#00000100b
call delay
mov p0,#00000010b
mov p2,#00000010b
call delay
mov p0,#00000001b
mov p2,#00000001b
call delay
mov p0,#00000001b
mov p2,#00000001b
call delay
mov p0,#00000010b
mov p2,#00000010b
call delay
mov p0,#00000100b
mov p2,#00000100b
call delay
mov p0,#00001000b
mov p2,#00001000b
call delay
mov p0,#00010000b
mov p2,#00010000b
call delay
mov p0,#00100000b
mov p2,#00100000b
call delay
mov p0,#01000000b
mov p2,#01000000b
call delay
mov p0,#10000000b
mov p2,#10000000b
call delay
mov p0,#11111111b
mov p2,#11111111b
call delay
jmp go
;-----------delay------------
delay: mov R0,#0FFH
delay1: mov R1,#0FFH
delay2: nop
djnz R1,delay2
djnz R0,delay1
ret
end
4.3 Program-3 Output dengan 7 segmen pada P0
;----------7 segment---------
org 0h
nop
start:
mov p3,#11000000b
call delay
mov p3,#11111001b
call delay
mov p3,#10100100b
call delay
mov p3,#10110000b
call delay
mov p3,#10011001b
call delay
mov p3,#10010010b
call delay
mov p3,#10000010b
call delay
mov p3,#11111000b
call delay
mov P3,#10000000b
call delay
mov p3,#10010000b
call delay
mov p3,#10000000b
call delay
mov p3,#11111000b
call delay
mov p3,#10000010b
call delay
mov p3,#10010010b
call delay
mov p3,#10011001b
call delay
mov p3,#10110000b
call delay
mov p3,#10100100b
call delay
jmp start
;----------delay------------
delay: mov r1,#09h
delay1: mov r2,#0ffh
delay2: mov r3,#0ffh
delay3: nop
djnz r3,delay3
djnz r2,delay2
djnz r1,delay1
ret
end
4.4 Tekan P3.0 led nyala tekan P3.1 led pada P0 mati
;- BAB3_09.ASM -------------------------------------------------------------------
;
; Simulasi penekanan tombol pd P3.0 untuk menghidupkan
; dan P3.1 untuk mematikan LED pada Port 1
;
;---------------------------------------------------------------------------------
ORG 0H
MULAI:
MOV A,P3
CJNE A,#0FEH,TERUS
MOV P2,#00000000B
MOV P0,#11111111B
SJMP MULAI
TERUS:
CJNE A,#0FDH,MULAI
MOV P0,#00000000B
MOV P2,#11111111B
SJMP MULAI
;-----------------7$egmant----------------------
start:
mov p3,#00001000b
call delay
mov p3,#11101110b
call delay
mov p3,#10010100b
call delay
mov p3,#11000100b
call delay
mov p3,#11100010b
call delay
mov p3,#11000001b
call delay
mov p3,#10000001b
call delay
mov p3,#11101100b
call delay
mov P3,#10000000b
call delay
mov p3,#11000000b
call delay
mov p3,#10100000b
call delay
mov p3,#10000000b
call delay
mov p3,#10011001b
call delay
jmp start
b:
mov p3,#10011001b
call delay
mov p3,#10000000b
call delay
mov p3,#10100000b
call delay
mov p3,#11000000b
call delay
mov P3,#10000000b
call delay
mov p3,#11101100b
call delay
mov p3,#10000001b
call delay
mov p3,#11000001b
call delay
mov p3,#11100010b
call delay
mov p3,#11000100b
call delay
mov p3,#10010100b
call delay
mov p3,#11101110b
call delay
mov p3,#00001000b
jmp b
;--------delay-----------
delay: mov r1,#04h
delay1: mov r2,#0ffh
delay2: mov r3,#0ffh
delay3: nop
djnz r3,delay3
djnz r2,delay2
djnz r1,delay1
ret
end
Semoga bermanfaat & selamat belajar!