JURNAL Pemrogram Flash Mikrokontroler Seri AT89 Berbantukan Perangkat Lunak PGM89
Disusun oleh :
Nama
: Mohamad Ridwan
NPM
: 22100405
Fakultas
: Ilmu Komputer
Jurusan
: Sistem Komputer
Pembimbing
: Drs. Soebijantoro, MMEng
UNIVERSITAS GUNADARMA 2006
KATA PENGANTAR Puji Syukur Kehadirat Tuhan Yang Maha Esa karena hanya atas rahmat dan hidayah-Nya-lah penulis dapat menyelesaikan jurnal skripsi yang berjudul “Pemrogram Flash Mikrokontroler Seri AT89 Berbantukan Perangkat Lunak Pgm89” ini. Penulis menyadari bahwa tanpa adanya dukungan, bantuan, bimbingan dan arahan dari berbagai pihak tidak mungkin penyusunan ini dapat diselesaikan dengan baik. Dalam penyusunan ini, penulis menyadari akan kemungkinan masih adanya kekurangan dan kesalahan, oleh karena itu kritik dan saran membangun sangat penulis harapkan demi kesempurnaan. Akhirnya penulis berharap hasil penyusunan ini dapat berguna dan bermanfaat bagi ilmu pengetahuan umumnya dan para pembaca khususnya.
Jakarta, September 2006
(Mohamad Ridwan)
ii
DAFTAR ISI Halaman Halaman Judul .…...………………………………………………………….…. i Kata Pengantar .……………………………………………………………….... ii Daftar Isi .………………………………………………………………….......... iii Daftar Gambar …………………………………………………………….......... iv Daftar Tabel ………………………………………………………………...…... iv Daftar Lampiran ................................................................................................... iv BAB I
PENDAHULUAN .............................................................................1
BAB II
LANDASAN TEORI ........................................................................ 1 2.1 Mikrokontroler ………..........………………………………... 1 2.2 IC Regulator .........................………………………………… 1 2.2.1 IC LM7805 .................................................................... 1 2.2.2 IC LM317LZ ................................................................. 2 2.3 Port Paralel …................................................………………... 2 2.4 IC 74HC299 ............................................................................. 3 2.5 IC 74HC595 ............................................................................. 4 2.6 IC 74HC573 ............................................................................. 4 2.7 Compiler Program Assembly ................................................... 5
BAB III
RANCANGAN ................................................................................. 5 3.1 Rancangan Hardware …................................................……... 5 3.1.1 Pengontrol Aliran Data ................................................... 7 3.1.2 Alamat Atas .................................................................... 8 3.1.3 Alamat Bawah ................................................................. 10 3.1.4 Pembangkit Pulsa Kendali .............................................. 11 3.1.5 Mikrokontroler Target .................................................... 14 3.1.6 Port Paralel ...................................................................... 14 3.2 Software Yang Digunakan ....................................................... 15
BAB IV
PENGUJIAN ALAT ......................................................................... 16
BAB V
PENUTUP .........................................................................................18 5.1 Kesimpulan ………………………………………………….. 18
Daftar Pustaka ……………..........……………………………………………… 20 Daftar Komponen ................................................................................................. 21 Lampiran ……………………………………………………………………….. 22
iii
DAFTAR GAMBAR Halaman Gambar 2.1. Diagram Koneksi LM317LZ ....................................................... 2 Gambar 2.2. Konfigurasi Pin Port Paralel DB-25 ............................................ 2 Gambar 2.3. Konfigurasi Pin IC 74HC299 ...................................................... 3 Gambar 2.4. Konfigurasi Pin IC 74HC595 ...................................................... 4 Gambar 2.5. Konfigurasi Pin IC 74HC573 ...................................................... 4 Gambar 3.1. Diagram Alur Pemrogram Flash Mikrokontroler Seri AT89 ...... 6 Gambar 3.2. Pemrogram dan Pemverifikasian mikrokontroler ........................ 7 Gambar 3.3. Diagram Fungsi 74HC299 ........................................................... 7 Gambar 3.4. Diagram Fungsi 74HC595 ........................................................... 9 Gambar 3.5. Diagram Logika 74HC595 .......................................................... 9 Gambar 3.6. Timming Diagram 74HC595 ....................................................... 10 Gambar 3.7. Diagram Fungsi 74HC573 ........................................................... 10 Gambar 3.8. Diagram Logika 74HC573 .......................................................... 11 Gambar 3.9. Rangkaian-Rangkaian Pengatur Tegangan .................................. 12 Gambar 3.10. Rangkaian Mikrokontroler Target ……………………............... 14 Gambar 3.11. Diagram Blok Pemrogram Flash Mikrokontroler Seri AT89 ...... 15 Gambar 4.1. Rangkaian Sistem Minimum ....................................................... 16
DAFTAR TABEL Tabel 2.1. Tabel 2.2. Tabel 2.3. Tabel 2.4. Tabel 3.1. Tabel 3.2. Tabel 3.3.
Halaman Fungsi Pin Konektor DB-25 dan Centronics ..................................... 2 Fungsi Pin IC 74H299 ....................................................................... 3 Keterangan Pin IC 74HC595 ............................................................. 4 Tabel Fungsi IC 74HC573 ................................................................. 5 Tabel Flash Programming Modes ...................................................... 6 Tabel Mode IC 74HC299 ...................................................................7 Tabel Port Paralel …...........………………................……………… 14
DAFTAR LAMPIRAN Halaman Skema Lengkap Pemrogram Flash Mikrokontroler Seri AT89 ............................ 22 Pemrogram Flash Mikrokontroler Seri AT89 .......................................................23
iv
BAB I. PENDAHULUAN Pada masa sekarang ini, perkembangan teknologi modern semakin pesat. Salah satu dari teknologi itu adalah sebuah chip berukuran kecil yang disebut mikrokontroler. Chip ini biasanya digunakan sebagai sebuah ‘otak’ dari sebuah alat digital yang kita gunakan. Mikrokontroler pada mulanya hanyalah sebuah chip kosong yang tidak memiliki program khusus, namun pada alat digital chip ini telah diisi dengan program khusus untuk menjalankan fungsi tertentu dari alat digital tersebut. Program tersebut ditransfer ke dalam chip biasanya oleh pabrik yang bersangkutan, namun ada pula chip yang diproduksi masih dalam keadaan kosong yang nantinya dapat diisi dengan program sesuai yang diinginkan dan proses pemindahan program ke dalam chip tersebut dikenal dengan programming mikrokontroler. Untuk proses tersebut dapat dibuat alat untuk pemindahan yang disebut dengan programmer atau uploader dan disinilah kita akan mengetahui bagaimana cara untuk memprogram mikrokontroler dan untuk membuat alat pemrogram mikrokontroler tersebut. Karena mikrokontroler yang biasa digunakan adalah jenis Atmel seri 89 maka pemrogram yang dibuat juga diperuntukan bagi seri tersebut.
BAB II. LANDASAN TEORI 2.1 Mikrokontroler Mikrokontroler merupakan sirkuit terintegrasi yang digunakan sebagai IC control dimana IC tersebut memiliki memori sendiri sebagai penyimpanan program dan datanya. Bagian-bagian utama mikrokontroler yaitu CPU (Central Prossesing
Unit),
RAM,
ROM/PROM/EEPROM/Flash,
Timer,
Interupt
Controller, I/O devices 2.2 IC Regulator 2.2.1 IC LM7805 LM7805 merupakan IC pengatur tegangan (IC Regulator) yang menghasilkan tegangan keluaran 5 Volt DC dengan arus pada keluaran dapat mencapai 1 A.
1
2.2.2 IC LM317LZ IC LM317LZ merupakan IC regulator 3 terminal yang keluarannya dapat disesuaikan dengan arus 100mA. Tegangan keluaran daripada IC ini dapat disesuaikan dari 1.2V sampai 37V. LM317LZ ini cukup mudah digunakan dan hanya membutuhkan 2 resistor eksternal untuk mengatur outputnya.
Gambar 2.1. Diagram Koneksi LM317LZ 2.3 Port Paralel
Gambar 2.2. Konfigurasi Pin Port Paralel DB-25 Tabel 2.1. Fungsi Pin Konektor DB-25 dan Centronics DB-25 Centronics Input/Output Nama Sinyal Register bit 1
1
Output
nStrobe
C0 -
2
2
Output
Data 0
D0
3
3
Output
Data 1
D1
4
4
Output
Data 2
D2
5
5
Output
Data 3
D3
6
6
Output
Data 4
D4
7
7
Output
Data 5
D5
8
8
Output
Data 6
D6
9
9
Output
Data 7
D7
10
10
Input
nACK
S6 +
2
11
11
Input
Busy
S7 -
12
12
Input
PaperEnd
S5 +
13
13
Input
Select
S4 +
14
14
Output
nAutoFeed
C1 -
15
32
Input
nError
S3 +
16
31
Output
nInit
C2 +
17
36
Output
nSelectIn
C3 -
18 – 25
19 – 30
–
Ground
–
Berdasarkan tabel diatas, bahwa port paralel memiliki 17 bit jalur data yang terbagi menjadi 3 alamat fisik yaitu data (8 bit) alamat registernya 0378H, status (5 bit) alamat registernya 0379H dan kontrol (4 bit) yang alamat registernya 037AH. 2.4 IC 74HC299 IC 74HC299 (8-Bit Universal Shift Register) merupakan IC shift register yang memiliki 4 macam mode operasi, yaitu: penggeseran kekiri (shift left), penggeseran kekanan (shift right), menahan data (hold/store) dan meload data.
Gambar 2.3. Konfigurasi Pin IC 74HC299 Adapun fungsi pin-pin IC 74HC299 selengkapnya dapat dilihat pada tabel berikut ini: Tabel 2.2. Fungsi Pin IC 74H299
3
2.5 IC 74HC595 IC 74HC595 (8-bit serial-in/ serial or parallel-output shift register) ini memiliki 8-bit input serial dengan 8-bit output serial atau output paralel dan IC ini juga memiliki storage register yang mana mempunyai pin input pulsa clock yang terpisah dengan shift registernya.
Gambar 2.4. Konfigurasi Pin IC 74HC595 Tabel 2.3. Keterangan Pin IC 74HC595 Simbol
Pin No
Keterangan
Q0 sampai Q7
15, 1 sampai 7
Output Data Paralel
GND
8
Ground (0 V)
Q7’
9
Output Data Serial
MR’
10
Master Reset (aktif Low)
SHCP
11
Input Clock Shift Register
STCP
12
Input Clock Storage Register
OE’
13
Output Enable (aktif Low)
DS
14
Input Data Serial
VCC
16
Tegangan Positif
2.6 IC 74HC573 IC 74HC573 (Octal D-type transparent latch) memiliki terpisah untuk setiap gerbang dan 3 kondisi output untuk aplikasi berorientasi aliran data.
Gambar 2.5. Konfigurasi Pin IC 74HC573 4
Pin D0 sampai D7 (pin 2,3,4,5,6,7,8 dan 9) berguna sebagai inputan data, Q0 sampai Q7 (pin 19,18,17,16,15,14,13 dan 12) berguna sebagai gerbang output 3 kondisi, pin 1 (OE’) berfungsi sebagai Output Enable (aktif low), pin 11 (LE) berfungsi sebagai pin input Latch Enable (aktif high). Tabel 2.4. Tabel Fungsi IC 74HC573 Mode Operasi
Input
Latch Internal
Output
OE’
LE
DN
Enable and read register
L
H
L
L
L
(Transparent mode)
L
H
H
H
H
L
L
l
L
L
L
L
h
H
H
Latch register and
H
L
l
L
Z
disable outputs
H
L
h
H
Z
Latch and read register
Q0 sampai Q7
2.7 Compiler Program Assembly Compiler merupakan program yang digunakan untuk merubah bahasa assembly menjadi bahasa mesin. Banyak tersedia Compiler untuk bahasa assembly, salah satunya adalah ASM51, yang merupakan Compiler untuk keluarga Atmel. Penulis memilih ASM51 sebagai Compiler dikarenakan target mikrokontroler adalah keluarga Atmel 89 series.
BAB III. RANCANGAN 3.1 Rancangan Hardware Untuk merancang alat Pemrogram Flash Mikrokontroler ini hal pertama yang harus diketahui adalah mengenai mikrokontroler itu sendiri. Sehingga algoritma daripada alat Pemrogram Flash Mikrokontroler Seri AT89 dapat digambarkan seperti diagram alur berikut ini.
5
START
Mengeluarkan data dari port paralel Mengontrol aliran data untuk mikrokontroler Mengatur alamat bawah dan alamat atas Membangkitkan pulsa dan tegangan 12V untuk mikrokontroler
Apakah mikrokontroler target terisi?
Tidak
Ya END Gambar 3.1. Diagram alur Pemrogram Flash Mikrokontroler Seri AT89 Tabel 3.1. Tabel Flash Programming Modes
6
Gambar 3.2 . Pemrograman dan pemverifikasian mikrokontroler 3.1.1 Pengontrol Aliran Data Dari gambar 3.2 dapat dilihat bahwa pada mikrokontroler tersebut pin P0 (32-39) berfungsi untuk mengisi data maupun untuk memverifikasi data. Karena itulah dibutuhkan IC register yang pin outputnya dapat pula digunakan sebagai pin inputan, sehingga penulis memilih IC 74HC299 (8-bit Universal Shift Register) sebagai pengontrol aliran data antara PC dan mikrokontroler. Tabel 3.2. Tabel mode IC 74HC299 INPUT
RESPON
MR’
S1
S0
CP
L
X
X
X
Reset; Q0-Q7= Low
H
H
H
Up
Parallel load; I/OnÆQn (I/On berfungsi sebagai input data)
H
L
H
Up
H
H
L
Up
Shift right; DSRÆQ0, Q0ÆQ1, dst shift left; DSLÆQ7, Q7ÆQ6, dst
H
L
L
X
Hold
Gambar 3.3 . Diagram fungsi 74HC299 7
Karena pada rancangan alat ini penggeseran data yang diefektifkan adalah penggeseran data ke kanan (shift right) maka pada pin 18 (DSL/D7) langsung dihubungkan ke Vcc. Sedangkan pin 11 (DSR/Data Shift Right) digunakan sebagai inputan data awal bagi shift register. Oleh karena yang digunakan adalah shift right maka S0 diberikan nilai tinggi dan S1 diberikan nilai rendah. Pin MR` (Asynchronous Master Reset) dihubungkan dengan tegangan VCC untuk meniadakan fungsinya sehingga output dapat berfungsi dan input serta pulsa waktu dapat digunakan. Untuk pin 2 dan 3 (OE1‘ dan OE2‘) dihubungkan menjadi satu sehingga cukup dengan memberikan satu kondisi pada pin yang telah dihubungkan tersebut maka kita dapat mengatur output enable untuk berfungsi atau tidak. Pada pin 12 (CP/ clock input) berfungsi sebagai inputan pulsa clock yang mengatur perubahan/penggeseran pada shift register berdasarkan perubahan pulsa dari rendah ke tinggi. Kemudian ketika IC 74HC299 ini difungsikan sebagai parallel load, maka untuk memperoleh data dari shift register ini maka kita gunakan Q7 (pin 17) pada IC ini yang sesuai dengan data terakhir pada shift register. Pin Q7 ini kita gunakan untuk memverifikasi dan membaca data yang diperoleh IC 74HC299. 3.1.2 Alamat Atas Untuk alamat atas(A8-A11) digunakan IC 74HC595 (8-bit serial in, serial/parallel output shift register) yang memiliki paralel output untuk menentukan alamat atas karena IC ini mempunyai shift register 8 tingkat untuk mengatur/mengubah input data serial 8-bit menjadi output data paralel. IC ini selain memiliki shift register juga memiliki storage register untuk menyimpan hasil atau data yang didapat dari shift registernya yang mana input pulsa clock untuk storage register terpisah dengan input clock bagi shift registernya. Input data serial berasal dari pin 14 (DS) yang kemudian masuk ke shift register. Untuk pulsa clock pemicu inputan shift register berasal dari pin 11 (SHCP). Kemudian data paralel yang dihasilkan oleh shift register dikirimkan ke storage register dengan pulsa clock pemicunya berasal dari pin 12 (STCP). Lalu data yang telah disimpan pada storage register akan dikeluarkan pada pin Q0 sampai Q7 bila pada pin 13 (OE’) diberikan kondisi masukan rendah (LOW). 8
Gambar 3.4. Diagram Fungsi 74HC595
Gambar 3.5. Diagram Logika 74HC595 Data serial akan masuk dari DS masuk ke pin input flip-flop pertama (FF0) yang kemudian bila pada pin SHCP diberikan pulsa dari rendah ke tinggi maka data dari FF0 pada pin Q akan diteruskan ke latch pertama dan juga ke FF1 untuk melakukan stage berikutnya. Kemudian dari latch, data akan dikeluarkan bila pada STCP diberikan pulsa rendah ke tinggi dan juga bila pada OE’ diberikan nilai kondisi rendah (low). Untuk proses stage berikutnya akan sama dengan stage 0 namun data awal yang diterima pada masing-masing flip-flopnya pada pin D berasal dari output yang dihasilkan oleh flip-flop sebelumnya. Atau untuk lebih jelasnya dapat dilihat pada timming diagram IC 74HC595.
9
Gambar 3.6. Timming Diagram 74HC595 Pin 13 (OE’/G’) langsung digroundkan untuk mengaktifkan IC ini sehingga dapat mengeluarkan data paralel yang telah dihasilkan pada pin outputnya Q0-Q7 atau QA-QH. Pin 10 (MR’/CLR’) langsung dihubungkan ke VCC untuk meniadakan fungsi master reset pada IC 74HC595 ini. Sama seperti Blok Pengontrol, input data serial berasal dari sumber yang sama (D0). 3.1.3 Alamat Bawah Oleh karena untuk alamat bawah pada mikrokontroler port 1 terdiri atas 8bit data paralel yaitu A0 sampai A7 (pin 1-8) maka untuk mengatur alamat bawah pada mikrokontroler tersebut digunakan IC 74HC573 (Octal D type Transparant Latch) yang memiliki 8 buah latch yang masing-masing latchnya memiliki input terpisah dan juga memiliki output non-inverting yang biasa digunakan untuk aplikasi berorientasi aliran data.
Gambar 3.7. Diagram Fungsi 74HC573 Input pada IC ini berasal dari pin 2-9 (D0–D7) yang kemudian masuk ke dalam latchnya masing-masing yang kemudian output dari latchnya tersebut diatur oleh masukan pada pin 11 (LE). Sedangkan untuk outputnya apakah dikeluarkan 10
atau tidak bergantung pada input yang diberikan pada pin 1 (OE’), bila input high maka output tidak dikeluarkan dan bila output low maka output akan dikeluarkan (aktif low). Kemudian output pada masing-masing latch tersebut akan dikeluarkan melalui pin 19-12 (Q0-Q7).
Gambar 3.8. Diagram Logika 74HC573 Ketika pin LE diberikan nilai tinggi maka latch akan aktif dan data dari DN akan masuk ke dalam latch sehingga output dari lacth akan berubah sesuai dengan input data yang diberikan ke dalam latch. Namun bila pin LE diberikan nilai rendah maka latch akan menyimpan data yang ada sebelumnya. Untuk pin OE’ bila diberi masukan rendah maka isi dari ke 8 buah latch akan dikeluarkan pada pin output (QN). Dan sebaliknya bila OE’ diberikan kondisi tinggi maka pin output akan berada dalam kondisi off. Oleh karena itulah maka pin 1 (OE’) pada IC 74HC573 ini langsung dihubungkan ke ground untuk mengaktifkan output dari ke 8 latch tersebut. Karena data yang dibutuhkan sebagai masukan oleh 74HC573 adalah data paralel 8-bit maka data tersebut kita hubungkan dengan output dari pada blok rangkaian Pengontrol yang mana outputnya merupakan data paralel 8bit (AD0-AD7). Sedangkan untuk mengatur latch maka pin 11 langsung kita hubungkan dengan port paralel. 3.1.4 Pembangkit Pulsa Kendali Untuk mengatur tegangan yang diberikan bagi mikrokontroler sehingga mikrokontroler tersebut dapat kita isikan dengan program yang telah dibuat. Khususnya adalah pada pin EA’/VPP pada mikrokontroler yang mana tegangan yang diberikan haruslah sebesar 12V. Untuk proses pembangkitan pulsa pengendali ini IC yang digunakan sama seperti IC untuk mengatur Alamat Atas yaitu IC 74HC595. Hal tersebut dikarenakan prinsip kerja yang kita inginkan 11
hampir sama seperti pada Alamat Atas, yang berbeda hanyalah sumber input pulsa clock untuk mengatur storage register (STCP/pin 12) pada 74HC595. Pada blok rangkaian ini juga dibantu beberapa komponen elektronika dan IC regulator LM317LZ untuk mengatur tegangan yang dibutuhkan mikrokontroler yaitu sebesar 12V.
Gambar 3.9. Rangkaian-Rangkaian Pengatur Tegangan PT 1 adalah rangkaian pensuplai tegangan awal pertama, dari tegangan AC 220 diturunkan oleh trafo stepdown K3 menjadi 15V yang kemudian masuk ke dalam dioda bridge B1 untuk dijadikan tegangan DC. Kemudian tegangan tersebut dikurangi rifflenya oleh kapasitor C9 dan C11 sehingga didapat tegangan VUR dan sebagian tegangan VUR tersebut dihubungkan ke IC regulator LM7805 (U6) untuk mendapatkan tegangan sebesar 5V sebagai sumber tegangan untuk mengaktifkan keseluruhan IC yang ada pada rangkaian (VCC) yang mana sebagai indikatornya adalah led D3. Seperti dapat dilihat pada tabel flash programming modes mikrokontroler AT89C51 bahwa untuk dapat memprogram mikrokontroler tersebut maka nilai pada pin 9 (RST) AT89C51 haruslah diberikan kondisi tinggi. Maka pada gambar rangkaian PT 2, nilai VCE (QH/Q7) dari Pembangkit Pulsa juga harus bernilai tinggi, sehingga tegangan dari VCC akan dapat mengalir melalui transistor T1 ke kaki kolektornya dan menuju ke pin RST pada AT89C51. PT 3 di sini adalah rangkaian elektronika untuk mengatur tegangan sebesar 12V. Tegangan awal dari VUR masuk ke IC LM317LZ (U5) yang merupakan IC 12
regulator yang outputnya dapat diatur (adjustable regulator). Untuk pengaturan P1 dan P2 agar outputnya sesuai maka pertama-tama atur P1 untuk mendapatkan tegangan sebesar 12,75V (dengan menggunakan voltmeter) dari output LM317LZ, namun pastikan transistor T4 dalam kondisi off atau hubungkan sementara kaki basis dari T4 dengan ground. Kemudian untuk pengaturan P2 hubungkan sementara kaki kolektor T4 dengan ground dan atur P2 agar output yang dihasilkan LM317LZ sebesar
12V.
Sehingga agar proses penulisan ke mikrokontroler dapat dilakukan maka VPS dan VPE (berasal dari output port paralel) haruslah berkondisi rendah. Karena ketika VPS berkondisi rendah maka T4 akan off dan output dari U5 (regulator) akan mengalir menuju T2 yang mana T2 itu sendiri ditentukan oleh transistor T3 yang dihubungkan pada VPE. Sehingga bila VPE rendah maka T3 akan off dan arus akan dapat mengalir melalui T2 ke kaki kolektornya dan diteruskan ke pin VPP/EA’ (Programming supply voltage/External access enable) pada mikrokotroler target, yang mana led D2 juga akan menyala ketika hal tersebut (merupakan proses pengisian ke mikrokontroler) terjadi. Untuk pin 19 (PSEN’/Program Store Enable) pada mikrokontroler diatur langsung oleh IC 74HC595 (U2) yaitu dengan menghubungkan langsung output dari
Q1/QB,
sehingga
output
tersebut
haruslah
berkondisi
low
agar
mikrokontroler target dapat diisi program. Untuk pin ALE/PROG’ (Address Latch Enable/Program enable) juga langsung dihubungkan ke output port paralel yang akan mengatur apakah mikrokontroler akan ditulisi (write) program atau untuk dibaca (read) programnya. Bila mikrokontroler ingin diprogram maka pada pin ini perlu kita berikan pulsa pemicu yang bernilai tinggi ke rendah dan ke tinggi kembali. Namun bila ingin kita baca isi mikrokontroler maka diberikan pulsa tinggi.
Kemudian
untuk
pengaturan
pemrograman
flash
mikrokontroler
selanjutnya adalah pada pin 27 (2.6), pin 28 (P2.7), pin 16 (P3.6/WR’) dan pin 17 (P3.7/RD’) yang data inputnya berasal dari IC 74HC595 (U2). Agar mikrokontroler dapat diprogram maka pada pin P3.6/WR’ dan P3.7/RD’ diberikan pulsa tinggi. Kemudian untuk penulisan data maka P2.6 diberikan pulsa rendah
13
dan P2.7 diberikan pulsa tinggi. Sebaliknya bila digunakan untuk pembacaan data maka pada P2.6 dan P.7 diberikan pulsa rendah. 3.1.5 Mikrokontroler Target Untuk mikrokontroler target pemrograman pada pin 19 (XTAL1) dan 18 (XTAL2) perlu rangkaian untuk memberikan pulsa clock bagi pin tersebut. Untuk itu maka dirangkaikanlah sebuah kristal (X1) dan dua buah kapasitor (C4 dan C5).
Gambar 3.10. Rangkaian Mikrokontroler Target. Alamat data masuk melalui pin 1 – 8 (A0 - A7) dan pin 21 – 24 (A8 – A11), untuk datanya masuk melalui pin 39 – 33 (AD0 – AD7). Sedangkan untuk pin-pin yang lainnya telah dijelaskan sebelumnya. 3.1.6 Port Paralel Pin-pin port paralel yang digunakan dan kegunaannya diterangkan pada tabel berikut ini. Tabel 3.3. Tabel Port Paralel NO
PIN
KEGUNAAN
1
1
Output untuk ALE / O0
2
2
Output untuk Data Serial / D0
3
3
Output untuk Clock bagi Pengontrol / D1
4
4
Output untuk Bit Select (S0) bagi Pengontrol / D2
5
5
Output untuk Bit Select (S1) bagi Pengontrol / D3
6
6
Output untuk OE’ bagi Pengontrol / D4
7
7
Output untuk SCK/SHCP bagi Pembangkit pulsa & Alamat atas
8
8
Output untuk RCK/STCP bagi Alamat atas
9
9
Output untuk RCK/STCP bagi Pembangkit pulsa
14
10
10, 12, 13, 15 dan 16
NC
11
11
Input dari Pengontrol untuk verifikasi data / II7
12
14
Output untuk VPE / O1
13
17
Output untuk STB (LE’) pada Alamat Bawah / O3
14
18 - 25
Ground
Port Paralel
Pengontrol Aliran Data
Alamat Atas
Alamat Bawah
Pembangkit Pulsa Kendali Mikrokontroler
Mikrokontroler Target
Aliran data untuk mikrokontroler
Alamat
Aliran data dari Port Paralel
Pulsa
Gambar 3.11. Diagram Blok Pemrogram Flash Mikrokontroler seri AT89 3.2 Software Yang Digunakan Compiler yg digunakan untuk mengubah file *.asm menjadi *.hex disini adalah
ASM51.
Langkah-langkah
pembuatan
pembuatan
program
dan
penggunaan compiler ASM51 itu sendiri adalah sebagai berikut. - Program pertama-tama dibuat dalam bahasa assembler mikrokontroler yang bersangkutan. Program diketik dengan sembarang editor seperti EDIT pada MSDOS promt atau pada Notepad, dan disimpan dengan ekstension “*.asm”. - Lakukan kompilasi program yang telah diketik dengan ASM51. - Jika terjadi kesalahan akan ditunjukkan dan harus diperbaiki, jika tidak maka dapat diteruskan, dan hasilnya adalah program bahasa mesin berekstension “*.hex”. Program yang telah dikonversi ke dalam file berekstension hex menggunakan ASM51 terdiri dari 2 buah file, file yang pertama merupakan file berekstension hex dan yang kedua adalah file berekstension lst. File *.lst ini digunakan untuk melihat kesalahan yang terjadi pada program. Dalam file ini setiap kesalahan yang terdeteksi akan ditunjukkan dengan tanda panah dan diberi tahu mengenai jenis kesalahan yang ada. 15
- Langkah terakhir adalah mengupload program *.hex ke dalam mikrokontroler dengan menggunakan software pengupload Pgm89. Langkah-langkah pemindahan program dengan Pgm89 adalah sebagai berikut: -
Buka software Pgm89, pilih jenis mikrokontroler yang akan diisi.
-
Cek mikrokontroler apakah sudah terisi atau belum dengan blank check Jika kosong maka dapat langsung diisi, tetapi jika telah memiliki isi, maka hapuslah dengan clear buffer pada menu Edit.
-
Buka program *.hex anda pada software Pgm89.
-
Gunakan fitur-fitur yang tersedia seperti lock bit atau Signature jika diinginkan.
-
Pindahkan program ke mikrokontroler dengan menekan tombol Write.
-
Tekan tombol Verify jika ingin mengecek apakah program yang telah dipindahkan sama dengan program yang dibuka.
BAB IV. PENGUJIAN ALAT Pada tahap ini, alat (programmer) diuji dengan memasukkan program ke dalam mikrokontroler dan kemudian mikrokontroler yang telah diisikan program tersebut diuji cobakan pada rangkaian sederhana yang berupa rangkaian sistem minimum untuk mengetahui apakah program yang kita isikan sesuai hasilnya dengan yang diinginkan.
Gambar 4.1. Rangkaian Sistem Minimum 16
Berikut urutan upload program tersebut: -
Menghubungkan programmer dengan PC dan menyalakannya.
-
Mengaktifkan software uploader (Pgm89)
-
Memilih IC mikrokontroler target pada daftar IC di Pgm89, IC yang dipilih ialah AT89C51
-
Mengecek apakah mikrokontroler target merupakan IC kosong atau tidak menggunakan fasilitas check pada Pgm89 dengan menggunakan BlankCheck.
-
Setelah siap, selanjutnya membuka file yang akan diupload, yaitu PROG1.hex
-
Jika ingin menambahkan lock bit maka dapat dilakukan dengan memberi tanda checklist pada box yang telah tersedia.
-
Jika telah selesai maka siap untuk diupload, yaitu dengan menggunakan perintah Write pada Pgm89. Berikut merupakan list dari program: P1 EQU 90H org 20h MULAI: MOV P1,#00001111B ACALL DELAY MOV P1,#11110000B ACALL DELAY SJMP MULAI DELAY: MOV
R0,#5
DELAY1: MOV
R1,#0FFH
DELAY2: MOV
R2,#0
DJNZ R2,$ DJNZ
R1,DELAY2
DJNZ
R0,DELAY1
RET END Kemudian programmer kita matikan dan pindahkan mikrokontroler yang telah diprogram tadi ke dalam rangkaian sistem minimum yang berupa rangkaian sederhana led baris. Lalu berikan sumber tegangan 5V pada rangkaian tersebut, 17
maka dapat dilihat bahwa 4 led (Led P1.4 sampai P1.7 dan P1.0 sampai P1.3) akan menyala bergantian yang menandakan bahwa program yang kita buat telah masuk dengan benar ke dalam mikrokontroler AT89C51. Maka dapat kita simpulkan bahwa programmer yang dibuat untuk mengisi program ke dalam mikrokontroler telah berfungsi dengan benar.
BAB V. PENUTUP Dari pembuatan alat dan penulisan rancangan Pemrogram Flash Mikrokontroler Seri AT89 Berbantukan Perangkat Lunak Pgm89 maka kita dapat lebih memahami tentang bagaimana cara memprogram mikrokontroler dan juga pengetahuan lainnya yang berkaitan dari awal proses, cara kerja dan hasil uji cobanya. 5.1 Kesimpulan Dengan rancangan Pemrogram Flash Mikrokontroler Seri AT89 Berbantukan perangkat Lunak Pgm89 ini kita dapat mengisikan program yang telah kita buat ke dalam mikrokontroler yang sesuai dengan yang diinginkan. Dalam rancangan Pemrogram Flash Mikrokontroler ini terdiri atas beberapa IC yang menjadi penghubung antara Port Paralel dan Mikrokontroler Target. IC-IC tersebut dipisahkan menjadi 4 blok, yaitu Pengontrol Aliran Data, Alamat Atas, Alamat Bawah dan Pembangkit Pulsa Kendali. •
Pengontrol Aliran Data menggunakan IC 74HC299 berguna untuk mengubah data dari PC menjadi data paralel 8-bit dan merupakan perantara aliran data antara PC dengan mikrokontroler.
•
Alamat Atas menggunakan IC 74HC595 yang berguna untuk mengatur byte alamat atas bagi mikrokontroler.
•
Alamat Bawah menggunakan IC 74HC573 yang berguna untuk mengatur byte alamat bawah bagi mikrokontroler.
•
Pembangkit Pulsa Kendali menggunakan IC 74HC595 dan dibantu dengan beberapa omponen elektronika lainnya berguna untuk mengatur tegangan pembangkit bagi mikrokontroler sehingga dapat diprogram.
18
Dari perancangan Pemrogram ini diperoleh beberapa kendala, yaitu: •
Terbatasnya jenis mikrokontroler yang dapat diprogram dengan menggunakan programmer yang digunakan.
•
Harus selalu melakukan blank check pada mikrokontroler target untuk memastikan mikrokontroler tersebut dalam keadaan kosong dan siap untuk diprogram.
•
Penggunaan kabel sarana penghubung antara komputer dan programmer yang merupakan jenis DB-25 pada kedua ujungnya.
•
Penggunaan port paralel pada komputer untuk menghubungkan komputer dengan programmer, yang berarti mengganggu perangkat keras (hardware) komputer yang lain yaitu printer.
•
Tidak dapat diketahuinya error pada program ketika dilakukan proses upload.
19
DAFTAR PUSTAKA
[1]. Atmel, 1997, “Flash Microcontroller : Architectural Overview”, Atmel Inc. (http://www.atmel.com), USA [2]. Atmel, 1997, “AT89 Series Hardware Description”, Atmel Inc. (http://www.atmel.com), USA [3]. Atmel Corporation, “AT89C2051, 8-bit Microcontroller With 2K Bytes Flash”, Februari, 2002 http://www.datasheetarchive.com/semiconductors/download.php?Datasheet =261276 [4]. Atmel Corporation, “AT89C51, 8-bit Microcontroller With 4K Bytes Flash”, Februari, 2003. http://www.keil.com/dd/docs/datashts/atmel/at89c51_ds.pdf [5]. Fairchild Semiconductor, “MC78XX/LM78XX/MC78XXA, 3-Terminal 1A Positive Voltage Regulator”, Datasheet, 2001. http://www.fairchildsemi.com/ds/LM/LM7805.pdf [6]. Fairchild Semiconductor, “LM317L, 3-Terminal 0.1A Positive Adjustable Regulator”, Datasheet, 2002. http://www.ortodoxism.ro/datasheets2/f/0x4clt98xyyearzuuqck3tf5i0yy.pdf [7]. Mueen Sajjad, “Parallel Port Interfacing Part#1”, BCS Computer http://www.khwarzimic.org/interfacing/PARALLEL_PORT.pps. [8]. Philips Semiconductors, “74HC/HCT299 8-bit universal shift register; 3state”, Datasheet, December 1990. http://www.ortodoxism.ro/datasheets/philips/74HC_HCT299_CNV_2.pdf [9]. Philips Semiconductors, “74HC/HCT573 Octal D-type transparent latch; 3state”, Datasheet, December 1990. http://www.semiconductors.philips.com/acrobat/datasheets/74HC_HCT573 _CNV_2.pdf [10]. Philips Semiconductors, “74HC/HCT595 8-bit serial-in/serial or parallel-out shift register with output latches; 3-state”, Datasheet, 4 Juni 1998. http://workshop.ee.itb.ac.id/upload/datasheet/74hc595.pdf [11]. Putra, Agfianto Eko, “Belajar Mikrokontroler AT89C51/52/55 Teori dan Aplikasi”, Gava Media, Yogyakarta, 2002 [12]. Vault Information Services, “8051 Tutorial”, 2002. http://www.8052.com/tut8051.html
20
DAFTAR KOMPONEN
No.
Referensi
Keterangan
1
B1
Bridge 100V 1A
2
C1,C2,C3,C6,C8
100 nf
3
C4,C5
33 pf
4
C7
2.2 nf
5
C9
1000 uf 25V
6
C10,C11,C12
10 uF 25V
7
D1
1N4148
8
D2
Led Red 3mm
9
D3
Led Green 3mm
10
K1
DB25M-R/A Connector PCB Type
11
K2
ZIF Socket 40 Way
12
K3
PCB Terminal Block 2 Way
13
P1
5K Multiturn
14
P2
50K Multiturn
15
R1,R3
Resistor Array 4K7 x 8
16
R2,R4,R8,R11,R12,R13,R15
4K7
17
R7,R5
1K
18
R6
3K3
19
R9
2K7
20
R10
680R
21
R14
220R
22
T2,T1
2N3906
23
T3,T4
2N3904
24
U1
74HC299
25
U4,U2
74HC595
26
U3
74HC573
27
U5
LM317LZ
28
U6
LM7805
29
X1
Crystal 6.0 Mhz
21
LAMPIRAN SKEMA LENGKAP PEMROGRAM FLASH MIKROKONTROLER SERI AT89
22
Pemrogram Flash Mikrokontroler Seri AT89
23