BAB 2 LANDASAN TEORI
2.1.Hardware
2.1.1 Mikrokontroler AT89S51
Mikrokontroller,
sebagai
suatu
terobosan
teknologi
mikrokontroler
dan
microkomputer, hadir memenuhi kebutuhan pasar (market need) dan teknologi baru. Sebagai teknologi baru, yaitu teknologi semi konduktor dengan kandungan transistor yang lebih banyak namun hanya membutuhkan ruang kecil serta dapat diproduksi secara massal (dalam jumlah banyak) sehingga harga menjadi lebih murah (dibandingkan microprocessor). Sebagai kebutuhan pasar, mikrokontroler hadir untuk memenuhi selera industri dan para konsumen akan kebutuhan dan keinginan alat-alat bantu dan mainan yang lebih canggih serta dalam bidang pendidikan.
Tidak seperti sistem komputer, yang mampu menangani berbagai macam program aplikasi (misalnya pengolah kata, pengolah angka, dan lain sebagainya), Microcontroller hanya bisa digunakan untuk satu aplikasi tertentu saja. Perbedaan lainnya terletak pada perbandingan RAM dan ROM-nya. Pada sistem komputer perbandingan RAM dan ROMnya besar, artinya program-program pengguna disimpan dalam ruang RAM yang relatif besar, sedangkan rutin-rutin antar muka perangkat keras disimpan dalam ruang ROM yang kecil. Sedangkan Pada mikrokontroler, perbandingan ROM dan RAM-nya yang besar artinya program control disimpan dalam ROM yang ukurannya relatif lebih besar, sedangkan RAM digunakan sebagai tempat penyimpanan sederhana sementara, termasuk register-register yang digunakan pada Microcontroller yang bersangkutan.
Microcontroller AT89S51 merupakan salah satu keluarga dari MCS-51 keluaran Atmel. Jenis Microcontroller ini pada prinsipnya dapat digunakan untuk mengolah data per bit ataupun data 8 bit secara bersamaan. Pada prinsipnya program
Universitas Sumatera Utara
pada Microcontroller dijalankan bertahap, jadi pada program itu sendiri terdapat beberapa set instruksi dan tiap instruksi itu dijalankan secara bertahap atau berurutan. Beberapa fasilitas yang dimiliki oleh microcontroller AT89S51 adalah sebagai berikut : Sebuah Central Processing Unit 8 bit Osilatc : internal dan rangkaian pewaktu RAM internal 128 byte Flash memori 4 Kbyte Lima buah jalur interupsi (dua buah interupsi eksternal dan tiga buah interupsi internal) Empat buah programable port I/O yang masing-masing terdiri dari delapan buah jalur I/O Sebuah port serial dengan kontrol serial full duplex UART Kemampuan untuk melaksanakan operasi aritmatika dan oper Kecepatan dalam melaksanakan instruksi per siklus 1 mikrodetik pada frekuensi 12 MHz. 2.1.2 Kontruksi AT89S51
Microcontroller AT89S51 hanya memerlukan tambahan 3 kapasitor, 1 resistor dan 1 kristal serta catu daya 5 volt. Kapasitor 10 micro-fard dan resistor 10 kilo Ohm dipakai untuk membentuk rangkaian riset. Dengan adanya rangkaian riset ini AT89S51 otomatis diriset begitu rangkaian menerima catu daya. Kristal dengan frekuensi maksimum 24MHz dan kapasitor 30 mikro-farad dipakai untuk melengkapi rangkaian oscilator pembentuk clock yang menentukan kecepatan kerja Microcontroller.
Memori merupakan bagian yang
sangat penting
pada Microcontroller.
Microkontroller memiliki dua macam memori yang sifatnya berbeda.
Universitas Sumatera Utara
Read Only Memory (ROM) yang isinya tidak berubah meskipun IC kehilangan catu daya. Sesuai dengan keperluannya, dalam susunan MCS-51 memori penyimpanan program ini dinamakan sebagai memori program.
Random Access Memory (RAM) isinya akan sirna begitu IC kehilangan catu daya, dipakai untuk menyimpan data pada saat program bekerja. RAM yang dipakai untuk menyimpan data ini disebut sebagai memori data.
Ada berbagai jenis ROM. Untuk Microcontroller dengan program yang sudah baku dan diproduksi secara massal, program diisikan kedalam ROM pada saat IC Microcontroller dicetak dipabrik IC. Untuk keperluan tertentu Microcontroller menggunakan ROM yang dapat diisi ulang atau Programble-Eraseable ROM yang disingkat menjadi PROM (PEROM). Dulu banyak UV-EPROM (Ultra Violet Eraseable Programble ROM) yang kemudian dinilai mahal dan ditinggalkan setelah ada flash PEROM yang harganya jauh lebih murah.
Jenis memori yang dipakai untuk memori program AT89S51 adalah flash PEROM, program untuk mengendalikan Microcontroller diisikan ke memori itu lewat bantuan alat yang dinamakan sebagai AT89C4051 flash PEROM Programmer.Memori data yang disediakan dalam chip AT*(S51 sebesar 128 kilo byte meskipun hanya kecil saja tapi untuk banyak keperluan memori kapasitas itu sudah cukup.
AT89S51 dilengkapi UART (Universal Asyncronous Receiver/Transmiter) yang biasa dipakai untuk komunikasi data secara seri. Jalur untuk komunikasi data seri (RXD dan TXD) diletakkan berhimpitan dengan P1.0 dan P1.1. pada kaki nomor 2 dan 3, sehingga kalau sarana input/output bekerja menurut fungsi waktu. Clock penggerak untaian pencacah ini bisa berasal dari oscillator kristal atau clock yang diumpan dari luar lewat T0 dan T1/T0 dan T1 berhimpitan dengan P3.4 dan P3.5, sehingga P3.4 dan P3.5 tidak bisa dipakai untuk jalur input/output paralel kalau T0 dan T1 dipakai.
Universitas Sumatera Utara
AT89S51 mempunyai enam sumber pembangkit interupsi, dua diantaranya adalah sinyal interupsi yang diumpankan ke kaki INT0 dan INT1. Kedua kaki ini berhimpitan dangan P3.2 dan P3.3 sehingga tidak bisa dipakai sebagai jalur input/output paralel kalau INT0 dan INT1 dipakai untuk menerima sinyal interupsi.Port1 dan 2, UART, Timer 0, Timer 1 dan sarana lainnya merupakan yang secara fisik merupakan RAM khusus, yang ditempatkan di Special Function Register (SFR).
2.1.3. Pin-Pin pada Microcontroller AT89S51
Deskripsi pin-pin pada Microcontroller AT89S51 :
Gambar 2.1. IC Mikrokontroler AT89S51
VCC (Pin 40) Suplai tegangan GND (Pin 20) Ground
Universitas Sumatera Utara
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 progamming Pada fungsi 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 fungsi sebagai low order multiplex address/data, port ini akan mempunyai internal pull up.terutama pada saat verifikasi program. 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. Port 3 (Pin 10 – pin 17) Port 3 merupakan 8 bit port I/O dua arah dengan internal pullup. Port 3 juga mempunyai fungsi pin masing-masing, yaitu sebagai berikut :
Tabel 2.1. Pin-Pin pada Microcontroller 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 (menulis untuk eksternal data memori)
P3.7 (pin 17)
RD (untuk membaca eksternal data memori)
RST (pin 9) Reset akan aktif dengan memberikan input high selama 2 cycle. ALE/PROG (pin 30)
Universitas Sumatera Utara
Address latch Enable adalah pulsa output untuk me-latch byte bawah dari alamat selama mengakses memori eksternal. Selain itu, sebagai pulsa input progam (PROG) selama memprogam Flash. PSEN (pin 29) Progam store enable digunakan untuk mengakses memori progam eksternal. EA (pin 31) Pada kondisi low, pin ini akan berfungsi sebagai EA yaitu mikrokontroler akan menjalankan progam yang ada pada memori eksternal setelah sistem direset. Jika kondisi high, pin ini akan berfungsi untuk menjalankan progam yang ada pada memori internal. Pada saat flash progamming, pin ini akan mendapat tegangan 12 Volt. XTAL1 (pin 19) Input untuk clock internal. XTAL2 (pin 18) Output dari osilator . 2.1.4. Relay
Relay adalah suatu rangkaian switch magnetik yang bekerja bila mendapat catu dan suatu rangkaian trigger. Relay memiliki tegangan dan arus nominal yang harus dipenuhi output rangkaian pendriver atau pengemudinya. Arus yang digunakan pada rangkaian adalah arus DC. Konstruksi dalam suatu relay terdiri dari lilitan kawat (coil) yang dililitkan pada inti besi lunak. Jika lilitan kawat mendapatkan aliran arus, inti besi lunak kontak menghasilkan medan magnet dan menarik switch kontak. Switch kontak mengalami gaya listrik magnet sehingga berpidah posisi ke kutub lain atau terlepas dari kutub asalnya. Keadaan ini akan bertahan selama arus mengalir pada kumparan relay. Dan relay akan kembali keposisi semula yaitu normaly ON atau Normaly OFF, bila tidak ada lagi arus yang mengalir padanya, posisi normal relay tergantung pada jenis relay yang digunakan. Dan pemakaian jenis relay tergantung pada kadaan yang diinginkan dalam suatu rangkaian.
Universitas Sumatera Utara
Menurut kerjanya relay dapat dibedakan menjadi : a. Normaly Open (NO), saklar akan tertutup bila dialiri arus b. Normaly Close (OFF), saklar akan tertutup bila dialiri arus c. Change Over (CO), relay ini mempunyai saklar tunggal yang nomally tertutup yang lama, bila kumparan 1 dialiri arus maka saklar akan terhubung ke terminal A, sebaliknya bila kumparan 2 dialiri arus maka saklar akan terhubung keterminal B. Analogi rangkaian relay yang digunakan pada tugas akhir ini adalah saat basis transistor ini dialiri arus, maka transistor dalam keadaan tertutup yang dapat menghubungkan arus dari kolektor ke emiter yang mengakibatkan relay terhubung. Sedangkan fungsi dioda disini adalah untuk melindungi transistor dari tegangan induksi berlebih, dimana tegangan ini dapat merusak transistor.Jika transistor pada basis tidak ada arus maju, transistor terbuka sehingga arus tidak mengalir dari kolektor ke emiter, relay tidak bekerja karena tidak ada arus yang mengalir pada gulungan kawat.
Bentuk relay yang digunakan ada bentuk relay dengan rangkaian driver dapat dilihat pada gambar2.1.4. Vcc Dioda
VB
a. Simbol
Tr
b. Relay dengan rangkaian driver
Gambar 2.2. Simbol Relay dan Rangkaian Driver 2.1.5. RS 232
Universitas Sumatera Utara
Standar
RS232
ditetapkan
oleh
Electronic
Industry
Association
and
Telecomunication Industry Association pada tahun 1962. Nama lengkapnya adalah EIA/TIA-232 Interface Between Data Terminal Equipment and Data Circuit-Terminating Equipment Employing Serial Binary Data Interchange. Meskipun namanya cukup panjang tetapi standar ini hanya menyangkut komunikasi data antara komputer dengan alat-alat pelengkap komputer. Ada dua hal pokok yang diatur standar RS232, antara lain adalah : • Bentuk sinyal dan level tegangan yang dipakai. RS232 dibuat pada tahun 1962, jauh sebelum IC TTL populer, oleh karena itu level tegangan yang ditentukan untuk RS232 tidak ada hubungannya dengan level tegangan TTL, bahkan dapat dikatakan jauh berbeda. Berikut perbedaan antara level tegangan RS232 dan TTL :
Gambar 2.3. Perbedaan antara level tegangan RS232 dan TTL Penentuan • jenis sinyal dan konektor yang dipakai, serta susunan sinyal pada kaki- kaki di konektor. Beberapa parameter yang ditetapkan EIA (Electronics Industry Association) antara lain: • Sebuah ‘spasi’ (logika 0) antara tegangan +3 s/d +25 volt
Universitas Sumatera Utara
• Sebuah ‘tanda’ (logika 1) antara tegangan -3 s/d -25 volt • Daerah tegangan antara +3 s/d -3 volt tidak didefenisikan • Tegangan rangkaian terbuka tidak boleh lebih dari 25 volt (dengan acuan ground) • Arus hubung singkat rangkaian tidak boleh lebih dari 500 mA. Sebuah penggerak (driver) harus mampu menangani arus ini tanpa mengalami kerusakan. Selain mendeskripsikan level tegangan seperti yang dibahas di atas, standard RS232 menentukan pula jenis-jenis sinyal yang dipakai mengatur pertukaran informasi antara DTE dan DCE, semuanya terdapat 24 jenis sinyal tapi yang umum dipakai hanyalah 9 jenis sinyal. Konektor yang dipakai pun ditentukan dalam standard RS232, untuk sinyal yang lengkap dipakai konektor DB25, sedangkan konektor DB9 hanya bisa dipakai untuk 9 sinyal yang umum dipakai.
Gambar 2.4. Konektor DB9
Tabel 2.2. Pin-Pin pada DB9 dan DB25
Universitas Sumatera Utara
Tabel 2.2. Pin-Pin pada DB9 dan DB25 ( Sambungan )
Universitas Sumatera Utara
Sinyal-sinyal tersebut ada yang menuju ke DCE ada pula yang berasal dari DCE. Bagi sinyal yang menuju ke DCE artinya DTE berfungsi sebagai output dan DCE berfungsi sebagai input, misalnya sinyal TD, pada sisi DTE kaki TD adalah output, dan kaki ini dihubungkan ke kaki TD pada DCE yang berfungsi sebagai input. Kebalikan sinyal TD adalah RD, sinyal ini berasal dari DCE dan dihubungkan ke kaki RD pada DTE yang berfungsi sebagai output. 2.1.6 Konfigurasi Null Modem Konfigurasi Null Modem digunakan untuk menghubungkan dua DTE dengan diagram pengkabelan yang dapat dilihat pada gambar dibawah. Dalam hal ini hanya dibutuhkan tiga kabel antar DTE, yakni untuk TxD, RxD dan Gnd. Cara kerjanya adalah
Universitas Sumatera Utara
bagaimana membuat komputer agar berpikir bahwa computer berkomunikasi dengan modem (DCE) bukan dengan komputer lainnya.
Gambar 2.5. Konfigurasi Null Modem Pada gambar diatas terlihat bahwa kaki DTR (Data Terminal Ready) dihubungkan ke DSR (Data Set Ready) dan juga ke CD (Carrier Detect) pada masing masing komputer, sehingga pada saat sinyal DTR diaktifkan maka sinyal DSR dan CD juga ikut aktif (konsep Modem Semu atau Virtual Modem). Karena computer dalam hal ini melakukan pengiriman data dengan kecepatan yang sama, maka kontrol aliran (flow control) belum dibutuhkan sehingga RTS (Request To Send) dan CTS (Clear to Send) pada masing masing komputer saling dihubungkan. 2.1.7 Transmisi Data Pada RS232 Komunikasi pada RS-232 dengan PC adalah komunikasi asinkron. Dimana sinyal clocknya tidak dikirim bersamaan dengan data. Masing-masing data disinkronkan menggunakan clock internal pada tiap-tiap sisinya. Gambar 2.6 Format transmisi satu byte pada RS232 Data yang ditransmisikan pada format diatas adalah 8 bit, sebelum data tersebut ditransmisikan maka akan diawali oleh start bit dengan logik 0 (0 Volt), kemudian 8 bit data dan diakhiri oleh satu stop bit dengan logik 1 (5 Volt). 2.1.8 Keuntungan Menggunakan Komunikasi Serial
Universitas Sumatera Utara
Antar muka komunikasi serial menawarkan beberapa kelebihan dibandingkan dengan komunikasi pararel, diantaranya: • Kabel untuk komunikasi serial bisa lebih panjang dibandingkan dengan pararel. Data-data dalam komunikasi serial dikirimkan untuk logika ‘1’ sebagai tegangan 3 s/d -25 volt dan untuk logika ‘0’ sebagai tegangan +3 s/d +25 volt, dengan demikian tegangan dalam komunikasi serial memiliki ayunan tegangan maksimum 50 volt, sedangkan pada komunikasi pararel hanya 5 volt. Hal ini menyebabkan gangguan pada kabel-kabel panjang lebih mudah diatasi dibanding dengan pararel. • Jumlah kabel serial lebih sedikit. Dua perangkat komputer yang berjauhan dengan hanya tiga kabel untuk konfigurasi null modem, yakni TxD (saluran kirim), RxD (saluran terima) dan Ground, akan tetapi jika menggunakan komunikasi pararel akan terdapat dua puluh hingga dua puluh lima kabel. • Komunikasi serial dapat menggunakan udara bebas sebagai media transmisi. Pada komunikasi serial hanya satu bit yang ditransmisikan pada satu waktu sehingga apabila transmisi menggunakan media udara bebas (free space) maka dibagian penerima tidak akan muncul kesulitan untuk menyusun kembali bit bit yang ditransmisikan. • Komunikasi serial dapat diterapkan untuk berkomunikasi dengan mikrokontroler. Hanya dibutuhkan dua pin utama TxD dan RxD (diluar acuan ground) 2.1.9 Port serial Serial Port atau biasa disebut dalam bahasa Indonesia adalah port seri merupakan sebuah port pada personal computer yang berfungsi untuk mentransmisikan satu bit informasi pada satu satuan waktu. Dalam serial port, pengiriman informasi tidak
Universitas Sumatera Utara
memungkinkan untuk melakukan secara banyak sekalius. Hal ini disebabkan karena dalam melakukan pemindahan data, biasanya serial port bekerja seri, misalnya COM 1 dan COM 2. Untuk penggunaan port serial sekarang ini sudah berkurang. Penggunaan port serial telah tergantikan dengan port USB dan Firewire. Sedangkan untuk jaringan (networking) fungsinya sudah tergantikan dengan port Ethernet. Berikut beberapa fungsi serial port yaitu menghubungkan antara peripheral (alat) computer lain dengan motherboard, penghubung antara mouse dengan motherboard, penghubung antara modem dengan motherboard, dan mentransmisikan informasi-informasi berupa bit-bit dari mainboard ke perangkat lainnya. 2.1.10 Operasi Serial Port
mikrokontroller 89C51 mempunyai On Chip Serial Port yang dapat digunakan untuk komunikasi data serial secara Full Duplex sehingga Port Serial ini masih dapat menerima data pada saat proses pengiriman data terjadi. Untuk menampung data yang diterima atau data yang akan dikirimkan, 89C51 mempunyai sebuah register yaitu SBUF yang terletak pada alamat 99H di mana register ini berfungsi sebagai buffer sehingga pada saat mikrokontroler ini membaca data yang pertama dan data kedua belum diterima secara penuh, maka data ini tidak akan hilang. Pada kenyataannya register SBUF terdiri dari dua buah register yang memang
Universitas Sumatera Utara
TXD (P3.1)
RXD (P3.0)
D SHIFT REGISTER Clk SBUF Receive Buffer Register (read only)
Baud rate clok (receive)
SBUF Transmit Buffer Register (write only)
Baud rate clok (transmit)
Bus Internal 89s51
Gambar 2.6. Diagram blok port serial menempati alamat yang sama yaitu 99H. Register tersebut adalah Transmit Buffer Register yang bersifat write only (hanya dapat ditulis) dan Receive Buffer Register yang bersifat read only (hanya dapat dibaca). Pada proses penerimaan data dari Port Serial, data yang masuk ke dalam Port Serial akan ditampung pada Receive Buffer Register terlebih dahulu dan diteruskan ke jalur bus internal pada saat pembacaan register SBUF sedangkan pada proses pengiriman data ke Port Serial, data yang dituliskan dari bus internal akan ditampung pada Transmit Buffer Register terlebih dahulu sebelum dikirim ke Port Serial Port Serial 89C51 dapat digunakan untuk komunikasi data secara sinkron maupun asinkron Komunikasi data serial secara sinkron adalah merupakan bentuk komunikasi data serial yang memerlukan sinyal clock untuk sinkronisasi di mana sinyal clock tersebut akan tersulut pada setiap bit pengiriman data sedangkan komunikasi asinkron tidak memerlukan sinyal clock sebagai sinkronisasi. Pengiriman data pada komunikasi serial
Universitas Sumatera Utara
89C51 dilakukan mulai dari bit yang paling rendah (LSB) hingga bit yang paling tinggi (MSB).
Gambar 2.7. Komunikasi Sinkron dan Komunikasi Asinkron
2.1.11 Baud Rate Serial Baud rate clok berkaitan erat dengan frekuensi kristal yang digunakan dan pada mode 1,2 dan 3 juga di tentukan oleh bit SMOD pada PCON register. Baud rate clok tiap mode ditentukan sebagia berikut •
Mode 0 adalah 1/12 frekuensi kristal
•
Mode 2, untuk SMOD = 0 adalah 1/64 frekuensi kristal
•
Mode 2, untuk SMOD =1 adalah 1/32 frekuensi kristal
•
Mode 1 dan 3 untuk SMOD = 0 adalah 1/32 dari timer overflow
•
Mode 1 dan 3 untuk SMOD = 1 adalah 1/16 dari timer overflow
PCON tidak dapat di akses secara bit, sehingga pengaturan bit SMOD dapat dilakukan dengan perintah dibawah ini, dalam hal ini SMOD di clearkan MOV A, PCON ; ambil nilai PCON CLR Acc.7
; clear bit 7
MOV PCON,A ; kembali ke PCON
Universitas Sumatera Utara
Baud rate dari Port Serial 89C51 dapat diatur pada Mode 1 dan Mode 3, namun pada Mode 0 dan Mode 2, baud rate tersebut mempunyai kecepatan yang permanen yaitu untuk Mode 0 adalah 1/12 frekwensi osilator dan Mode 2 adalah 1/64 frekwensi osilator.
Dengan mengubah bit SMOD yang terletak pada Register PCON menjadi set (kondisi awal pada saat sistem reset adalah clear) maka baud rate pada Mode 1, 2 dan 3 akan berubah menjadi dua kali lipat.
Pada Mode 1 dan 3 baud rate dapat diatur dengan menggunakan Timer1. Cara yang biasa digunakan adalah Timer Mode 2 (8 bit auto reload) yang hanya menggunakan register TH1 saja. Pengiriman setiap bit data terjadi setiap Timer 1 overflow sebanyak 32 kali sehingga dapat disimpulkan bahwa: Lama pengiriman setiap bit data = Timer 1 Overflow X 32 ........... Baud rate (jumlah bit data yang terkirim tiap detik) = Apabila diinginkan baud rate 9600 bps maka timer 1 harus diatur agar overflow setiap
Timer 1 overflow setiap kali TH1 mencapai nilai limpahan (overflow) dengan frekwensi sebesar fosc/12 atau periode 12/fosc. Dari sini akan ditemukan formula
sebagai berikut:
Dengan frekwensi osilator sebesar 11,0592 MHz maka TH1 adalah 253 atau 0FDH. Selain variabel-variabel di atas, masih terdapat sebuah variabel lagi yang menjadi pengatur baud rate serial yaitu Bit SMOD pada Register PCON. Apabila bit ini set maka faktor pengali 32 pada formula 3.1 akan berubah menjadi 16. Oleh karena itu dapat disimpulkan formula untuk baud rate serial untuk Mode 1 dan Mode 3 adalah:
Universitas Sumatera Utara
Table 2.3. Mode Serial vs baud rate
Mode
Baud rate
0
1/12 fosc
1
SMOD = 0
SMOD = 1
2
1/32 f osc
1/32 f osc
3
Tabel 2.1.11.2. memberikan bermacam nilai pada TH 1 pada pembangkit baud reat komunikasi data serial melalui port serial pada metode 1 dan 3, penggunaan kristal 12 MHz hanya di perbolehkan hingga kecepatan 4800 bps saja. Penggunaan kecepatan 4800 untuk komunikasi dengan computer, baik suntuk programming atau untuk emulator.
Table.2.4. penentuan nilai TH1 pada pembangkit Baud rate:
Universitas Sumatera Utara
BPS
Kristal
SMOD
TH1 reload
REAL BPS
ERROR
4800
12
1
-13(F3h)
4807
0.16%
2400
12
0
-13(F3h)
2404
0.16%
2400
12
1
-26(E6h)
2404
0.16%
1200
12
1
-26(E6h)
1202
0.16%
1200
12
1
-56(CCh)
1202
0.16%
19200
11.059
1
-3(FDh)
19200
0%
9600
11.059
0
-3(FDh)
9600
0%
BPS
Kristal
SMOD
TH1 reload
REAL BPS
ERROR
9600
11.059
1
-6(Fah)
9600
0%
4800
11.059
0
-6(Fah)
4800
0%
4800
11.059
1
-12(F4h)
4800
0%
2400
11.059
0
-12(F4h)
2400
0%
2400
11.059
1
-24(E8h)
2400
0%
1200
11.059
0
-24(E8h)
1200
0%
1200
11.059
1
-48(D0h)
1200
0%
Universitas Sumatera Utara
2.2 Software
2.2.1. Bahasa Assembly MCS-51
Bahasa yang digunakan untuk memprogram IC mikrokontroler AT89S51 adalah bahasa assembly untuk MCS-51. angka 51 merupakan jumlah instruksi pada bahasa ini hanya ada 51 instruksi. Instruksi –instruksi tersebut antara lain : Instruksi MOV Perintah ini merupakan perintah untuk mengisikan nilai ke alamat atau register tertentu. Pengisian nilai dapat secara langsung atau tidak langsung. Contoh pengisian nilai secara langsung MOV R0,#20h Perintah di atas berarti : isikan nilai 20 Heksadesimal ke register 0 (R0). Tanda # sebelum bilangan menunjukkan bahwa bilangan tersebut adalah nilai. Contoh pengisian nilai secara tidak langsung MOV 20h,#80h ........... ............ MOV R0,20h Perintah di atas berarti : isikan nilai yang terdapat pada alamat 20 Heksadesimal ke register 0 (R0). Tanpa tanda # sebelum bilangan menunjukkan bahwa bilangan tersebut adalah alamat. Instruksi DJNZ Decreament Jump If Not Zero (DJNZ) ini merupakan perintah untuk mengurangi nilai register tertentu dengan 1 dan lompat jika hasil pengurangannya belum nol. Contoh , MOV R0,#80h Loop: ...........
Universitas Sumatera Utara
............ DJNZ R0,Loop ............ R0 -1, jika belum 0 lompat ke loop, jika R0 = 0 maka program akan meneruskan ke perintah pada baris berikutnya. Instruksi ACALL Instruksi ini berfungsi untuk memanggil suatu rutin tertentu. Contoh : ............. ACALL TUNDA ............. TUNDA: ................. Instruksi RET Instruksi
RETURN (RET) ini merupakan perintah untuk kembali ke rutin
pemanggil setelah instruksi ACALL dilaksanakan. Contoh, ACALL TUNDA ............. TUNDA: ................. RET Instruksi JMP
(Jump)
Instruksi ini merupakan perintah untuk lompat ke alamat tertentu. Contoh, Loop: ................. Instruksi JNB
(Jump if Not bit)
Instruksi ini merupakan perintah untuk lompat ke alamat tertentu, jika pin yang dimaksud berlogika Low (0). Contoh, Loop: JNP Loop Instruksi JB
(Jump if bit)
Instruksi ini merupakan perintah untuk lompat ke alamat tertentu, jika pin yang dimaksud berlogika high (1). Contoh,
Universitas Sumatera Utara
Loop: JB P1.0,Loop ................. JNB P1.0,Loop ................. Instruksi CJNZ
(Compare Jump If Not Equal)
Instruksi ini berfungsi untuk membandingkan nilai dalam suatu register dengan suatu nilai tertentu. Contoh, Loop: ................ CJNE R0,#20h,Loop ................ Jika nilai R0 tidak sama dengan 20h, maka program akan lompat ke rutin Loop. Jika nilai R0 sama dengan 20h,maka program akan melanjutkan instruksi selanjutnya.. Instruksi DEC (Decreament) Instruksi ini merupakan perintah untuk mengurangi nilai register yang dimaksud dengan 1. Contoh, MOV R0,#20h
R0 = 20h
................ DEC R0
R0 = R0 – 1
............. Instruksi INC (Increament) Instruksi ini merupakan perintah untuk menambahkan nilai register yang dimaksud dengan 1. Contoh, MOV R0,#20h
R0 = 20h
................ INC R0
R0 = R0 + 1
............. Dan lain sebagainya
Universitas Sumatera Utara
2.2.2. Pengenalan Visual Basic 6.0 Visual basic meruapakn salah satu bahasa pemrograman yang paling banyak digunakan pada saat ini, karena fasilitas yang dimiliki sangat handal untuk membangun berbagai bentuk aplikasi dan mudah dipelajari sendiri. Menurut suryo (2000 : 1), Visual basic merupakan event-driven programming (pemrograman terkendali kejadian). Artinya program menuggu sampai respondari pemakai berupa event atau kejadian.
Apabila dibandingkan dengan bahasa pemrograman yang lain, misalnya pascal yang harus penulisan kode program untuk segala sesuatu yang akan diinginkan dalam kejadian (event) maka visual basic memberikan berbagai macam kemudahan dan fasilitas yang disediakan menjadi sangat praktis meskipun untuk pemula, program ini mudah untuk dipelajari dengan bermacam jenis buku yang telah diterbitkan mengenai bahasa pemrograman dengan visual basic6.0
2.2.3. Aplikasi visual basic 6.0
Struktur yang ada didalam visual basicterdiri dari;
A. From adalah windos atau jendela kerja (worksheet) yang digunakan untuk tampilan yang diinginkan. B. Control Adapun secara garis besar fungsi dari masing –masing control adalah segabai berikut;
Universitas Sumatera Utara
•
Pointer bukan merupakan suatu control: icon ini dingukan ketika anda ingin memilih kontrol yang sudah ada di from.
•
PictureBox adalah kontrol yang digunakan untuk menampilkan mage format: BMP,DIB(bitmat), CUR(cursor), WMF(metafeli), EMF(enhanced metafile),GIF,dan JPG.
•
Label adalah kontrol yang dingunakan untuk menampilkan text yang tidak dapat di perbaiki oleh pemakai.
•
Textbox adalah kontrol yang mengandung string yang dapat dieprbaiki oleh pemakai, dapat berupa satu baris tunggal, atau banyak baris.
•
Frame adalah kontrol yang digunakan sebagai kontainer bagi kontrol lainnya.
•
CommangBotton merupakan kontrol yang hampir sering ditemukan pada setiap from,dan digunakan untuk membangkitkan event proses tertentu ketika pemakai melakukan klik disana.
•
Checkbox digunakan untuk pilihan yang isinya bernilai yes/no,true/false.
•
Optionbutton sering digunakan untuk pilhan yang hanya satu pilihan dari beberapa option.
•
Listbox mengandung sejumlah item dan userdapat memilih lebih dari satu (bergantung pada property multiselect).
•
Combobox merupakan kombinasi dari textbox dan suatu listbox dimana pemasukan data dapat dilakukan dengan pengetikan dan pemilihan.
•
HScrollbar dan Vscrollbar digunakan untuk membentuk scrollbar berdiri sendiri .
•
Timer digunakan untuk proses backgraondyang diaktifkan berdasarkan interval waktu tertentu yang merukan kontrol nonvisual.
•
Drivelistbox , Dirlistbox dan Felilistbox sering digunakan untuk membentuk dialog box yang berkaitan dengan file
•
Shape dan line digunakan untuk menampilkan bentuk seperti garis, persegi, lingakaran dan sebagiainya
Universitas Sumatera Utara
•
Image berpungsi seperti imagebox tetapi tidak dapat digunakan sebagi kontainer bagi kontrol lain.
•
Data digunakan untuk data binding.
•
Ole dapat digunakan sebagai tempat bagi program eksternal seperti Microsoft Exel,Word dan sebagianya.
C. Properti adalah nilai atau karakteristik yang dimiliki visul basic D. Metode adalah serangkaian perintah yang sudah tersedia pada suatu objek yang dapat diminta untuk mengerjakan tugas khusus E. Prosedur kejadian merupakan kode yang berhubungan dengan suatu objek F. Prosedur umum meruapakan kode yang tidak berhubungan suatu objek G. Modul dapat disejajarkan dengan from, tetapi tidak terdapat objek
2.2.3. Pengaksesan port serial pada visual basic
Untuk pengaksesan port serial kita dapat mengaksesnya secara langsung melalui register USART atau menggunakan kontrol MSComm yang telah disediakan visual basic. Pengaksesan secara langsung melalui register USART
Saluran yang digunakan USART untuk komunikasi baik untuk pengiriman maupun penerimaan data adalah saluran RxD dan saluran TxD serta saluran-saluran untuk kontrol yaitu saluran DCD, DSR, RTS,CTS, DTR dan RI. Saluran-saluarn ini ada yang sebagai output dan ada yang sebagai input. Kecuali saluran RxD, saluaran-saluarn ini dapat di akses secara langsung melalui register USART. Beriku adalah tabel alamat dan lokasi bit saluarn tersebut pada register USART.
Tabel 2.5. Alamat dan lokasi bit pada register USART
Nama pin
Nomor pin pada DB-9
COM 1
COM 2
Bit
Arah
TxD
3
3FBh
2FBh
6
output
DTR
4
3FCh
2FCh
0
output
Universitas Sumatera Utara
RTS
7
3FEh
2FCh
1
output
CTS
8
3FEh
2FEh
4
input
DSR
6
3FEh
2FEh
5
input
RI
9
3FEh
2FEh
6
input
DCD
1
3FEh
2FEh
7
input
Untuk dapat mengaksesnya, kita dapat menggunakan fungsi port_Out dan port_In yang terdapat pada port_IO.DLL dan untuk menset atau mengclearkan bit-bit tertentu kata dapa menggunakan prosedur set_bit atau prosedur clear_bit
Berikutnya adalah contoh penggunaan dengan menset bit DTR yaitu membuat saluran DTR berlogika low yang dalam port serial IBM PC kompatibel bertegangan +12 V. alamat register pengontrol DTR adalah 3FCh untuk COM 1 pada bit 0. perintahnya adalah sebagai berikut; Set_bit
(&H3FC,
0)
Untuk mengclearkannya yaitu membuat saluran DTR berlogika high yang dalam port serial IBM PC kompatibel bertegangan -12V dan menggunakan perintah ; Clear_ bit
(&H3FC,
0)
Universitas Sumatera Utara