BAB 2
DASAR TEORI
2.1
Umum
LAN (Local Area Network) merupakan rancangan dasar jaringan komputer. Secara tipikal, LAN dapat berupa dua buah komputer atau lebih yang dihubungkan satu sama lain melalui sebuah media (kabel jaringan, komunikasi wireless, dan lain-lain) sehingga setiap node komputer dapat saling melakukan akses. Namun demikian, LAN tidak selalu berupa komputer-komputer yang dihubungkan, tetapi juga terdiri atas sekumpulan perangkat komunikasi seperti komputer-komputer server dan klien, hub, bridge, repeater, printer dan lain-lain.
2.2
Sistem Jaringan Komputer
Ada beberapa jenis jaringan komputer yang dibedakan atas dasar ruang lingkupnya yaitu antara lain : 1. LAN (Local Area Network) adalah sekelompok komputer yang saling dihubungkan di dalam area tertentu. 2. WAN (Wide Area Network) adalah jaringan yang diperluas ke area yang lebih luas misalnya satu blok kota, dimana untuk menghubungkannya sering menggunakan saluran telepon yang telah tersedia.
Universitas Sumatera Utara
5
3. MAN (Metropolitan Area Network) adalah LAN yang diperluas sehingga dapat meliputi kota dengan diameter 50 km. Tidak menggunakan Ethernet atau Tiken Passing tetapi menggunakan DQDB (Distributed Queque Dual Bus). 4. CLAN (Cables/Cordless LAN) adalah kombinasi LAN dan Radio mobil. Frekuensi radio yang digunakan 2,445 GHz s/d 2,475 GHz. (Utomo, 2006)
2.2.1 Local Area Network (LAN) Tanpa Kabel
Inovasi di dalam teknologi telekomunikasi berkembang dengan cepat dan selaras dengan perkembangan karakteristik masyarakat modern yang memiliki mobilitas tinggi, mencari layanan yang fleksibel, serba mudah dan memuaskan dan mengejar efisiensi di segala aspek. Dari itu, teknik telekomunikasi memiliki target untuk masa depan, yaitu mencapai sistem Future Wireless Personal Communication (FWPC). Sistem tersebut menawarkan layanan komunikasi dari siapa saja, kapan saja, di mana saja, melalui satu deretan nomor sambungan yang tetap, dengan delay yang sekecilkecilnya, menggunakan suatu unit yang portabel (kecil, dapat dipindah-pindahkan, murah dan hemat) dan memiliki sistem yang kualitasnya tinggi dengan kerahasiaan yang terjamin.
Teknologi wireless memiliki fleksibelitas, mendukung mobilitas, memiliki teknik frequency reuse, selular dan handover, menawarkan efisiensi dalam waktu (penginstalan) dan biaya (pemeliharaan dan penginstalan ulang di tempat lain), mengurangi pemakaian kabel dan penambahan jumlah pengguna dapat dilakukan
Universitas Sumatera Utara
6
dengan mudah dan cepat. Jaringan wireless dapat digunakan untuk transmisi suara maupun data.
2.2.2 Keuntungan Menggunakan LAN
Adapun keuntungan dari penggunaan jaringan komputer LAN (Local Area Network) ini diantaranya adalah : 1. Pengelolaan File: Berbagi File, Transfer File 2. Berbagi aplikasi : Dapat menggunakan LAN untuk menyediakan software bagi orang lain di jaringan. 3. Berbagi Piranti Peripheral seperti : Printer, CD-Rom, Scanner, Fax/Modem dan sebagainya. 4. Reinteraksi dengan pengguna lain dalam jaringan seperti : a. Melakukan
penjadwalan
group;
masing-masing
memasukkan
jadwalnya pada computer jaringan. Software penjadwalan kelompok mencatat jadwal setiap pengguna dan membuat jadwal dimana setiap orang dapat memenuhi jadwal tersebut. b. Mengirim dan menerima surat elektronik (email), dan komunikasi real time (chat). c. Mengadakan pertemuan elektronik. d. Bermain game jaringan.
Universitas Sumatera Utara
7
2.3 Mikrokontroler AT89S51
Mikrokontroler adalah Central processing Unit (CPU) yang disertai dengan memori serta sarana input/output dan dibuat dalam bentuk Chip. Mikrokontroller merupakan suatu mikroprosesor yang dikombinasikan dengan I/O dan memori (RAM/ROM) dalam bentuk keeping tunggal, sehingga penambahan interface untuk peralatan I/O tidak diperlukan, namun diperlukan sebuah PEROM (Programmable and Erasable Read Only Memory) sebagai tempat penyimpanan program untuk mengatur kerja mikrokontroler tersebut.
Mikrokontroler AT89S51 adalah sebuah mikrokontroler berdaya rendah, CMOS 8-bit yang berkemampuan tinggi dengan memory flash Programmable and Erasable Read Only Memory (PEROM) sebesar 4 Kbyte. Mikrokontroler ini diproduksi dengan standard industri set instruksi dan pin out MCS-51. Flash internal memungkinkan memori program untuk diprogram di dalam sistem atau dengan program yang memori non-volatile konvensional. Dengan mengkombinasikan sebuah 8-bit CPU yang serbaguna dengan flash yang menyatu dengan keping, mikrokontroler AT89S51 adalah sebuah mikrokontroler berkemampuan tinggi dimana menyediakan solusi flaksibelitas tinggi dan biaya yang efektif untuk digabungkan ke banyak aplikasi kontrol.
2.3.1 Arsitektur Mikrokontroler AT89S51
AT89S51 mempunyai rangkaian dalam yang cukup lengkap dengan demikian komponen luar yang diperlukan menjadi sedikit, hanya merupakan pelengkap dari chip tersebut dari beberapa input yaitu : clock osilator, analog komparator positif
Universitas Sumatera Utara
8
input, analog komparator negative input dan rangkaian reset secara eksternal. IC ini didesain dengan ukuran yang kecil, dengan penggunaan daya yang rendah dan unjuk kerja yang tinggi.
Sebuah mikrokontroler dapat bekerja bila dalam mikrokontroler tersebut terdapat sebuah program yang berisi instruksi-instruksi yang akan digunakan untuk menjalankan sistem mikrokontroler tersebut. Pada prinsipnya mikrokontroler dijalankan secara bertahap, jadi pada program itu sendiri terdapat beberapa set instruksi, dan setiap instruksi itu dijalankan secara bertahap atau berurutan. Konfigurasi pin dari IC, Gambar 2.1 seperti berikut :
Gambar 2.1 Konfigurasi pin mikrokontroler AT89S51 (http//www.atmel.com, 18/06/2008)
Universitas Sumatera Utara
9
Dari gambar 2.1, deskripsi pin-pin pada mikrokontroler AT89S51 : 1) VCC (Pin 40) Suplai tegangan 5 Volt. 2) GND (Pin 20) Ground. 3) Port 0 (Pin 39 – Pin 32) Port 0 dapat berfungsi sebagai I/O biasa, low order multiplex address/data ataupun penerima kode byte pada saat flash programming Pada fungsinya sebagai I/O biasa port ini dapat memberikan output sink ke delapan buah TTL input atau dapat diubah sebagai input dengan memberikan logika 1 pada port tersebut. Pada fungsinya sebagai low order multiplex address/data, port ini akan mempunyai internal pull up. Pada saat flash programming diperlukan eksternal pull up, terutama pada saat verifikasi program. 4) Port 1 (Pin 1 – Pin 8) Port 1 berfungsi sebagai I/O biasa, pada kaki ke 6, ke 7 dan ke 8 terdapat Mosi, Miso dan Sck sebagai masukan dari ISP Programmer yang terhubung ke komputer. Tanpa adanya port ini maka mikrokontroler tidak dapat diprogram oleh ISP Programmer. 5) Port 2 (Pin 21 – pin 28) Port 2 berfungsi sebagai I/O biasa atau high order address, pada saat mengakses memori secara 16 bit. Pada saat mengakses memori 8 bit, port ini akan mengeluarkan isi dari P2 special function register. Port ini mempunyai internal pull up dan berfungsi sebagai input dengan memberikan logika 1. Sebagai output, port ini dapat memberikan output sink keempat buah input TTL.
Universitas Sumatera Utara
10
6) Port 3 (Pin 10 – pin 17) Port 3 merupakan 8 bit port I/O dua arah dengan internal pull up. Port 3 juga mempunyai fungsi pin masing-masing, yaitu sebagai berikut : Tabel
2.1
Konfigurasi
Port
3.0
Mikrokontroler
AT89S51
Nama Pin
Fungsi
P3.0 (Pin 10)
RXD (Port Input Serial)
P3.1 (Pin 11)
TXD (Port Output Serial)
P3.2 (Pin 12)
INTO (Interrupt 0 Eksternal)
P3.3 (Pin 13)
INT1 (Interrupt 1 Eksternal)
P3.4 (Pin 14)
T0 (Input Eksternal Timer 0)
P3.5 (Pin 15)
T1 (Input Eksternal Timer 1)
P3.6 (Pin 16)
WR (untuk menulis eksternal data memori)
P3.7 (Pin 17)
RD (untuk membaca eksternal data memori)
(http//www.atmel.com, 18/06/2008)
7) RST (pin 9) Reset akan aktif dengan memberikan input high selama 2 cycle. 8) ALE/PROG (pin 30) Address latch Enable adalah pulsa output untuk me-latch byte bawah dari alamat selama mengakses memori eksternal. Selain itu, sebagai pulsa input program (PROG) selama memprogram Flash. 9) PSEN (pin 29) Program store enable digunakan untuk mengakses memori program eksternal.
Universitas Sumatera Utara
11
10) EA (pin 31) Pada kondisi low, pin ini akan berfungsi sebagai EA yaitu mikrokontroler akan menjalankan program yang ada pada memori eksternal setelah sistem di-reset. Jika kondisi high, pin ini akan berfungsi untuk menjalankan program yang ada pada memori internal. Pada saat flash programming, pin ini akan mendapat tegangan 12 Volt. 11) XTAL1 (pin 19) Input untuk clock internal. 12) XTAL2 (pin 18) Output dari osilator.
Susunan pin pada mikrokontroler AT89S51 dapat dilihat pada gambar di atas. Penjelasan untuk masing-masing pin dari mikrokontroler dapat dilihat pada lampiran: Mikrokontroler AT89S51 memiliki beberapa fasilitas sebagai berikut ; 1. Sebuah Central Processing Unit 8 bit. 2. Osilator internal dan rangkaian pewaktu. 3. RAM internal 128 byte. 4. Flash memori 4 Kbyte. 5. Lima buah jalur interupsi (dua buah interupsi eksternal dan tiga buah interupsi internal). 6. Empat buah programmable port I/O yang masing-masing terdiri dari 8 buah jalur I/O. 7. Sebuah port serial dengan control serial full duplex UART. 8. Kemampuan untuk melaksanakan operasi aritmatika dan operasi logika.
Universitas Sumatera Utara
12
9. Kecepatan dalam melaksanakan instruksi per siklus 1µs pada frekuensi 12 MHz.
2.3.2 Memori data
Struktur memori yang dimiliki oleh AT89S51 terdiri atas : a. RAM Internal, memori sebesar 128 byte yang biasanya digunakan untuk menyimpan data yang bersifat sementara. b. Special Function Register (Register Fungsi Khusus), memori yang berisi register-register yang mempunyai fungsi-fungsi khusus yang disediakan mikrokontroler tersebut, seperti timer, serial dan lain-lain. c. Flash PEROM, memori yang digunakan untuk menyimpan instruksi-instruksi MCS-51.
Arsitektur AT89S51 seperti pada gambar 2.2 mempunyai struktur memori yang terpisah antara RAM Internal dan Flash PEROM-nya. RAM internal dialamati oleh RAM Address Register (Register Alamat RAM) sedangkan flash PEROM yang menyimpan perintah-perintah MCS-51dialamati oleh Program Address Register (Register Alamat Program).
Dengan adanya struktur memori yang terpisah tersebut, walaupun RAM internal dan Flash PEROM, mempunyai alamat awal yang sama, yaitu alamat OOH, namun sacara pisik kedua memori tersebut tidak saling berhubungan.
Universitas Sumatera Utara
13
2.3.3 Central Processing Unit (CPU) CPU terdiri dari atas dua bagian, yaitu unit pengendali serta unit aritmatika dan Logika (ALU). Fungsi utama unit pengendali adalah mengambil, mengkodekan, dan melaksanakan urutan instruksi sebuah program yang tersimpan dalam memori.
2.3.4 Bus Alamat
Bus alamat berfungsi sebagai sejumlah lintasan saluran pengalamatan antara alat dengan sebuah computer. Pengalamatan ini harus ditentukan terlebih dahulu untuk menghindari terjadinya kesalahan pengiriman sebuah instruksi dan terjadinya bentrok antara dua buah alat yang bekerja secara bersamaan.
2.3.5 Bus Data Bus data merupakan sejumlah lintasan saluran keluar masuknya data dalam suatu mikrokontroler. Pada umumnya saluran data yang masuk dengan saluran data yang keluar.
2.3.6 Bus Kontrol
Bus control atau bus pengendali ini berfungsi untuk menyerempakkan opresi mikrokontroller dengan operasi rangkaian luar.
Universitas Sumatera Utara
14
2.3.7 Memori
Didalam sebuah mikrokontroler terdapat suatu memori yang berfungsi untuk menyimpan data atau program. Ada beberapa jenis memori, diantaranya adalah RAM dan ROM.
2.3.8 RAM (Read Acces Memory)
RAM merupakan memori yang dapat dibaca dan ditulis. RAM adalah jenis dari memori utama yang biasanya digunakan untuk menyimpan data atau sering disebut dengan memori data saat program dikerjakan. Data yang data RAM akan hilang bila catu daya dari RAM dimatikan, sehingga RAM hanya dapat digunakan untuk menyimpan data sementara.
2.3.9 ROM (Read Only Memory)
ROM merupakan memori yang hanya dapat dibaca. Data yang disimpan ROM tidak akan hilang meskipun tegangan supply dimatikan. Dari sifatnya itu maka ROM sering dipakai untuk menyimpan program. Ada beberapa jenis ROM
diantaranya yaitu
PEROM, EPROM, dan EEPROM. PEROM dapat deprogram oleh pemakai tetapi hanya dapat ditulis sekali saja.
UV- EPROM merupakan PROM yang dapat diprogram atau ditulis kali dan dipat dihapus dengan sinar ultraviolet. Flash PEROM adalan PROM yang dapat ditulis ulang beberapa kali dan dapat dihapus secara elektrik atau dengan tegangan listrik. UV- EPROM harnya lebih dari flash PEROM, karena itu Flash PEROM lebih
Universitas Sumatera Utara
15
popular dan diminati programmer mikrokontroler. Rangkaian Blok Diagram Mikrokontroler dapat dilihat pada Gambar 2.2
Gambar 2.2 Blok Diagram Mikrokontroller AT89S51 (http//www.atmel.com, 18/06/2008)
2.3.10 Perangkat Lunak Mikrokontreller AT89S51
Perangkat lunak adalah seperangkat instruksi yang disusun menjadi sebuah program untuk memerintah komputer melakukan suatu pekerjaan. Sebuah instruksi selalu berisi kode pengoperasian (Op-Code), kode pengoperasian inilah yang disebut dengan bahasa mesin yang dapat dimengerti oleh mikrokomputer. Instruksi-instruksi yang dijalankan dalam memprogram suatu program yang diisikan pada AT89S51 adalah instruksi bahasa pemograman assembler.
Universitas Sumatera Utara
16
2.3.10.1 Simbol Assembler Khusus
Assembler telah menyediakan beberapa symbol untuk menuinjukkan register disajikan sebagai operand. Table 2.2 berikut ini menunjukkan symbol assembler khusus.
Table 2.2 Simbol Assembler Khusus Symbol Khusus
Arti
A
Akumulator
RO sampai R7
Register serbaguna
DPTR
Data pointer. Register 16 bit Program counter. Register 16 bit
PC
yang
berisi
alamat
intruksi
berikutnya yang akan dijalankan C
Carry flag Akumulator register B. pasangan
AB
register
untuk
perkalian
dan
pembagian. (http//www.atmel.com18/06/2008)
2.3.10.2 Sistem Pengalamatan
a. Pengalamatan Langsung 1) Immediate Data
Proses pengalamatan ini terjadi pada sebuah perintah ketika nilai operand merupakan data yang akan diproses. Biasanya operand tersebut selalu di awali dengan tanda ‘#’ seperti pada contoh berikut: MOV MOV sebagai
A,#05h A,#Data ; Pada bagian atas data telah didefinisikan ;
bilangan
tertentu
(data
EQU
05)
contohnya bilangan 5.
Universitas Sumatera Utara
17
2) Pengalamatan Data
Proses pengalamatan ini terjadi pada sebuah perintah ketika nilai operand merupakan alamat dari data yang akan diisi, dipindahkan atau diproses. Contoh: MOV
P0,A
Port 0 adalah salah satu I/O dari AT89S51 yang mempunyai alamat 80H. Perintah pada contoh di atas selain mengirimkan data Akumulator ke port 0 juga merupakan perintah pemindahan data dari Akumulator ke alamat 80H sehingga dapat juga dituliskan MOV 80H,A.
b. 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 di pindahkan. Pengalamatan jenis ini biasa digunakan untuk melakukan penulisan, pemindahan atau pembacaan beberapa data dalam lokasi memori yang mempunyai urutan beraturan.
AT89S51 mempunyai sebuah register 16 bit (DPTR) dan dua buah register 8 bit (R0 dan R1) yang dapat digunakan untuk melakukan pengalamatan tidak langsung.
Contoh-contoh perintah yang digunakan pengalamatan tidak langsung adalah: MOV @R0,A ; R0 digunakan sebagai MOV A,@R1 ; R1 digunakan sebagai MOV A,@R0 ; R0 digunakan sebagai MOV @DPTR,A ; DPTR digunakan alamat.(Tim Lab. Mikroprosesor, 2007)
register register register sebagai
penyimpan penyimpan penyimpan register
alamat. alamat. alamat. penyimpan
c. Pengalamatan Kode
Universitas Sumatera Utara
18
Pengalamatan kode merupakan pengalamatan ketika operand merupakan alamat dari instruksi jump dan Call (ACALL, JMP,LJMP, dan LCALL). Biasanya operand tersebut akan menunjuk ke suatu alamat yang telah diberi label sebelumnya.
d. Pengalamatan Bit
Proses pengalamatan ketika operand menunjuk ke alamat pada RAM internal ataupun register fungsi khusus yang mempunyai kemampuan pengalamatan secara bit (bit Addressable).
Berdasarkan penulisannya, pengalamatan ini terdiri atas beberapa macam sebagai berikut: 1. Langsung menunjuk 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 lambing Assembler secara standard Contoh : Setb
RXD
Universitas Sumatera Utara
19
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 Setb
Bit P3.0 Penerima
Perintah ini memberikan logika 1 pada bit penerima yang sebelumnya telah didefinisikan sebagai bit P3.
2.3.10.3
Instruksi Aritmatika
Instruksi aritmatika mencakup penambahan (ADD), pengurangan (SUBB), perkalian (MUL), dan pembagian (DIV).
a.
Penambahan (ADD)
Instruksi ini akan menunjukkan suatu data dengan isi akumulator dan hasilnya disimpan di akumulator. Penambahan hanya melibatkan register akumulator. Penambahan ada dua macam, yaitu tanpa carry (ADD) dan penambahan dengan carry (ADDC).
b.
Pengurangan (SUBB)
Instruksi ini akan mengurangkan isi akumulator dengan isi carry flag dan isi data. Hasilnya akan di simpan di akumulator.
Universitas Sumatera Utara
20
c.
Perkalian (MUL)
Instruksi ini akan mengalikan isi akumulator dengan isi register B. Byte bawa hasil perkalian disimpan dalam akumulator. Byte atas disimpan dalam akumulator.
d.
Pembagian (DIV)
Sama hasilnya dengan perkalian, pembagian juga melibatkan register B. Isi register akumulator akan dibagi oleh register B. Akumulator akan berisi hasil bagi, sedangkan register B sisa pembagian.
e.
Penambahan Satu (INC)
Proses increment merupakan proses penambahan satu pada sisi suatu register atau memori. Pemakaian instruksi increment menghemat pemakaian memori karena insruksi INC merupakan instruksi 1 byte (tidak memakai operand).
f.
Pengurangan Satu (DEC) Proses decrement merupakan kebalikan dari increment, yait mengurangkan satu dari isi suatu register atau memori. Pada instruksi di atas. Isi register R0 dikurangi satu dan hasilnya disimpan dalam register tersebut. Sama seperti INC, instruksi DEC juga merupakan instruksi 1 byte. Tim Lab. Mikroprosesor, 2007)
2.3.10.4 Instruksi Percabangan (Branch)
Instruksi ini terbagi dua bagian, yaitu percabangan dengan syarat dan percabangan tanpa syarat.
Universitas Sumatera Utara
21
1.
Percabangan dengan Syarat
a.
CJNE (Compare Jumpe If Not Equal)
Instruksi ini akan membandingkan isi register atau isi memori dengan satu dat. Bila sama, instruksi selanjutnya yang akan dituju. Bila tidak sama, instruksi yang ditunjuk oleh label yang akan dilaksanakan. Sebagai contoh : CJNE R0,#0FFH,1sb
Berarti jika R0 tidak sama dengan 0FFH maka instruksi akan menuju ke alamat label 1 sb.
b.
DJNZ (Decreament and Jump If Not Zero)
Instruksi ini akan mengurangi isi register atau isi memori dengan satu. Bila sudah 0, instruksi selanjutnya yang akan dilaksanakan. Bila belum 0, instruksi dilanjutkan ke label. Sebagai contoh : DJNZ mem_ultra,ultras
Berarti jika mem_ultra tidak sama demgan nol setelah dikurangi satu, pelaksanaan instruksi harus melompat ke label ultras.
c.
JNB (Jump If Bit Is Not Set)
Instruksi ini menguji satu alamat bit. Bila sisinya 0, eksekusi akan menuju alamat kode. Jika isinya 1, instruksi selanjutnya yang akan dilaksanakan. Sebagai contoh : JNB TI,$
Instruksi ini menguji apakah data sudah dikirim, jika belum periksa kembali. Dimana $ artinya lompat ke nilai program counter pada baris itu sendiri.
Universitas Sumatera Utara
22
2.
Percabangan Tanpa Syarat
Instruksi ini meliputi SJMP (Short Jump) dan LJMP (Long Jump). Sebagai contoh: SJMP selesai
Eksekusi program akan menyatakan selesai tanpa syarat apapun.
2.3.10.5
Instruksi Transfer Data
Instruksi transfer data terbagi menjadi dua kelas operasi sebagai berikut : a. Transfer data utama (General Purpose Transfer), yaitu : MOV,PUSH, dan POP. b.Transfer spesifik akumulator (Accumulator Specifik Transfer), yaitu : XCH, XCHD dan MOV C.
Instruksi transfer data adalah instruksi pemindahan atau pertukaran data antara operand sumber dengan operand tujuan. Operandnya dapat berupa register, memori atau lokasi suatu memori.
2.3.10.6
Instruksi Aritmatika (Instruksi Perhitungan)
Operasi dasar aritmatik seperti seperti penjumlahan, pengurangan, perkalian, dan pembagian, dimiliki oleh AT89S51 dengan mnemonic : INC, ADD, ADDC, SUBB, DEC, MUL, dan DIV.
Universitas Sumatera Utara
23
2.3.10.7
Instruksi Logika
Mikrokontroler AT89S51 dapat melakukan operasi logika bit maupun operasi logika byte. Operasi logika tersebut dibagi atas dua bagian yaitu : 1. Operasi logika operand tunggal, yaitu : CLR, SETB, CPL, RLC, RR, RRC,SWAB. 2. Operasi logika dua operand, yakni operasi AND (kode operasi ANL), operasi OR (kode operasi ORL), operasi Exclusive-OR (kode operasi XRL). Data yang bisa dipakai dalam operasi ini bisa berupa data yang berada dalam akumulator atau data yang berada dalam memori data, hal ini sedikit berbeda dengan operasi aritmatik yang harus melibatkan akumulator secara aktif.
2.3.10.8
Instruksi Transfer Kendali
Instruksi transfer kendali (control transfer) terdiri dari tiga kelas operasi yaitu: 1.
Lompatan tidak bersyarat (Unconditional jump), seperti : ACALL, AJMP, LJMP, SJMP, JMP @A+DPTR.
2.
Lompatan bersyarat (Conditional jump), seperti : JZ, JNZ, JB, CJNE, dan DJNZ.
3.
Interupsi seperti RET1 dan RET.
2.4 Special Function Register (SFR)
Special function register (SFR) adalah register-register yang mempunyai fungsi khusus, diantaranya ada yang digunakan untuk mengatur input output data dari mikrokontroler.
Universitas Sumatera Utara
24
Berikut ini adalah penjelasan secara singkat SFR-SFR beserta fungsinya : 2.4.1 Accumulator Accumulator merupakan register yang berfungsi untuk menyimpan data sementara. Register Accumulator ini sering digunakan dalam proses aritmatika, logika, pengambilan data dan pengiriman data.
2.4.2 Register B Register B dapat digunakan untuk proses aritmatika dan dapat juga difungsikan sebagai register biasa.
2.4.3 Register Port Pada register ini terdapat 4 buah yaitu register port 0, port 1, port 2 dan port 3. Register port ini digunakan sebagai sarana input/output untuk menyimpan data dari atau ke port untuk masing-masing p0, P1, P2 dan P3.
2.4.4 Register Timer Mikrokontroler AT89S51 mempunyai dua buah 16 bit timer, yaitu Timer 0 dan Timer 1. Timer 0 dibentuk oleh register TH0 dan TL0.
2.4.5. Register Control Ada beberapa register yang berisi bit-bit kontrol dan status untuk system interupsi, pencacah atau peaktu, dan port serial, yaitu register-register IP (Interrupt Priority), IE (Interrupt Enable), TMOD (Timer Mode), TCON (Timer Control), SCON (Serial Control). PCON (Power Control). Tim Lab. Mikroprosesor, 2007)
Universitas Sumatera Utara
25
2.5
Flash PEROM
Mikrokontroler AT89S51 mempunyai 4 Kbyte flash Perom (Programable and Erasable Read Only), yaitu ROM yang dapat ditulis ulang atau dihapus menggunakan perangkat programmer. Flash PEROM dalam AT89S51 menggunakan Atmel’s High density Non Volatile Technology yang mempunyai kemampuan untuk ditulis ulang hingga 1000 kali dan berisikan perintah standart MCS-51.
Program yang ada pada Flash PEROM akan dijalankan jika pada saat system direset, pin EA/VP berlogika satu sehingga mikrokontroler aktif berdasarkan program yang ada pada Flash PEROM-nya. Namun,jika pin EA/Vp berlogika nol, mikrokontroler aktif berdasarkan program yang ada pada memori eksternal. Pada kondisi tertentu dapat juga terjadi untuk memanggil program yang terletak pada memori internal walaupun saat pertama kali direset, mikrokintroler memanggil program yang ada dieksternal memory ataupun sebaliknya. Hal ini dapat dilakukan dengan menggunakan instruksi Long Call (LCAAL/address) atau Long Jump (LJMP/address).
Untuk keamanan program yang ada dalam Flash PEROM, AT89S51 mempinyai fasilitas Lock Bit Protection yang terdiri atas : a.
Lock Bit 1, instruksi MOV C yang dieksekusi dari memori eksternal untuk membaca isi Flash PEROM tidak dapat dilakukan.
b. Lock Bit 2, sama dengan Lock Bit 1, tetapi isi dari Flash PEROM tidak dapat diverivy oleh 89S51 Programmer. c. Lock Bit 3, sama dengan Lock Bit 2, tetapi akses ke memori eksternal tidak dapat dilakukan.
Universitas Sumatera Utara
26
2.6
Timer/Counter
Mikrokontroler AT89S51 mempunyai dua buah Timer, yaitu timer 0 dan Timer 1 yang keduanya dapat berfungsi sebagai counter ataupun sebagai timer. Perbedaannya terletak pada sumber clock dan aplikasinya. Jika timer mempunyai sumber clock dengan frekuensi tertentu yang suda pasti sedangkan counter mendapat sumber clock dari pulsa clock yang akan dihitung jumlahnya. Aplikasi dari counter atau penghitung biasa digunakan untuk aplikasi mengitung jumlah kejadian yang terjadi dalam priode tertentu sedangkan timer atau pewaktu biasa digunakan untuk aplikasi menghitung lamanya suatu kejadian yang terjadi.
Kedua Timer pada AT89S51 masing-masingmempunyai 16 bit counter yang mampu diatur keaktifan maupun kode masing-masing operasinya, direset dan diset dengan harga tertentu. Untuk mengatur Timer ini AT89S51 mempunyai enem buah Special Function Register yang telah dijelaskan pada halaman sebelumnya. Timer AT89S51 memiliki tiga buah register timer yaitu : 1. Timer Mode Register (TMOD) di alamat 89H 2. THx dan TLx 3. Timer Control Register (TCON) di alamat 88H
Universitas Sumatera Utara
27
2.6.1 Timer Mode Register (TMOD) Pola bit register TMOD, tabel 2.3. Tabel 2.3 Register TMOD Timer 1 Gate C/T (1) M1 (1) (1) (Andi Nalwan, P, 2003)
Timer 0 M0 (1)
Gate (0)
C/T (0)
MI (0)
M0 (0)
Tidak diamati secara bit Register TMOD berupa 8 bit register yang terletak pada alamat 89H dengan fungsi setiap bitnya adalah sebagai berikut : Gate :
Timer akan berjalan jika bit ini diset dan INT0 (untuk Timer 0) atau INT1 (untuk Timer 1) berkondisi high.
C/T :
1 = Counter 0 = Timer
M1 & M0: untuk memilih modetimer.
2.6.2 THx dan TLx
Dari gambar 2.2, Mikrokontroler AT89S51 mempunyai dua buah timer, yaitu Timer 0 dan Timer 1 dan setipa timer terdiri atas 16 bit timer yang masing-masing tersimpan dalam dua buah register yaitu THx untuk Timer High Byte dan TLx untuk Timer Low Bit. TH0 : Timer 0 High Byte terletak pada alamat 8AH TH0 : Timer 0 Low Byte terletak pada alamat 8BH TH1 : Timer 1 High Byte terletak pada alamat 8CH TL1 : Timer 1 Low Byte terletak pada alamat 8DH
Universitas Sumatera Utara
28
2.6.3 Timer Control Register (TCON) Register ini hanya mempunyai 4 bit saja, yaitu TCON 4, TCON 5, TCON 6 dan TCON 7 saja yang mempunyai fungsi berhubungan dengan timer. Pola register TCON, tabel 2.4.
Tabel 2.4 Register TCON
Register Timer TF1
TR1
TF0
Register Interupsi TR0
IE1
IT1
IE0
IT0
(Andi Nalwan, P, 2003) Dapat diakses secara bit
Register ini bersifat bit addressable sehingga bit TF1 dapat disebut TCON 7, TR1 sebagai TCON 6 dan seterusnya hingga Bit IT0 sebagai TCON 0. TCON. 7 atau TF1 :
Timer 1 Overlow flag yang akan diset jika timer overlow. Bit ini dapat di-clear oleh software atau oleh hardware pada saat program menuju ke alamat yang ditunjuk oleh interrupt vector.
TCON. 6 atau TR1 : 1 = Timer 1 aktif 0 = Timer 1 nonaktif TCON. 5 atau TF0 :
Timer 0 Overlow flag. Diset oleh perangkat keras.
TCON. 4 atau TR0 : Bit untuk menjalankan Timer 0. Diset/clear oleh software untuk membuat timer 0 aktif atau nonaktif. TCON.3 atau IE1 :
External interrupt 1 edge flag.
TCON.2 atau IT1 :
Interrupt 1 type control byte. Set/clear oleh software untuk
Universitas Sumatera Utara
29
mengimplementasikan sisi turun/level rendah trigger dari interupsi eksternal. TCON. 1 atau IE0 :
Exsternal Interrupt 0 edge flag.
TCON. 0 atau IT0 :
Interrupt 0 type control bit.
2.7 Interupsi
Interupsi adalah suatu kejadian atau peristiwa yang menyebabkan mikrokontroler berhenti sejenak untuk melayani instruksi tersebut.
Pada sisitem mikrokontroler yang sedang menjalankan programnya, saat terjadi interupsi, program akan berhenti sesaat, melayani interupsi tersebut dengan menjalankan program yang berada pada alamat yang ditunjuk oleh vector dari interupsi yang terjadi sehingga selesai dan kembali meneruskan program yang terhenti oleh inerpsi tadi.
2.8 Kabel UTP (Kabel LAN)
2.8.1
Kabel UTP
Kabel UTP (Unshielded Twisted Pair) atau dikenal juga dengan kabel jenis 10BaseT/100BaseTx. Kabel ini dikoneksikan dengan menggunakan konektor RJ-45 (register jack-45) dan dipasangkan pada LAN card yang ada di computer. Ada jenis lain yang termasuk pada kabel jenis 10BaseT yaitu STP (Shielded Twisted Pair) biasanya digunakan dalam daerah yang memiliki interferensi elektromagnetik kuat
Universitas Sumatera Utara
30
karena kabel jenis ini memiliki pelindung (umumnya berwarna abu-abu) sehingga dapat menahan adanya interferensi. Karena hal tersebut, maka harga kabel STP menjadi lebih mahal disbanding dengan harga kabel UTP. Berikut ini adalah pasangan kabel yang terdapat di dalam kabel UTP: Table 2.5 Pasangan kabel UTP Pasangan pertama Pasangan kedua Pasangan ketiga Pasangan keempat
Putih/biru Biru Putih/orange Orange Putih/hijau Hijau Putih/cokelat Coklat
(Utomo, E.P, 2006) Berdasarkan EIA/TIA-568B RJ-45 wiring schema (standar pengkabelan internasional), ada dua konfigurasi yang digunakan dalam jaringan yang menggunakan kabel UTP dan RJ-45 yaitu sebagai barikut: a. EIA/TIA-568A, urutannya : putih-hijau, hijau, putih-orange, biru, putih biru, orange, putih-coklat,coklat. b. EIA/TIA-568B, urutannya : putih-orange, orange, putih-hijau, biru, putih-biru, hijau, putih-cokelat, coklat.
3.8.2 Kabel Straight
Banyaknya computer yang ada pada suatu jaringan, membutuhkan alat Hub untuk mengatur distribusi data di dalamnya. Hubungan kabel straight digunakan untuk menghubungkan kabel dari klien ke hub atau router. Susunan pin-pin dalam hubungan straight adalah: (seperti aturan EIA/TIA RJ-45 568B) putih-orange, putih-hijau, biru, putih-biru, hijau, putih-coklat, coklat.
Universitas Sumatera Utara
31
Ringkasnya seperti table berikut: Table 2.6 Susunan Kabel Straight Konektor satu Pin 1 Orange-putih Pin 2 Orange Pin 3 Putih-hijau Pin 4 Biru Pin 5 Putih-biru Pin 6 Hijau Pin 7 Putih-coklat Pin 8 Cokelat (Utomo, E.P, 2006)
Konektor dua Orange-putih Orange Putih-hijau Biru Putih-biru Hijau Putih-coklat Cokelat
Pada prosesnya pin 4, 5, 7 dan 8 tidak digunakan. Proses transmisi data pada kabel twisted pair kategori 3 atau 5 adalah sebagai berikut:
Table 2.7 Transmisi Data Kabel Straight Pin
Konektor 1
Konektor 2
1
Transmit +
Receive +
2
Transmit -
Receive -
3
Receive +
Transmit +
6
Receive -
Transmit -
(Utomo, E.P, 2006)
2.8.3 Kabel Crossover
Jika kita ingin menghubungkan dua PC, maka kita tidak perlu menggunakan Hub karena hal ini tidak efisien (menambah anggaran biaya) dalam pembangunan jaringan. Dengan memakai kabel UTP saja, kita bisa menghubungkan dua computer tersebut. Hal itu yang disebut dengan hubungan crossover. Kita juga bisa memakai hubungan crossover untuk menyambungkan hub dengan hub. Ada beberapa yang harus diperhatikan dalam membuat sambungan kabel crossover. Seperti table 2.8 berikut :
Universitas Sumatera Utara
32
Table 2.8 Susunan Kabel Crossover Konektor satu Pin 1 Orange-putih Pin 2 Orange Pin 3 Pituh-hijau Pin 4 Biru Pin 5 Putih-biru Pin 6 Hijau Pin 7 Putih-cokelat Pin 8 Cokelat (Utomo, E.P, 2006)
Konektor dua Putih-hijau Hijau Putih-orange Biru Putih-biru Orange Putih-cokelat Cokelat
Proses transmisi data yang terjadi pada crossover cable adalah seperti table berikut ini: Table 2.9 Transmisi Data Kabel Crossover Konektor 1 Pin 1 : Receive + Pin 2 : Receive Pin 3 : Transmit + Pin 6 : Transmit (Utomo, E.P, 2006)
Konektor 2 Pin 3 : Transmit + Pin 6 : Transmit Pin 1 : Receive + Pin 2 : Receive -
Karakter LCD 16 x 2
Modul LCD Character dapat dengan mudah dihubungkan dengan mikrokontroller seperti AT89S51. LCD yang digunakan mempunyai lebar display 2 baris 16 kolom atau biasa disebut sebagai LCD Character 2x16, dengan 16 pin konektor. Gambar 2.3 adalah bentuk gambar asli dari LCD karakter 16x2 dan rangakaian interface ke LCD Karakter 16x2, gambar 2.4.
Universitas Sumatera Utara
33
Gambar 2.3. Modul LCD Karakter 2x16
Gambar 2.4. Rangkaian interface ke LCD Karakter 2x16 Dari gambar 2,4, fungsi dari pin, table 2.10. Tabel 2.10 Pin dan Fungsi PIN 1
Name VSS
Function Ground voltage
2
VCC
+5V
3
VEE
Contrast voltage
4
RS
5
R/W
6
E
Register Select 0 = Instruction Register 1 = Data Register
Read/ Write, to choose write or read mode 0 = write mode 1 = read mode Enable
Universitas Sumatera Utara
34
0 = start to lacht data to LCD character 1= disable 7
DB0
LSB
8
DB1
-
9
DB2
-
10
DB3
-
11
DB4
-
12
DB5
-
13
DB6
-
14
DB7
MSB
15
BPL
Back Plane Light
16
GND
Ground voltage
( http//www.Tutorial Microcontroller MCS-51 ATMEL ISP.htm, 08/07/2008)
Display karakter pada
LCD diatur
oleh
pin EN, RS dan RW:
Jalur EN dinamakan Enable. Jalur ini digunakan untuk memberitahu LCD bahwa anda sedang mengirimkan sebuah data. Untuk mengirimkan data ke LCD, maka melalui program EN harus dibuat logika low “0” dan set pada dua jalur kontrol yang lain RS dan RW. Ketika dua jalur yang lain telah siap, set EN dengan logika “1” dan tunggu untuk sejumlah waktu tertentu dan berikutnya set EN ke logika low “0” lagi.
Jalur RS adalah jalur Register Select. Ketika RS berlogika low “0”, data akan dianggap sebagi sebua perintah atau instruksi khusus ( seperti clear screen, posisi kursor dll ). Ketika RS berlogika high “1”, data yang dikirim adalah data text yang akan ditampilkan pada display LCD. Sebagai contoh, untuk menampilkan huruf “T” pada layar LCD maka RS harus diset logika high “1”.
Jalur RW adalah jalur kontrol Read/ Write. Ketika RW berlogika low (0), maka informasi pada bus data akan dituliskan pada layar LCD. Ketika RW berlogika
Universitas Sumatera Utara
35
high ”1”, maka program akan melakukan pembacaan memori dari LCD. Sedangkan pada aplikasi umum pin RW selalu diberi logika low ”0”.
Pada akhirnya, bus data terdiri dari 4 atau 8 jalur ( bergantung pada mode operasi yang dipilih oleh user ). Pada kasus bus data 8 bit, jalur diacukan sebagai DB0 s/d DB7.
Beberapa perintah dasar yang harus dipahami adalah inisialisasi LCD Character.
Function Set Mengatur interface lebar data, jumlah dari baris dan ukuran font karakter
RS 0
R/W 0
DB7 0
DB6 0
DB5 1
DB4 DL
DB3 N
DB2 F
DB1 X
DB0 X
DB1 I/D
DB0 S
CATATAN: X : Don’t care DL: Mengatur lebar data DL=1, Lebar data interface 8 bit ( DB7 s/d DB0) DL=0, Lebar data interface 4 bit ( DB7 s/d DB4) Ketika menggunakan lebar data 4 bit, data harus dikirimkan dua kali N: Pengaktivan baris N=0, 1 baris N=1, 2 baris F: Penentuan ukuran font karakter F=0, 5x7 F=1, 5x8 Entry Mode Set Mengatur increment/ decrement dan mode geser
RS 0
R/W 0
DB7 0
DB6 0
DB5 0
DB4 0
DB3 0
DB2 1
Catatan: I/D: Increment/ decrement dari alamat DDRAM dengan 1 ketika kode karakter dituliskan ke DDRAM.
Universitas Sumatera Utara
36
I/D = “0”, decrement I/D= “1”, increment S: Geser keseluruhan display kekanan dan kekiri S=1, geser kekiri atau kekanan bergantung pada I/D S=0, display tidak bergeser Display On/ Off Cursor Mengatur status display ON atau OFF, cursor ON/ OFF dan fungsi Cursor Blink
RS 0
R/W 0
DB7 0
DB6 0
DB5 0
DB4 0
DB3 1
DB2 D
DB1 C
DB0 B
D : Mengatur display D = 1, Display is ON D = 0, Display is OFF Pada kasus ini data display masih tetap berada di DDRAM, dan dapat ditampilkan kembali secara langsung dengan mengatur D=1.
C : Menampilkan kursor C = 1, kursor ditampilkan C = 0, kursor tidak ditampilkan B : Karakter ditunjukkan dengan kursor yang berkedip B=1, kursor blink
Clear Display Perintah ini hapus layar
RS
R/W
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
0
0
0
0
0
0
0
0
0
1
Geser Kursor dan Display Geser posisi kursor atau display ke kanan atau kekiri tanpa menulis atau baca data display. Fungsi ini digunakan untuk koreksi atau pencarian display
RS
R/W
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
Universitas Sumatera Utara
37
0
0
0
0
0
1
S/C
R/L
X
X
Catatan : x = Dont care S/C 0
R/L 0
Note Shift cursor position to the left
0
1
Shift cursor position to the right
1
0
Shift the entire display to the left
1
1
Shift the entire display to the right
POSISI KURSOR Modul LCD terdiri dari sejumlah memory yang digunakan untuk display. Semua teks yang kita tuliskan ke modul LCD adalah disimpan didalam memory ini, dan modul LCD secara berturutan membaca memory ini untuk menampilkan teks ke modul LCD tersebut, gambar 2.5.
Gambar 2.5 Modul LCD( http//www.Tutorial Microcontroller MCS-51 ATMEL ISP.htm, 08/07/2008)
Dari gambar 2.5 terlihat peta memori dimana, daerah yang berwarna biru ( 00 s/d 0F dan 40 s/d 4F ) adalah display yang tampak. Sebagaimana yang anda lihat, jumlahnya sebanyak 16 karakter per baris dengan dua baris. Angka pada setiap kotak adalah alamat memori yang bersesuaian dengan posisi dari layar. Demikianlah karakter pertama di sudut kiri atas adalah menempati alamat 00h. Posisi karakter berikutnya adalah alamat 01h dan seterusnya.
Akan tetapi, karakter pertama dari baris 2 sebagaimana yang ditunjukkan pada peta memori adalah pada alamat 40h. Dimikianlah kita perlu untuk mengirim sebuah
Universitas Sumatera Utara
38
perintah ke LCD untuk mengatur letak posisi kursor pada baris dan kolom tertentu. Instruksi Set Posisi Kursor adalah 80h. Untuk ini kita perlu menambahkan alamat lokasi dimana kita berharap untuk menempatkan kursor.Sebagai contoh, kita ingin menampilkan kata ”World” pada baris ke dua pada posisi kolom ke sepuluh. Sesuai peta memori, posisi karakter pada kolom 11 dari baris ke dua, mempunyai alamat 4Ah, sehingga sebelum kita tulis kata ”World” pada LCD, kita harus mengirim instruksi set posisi kursor, dan perintah untuk instruksi ini adalah 80h ditambah dengan alamat 80h+4Ah =0Cah. Sehingga dengan mengirim perintah Cah ke LCD, akan menempatkan kursor pada baris kedua dan kolom ke 11 dari DDRAM.
Set Alamat Memori DDRAM RS
R/W
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
0
0
1
A
A
A
A
A
A
A
Catatan: A:Alamat RAM yang akan dipilih Sehingga alamat RAM LCD adalah 000 0000 S/D 111 1111 b atau 00 s/d 7Fh
( http//www.Tutorial Microcontroller MCS-51 ATMEL ISP.htm, 08/07/2008)
Universitas Sumatera Utara