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
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
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
Halaman Tabel 2.1. Fungsi Pin Konektor DB-25 dan Centronics ... 2Tabel 2.2. Fungsi Pin IC 74H299 ... 3
Tabel 2.3. Keterangan Pin IC 74HC595 ... 4
Tabel 2.4. Tabel Fungsi IC 74HC573 ... 5
Tabel 3.1. Tabel Flash Programming Modes ... 6
Tabel 3.2. Tabel Mode IC 74HC299 ... 7
Tabel 3.3. Tabel Port Paralel …...………...……… 14
DAFTAR LAMPIRAN
Halaman Skema Lengkap Pemrogram Flash Mikrokontroler Seri AT89 ... 22BAB 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.
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 +
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:
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.
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 Q0 sampai Q7
Enable and read register (Transparent mode)
L H L L L
L H H H H
Latch and read register L L l L L
L L h H H
Latch register and disable outputs
H L l L Z
H L h H Z
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.
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? END Ya START Tidak
Gambar 3.1. Diagram alur Pemrogram Flash Mikrokontroler Seri AT89 Tabel 3.1. Tabel Flash Programming Modes
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 Shift right; DSRÆQ0, Q0ÆQ1, dst
H H L Up shift left; DSLÆQ7, Q7ÆQ6, dst
H L L X Hold
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
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.
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 8-bit 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
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 8-bit (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
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
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
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
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
Aliran data untuk mikrokontroler Alamat Aliran data dari Port Paralel Pulsa
Port Paralel
Alamat Atas Pembangkit Pulsa Kendali Mikrokontroler
Alamat Bawah Mikrokontroler Target Pengontrol
Aliran Data
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.
-
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.
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,
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.
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.
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; 3-state”, Datasheet, December 1990.
http://www.ortodoxism.ro/datasheets/philips/74HC_HCT299_CNV_2.pdf
[9]. Philips Semiconductors, “74HC/HCT573 Octal D-type transparent latch; 3-state”, 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.
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