Mikrokontroler AT89S51 Prototipe Kontrol Temperatur Pada Sebuah Inkubator Yang Dilengkapi Dengan Blower

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