


Microcontroller Programmer adalah alat untuk memasukan program kedalam memori microcontroller, terdiri dari software dan hardware spt tampak pada gambar diatas.

gambar 2. urutan memprogram microcontroller
I. Memasukan program ke dalam Mikrokontroller
Perintah ke mikrokontroller kita tulis dalam bahasa assembler (*.asm) kemudian diterjemahkan oleh compiler kedalam bahasa mesin dalam bentuk bilangan hexa (*.hex) dan dimasukan kedalam microcontroller oleh microcontroller programmer ia terdiri dari rangkaian hardware dan software.
adapun urutan lengkapnya adalah sbb :
1. Menulis program dlm bahasa assembler pada notepad (windows) atau edit.com pada dos dan Save as file dengan extensi *.asm lihat contoh pada gambar dibawah ini untuk microcontroller mcs-51

gambar 3. contoh menulis dengan notepad
2. Langkah kedua adalah menterjemahkan bahasa asembler tsb (contoh1.asm) kedalam biner dengan cara:
letakan file compiler (misal asm51.exe untuk MCS-51) didirektori yang sama dengan file contoh1.asm
misalnya direktori c:\ sys. lalu ketik perintah pada DOS promt :
C:\sys\ asm51.exe contoh1.asm lalu tekan enter

setelah proses pada langkah 1 sukses spt tampak pd gambar diatas , maka akan dihasilkan file contoh1.hex dan contoh1.lst pada direktori c:\sys .File yang akan kita masukan ke microcontroller adalah contoh1.hex
isi dari file contoh1.hex adalah sebagai berikut

:0E000000E5808580F0858020A890A68080F2A3
:00000001FF

dan isi dari file contoh1.lst adalah sebagai berikut:
Assembly process list:
ADDR CODE LINE# SOURCE
---- ------ ----- ------
1 ; Data transfer menggunakan MOV
2;
3 ORG 0
4;data di port 0 di copy ke reg A, B dan memori 20h
0000 E580 5 MOV A,P0
0002 8580F0 6 MOV B,P0
0005 858020 7 MOV 20H,P0
8; isi P0 di copy ke RAM alamatnya ditunjukan oleh P1
0008 A890 9 MOV R0,P1
000A A680 10 MOV @R0,P0
000C 80F2 11 JMP 0
12 END
file diatas disebut file listing (lst) berguna untuk memeriksa jika ada kesalahan
3. Langkah ke tiga ,Hubungkan rangkaian hardware programer ke PC dan berikan power suply
4. Langkah ke empat Aktifkan sofware programmer (pgm89.exe pd contoh ini)
- klik File -> open cari dan pilih contoh1.hex klik tombol ok
- download file contoh1.hex dng mengklik tombol write pada menu
5. Setelah selesai matikan power suply programmer, lalu ambil ic dari soket sekarang ic telah terprogram dan siap dipasang pada rangkaian aplikasi.


II. Beberapa contoh programmer yang bisa kita buat sendiri :
Programmer didesign oleh M Asim Khan, asimkhan@sat.net.pk
programmer ini dihubungkan dengan parallel port komputer Jenis Microcontroler yang dapat diprogram oleh programer ini adalah dari keluarga MCS-51
AT89C51 AT89S51 AT89C1051U D87C51untuk microcontroller berkaki 20 diperlukan rangkaian penyesuai (lihat gambar 2). Karena hardware programmer menggunakan socket 40 kaki tdk bisa digunakan oleh IC 20 kaki secara langsung
AT89C52 AT89S52 AT89C2051 D87C52
AT89C55 AT89S53 AT89C4051
AT89C55WD AT89S8252
AT89C51RCHardware
gb 1 menunjukan rangkaian hardware Programmer, hardware programmer dihubungkan ke standard parallel port PC. IC U2 mengontrol aliran data antara controller dng PC, U4 latched low order address byte dan U5 latched high order address byte, sedang U3 membuat control signals microcontroller yg di program. IC U1 membuat progrram pulse untuk u-controller. power supply menggunakan U8membuat logic 5V supply sedang U7 memberikan tegangan programming ke controller. IC U6 membuat VDD power supply voltage untuk u-controller yg dapat dipilih 5v or 6v5.tegangan dapat diambil dari adaftor 18V output, atau dari trafo 15V 300mA . U8 perlu heatsink voltage regulator jika kita memakai ic TTL jenis 74LS.
untuk pengaturan P1, P2 and P3 gunakan digital multimeter dan ikuti langkah-langkah berikut,1. hubungkan power ke programmer dan aktifkan/klik program AT89 dikomputer, pd Help menu pilih Adjust Voltages option,--> pilih Vcc Setting menu.
2. pilih "Vcc 6V5" option, atur tegangan Vcc ke 6.5v lihat tegangan melalui pin 20 & 40 di ZIF putar2 VR P1 .
3. pilih option lainnya dari Vcc settings.4. pindah Vpp setting options, pilih "Vpp 12V75" option, atur Vpp voltage ke 12.75v across
pin 20 & 31 ZIF socket gunakan VR P2 variable.
5. selanjutnya "Vpp 12V0" option, atur tegangan Vpp ke 12.0v melalui pin 20 & 31 ZIF gunakan VR P3 variable.
6. cek kembali semua options in Vpp Setting menu.
Gb 1: Rangkaian Programmer AT89
Gb 2 menunjukan rangkaian penyesuai pemrogram microcontroler kaki 20.
Gb 2: Rangkaian penyesuai untuk IC 20 kaki (AT89CX51)
Pembuatan PCB
Softwareberikut adalah fungsi software,
Read dan Write file *.Hex Read info Chip Clear, Fill & Edit Program Buffer Verify dng Program Buffer Reload file *.Hex Display Data Checksum Program Lock Bits & ISP fuse Parallel Port bisa dipilih LPT1, 2 & 3
programmer software uses the following i/o port addresses,
Lpt1 Port @ 378H
Lpt2 Port @
278H
Lpt3 Port @ 3BCH
I/O Port @ 61H
I/O
Port @ 42H & 43H
Note:
untuk keamanan pasang bongkar u-controller dari ZIF
socket programmer pastikan programmer power supply on sebelum
diklik program dan red LED D1 harus off ketika program dimulai. u-controller
dipasang dipasang/bongkar dari ZIF socket ketika red LED D1 off.
software
tdk ada menghapus command sebab function ini otomatis
selama programming microcontroller. jika ingin menghapus controller pertama gunakan clear buffer
command pd menu lalu program controller, ini akan menghapus memori controller
.
Gb 3: menu utama program PGM89


II.2. PIC16F84-Programmer
Programmer ini sangat mudah untuk memprogram PIC16F84 Microchip Flash Microcontroller. Menggunakan software WPicProg .
hardware programmer menu program wpicprog16.exe
Introduction
software didesign untuk PIC16F84 bekerja pada win95/98, WPicProg16 V1.20Hardware
Gambar 1 menunjukan rangkaianProgrammer F84.Programmer dihubungkan dng bits melalui printer port LPT1, . Vdd dicontrol oleh D2 dg invert setting, logic '0' pd pin menyalakan 2N2907 memakai +5V ke pin14. sama untuk Vpp dg invert setting, D3 mengontrol 2N2907, gating sekitar +14V ke pin MCLR . tegangan programming Vppdikendalikan lifting pin GND dari 78L09 ke +5V . Data dibaca dan ditulis menggunakan RB7, D0 mengirim serial packet ketika ACK membaca kembali selama pengecekan. D1 di clock output synchronizing programming flow. DC input harus sekitar. 17V.
Gambar 1 : rangkaian Programmer F84 Software
WPIC16.ZIP software untuk F84-Programmer dibuat oleh Nigel's Software .untuk Programmer F84, check setting hardware pada menu sbb;
button pada hardware settings dpt digunakan untuk set atau clear bit yg diperlkan secara manual untuk check hardware. Hex file dibuat dng mengcompile dan akan didownloadke buffer memory. untuk menulis hex code di buffer ke chip bisa dilakukan automatically dg menekan WRITE PIC, itu sajal. selamat mencoba..
Rangkaian F84 programmer dpt juga menggunakan EPICWin .
Figure 2: menu software wpicprog16.exekembali ke atas
II.3. MC68HC11 Programmer
Programmer ini digunakan untuk microcontroller jenis MC68HC11 dan keluarganya ,
cara memprogram microcontroller ini agak sedikit berbeda ikuti langkah-langkah berikut:
0. hubungkan kaki MOD A dan MOD B ke ground ( Mode Bootsrap)
1. sambungkan hardware programmer dengan port serial Komputer
2. aktifkan program HCLOAD.exe
3. tekan switch SW pada hardware untuk mereset microcontroller
4. pemrograman bisa dimulai

gambar rangkaian MC68hc11 programmer

menu HCLOAD.exe
S-RECORD INFORMATION
E.1 INTRODUCTION
S-record output format encodes program dan data object modules
into a printable (ASCII) format. ini memungkinkan melihat object
file dengan standard tool dan mengijinkan display module while
transfer dari 1 computer ke berikutnya atau selama meload antara
host dan target. S-record format juga termasuk informasi untuk
menggunakan dlm error checking memastikan integrity transfer data.
E.2 S-RECORD CONTENT
S-Records string karakter dibentuk dari field identify
record type, record length, memory address, code/data, and
checksum. masing masing byte binary data encoded sebagai 2-character
bilangan hexadecimal : karakter pertama mewakili 4 bit high-order
4 bits, dan 4 bit ke 2 low order dari byte.
The 5 fields which comprise an S-record are:
TYPE RECORD LENGTH ADDRESS CODE/DATA CHECKSUM
The fields are defined as follows:
FIELD CHARACTERS CONTENTS
----- ---------- --------
Type 2 S-record type - S1, S9, etc.
Record 2 The count of the character pairs in the
length record, excluding the type and record
length.
Address 4, 6, The 2-, 3-, or 4-byte address at which
or 8 the data field is to be loaded into
memory.
Code/data 0-2n From 0 to n bytes of executable code,
memory loadable data, or descriptive
information.
Checksum 2 The least significant byte of the one's
complement of the sum of the values
represented by the pairs of characters
making up the record length, address,
and the code/data fields.
Each record may be terminated with a CR/LF/NULL.
E.3 S-RECORD TYPES
Eight types of s-records have been defined to accommodate various
encoding, transportation, and decoding needs. The Freeware
assemblers use only two types, the S1 and S9:
S1 A record containing code/data and the 2-byte
address at which the code/data is to reside.
S9 A termination record for a block of S1 records. The address
field may optionally contain the 2-byte address of the
instruction to which control is to be passed. If not
specified, the first entry point specifica
tion encountered in the object module input will be used.
There is no code/data field.
E.4 S-RECORD EXAMPLE
The following is a typical S-record module:
S1130000285F245F2212226A000424290008237C2A
S11300100002000800082629001853812341001813
S113002041E900084E42234300182342000824A952
S107003000144ED492
S9030000FC
The module consists of four code/data records and an S9 termination
record.
The first S1 code/data record is explained as follows:
S1 S-record type S1, indicating a code/data record to be
loaded/verified at a 2-byte address.
13 Hex 13 (decimal 19), indicating 19 character pairs,
representing 19 bytes of binary data, follow.
00 Four-character 2-byte address field: hex address 0000,
indicates location where the following data is to be loaded.
The next 16 character pairs are the ASCII bytes of the actual
program code/data
2A Checksum of the first S1 record.
The second and third S1 code/data records each also contain $13
character pairs and are ended with checksums. The fourth S1 code/data
record contains 7 character pairs.
The S9 termination record is explained as follows:
S9 S-record type S9, indicating a termination record.
03 Hex 03, indicating three character pairs (3 bytes) to
follow.
00 Four character 2-byte address field, zeroes.
00
FC Checksum of S9 record.

compiler asembler dan programer yg tersedia pada cd tutorial ini antara lain:
jenis MCU Compiler programmer schematic
MCS-51 asm51.exe pgm89.exe ada
HC11 AS11.exe hcload.exe ada
pic16F84 mplab wpicprog ada
sedangkan jika kita membuat program dgn bahasa C, file yg kita buat berextensi *.C akan dirubah ke *.hex (*.S19 untuk HC11) oleh compiler C dibawah ini:
MCU compiler
MCS 51 SDCC
HC11 GCC
PIC16F84 MPLAB

email : pcb_maker@softhome.net
sms ke (flexi) : 021-70469293
