Adoc - Pub - Teori Dasar Mikrokontroler
Adoc - Pub - Teori Dasar Mikrokontroler
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
industri dan para konsumen akan kebutuhan dan keinginan alat-alat bantu bahkan mainan
hanya bisa digunakan untuk suatu aplikasi tertentu saja (hanya satu program saja yang
bisa disimpan). Perbedaan lainnya terletak pada perbandingan RAM dan ROM. Pada
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
berpatokan pada kaidah digital dasar sehingga pengoperasian sistem menjadi sangat
mudah dikerjakan sesuai dengan logika sistem (bahasa assembly ini mudah
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
dikatakan sebagai komputer mini yang dapat bekerja secara inovatif sesuai dengan
kebutuhan sistem.
3. Sistem running bersifat berdiri sendiri tanpa tergantung dengan komputer sedangkan
5. Harga untuk memperoleh alat ini lebih murah dan mudah didapat.
berikut ini :
Device Internal memory Internal Timer/efen Interupt
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
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
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
Spesifikasi DT-51
2. Serial port interface standar RS-232 untuk komunikasi antara komputer dengan
board DT-51.
umumnya terdiri dari CPU (Central Processing Unit), memori, I/O tertentu dan unit
dalamnya.
Kelebihan utama dari mikrokontroler ialah tersedianya RAM dan peralatan I/O
(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
- Low-power
- Lima interrupt
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
Pin 1 sampai 8
Adalah kelompok pin untuk port 1. Port 1 ini merupakan port I/O dua arah yang
Pin 9
Adalah masukan reset. Dimana ketika ada masukan sinyal dalam waktu tertentu pada pin
Pin 10 sampai 17
Adalah port 3 yang juga merupakan port I/O. Port 3 terdiri dari pin-pin yang
Pin 18
Adalah XTAL 2 yaitu untuk keluaran dari inverting oscillator amplifier. XTAL 2
Pin 19
Adalah XTAL 1 yaitu masukan untuk inverting oscillator amplifier dan masukan untuk
Pin 20
Adalah ground dan diberi simbol gnd. Pin ini terhubung dengan jalur netral/ground dari
Pin 21 sampai 28
Adalah Program Store Enable ( PSEN ), yaitu masukan sinyal baca untuk memori
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
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 (V pp =
Pin 32 sampai 39
Pin 40
Adalah Vcc atau sumber tegangan. Pin ini dihubungakan dengan jalur positif dari
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.
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
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).
logika Low. Apabila ingin memakai memori program internal pin ` EA ’ diberi
logika High.
2.4.2 Memori Data
dapat diakses secara langsung hingga 64 Kbyte. CPU akan memberikan sinyal baca RD
eksternal. Perincian ruang memori data internal seperti gambar 2.5. dibagi
menjadi tiga blok yaitu, 128 lower, 128 upper, dan Register Fungsi
langsung dengan alamat di atas 7FH mengakses ruang memori lain yang
berbeda. Pada memori data internal 128 byte lower terdapat empat bank dan
FFH FFH
AKSES AKSES
UPPER DENGAN DENGAN SFR
PENGALAMATAN PENGALAMATAN
128 TAK LANGSUNG LANGSUNG
80H 80H
7H AKSES
DENGAN
LOWER PENGALAMATAN
TAK LANGSUNG
128
PSW berisi bit-bit status yang berkaitan dengan kondisi CPU saat itu. PSW
2. Akumulator
ACC atau akumulator menempati lokasi E0H dan digunakan sebagai register
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
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
P0, P1, P2, P3 masing-masing menempati lokasi 80H, 90H, A0H, dan B0H.
7. Register Kontrol (Control Register)
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
dihapus secara elektrik, mirip seperti RAM namun bersifat non volatile
sehingga data yang tersimpan dalam EEPROM tidak hilang meskipun catu
daya dimatikan.
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
dilakukan dari mikrokontroler pada pin ALE, pin EA dan pin PSEN . Pin
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
Instruksi aritmetika
Instruksi percabangan
1. Penambahan (ADD)
Instruksi ini menjumlahkan suatu data dengan isi akumulator dan hasilnya
2. Pengurangan (SUBB)
Instruksi ini mengurangkan isi akumulator dengan isi carry flag dan isi data.
3. Perkalian (MUL)
4. Pembagian (DIV)
Instruksi ini akan membagi isi register akumulator dengan isi register B.
Proses ini menambahkan satu pada isi suatu register atau memori.
Instruksi ini melakukan proses logika AND antara suatu register dengan
register, register dengan data, carry flag dengan suatu alamat, dan lain- lain.
#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
sebagai berikut :
A : 1011 1011
B : 0100 1100
ANL A, @Rr
ANL A, #data
2. Logika OR (ORL)
Instruksi ini melakukan logika OR antara suatu register dengan register, register
0 0 0
0 1 1
1 0 1
1 1 1
ORL A, @Rr
ORL A, #data
Instruksi ini melakukan proses logika NOT pada suatu register, carry flag,
#1 HASIL
0 1
1 0
CPL A
berikut.
#1 #2 HASIL
0 0 0
0 1 1
1 0 1
1 1 0
CLR A
SETB C
SETB bit
MOV @Rr, A
MOV A, @Rr
8. Manipulasi Lompat
Format instruksinya :
JC alamat kode
2. memori-memori
3. register-memori
4. antarmuka-register
5. antarmuka-memori
Contoh :
register R0 ke akumulator.
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
DJNZ
Instruksi ini akan mengurangi isi register atau memori dengan satu. Bila sudah
ke label.
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
program berupa kumpulan baris-baris perintah dan biasanya disimpan dengan extension
.ASM. program sumber assembly terdiri atas beberapa bagian yaitu Label, Mnenonikm
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
B. Tidak diperbolehkan adanya label yang sama dalam satu program assembly.
C. Maksimal 16 karakter.
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
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
4. Komentar
Bagian komentar tidak mutlak ada dalam sebuah program, namun bagian ini sangat
diketahui, yaitu :
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 :
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
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.
Proses pengalamatan ini terjadi pada sebuah perintah ketika salah satu
operand merupakan register berisikan alamat dari data yang akan di isi atau
pemindahan, atau pembacaan beberapa data dalam lokasi memori yang mempunyai
urutan beraturan.
tersebut akan menuju ke suatu alamat yang telah diberi label sebelumnya.
alamat pada RAM internal ataupun register fungsi khusus yang mempunyai
Contoh :
Setb 0B0H
Perintah ini memberikan logika 1 pada bit di alamat B0H dengan pengalamatan
secara bit.
Contoh :
Setb P3.0
Perintah ini memberikan logika 1 pada bit ke 0 dari port 3, bit tersebut terletak
Contoh :
Setb RXD
Perintah ini memberikan logika 1 pada kaki RXD yang terletak pada bit ke
0 dari port 3.
Contoh :
Setb Penerima
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
PA0-PA07
Merupakan port A yang terdiri dari 8 bit, dapat diprogram sebagai input atau 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
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
2.10. Keypad
Keypad adalah rangkaian tombol yang berfungsi untuk memberi sinyal pada suatu
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.
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
I 1 2 3
n
p 4 5 6
u
t 7 8 9
0 #
Output
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
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
Pin data dapat dihubungkan dengan bus data dari rangkaian lain seperti mikrokontroler
Pin RS (Register Select) berfungsi sebagai indikator atau yang menentukan jenis data
yang masuk, apakah data atau perintah. Logika low menunjukan yang masuk adalah
Pin R/W (Read Write) berfungsi sebagai instruksi pada modul jika low tulis data,
Pin E (Enable) digunakan untuk memegang data baik masuk atau keluar.
Pin VLCD berfungsi mengatur kecerahan tampilan (kontras) dimana pin ini dihubungkan
pengendali. LCD ini juga mempunyai CGROM (Character Generator Read Only
2.11.1 DDRAM
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
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 4 4 4 4 4 4 4 4
44 45 46 47 48 49 4E
0 1 2 3 A B C D F
DDRAM Address
2.11.2 CGRAM
memori ini akan hilang saat power supply tidak aktif, sehingga pola
2.11.3 CGROM
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
0001) yang ada pada CGROM yaitu pola karakter A.