2.3 Mikrokontroler AT89S51
Mikrokontroler adalah gabungan dari sebuah mikroprosesor dan periperalnya, seperti RAM,ROM EPROM atau EEPROM antar muka serial dan paralel, timer dan rangkaian
pengontrol interupsi yang terkait dalam satu IC. Semuanya membentuk suatu sistem komputer yang lengkap. Perbedaannya dengan komputer adalah mikrokontroler didesain
dengan komponen-komponen yang minimum dan dipakai untuk orientasi kontrol. Programnya tidak berukuran besar dan disimpan dalam ROM. Akibat perbedaan
aplikasinya dengan mikroprosesor, mikrokontroler juga mempunyai kebutuhan set intruksi yang berbeda dengan mikroprosesor.
Mikroprosesor biasanya mempunyai set instruksi yang sangat lengkap, sedangkan mikrokontroler mempunyai set instruksi yang lebih sederhana, terutama dipakai untuk
mengontrol antar muka input dan output yang menggunakan bit tunggal singgel bit. Mikrokontroler mempunyai banyak instruksi untuk set dan clear bit secara individual dan
melakukan operasi yang berorientasi 1 bit untuk logika AND, OR, XOR, loncatan jumping, percabangan brancing dan lain-lain. Set instruksi seperti ini jarang ada pada
mikroprosesor yang biasanya untuk operasi pada byte atau unit data yang lebih besar.
AT89S51 adalah sebuah mikrokontroler 8 bit terbuat dari CMOS, yang berkonsumsi daya rendah dan mempunyai kemampuan tinggi. Mikrokontroler ini
memiliki 4 Kbyte In-System Flash Programable Memori, Ram sebesar 128 Byte, 32 inputoutput, watchdog timer,dua buah register data pointer, dua buah 16 bit timer dan
counter, lima buah vektor interupsi, sebuah port serial full-duplex, osilator on-chip, dan rangkaian clock.
Universitas Sumatera Utara
AT89S51 dibuat dengan teknologi memori non-volatile dengan kepadatan tinggi oleh ATMEL. Mikrokontroler ini cocok dengan instruksi set dan pin out 80C51 standar
industri.Flash on-chip memungkinkan memori program untuk di program ulang dengan program memori nonvolative yang biasa.
Gambar 2 . Mikrokontroller AT89S51
Keterangan
Vcc : Suplai Tegangan GND : Ground atau pentanahan
RST : Masukan reset. Kondisi logika 1 selama
siklus mesin saat osilator bekerja dan akan mereset mikrokontroler yang
bersangkutan.
Universitas Sumatera Utara
Fungsi - fungsi Port : Port0 : Merupakan port paralel 8 bit open drain dua
arah. Bila digunakan untuk mengakses memori luar, port ini akan memultipleks
alamat memori dengan data.
Port1 : merupakan port paralel 8 bit dua arah yang dapat digunakan untuk berbagai keperluan.
Port2 : merupakan port paralel selebar 8 bit dua arah. Port ini melakukan pengiriman byte alamat
bila dilakukan pengaksesan memori eksternal. P3.0 :
Saluran masukan serial P3.1 :
Saluran keluaran serial P3.2 :
Interupsi eksternal 0 P3.3 :
Interupsi eksternal 1 P3.4 :
Masukan eksternal pewaktu pencacah 0 P3.5 :
Masukan eksternal pewaktu pencacah 1 P3.6 :
Sinyal tanda baca memori data ekstrenal. P3.7 :
Sinyal tanda tulis memori data ekstrenal.
Data digital 8 bit dari ADC diambil oleh mikokontroler melalui Port 2 P2.0-P2.7 dihubungkan dengan DB0-DB7 . Sedangkan data masukan untuk penampil seven
segmen dikeluarkan melalui Port 1 P1.0-P1.7 dihubungkan dengan D0-D7 . Untuk mengontrol kaki RS dan E pada seven segmen mikrokontroler memanfaatkan kaki P3.6
dan P3.7
Proses pengambilan data dan pengolahan data dapat dilihat dalam gambar 2. Data yang diambil dari P2 dikalibrasi terlebih dahulu, setelah dikalibrasi data tersebut
kemudian diubah ke dalam kode ASCII supaya tertampil angka 0-100 pada seven segmen, jika tidak diubah maka yang tertampil adalah angka 0-255.
Universitas Sumatera Utara
2.4
Power Supply PSA
Catu daya merupakan bagian yang berfungsi untuk menyediakan daya untuk daya rangkaian. Ada dua macam catu daya, yaitu catu daya tegangan tetap dan catu daya
variable . Catu daya tegangan tetap adalah catu daya yang tegangan keluarannya tetap
dan tidak bisa diatur. Catu daya variable merupakan catu daya yang tegangan keluarannya dapa diubahdiatur. Catu daya yang baik selalu dilengkapi dengan regulator
tegangan.Tujuan pemasangan regulator tegangan pada catu daya adalah untuk menstabilkan tegangan keluaran apabila terjadi perubahan tegangan masukan pada catu
daya. Fungsi lain dari regulator tegangan adalah untuk perlindungan dari terjadinya hubung singkat pada beban. Salah satu tipe regulator tegangan tetap adalah LM78xx.
Regulator tegangan tipe LM 78xx adalah salah satu regulator tegangan tetap dengan tiga
terminal, yaitu terminal Vin , GND dan Vout. Tegangan keluaran dari regulator LM 78xx memungkinkan regulator untuk dipakai dalam sistem logika, instrumentasi dan Hifi .
Regulator tegangan LM 78xx dirancang sebagai regulator tegangan tetap, meskipun
demikian dapat juga keluaran dari regulator ini diatur tegangan dan arusnya melalui tambahan komponen eksternal . Cara pemasangan dari penerapan dari regulator tegangan
tetap LM 78xx pada catu daya dapat dilihat pada Gambar 2.3 berikut.
Gambar 2.4.1 Penerapan regulator tegangan tetap LM 78xx
Universitas Sumatera Utara
Regulator tegangan tetap LM 78xx dibedakan dalam tiga versi yaitu LM 78xxC, LM 78lxx dan LM 78Mxx. Arsitektur dari regulator tegangan tersebut sama, yang
membedakan adalah kemampuan mengalirkan arus pada regulator
Perangkat elektronika mestinya dicatu oleh supplay arus searah DC direct current yang stabil agar dapat bekerja dengan baik. Baterai atau accu adalah sumber catu
daya DC yang paling baik. Namun untuk aplikasi yang membutuhkan catu daya yang tegangan tersebut .
Regulator tegangan tetap LM 78xx dibedakan dalam tiga versi yaitu LM 78xxC, LM 78lxx dan LM 78Mxx. Arsitektur dari regulator tegangan tersebut sama, yang
membedakan adalah kemampuan mengalirkan arus pada regulator tegangan tersebut. Adaptor adalah sebuah rangkaian transformator yang dapat merubah arus Ac
menjadi arus DC. Dari penguatan inilah selanjutnya disebut power supply atau penguat catu daya.
Panjang pendeknya gulungan sekunder pada trafo adaptor akan mempengaruhi besar kecilnya sumber tegangan volt. Sedang besar kecilnya diameter kawat yang
digunakan akan mempengaruhi besar kecilnya arus dalam amper yang diperoleh.
Pada sebuah trafo tenaga yang di tancapkan AC pada primernya , kumparan sekunder akan timbul arus yang berlawanan DC. Arus yang keluar akibat imbas ini
sebenarnya secara menyeluruh belum rata. Karena itu perlu disearahkan dan distabilkan. Kurang tertibnya rangkaian stabilizer akan menyebabkan bunyi derau pada pesawat yang
sedang distel.
Universitas Sumatera Utara
lebih besar, sumber dari baterai tidak cukup. Sumber catu daya yang besar adalah sumber arus bolak-balik alternating current dari pembangkit tenaga listrik. Untuk itu diperlukan
suatu perangkat catu daya yang dapat mengubah arus AC menjadi arus DC Banyak peralatan elektronika yang tidak dilengkapi dengan adaptor atau catu daya
tetap, misalnya radio dan tape rekorder kecil. Selain dengan baterai kering, kita dapat menyediakan catu daya dengan rangkaian penyearah yang tegangan keluarannya tetap
dan stabil, serta biaya murah. Adaptor murah yang dipasaran biasanya tidak dilengkapi dengan stabilisator dan kemampuan arusnya belum tentu sesuai dengan peralatan kita.
2.5
Keypad 4X4
DT-IO 4 x 4 Keypad Module merupakan modul keypad berukuran 4 kolom x 4 baris. Modul ini dapat difungsikan sebagai divais input dalam aplikasi-aplikasi seperti
pengaman digital, data logger, absensi, pengendali kecepatan motor, robotik, dan sebagainya.
Spesifikasi Har dwar e 1. Memiliki 16 tombol fungsi tombol tergantung aplikasi.
2. Memiliki konfigurasi 4 baris input scanning dan 4 kolom output scanning. 3. Kompatibel penuh dengan DT-51™ Low Cost Series dan DT-AVR Low Cost Series.
Mendukung DT-51™ Minimum Sistem MinSys ver 3.0, DT-51™ PetraFuz, DT-
BASIC Series, dan lain-lain.
Tata Letak
Universitas Sumatera Utara
P1.4 Pin 7 PORT 1 R1 J3
P1.5 Pin 8 PORT 1 R2 J3
P1.6 Pin 9 PORT 1 R3 J3
P1.7 Pin 10 PORT 1 R4 J3
DT-51™ Minimum System v3.
dan Petr aFuz DT-IO 4x4
Keypad Module VCC Pin 1 Port CONTROL
VCC J5 PC.0 Pin 1 PORT C PORT 1
C1 J3 PC.1 Pin 2 PORT C PORT 1
C2 J3 PC.2 Pin 3 PORT C PORT 1
C3J3 PC.3 Pin 4 PORT C PORT 1
C4J3 PC.4 Pin 5 PORT C PORT 1
R1J3 PC.5 Pin 6 PORT C PORT 1
R2J3 PC.6 Pin 7 PORT C PORT 1
R3 J3 PC.7 Pin 8 PORT C PORT 1
R4J3
2.6
Display Seven Segmen
a
Universitas Sumatera Utara
b Gambar 2.6.1 Rangkaian Seven segmen
INPUT SELECTOR
ENABLE OUTPUT
C B
A G1 G2A G2B Y1 Y2 Y2 Y3 Y4 Y5 Y6 Y7
1 0 1 1 1 1 1 1 1
1 1
1 0 1 1 1 1 1 1 1
1 1 1 0 1 1 1 1 1
1 1
1 1 1 1 0 1 1 1 1
1 1
1 1 1 1 0 1 1 1 1
1 1
1 1 1 1 1 0 1 1 1
1 1
1 1 1 1 1 1 0 1 1
1 1
1 1 1 1 1 1 1 1 0
Tabel 2.6.1 Tabel kebenaran 74LS138
Pada tabel kebenaran tersebut tampak bahwa seven segmen yang hidup tergantung pada output dari dekoder 74LS138, yang sedang mengeluarkan logika low ”0”, sehingga dari 8
buah display tersebut, selalu hanya satu display yang akan dihidupkan. Agar display tampak nyala secara bersamaan maka ketiga display tersebut harus dihidupkan secara
Universitas Sumatera Utara
bergantian dengan waktu tunda tertentu. Pada gambar tersebut seven segment common anoda dikendalikan dengan menggunakan transistor PNP melalui decoder 74LS138,
apabila ada logika low pada basis transistor, maka seven segmen akan menyala dan sebaliknya akan padam.
Gambar 2.6.2 Modul 7 Segmen tunggal
P0.6 P0.5
P0.4 P0.3
P0.2 P0.1
P0.0 Display
G f
e d
c b
a 1
1 1
1 1
1 1
1 1
2 1
1 3
: :
: :
: :
: :
1 A
1 1
b Tabel 2.6.2 Data Display 7 Segmen
Pada tabel tersebut tampak bahwa untuk menghidupkan sebuah segmen, harus dikirimkan data logika low ”0” dan sebaliknya untuk mematikan segmen, harus dikirimkan data
logika high ”1”.
org 0h start: clr P3.5 ; P3.5 = ‘0’
Universitas Sumatera Utara
clr P3.6 ; P3.6 = ‘0’ clr P3.7 ; P3.7 = ‘0’
mov P0,10001000b ; Cetak Karakter A sjmp start ; Lompat ke start
2.7
end
Dalam ruangan yang tertutup closed-loop system, suhu adalah salah satu faktor yang berpengaruh terhadap lingkungannya. Pengontrolan terhadap suhu ruangan yang bekerja
secara otomatis dapat menjaga suhu pada kondisi yang optimum tidak terlalu panas atau tidak terlalu dingin dan dapat menghemat penggunaan energi.Sensor yang dipasang
dalam sistem akan mengindera nilai suhu ruangan secara terus-menerus real time. Hasil tersebut sebelum dikirimkan kepada mikrokontroler untuk diolah telah dikonversikan
terlebih dahulu oleh ADC. Suhu hasil penginderaan akan dibandingkan dengan suhu ambang suhu optimum ruangan yang dapat diatur nilainya batas bawah maupun batas
atasnya melalui masukan keypad, maka perbedaan tersebut yang menjadi indikator bekerja atau tidaknya blower sebagai pendingin ruangan.
Blower
2.8
Heater pemanas
Heater merupakan suatu pemanas yang befungsi untuk memanaskan ruangan atau lingkungan di sekitar pemanas tersebut. Pada pemanas tipe ini, penulis menngunakan
hair dryer yang memancarkan panas kesekitar inkubator. Pemanas ini tidak dipakai di dasar inkubator melainkan di belakang dinding inkubator agar panas tersebar keseluruh
ruangan inkubator serta juga di bantu dengan adanya blower diatas inkubator tersebut.
Universitas Sumatera Utara
2.9
Secara fisik, kerja dari sebuah mikrokontroler dapat dijelaskan sebagai siklus pembacaan
instruksi yang tersimpan di dalam memori. Mikrokontroler menentukan alamat dari memori program yang akan dibaca, dan melakukan proses baca data di memori. Data
yang dibaca diinterprestasikan sebagai instruksi. Alamat instruksi disimpan oleh mikrokontroler di register, yang dikenal sebagai program counter. Instruksi ini misalnya
program aritmatika yang melibatkan 2 register. Sarana yang ada dalam program assembly sangat minim, tidak seperti dalam bahasa pemrograman tingkat atas high level language
programming semuanya sudah siap pakai. Penulis program assembly harus menentukan segalanya, menentukan letak program yang ditulisnya dalam memori-program, membuat
data konstan dan tablel konstan dalam memori-program, membuat variabel yang dipakai
kerja dalam memori-data dan lain sebagainya. Bahasa Assembly
2.9.1
Program Sumber Assembly
Program-sumber assembly assembly source program merupakan kumpulan dari baris- baris perintah yang ditulis dengan program penyunting-teks text editor sederhana,
misalnya program EDIT.COM dalam DOS, atau program NOTEPAD dalam Windows atau MIDE-51. Kumpulan baris perintah tersebut biasanya disimpan ke dalam file dengan
nama ekstensi .ASM dan lain sebagainya, tergantung pada program Assembler yang akan dipakai untuk mengolah program-sumber assembly tersebut. Setiap baris-perintah
merupakan sebuah perintah yang utuh, artinya sebuah perintah tidak mungkin dipecah dikenali sebagai label atau sering juga disebut sebagai simbol, bagian kedua dikenali
Universitas Sumatera Utara
sebagai kode operasi, bagian ketiga adalah operand dan bagian terakhir adalah komentar. Antara bagian-bagian tersebut dipisahkan dengan sebuah spasi atau tabulator.
2.9.2
Label dipakai untuk memberi nama pada sebuah baris-perintah, agar bisa mudah
menyebitnya dalam penulisan program. Label bisa ditulis apa saja asalkan diawali dengan huruf, biasa panjangnya tidak lebih dari 16 huruf. Huruf - huruf berikutnya boleh
merupakan angka atau tanda titik dan tanda garis bawah. Kalau sebuah baris perintah tidak memiliki bagian label, maka bagian ini boleh tidak ditulis namun spasi atau
tabulator sebagai pemisah antara label dan bagian berikutnya mutlak tetap harus ditulis. Dalam sebuah program sumber bisa terdapat banyak sekali label, tapi tidak boleh ada
label yang kembar. Sering sebuah baris perintah hanya terdiri dari bagian label saja, baris demikian itu memang tidak bisa dikatakan sebagai baris perintah yang sesungguhnya,
tetapi hanya sekedar memberi nama pada baris bersangkutan. Bagian label sering disebut juga sebagai bagian simbol, hal ini terjadi kalau label tersebut tidak dipakai untuk
menandai bagian program, melainkan dipakai untuk menandai bagian data.
Bagian Label
2.9.3
Bagian Kode Operasi
Kode operasi operation code atau sering disingkat sebagai OpCode merupakan bagian perintah yang harus dikerjakan. Dalam hal ini dikenal dua macam kode operasi, yang
pertama adalah kode operasi untuk mengatur kerja mikroprosesormikrokontroler. Jenis kedua dipakai untuk mengatur kerja program assembler yang sering dinamakan sebagai
assembler directive. Kode operasi ditulis dalam bentuk mnemonic, yakni bentuk
Universitas Sumatera Utara
singkatan-singkatan yang relatif mudah di ingat, misalnya adalah MOV, ACALL, RET dan lain sebagainya. Kode operasi ini ditentukan oleh pabrik pembuat
mikroprosesormikrokontroler, dengan demikian setiap prosesor mempunyai kode operasi yang berlainan. Kode operasi berbentuk
mnemonic tidak
dikenal mikroprosesormikrokontroler, agar program yang ditulis dengan kode mnemonic bisa
dipakai untuk mengendalikan prosesor, program semacam itu diterjemahkan menjadi program yang dibentuk dari kode operasi kode biner, yang dikenali oleh
mikroprosesormikrokontroler. Tugas penerjemahan tersebut dilakukan oleh
programyang dinamakan sebagai Program Assembler. Diluar kode operasi yang ditentukan pabrik pembuat mikroprosesormikrokontroler, ada pula kode operasi untuk
mengatur kerja dari program assembler, misalnya dipakai untuk menentukan letak program dalam memori ORG, dipakai untuk membentuk variabel DS, membentuk
tabel dan data konstan DB, DW dan lain sebagainya.
2.9.4
Operand merupakan pelengkap bagian kode operasi, namun tidak semua kode operasi memerlukan operand, dengan demikian bisa terjadi sebuah baris perintah hanya terdiri
dari kode operasi tanpa operand. Sebaliknya ada pula kode operasi yang perlu lebih dari satu operand, dalam hal ini antara operand satu dengan yang lain dipisahkan dengan
tanda koma ,. Bentuk operand sangat bervariasi, bisa berupa kode-kode yang dipakai untuk menyatakan Register dalam prosesor, bisa berupa nomor memori alamat memori
yang dinyatakan dengan bilangan atau pun nama label, bisa berupa data yang siap di operasikan. Semuanya di sesuaikan dengan keperluan dari kode operasi. Untuk
membedakan operand yang berupa nomor memori atau operand yang berupa data yang
Bagian Operand
Universitas Sumatera Utara
siap di operasikan, dipakai tanda - tanda khusus atau cara penulisan yang berlainan. Di samping itu operand bisa berupa persamaan matematis sederhana atau persamaan
Boolean, dalam hal semacam ini program Assembler akan menghitung nilai dari persamaan-persamaan dalam operand, selanjutnya merubah hasil perhitungan tersebut ke
kode biner yang dimengerti oleh prosesor. Jadi perhitungan di dalam operand dilakukan oleh program assembler bukan oleh prosesor.
2.9.5
Bagian komentar merupakan catatan-catatan penulis program, bagian ini meskipun tidak mutlak diperlukan tapi sangat membantu masalah dokumentasi. Membaca komentar-
komentar pada setiap baris perintah, dengan mudah bisa dimengerti maksud tujuan baris bersangkutan, hal ini sangat membantu orang lain yang membaca program.
Pemisah bagian komentar dengan bagian sebelumnya adalah tanda spasi atau tabulator, meskipun demikian huruf pertama dari komentar sering berupa tanda titik koma ,
merupakan tanda pemisah khusus untuk komentar.
Untuk keperluan dokumentasi yang intensip, sering sebuah baris yang merupakan komentar saja, dalam hal ini huruf pertama dari baris bersangkutan adalah tanda titik
koma ,. AT89S51 memiliki sekumpulan instruksi yang sangat lengkap. Instruksi MOV untuk byte dikelompokkan sesuai dengan mode pengalamatan addressing modes. Mode
pengalamatan menjelaskan bagaimana operand dioperasikan. Berikut penjelasan dari berbagai mode pengalamatan. Bentuk program assembly yang umum ialah sebagai
berikut :
Bagian Komentar
Universitas Sumatera Utara
LabelSimbol Opcode
Operand Komentar
Org 0H
Start: Kiri:
Delay: Del1:
Del2: Mov
Mov Mov
Call RL
DEC CJNE
Sjmp mov
mov djnz
djnz ret
end A, 11111110b
R0, 7 P0, A
Delay A
R0 R0, 0, Kiri
Start R1, 255
R2, 255 R2, del2
R1, del1 ; Isi Akumulator
; Isi R0 dengan 7 ; Copy A ke P0
; Panggil Delay
Tabel 2.7.6 Program Assembly
Isi memori adalah bilangan heksadesimal yang dikenal oleh mikrokontroler, yang merupakan representasi dari bahasa assembly yang telah kita buat. Mnemonic atau
opcode adalah kode yang akan melakukan aksi terhadap operand . Operand adalah data yang diproses oleh opcode. Sebuah opcode bisa membutuhkan 1,2 atau lebih operand,
kadang juga tidak perlu operand. Sedangkan komentar dapat kita berikan dengan menggunakan tanda titik koma ;. Berikut contoh jumlah operand yang berbeda beda
dalam suatu assembly.
CJNE R5,22H, aksi ;dibutuhkan 3 buah operand MOVX DPTR, A ;dibutuhkan 2 buah operand
RL A ;1 buah operand NOP ; tidak memerlukan operand
Program yang telah selesai kita buat dapat disimpan dengan ekstension .asm. Lalu kita dapat membuat program objek dengan ekstension HEX dengan menggunakan
compiler MIDE-51.
Universitas Sumatera Utara
BAB 3
RANCANGAN SISTEM
3.1 Diagram Blok Rangkaian