Download - f 9346 Mikrokontrl
TEORI DASAR MIKROKONTROLER
2.1 Pengenalan Mikrokontroller
Mikrokontroler, sebagai suatu terobosan teknologi mikroprosesor dan
mikrokomputer, hadir memenuhi kebutuhan pasar (market need) dan teknologi baru.
Sebagai teknologi baru, yaitu teknologi semikonduktor dengan kandungan transistor yang
lebih banyak namun hanya membutuhkan ruang yang kecil serta dapat diproduksi secara
masal (dalam jumlah banyak) membuat harganya menjadi lebih murah (dibandingkan
mikroprosesor). Sebagai kebutuhan pasar, mikrokontroler hadir untuk memenuhi selera
industri dan para konsumen akan kebutuhan dan keinginan alat-alat bantu bahkan mainan
yang lebih baik dan canggih.
Tidak seperti sistem komputer, yang mampu menanganiberbagai macam program
aplikasi (misalnya pengolah kata, pengolah angkadan lain sebagainya), mikrokontroler
hanya bisa digunakan untuk suatu aplikasi tertentu saja (hanya satu program saja yang
bisa disimpan). Perbedaan lainnya terletak pada perbandingan RAM dan ROM. Pada
sistem komputer perbandingan RAM dan ROM-nya besar, artinya program-program
pengguna disimpan dalam ruang RAM yang relatif besar, sedangkan rutin-rutin
antarmuka perangkat keras disimpan dalam ruang ROM yang kecil. Sedangkan pada
Mikrokontroler, perbandingan ROM dan RAM-nya yang besar, artinya program kontrol
disimpan dalam ROM (bisa Masked ROM atau Flash PEROM) yang ukurannya relatif
lebih besar, sedangkan RAM digunakan sebagai tempat penyimpan sementara, termasuk
register-register yang digunakan pada mikrokontroler yang bersangkutan.
Adapun kelebihan dari mikrokontroller adalah sebagai berikut :
1. Penggerak pada mikrokontoler menggunakan bahasa pemograman assembly dengan
berpatokan pada kaidah digital dasar sehingga pengoperasian sistem menjadi sangat
mudah dikerjakan sesuai dengan logika sistem (bahasa assembly ini mudah
dimengerti karena menggunakan bahasa assembly aplikasi dimana parameter input
dan output langsung bisa diakses tanpa menggunakan banyak perintah). Desain
bahasa assembly ini tidak menggunakan begitu banyak syarat penulisan bahasa
pemrograman seperti huruf besar dan huruf kecil untuk bahasa assembly tetap
diwajarkan.
2. Mikrokontroler tersusun dalam satu chip dimana prosesor, memori, dan I/O
terintegrasi menjadi satu kesatuan kontrol sistem sehingga mikrokontroler dapat
dikatakan sebagai komputer mini yang dapat bekerja secara inovatif sesuai dengan
kebutuhan sistem.
3. Sistem running bersifat berdiri sendiri tanpa tergantung dengan komputer sedangkan
parameter komputer hanya digunakan untuk download perintah instruksi atau
program. Langkah-langkah untuk download komputer dengan mikrokontroler sangat
mudah digunakan karena tidak menggunakan banyak perintah.
4. Pada mikrokontroler tersedia fasilitas tambahan untuk pengembangan memori dan
I/O yang disesuaikan dengan kebutuhan sistem.
5. Harga untuk memperoleh alat ini lebih murah dan mudah didapat.
2.2 Unit Mikrokontroller
Keluarga MCS-51 merupakan mikrokontroller 8 bit seperti terlihat pada table
berikut ini :
Device Internal memory
program
Internal
memory data
Timer/efen
Counter
Interupt
S
8052AH
8051AH
8051
8032AH
8031AH
8031
8751H
8751H-12
8751H-88
8K x 8ROM
4K x 8ROM
4K x 8ROM
None
None
None
4K x 8ROM
4K x 8ROM
4K x 8ROM
256 x 8RAM
128 x 8RAM
128 x 8RAM
256 x 8RAM
128 x 8RAM
128 x 8RAM
128 x 8RAM
128 x 8RAM
128 x 8RAM
3 x 16 Bit
2 x 16 Bit
2 x 16 Bit
2 x 16 Bit
2 x 16 Bit
2 x 16 Bit
2 x 16 Bit
2 x 16 Bit
2 x 16 Bit
6
5
5
6
5
5
5
5
5
Tabel 2.1. keluarga MCS51
Terdapat beberapa anggotanya mempunyai internal memory, salah satunya adalah
mikrokontroller AT89C51 yang merupakan versi EEPROM dari 80C51 dimana memory
internal ini dapat diprogram dan dihapus secara elektrik diproduksi oleh ATMEL
Corporation. AT89C51 dibuat compatible dengan sel instruksi dan pin keluaran standar
industri MCS-51 yang memiliki 4Kbyte RAM internal dengan teknologi flas EEPROM
yang dapat menyimpan data meskipun catu daya dimatikan.
DT-51 merupakan development tools yang terdiri dari 2 bagian terintegrasi yaitu
perangkat keras dan perangkat lunak. Komponen utama perangkat keras DT-51 ialah
mikrokontroler AT89C51 yang merupakan salah satu turunan keluarga MCS-51 Intel dan
telah menjadi salah satu standar industri dunia. Selain mikrokontroler, DT-51 dilengkapi
pula dengan EEPROM yang memungkinkan DT-51 bekerja dalam mode stand-alone
(bekerja sendiri tanpa komputer). Selain komponen-komponen tersebut masih banyak
fungsi lain pada DT-51, antara lain : timer, counter, RS-232 serial port, Programmable
Perangkat Interface (PPI), serta LCD port. Perangkat lunak DT-51 terdiri dari
Downloader DT51L dan Debugger DT51D. Downloader berfungsi untuk mentransfer
user program dari PC (Portable Computer) ke DT-51, sedangkan debugger akan
membantu user untuk melacak kesalahan program*.
Spesifikasi DT-51
1. Berbasis mikrokontroler 89C51 yang berstandar industri.
2. Serial port interface standar RS-232 untuk komunikasi antara komputer dengan
board DT-51.
3. 8 Kbytes non-volatile memory (EEPROM) untuk menyimpan program dan data.
4. 4 port input output (I/O) dengan kapasitas 8 bit tiap portnya.
5. Port Liquid Crystal Display (LCD) untuk keperluan tampilan.
6. Konektor ekspansi untuk menghubungkan DT-51 dengan add-on board yang
kampatibel dari Innovative Electronics.
*Lihat AT89S51/52 Development Tools DT-51 MinSys.
Gambar di bawah ini menunjukan tata letak dari DT-51
Gambar 2.1. Tata Letak DT-51
2.3 Mikrokontroller AT89C51
Mikrokontroler adalah sebuah chip yang berfungsi sebagai pengontrol rangkaian
elektronik dan umunya dapat menyimpan program didalamnya. Mikrokontroler
umumnya terdiri dari CPU (Central Processing Unit), memori, I/O tertentu dan unit
pendukung seperti Analog-to-Digital Converter (ADC) yang sudah terintegrasi di
dalamnya.
Kelebihan utama dari mikrokontroler ialah tersedianya RAM dan peralatan I/O
pendukung sehingga ukuran board mikrokontroler menjadi sangat ringkas.
Mikrokontroler AT89C51 ialah mikrokomputer CMOS 8 bit dengan 4 KB Flash PEROM
(Programmable and Erasable Only Memory) yang dapat dihapus dan ditulisi sebanyak
1000 kali. Mikrokontroler ini diproduksi dengan menggunakan teknologi high density
non-volatile memory Atmel. Flash PEROM on-chip tersebut memungkinkan memori
program untuk diprogram ulang dalam sistem (in-system programming) atau dengan
menggunakan programmer non-volatile memory konvensional. Kombinasi CPU 8 bit
serba guna dan Flash PEROM, menjadikan mikrokontroler AT89C51 menjadi
microcomputer handal yang fleksibel.
Karakteristik lainya dari mikrokontroler AT89C51 sebagai berikut :
- Low-power
- 32 jalur masukan/keluaran yang dapat diprogram*
- Dua timer counter 16 bit
- RAM 128 byte
- Lima interrupt
Arsitektur perangkat keras 89C51 mempunyai 40 kaki, 31 kaki digunakan untuk
keperluan 4 buah port pararel. 1 port terdiri dari 8 kaki yang dapat di hubungkan untuk
interfacing ke pararel device, seperti ADC, sensor dan sebagainya, atau dapat juga
digunakan secara sendiri setiap bitnya untuk interfacing single bit septerti switch, LED,
dll.
*32 jalur masukan dihimpun dalam 4 buah port, setiap port memiliki 8 buah masukan
Gambar 2.2. Konfigurasi Pin Mikrokontroler AT89C51
Fungsi dari mikrokontroler AT89C51 secara keseluruhan dapat digambarkan
yaitu sebagai berikut :
Pin 1 sampai 8
Adalah kelompok pin untuk port 1. Port 1 ini merupakan port I/O dua arah yang
digunakan untuk penghubungan dengan peralatan luar.
Pin 9
Adalah masukan reset. Dimana ketika ada masukan sinyal dalam waktu tertentu pada pin
ini, mikrokontroler akan di reset.
Pin 10 sampai 17
Adalah port 3 yang juga merupakan port I/O. Port 3 terdiri dari pin-pin yang
diperlihatkan tabel dibawah ini.
Tabel 2.2. fungsi pin pada P3
Pin 18
Adalah XTAL 2 yaitu untuk keluaran dari inverting oscillator amplifier. XTAL 2
digunakan untuk pewaktuan mikrokontroler.
Pin 19
Adalah XTAL 1 yaitu masukan untuk inverting oscillator amplifier dan masukan untuk
rangkaian sumber detak (clock).
Pin 20
Adalah ground dan diberi simbol gnd. Pin ini terhubung dengan jalur netral/ground dari
rangkaian pengatur daya.
Pin 21 sampai 28
Adalah port 2 yang juga sebagai port I/O.
Bit Nama Fungsi Alternatif
P3.0 RXD Port input serial
P3.1 TXD Port output serial
P3.2 INT0 Interupsi eksternal 0
P3.3 INT1 Interupsi eksternal 1
P3.4 T0 Input Eksternal waktu/pencacah 0
P3.5 T1 Input Eksternal waktu/pencacah 1
P3.6 WR Jalur menulis memori data eksternal
P3.7 RD Jalur membaca memori data eksternal
Pin 29
Adalah Program Store Enable (PSEN), yaitu masukan sinyal baca untuk memori
program eksternal agar masuk ke dalam bus selama proses pemberian/pengambilan
instruksi (fetching).
Pin 30
Adalah Address Latch Enable (ALE) yaitu keluaran yang menghasilkan pulsa-pulsa
untuk mengancing byte rendah alamat selama mengakses eksternal. Selain itu pin ini juga
berfungsi sebagai PROG atau masukan pulsa program selama pemograman.
Pin 31
Adalah External Acces Enable (EA ) yang merupakan sinyal kontrol untuk pembacaan
memori program. Apabila diset rendah (L) maka mikrokontroler akan melaksanakan
seluruh instruksi dari memori program eksternal, sedangkan jika diset tinggi (H) maka
mikrokontroler akan melaksanakan instruksi dari memori program internal ketika isi
program kurang dari 4096. Port ini juga berfungsi sebagai tegangan pemograman (Vpp =
+ 12V) selama proses pemograman.
Pin 32 sampai 39
Adalah merupakan port 0 dan berfungsi sebagai I/O.
Pin 40
Adalah Vcc atau sumber tegangan. Pin ini dihubungakan dengan jalur positif dari
rangkaian pengatur daya
2.4 Organisai Memori Mikrokontroller AT89C51
AT89C51 yang merupakan versi EEPROM dari 8051yang program memorinya
dapat diprogram dan dihapus secara elektrik. AT89C51 mempunyai lokasi alamat yang
terpisah untuk program memori dan data memori . seperti yang terlihat pada gambar 2.3.
Gambar 2.3. Blok Diagram Inti Dari AT89C
Pemisahan memori program dan data tersebut membolehkan memori data diakses
dengan alamat 8 bit, sehingga dapat dengan cepat dan mudah disimpan dan dimanipulasi
oleh CPU 8 bit. Namun demikian, alamat memori data 16-bit bisa juga dihasilkan melalui
register DPTR.
Gambar 2.4. Struktur Memori Mikrokontroler AT89C51
2.4.1 Memori Program
Memori program hanya bisa dibaca saja karena bersifat sebagai ROM.
Memori ini disimpan dalam Flash PEROM. Memori program yang bisa diakses
langsung hingga 64 Kbyte. Pada gambar memori program terdapat strobe (tanda) untuk
akses memori program eksternal melalui sinyal PSEN (Program Strobe Enable).
Mikrokontroler AT89C51 mempunyai 4 Kbyte memori program
internal. Bila memakai memori program eksternal, maka pin `EA ’ diberi
logika Low. Apabila ingin memakai memori program internal pin `EA ’ diberi
logika High.
2.4.2 Memori Data
Memori data menempati ruang alamat terpisah. Memori eksternalnya
dapat diakses secara langsung hingga 64 Kbyte. CPU akan memberikan sinyal baca RD
dan tulis WR selama mengakses memori data eksternal.
Gambar 2.4. menampilkan ruang alamat memori data internal dan
eksternal. Perincian ruang memori data internal seperti gambar 2.5. dibagi
menjadi tiga blok yaitu, 128 lower, 128 upper, dan Register Fungsi
Khusus (Special Function Register = SFR). Pengaksesan langsung dengan
alamat diatas 7FH mengakses suatu memori, sedangkan pengaksesan tak
langsung dengan alamat di atas 7FH mengakses ruang memori lain yang
berbeda. Pada memori data internal 128 byte lower terdapat empat bank dan
delapan register (Ro...R7).
FFH FFH
UPPER SFR
128
80H 80H
7H
LOWER
128
0
Gambar 2.5. Memori Data Internal
AKSES
DENGAN
PENGALAMATAN
TAK LANGSUNG
AKSES
DENGAN
PENGALAMATAN
LANGSUNG
AKSES
DENGAN
PENGALAMATAN
TAK LANGSUNG
Pengalamatan langsung dari 80H sampai FFH tergolong dalam SFR.
Berikut fungsi yang terdapat dalam SFR.
1. Program Status Word (PSW)
PSW berisi bit-bit status yang berkaitan dengan kondisi CPU saat itu. PSW
terletak dalam ruang SFR pada lokasi D0H.
2. Akumulator
ACC atau akumulator menempati lokasi E0H dan digunakan sebagai register
untuk penyimpanan data sementara dalam program.
3. Register B
Register B terletak pada lokasi F0H. Register ini digunakan selama operasi
perkalian dan pembagian. Saat intstruksi MUL AB terjadi perkalian antara akumulator
dengan data yang tersimpan dalam register B dan hasilnya 16 bit disimpan dalam
register B dan akumulator (A). Instruksi DIV AB melakukan pembagian antara
akumulator dengan data yang tersimpan dalam register B.
4. Stack Pointer (SP)
Register SP terletak pada lokasi 81H. SP merupakan register dengan
panjang 8 bit dan digunakan dalam proses simpan dan ambil dari/ke stack.
5. Data Pointer
Register Data Pointer atau DPTR mengandung byte tinggi (DPH) dan byte
rendah (DPL) masing-masing berada di lokasi 83H dan 82H. DPTR dapat
dimanipulasi sebagai dua register 8 bit yang terpisah.
6. Port 0, Port 1, Port 2, Port 3
P0, P1, P2, P3 masing-masing menempati lokasi 80H, 90H, A0H, dan B0H.
7. Register Kontrol (Control Register)
Pada register kontrol terdapat TMOD sebagai pewaktu.
8. Timer Register
Timer register merupakan register pencacah 16 bit. Timer 0 high dan timer
0 low terdapat pada masing-masing 8CH dan 8AH. Timer 1 high dan Timer
1 low terdapat dilokasi 8DH dan 8BH.
2.4.3 Memori Eksternal
Selain PEROM dan internal RAM yang terdapat pada
mikrokontroler AT89C51, DT51 juga mempunyai memori eksternal
berjenis EEPROM (Electrically Erasable Programmable Read Only
Memory). Sesuai dengan namanya maka EEPROM dapat ditulis dan
dihapus secara elektrik, mirip seperti RAM namun bersifat non volatile
sehingga data yang tersimpan dalam EEPROM tidak hilang meskipun catu
daya dimatikan.
AT28C64B adalah suatu memori eksternal seperti yang digunakan sebagai
tambahan dalam menyimpan program dan data. Pada pengaksesannya baik dalam
menulis dan membaca, memori ini tidak membutuhkan komponen luar. Didalamnya
terdiri dari suatu halaman register 64 byte untuk penulisan. Memori AT28C64B
memiliki 28 pin yang terdiri dari 13 pin pengalamatan, 8 pin I/O data dan 3 pin
inisialisasi, serta 2 pin untuk Vcc dan ground, sedangkan 2 pin lainnya tidak
dihubungkan.
Gambar 2.6. Electrically-Erasable and Programmable Read Only
Memory (EEPROM) AT28C64B.
Untuk penggunaan memori ini seperti telah disinggung diatas,
dilakukan dari mikrokontroler. Sebagai memori program, pengaturan
dilakukan dari mikrokontroler pada pin ALE, pin EA dan pin PSEN . Pin
ALE sebagai pengunci alamat, pin EA berfungsi untuk menentukan
pengambilan instruksi. Jika EA disambung pada Vcc, maka
mikrokontroler mengambil instruksi dari memori internal, dan bila EA
tersambung pada ground maka pengambilan instruksi dari memori eksternal.
Sedangkan untuk inisialisasi pengambilan program dari memori ekternal diatur pada
pin PSEN . Sama dengan memori internal, program hanya dapat dibaca.
Penggunaan sebagai memori data, dilakukan pada pin WR dan pin RD . Pin WR
untuk penulisan data dan pin RD untuk pembacaan data.
2.5 Set Instruksi
Ada beberapa instruksi yang dikenal oleh mikrokontroler AT89C51 yaitu:
Instruksi aritmetika
Intruksi logika dan manipulasi bit
Instruksi transfer data
Instruksi percabangan
Instruksi-instruksi tersebut dijelaskan berikut ini.
2.5.1 Instruksi Aritmetika
Intruksi aritmetika mencakup penambahan (ADD), pengurangan
(SUBB), perkalian (MUL), dan pembagian (DIV).
1. Penambahan (ADD)
Instruksi ini menjumlahkan suatu data dengan isi akumulator dan hasilnya
disimpan dalam akumulator.
Operasi ADD : A←A+data
2. Pengurangan (SUBB)
Instruksi ini mengurangkan isi akumulator dengan isi carry flag dan isi data.
Operasi SUBB : A←A-C-data
3. Perkalian (MUL)
Instruksi ini mengalikan isi akumulator dengan isi register B.
Operasi MUL : AB←A*B
4. Pembagian (DIV)
Instruksi ini akan membagi isi register akumulator dengan isi register B.
Operasi DIV : AB←A/B
5. Penambahan satu (INC)
Proses ini menambahkan satu pada isi suatu register atau memori.
Operasi INC A : AB←A+B
6. Pengurangan Satu (DEC)
Proses ini kebalikan dari proses pengurangan satu.
2.5.2 Instruksi Logika Dengan Manipulasi Bit
Instruksi logika dan manipulasi bit terdiri dari :
1. Logika AND (ANL)
Instruksi ini melakukan proses logika AND antara suatu register dengan
register, register dengan data, carry flag dengan suatu alamat, dan lain- lain.
Tabel kebenarannya terlihat pada Tabel 2.3
.
#1 #2 HASIL
0 0 0
0 1 0
1 0 0
1 1 1
Tabel 2.3. operasi AND
Sebagai contoh, misalnya akumulator berisi 1011 1011B dan register R0 berisi
0100 1100B dengan instruksi ANL A, R0 menyebabkan isi akumulator menjadi
sebagai berikut :
A : 1011 1011
B : 0100 1100
0000 1000 → akumulator akan berisi 0000 1000B atau 08H
Format instruksi AND :
ANL A, @Rr
ANL A, #data
ANL alamat data, A
ANL alamat, #data
2. Logika OR (ORL)
Instruksi ini melakukan logika OR antara suatu register dengan register, register
dengan data, carry flag dengan isi suatu alamat bit.
Tabel kebenaran untuk logika OR ditunjukkan oleh Tabel 2.4.
Tabel 2.4. Operasi OR
Format instruksi OR:
ORL A, @Rr
ORL A, #data
ORL alamat data, A
ORL A, alamat data
3. Logika NOT (CPL)
Instruksi ini melakukan proses logika NOT pada suatu register, carry flag,
atau isi suatu alamat bit. Tabel kebenarannya sebagai berikut.
#1 HASIL
0 1
1 0
Tabel 2.5. Operasi NOT
#1 #2 HASIL
0 0 0
0 1 1
1 0 1
1 1 1
Format instruksi NOT:
CPL A
CPL alamat bit
4. Logika EXOR (XRL)
Instruksi ini melakukan proses logika exlusive-OR antara register dengan
register, register dengan data, dan lain-lain. Tabel kebenarannya sebagai
berikut.
#1 #2 HASIL
0 0 0
0 1 1
1 0 1
1 1 0
Tabel 2.6. Operasi EXOR
5. Manipulasi Pengesetan (CLR)
Instruksi ini menyebabkan suatu bit menjadi reset atau nol
Format instruksi CLR :
CLR A
CLR alamat bit
6. Manipulasi Bit Pengesetan (SETB)
Instruksi ini akan mengeset bit yang dimaksud (atau 1)
Format instruksi SETB :
SETB C
SETB bit
7. Manipulasi Bit Pengisian (MOV)
Instruksi ini akan mengisi suatu data dalam bentuk byte.
Format instruksi MOV :
MOV @Rr, A
MOV A, @Rr
MOV @Rr, #data
MOV @Rr, alamat data
MOV A, alamat data
8. Manipulasi Lompat
Program counter akan meloncat ke alamat yang dikehendaki.
Format instruksinya :
JC alamat kode
JNC alamat kode
2.5.3 Instruksi Transfer Data
Kelompok instruksi ini digunakan untuk memindahkan data antara :
1. register-register
2. memori-memori
3. register-memori
4. antarmuka-register
5. antarmuka-memori
Contoh :
MOV A, R0 : Pindahkan isi register R0 ke akumulator.
MOV A, @R0 : Pindahkan isi memori yang alamatnya ditunjukkan oleh
register R0 ke akumulator.
MOV A, P3 : Pindahkan isi port 3 ke akumulator.
2.5.4 Instruksi Percabangan
Instruksi percabangan ini dibagi dua yaitu percabangan dengan syarat
dan percabangan tanpa syarat.
Percabangan dengan syarat terdiri atas :
CJNE
Instruksi ini akan membandingkan isi register atau isi memori dengan suatu
data. Bila hasil perbandingan itu sama, instruksi selanjutnya yang akan dituju. Bila tidak
sama, instruksi yang ditunjuk oleh label yang akan dilaksanakan.
Format instruksi CJNE :
CJNE A, @Rr
DJNZ
Instruksi ini akan mengurangi isi register atau memori dengan satu. Bila sudah
0, instruksi selanjutnya akan dilaksanakan dan bila belum 0 instruksi dilanjutkan
ke label.
Format instruksi DJNZ :
DJNZ Rr, alamat kode
DJNZ alamat data, alamat kode
JBC
Instruksi ini akan menguji suatu alamat bit. Apabila alamat bit berisi 1 (set)
bit tersebut akan di clear dan selanjutnya program menuju tabel. Bila alamat bit
berisi 0, instruksi selanjutnya yang akan dieksekusi.
Format instruksi JBC :
JBC alamat bit, alamat kode
Percabangan tanpa syarat meliputi :
Long Jump (LJMP)
Format instruksi Long Jump :
LJMP alamat kode
Short Jump (SJMP)
Format instruksi Short Jump :
SJMP alamat kode
2.6 Progaram sumber assembly
Program sumber assembly merupakan program yang ditulis oleh pembuat
program berupa kumpulan baris-baris perintah dan biasanya disimpan dengan extension
.ASM. program sumber assembly terdiri atas beberapa bagian yaitu Label, Mnenonikm
Operand, dan Komentar.
1. Label
Label sangat berguna dalam pemberian nama pada alamat-alamat yang dituju, karena
pemberian label pada suatu alamat lebih bersifat relatif. Selain itu, label juga digunakan
sebagai catatan diri alur program. Untuk membuat label, ada beberapa persyaratan yang
harus dipenuhi, dimana persyaratan ini kadang-kadang juga bergantung pada program
assembler yang digunakan, yaitu :
A. Harus diawali dengan huruf.
B. Tidak diperbolehkan adanya label yang sama dalam satu program assembly.
C. Maksimal 16 karakter.
D. Tidak diperbolehkan adanya karakter spasi dalam label.
2. Mnemonic
Mnemonic atau bisa juga disebut kode operasi adalah kode-kode yang akan dikerjakan
oleh program assembler yang ada pada mikrokontroller merupakan perintah-perintah atau
instruksi-instruksi yang sangat bergantung dengan jenis mikrokontroller yang digunakan.
Contoh, untuk keluarga MCS51 digunakan MOVX, MOV, ADD dan lain-lain.
3. Operand
Operand merupakan pelengkap dari mnemonic, jumlah operand yang dibutuhkan oleh
satu mnemonic tidak selalu sama, sebuah mnemonic dapat memiliki tiga, dua, satu atau
bahkan tidak memiliki operand sama sekali.
4. Komentar
Bagian komentar tidak mutlak ada dalam sebuah program, namun bagian ini sangat
berguna untuk menjelaskan proses-proses kerja ataupun catatan-catatan tertentu pada
bagian-bagian program. Bahkan pembuat program seringkali membutuhkannya untuk
mengingat kembali jalannya program rancanganya.
2.7 Sistem pengalamatan
Dalam sebuah program, terdapat beberapa system pengalamatan yang perlu
diketahui, yaitu :
2.7.1 Pengalamatan Langsung
1. Immediate Data
Proses pengalamatan ini terjadi pada sebuah perintah ketika nilai operand
merupan data yang akan diproses. Biasanya operand tersebut selalau diawali
dengan tanda ‘#’. Operand yang digunakan operand yang digunakan pada immediate
data juga dapat berupa bilangan bertanda mulai -256 hingga +256
Contoh :
Mov A,#-1 sama dengan Mov A,#0FFH
Bilangan 1 adalah sama dengan 0 dikurangi 1, dalam bentuk heksa bilangan 00H
jika dikurangi 1, hasilnya adalah 0FFH. Dengan pengertian seperti ini, bilangan -1
dianggap sama dengan 0FFH.
2. Pengalamatan Data
Proses pengalamatan ini terjadi pada sebuah proses perintah ketika nilai
operand merupakan alamat dari data yang akan di isi, dipingahkan atau
diproses.
2.7.2 Pengalamatan Tak Langsung
Proses pengalamatan ini terjadi pada sebuah perintah ketika salah satu
operand merupakan register berisikan alamat dari data yang akan di isi atau
dipindahkan. Pengalamatan jenis ini biasa digunakan untuk melakukan penulisan,
pemindahan, atau pembacaan beberapa data dalam lokasi memori yang mempunyai
urutan beraturan.
2.7.3 Pengalamatan Kode
Pengalamatan kode merupakan pengalamatan kerja operand,
merupakan alamat dari instruksi jump dan call. Biasanya operand
tersebut akan menuju ke suatu alamat yang telah diberi label sebelumnya.
2.7.4 Pengalamatan Bit
Pengalamatan bit adalah pengalamatan ketika operand menunjuk ke
alamat pada RAM internal ataupun register fungsi khusus yang mempunyai
kemampuan pengalamatan secara bit.
Berdasarkan penulisannya, pengalamatan ini terdiri dari beberapa macam yaitu :
1. Langsung menuju ke alamat bit
Contoh :
Setb 0B0H
Perintah ini memberikan logika 1 pada bit di alamat B0H dengan pengalamatan
secara bit.
2. Menggunakan operator titik
Contoh :
Setb P3.0
Perintah ini memberikan logika 1 pada bit ke 0 dari port 3, bit tersebut terletak
di alamat B0H dengan pengalamatan secara bit.
3. Menggunakan lambang assembler secara standar
Contoh :
Setb RXD
Perintah ini memberikan logika 1 pada kaki RXD yang terletak pada bit ke
0 dari port 3.
4. Menggunakan lambang assembler secara bebas
Contoh :
Penerima Bit P30
Setb Penerima
Perintah ini memberikan logika 1 pada bit penerima yang sebelumnya
didefinisikan sebagai bit P3.
2.8 Programmable Peripheral Interface (PPI) 8255
Programmable Peripheral Interface (PPI) 8255 ialah chip antarmuka 24 bit (3
port) yang dapat diprogram sesuai keinginan kita. PPI 8255 merupakan chip yang paling
banyak digunakan untuk interfacing menggunakan port ISA komputer. PPI 8255 sering
digunakan sebagai pengendali motor stepper, ADC/DAC, relay, dan rangkaian digital
lainnya yang digunakan untuk Sistem Akuisisi Data.
Gambar 2.7. merupakan skema IC 8255 yang memiliki 40 pin. Perlu diingat
bahwa pin gnd berada di pin 7 dan Vcc berada di pin 26.Ic sangat sensitive terhadap listrik
statis. Arus keluaran IC ini sangat kecil, karena itu biasanya digunakan resistor pull-up
agar dapat menyuplai arus lebih besar.
Gambar 2.7. Programmable Peripheral Interface (PPI) 82C55A
Berikut ini penjelasan mengenai tiap pin :
PA0-PA07
Merupakan port A yang terdiri dari 8 bit, dapat diprogram sebagai input atau output
dengan metode bidirectional input/output.
PB0-PB07
Port B dapat diprogram sebagai input/output, tetapi tidak dapat digunakan sebagai port
bidirectional.
PC0-PC07
Port C dapat diprogram sebagai input/output, bahkan dapat dipecah menjadi dua, yaitu
CU (bit PC4-PC7) dan CL (bit PC0-PC3) yang dapat diprogram sebagai input/output.
RD dan WR
Sinyal kontrol aktif rendah ini dihubungkan ke 8255. Jika 8255 menggunakan desain
periferal I/O maka IOR dan IOW bus sistem dihubungkan ke kedua pin ini.
RESET
Pin aktif tinggi ini digunakan untuk membersihkan Control Register. Ketika RESET
diaktifkan, seluruh port diinisialisasi sebagai port input.
2.9. Pengaturan Control Word
Pengaturan control word bertujuan untuk menentukan fungsi dari setiap port pada
PPI 8255. dengan menentukan data yang masuk pada pin D0 – D7, kita dapat
menentukan fungsi dari port-port pada PPI 8255. Dengan fungsi masing - masing pin
sebagai berikut :
D7 D6 D5 D4 D3 D2 D1 D0
Mengatur fungsi Port C Lower apakah Input atau
Output. 1 = Input dan 0 = Output.
Mengatur fungsi Port B apakah Input atau Output.
1 = Input dan 0 = Output.
Mode Select untuk D0 dan D1. 0 = fungsi D0 dan D1 dua arah (I/O) 1 = fungsi D0 harus 1 (input).
Mengatur fungsi Port C Upper apakah Input atau
Output. 1 = Input dan 0 = Output.
Mengatur fungsi Port A apakah Input atau Output.
1 = Input dan 0 = Output.
Mode Select untuk D3 dan D4. 00 = fungsi D3 dan D4 bisa dua arah (I/O) 01 = fungsi D3 harus 1 (input) 10 = fungsi D4 harus 1 (input) 11 = fungsi D3 dan D4 harus 1 (input)
Sebagai mode aktif PPI.
1 = PPI aktif dan 0 = PPI tidak aktif
Gambar 2.8. Pengaturan Control Word
2.10. Keypad
Keypad adalah rangkaian tombol yang berfungsi untuk memberi sinyal pada suatu
rangkaian dengan menghubungkan jalur-jalur tertentu. Keypad terdiri dari beberapa
macam berdasarkan jumlah tombol dan fungsinya. Pada sistem pengontrolan ini,
digunakan keypad matriks 3 x 4 (12 saklar) dengan pin penghubung rangkaian berjumlah
7 buah.
Gambar 2.9. Tampilan Fisik Keypad 3 x 4
Ketujuh pin penghubung ini terbagi dua kelompok yaitu 4 buah pin sebagai input
dan 3 buah lainnya sebagai ouput. Adapun maksud dari 7 pin I/O adalah untuk dijadikan
kombinasi penghubungan pada rangkaian yang akan disambungkan dengan keypad ini.
Dimana dalam setiap penekanan satu tombol/saklar keypad maka terjadi kombinasi antara
dua buah pin dalam pembacaan sinyalnya.
1 2 3
4 5 6
7 8 9
0 #
Output
Gambar 2.10. Skematik Keypad 3 x 4
2.11 LCD (Liquid Cristal Display)
LCD (Liquid Cristal Display) adalah salah satu komponen elektronika yang
berfungsi sebagai tampilan suatu data, baik karakter, huruf ataupun grafik. Dipasaran
tampilan LCD sudah tersedia dalam bentuk modul yaitu tampilan LCD beserta rangkaian
pendukungnya termasuk ROM dll. LCD mempunyai pin data, kontrol catu daya, dan
pengatur kontras tampilan.
Pin No Name Function Description
1 Vss Power GND
2 Vdd Power + 5 V
3 Vee Contrast Adj. (-2) 0 - 5 V
4 RS Command Register Select
I
n
p
u
t
5 R/W Command Read / Write
6 E Command Enable (Strobe)
7 D0 I/O Data LSB
8 D1 I/O Data
9 D2 I/O Data
10 D3 I/O Data
11 D4 I/O Data
12 D5 I/O Data
13 D6 I/O Data
14 D7 I/O Data MSB
Tabel 2.7. Konfigurasi Pin Dari LCD 2x16 M1632
Gambar 2.10. Rangkaian LCD
Fungsi dari pin-pin pada rangkaian LCD yaitu:
Pin data dapat dihubungkan dengan bus data dari rangkaian lain seperti mikrokontroler
dengan lebar data 8 bit.
Pin RS (Register Select) berfungsi sebagai indikator atau yang menentukan jenis data
Data Bus Control Supply
D0 D1 D2 D3 D4 D5 D6 D7 RS R/W E VCC Gnd VLCD
yang masuk, apakah data atau perintah. Logika low menunjukan yang masuk adalah
perintah, sedangkan logika high menunjukan data.
Pin R/W (Read Write) berfungsi sebagai instruksi pada modul jika low tulis data,
sedangkan high baca data.
Pin E (Enable) digunakan untuk memegang data baik masuk atau keluar.
Pin VLCD berfungsi mengatur kecerahan tampilan (kontras) dimana pin ini dihubungkan
dengan trimpot 5 Kohm, jika tidak digunakan dihubungkan ke ground, sedangkan
tegangan catu daya ke LCD sebesar 5 Volt.
LCD telah dilengkapi dengan mikrokontroler HD44780 yang berfungsi sebagai
pengendali. LCD ini juga mempunyai CGROM (Character Generator Read Only
Memory), CGRAM (Character Generator Random Access Memory) dan DDRAM
(Display Data Random Access Memory).
2.11.1 DDRAM
DDRAM (Display Data Random Access Memory) merupakan
memori tempat karakter yang akan ditampilkan berada. Contoh, untuk
karakter ‘A’ atau 41H yang ditulis pada alamat 00, maka karakter tersebut akan
tampil pada baris pertama dan kolom pertama dari LCD. Apabila karakter tersebut
ditulis dialamat 40, maka karakter tersebut akan tampil pada baris kedua kolom
pertama dari LCD.
Display
Position 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
0 0 0 0 04 05 06 07 08 09 0 0 0 0 0E 0
0 1 2 3 A B C D F
4
0
4
1
4
2
4
3
44 45 46 47 48 49
4
A
4
B
4
C
4
D
4E
4
F
DDRAM Address
Tabel 2.8. DDRAM Address
2.11.2 CGRAM
CGRAM (Character Generator Random Access Memory) adalah
merupakan memori untuk menggambarkan pola sebuah karakter dimana
bentuk dari karakter dapat diubah-ubah sesuai dengan keinginan. Namun
memori ini akan hilang saat power supply tidak aktif, sehingga pola
karakter akan hilang.
2.11.3 CGROM
CGROM (Character Generator Read Only Memory) adalah
merupakan memori untuk menggambarkan pola sebuah karakter dimana
pola tersebut sudah ditentukan secara permanen dari HD 44780, sehingga
pengguna tidak dapat merubahnya. Karena ROM bersifat permanen, maka
pola karakter tersebut tidak akan hilang walaupun sumber tegangan tidak aktif.
Pada tabel 2.9. terlihat pola-pola karakter yang tersimpan dalam lokasi-
lokasi tertentu dalam CGROM. Pada saat HD44780 akan menampilkan data 41H yang
tersimpan pada DDRAM, maka HD44780 akan mengambil data di alamat 41H (0100