Perangkat Lunak Mikrokontroler AT89S51

32 Dalam setiap proses transfer data serial, RS232 memerlukan sebuah Data Terminal Equipment DTE dan Data Communication Equipment DCE pada masing-masing terminal. Pengiriman data dilakukan secara bit per bit. Kecepatan transfer data harus sama antara pengirim dan penerima, jika tidak sama akan terjadi overflow. Kecepatan transmisi transfer data sering disebut dengan baudrate. Panjang data bit yang sering digunakan diantaranya adalah 4,5,6,7, dan 8 bit. Pada komunikasi data serial pada dasarnya yang dikirimkan adalah tegangan dan kemudian dibaca dalam bit. Besar level teganganya adalah antara - 25 volt sampai dengan +25volt. Untuk bit dengan logika 1 maka besar level teganganya adalah antara -3 volt sampai -25 volt, sedangkan untuk bit dengan logika 0 maka besar level tegangannya antara +3 volt sampai +25 volt.

2.10 Perangkat Lunak Mikrokontroler AT89S51

Bahasa pemrograman yang digunakan untuk memprogram IC Mikrokontroler AT89S51 adalah dengan menggunakan bahasa Assembly yang biasanya disimpan dengan menggunakan ekstensi .ASM. Bahasa Assembly adalah bahasa komputer yang kedudukannya di antara bahasa mesin kumpulan kode biner yang merupakan instruksi yang dapat dimengerti dan dijalankan oleh komputer atau mikrokontroler dan bahasa level tinggi bahasa komputer yang memakai kata-kata dan pernyataan yang mudah dimengerti oleh manusia, misalnya bahasa C dan Pascal. Mikrokontroler AT89S51 mempunyai beberapa instruksi, di antaranya adalah : a. Instruksi aritmatika Instruksi aritmatikaADD dapat dilaksanakan dengan 4 cara, yaitu :  ADD A,7FH pengalamatan langsung  ADD ARO pengalamatan tak langsung  ADD A,R7 pengalamatan register 33  ADD A,35H pengalamatan immediate Untuk aritmatika BCD Binary Coded Decimal, ADD dan ADDC harus diikuti dengan operasi DA A Decimal Adjust untuk meyakinkan hasil dari BCD, dimana DA A akan merubah nomor binary menjadi BCD. b. Instruksi logika Instruksi logika pada mikrokontroler AT89S51 memberikan operasi boolean AND, OR, EX-OR, dan NOT dalam byte data. Semua instruksi logika menggunakan akumulator pada pengoperasian pertama dalam sebuah siklus mesin. Operasi logika dapat ditampilkan dalam sebuah byte ruang memori internal data tanpda meninggalkan akumulator. c. Instruksi perputaran Instruksi perputaran RL A dan RR A menggeser akumulator satu bit ke arah kiri atau kanan. Untuk pergeseran ke kiri, MSB berputar ke arah LSB, untuk pergeseran ke kanan LSB berutar ke arah posisi MSB. Variasi RL A dan RR A adalah pergeseran 9-bit yang menggunkan akumulator dan membawa pengikut ke dalam PSW. Instruksi SWAP A mengubah posisi tinggi ke posisi rendah dengan menggunakan akumulator. d. Instruksi data transfer internal RAM Instruksi ini memindahkan data dengan ruang memori internal yang akan dilaksanakan pada satu atau dua siklus mesin. Format instruksi ini adalah : MOV tujuan sumber Menyediakan data untuk dipindahkan antar 2 internal RAM atau lokasi SFR dengan keluaran melalui akumulator. Bagian atas 128 byte data memori RAM hanya dapat diakses dengan pengalamatan langsung dan SFR hanya dapat dikases dengan pengalamatan langsung. e. Instruksi variabel boolean Mikrokontroler AT89S51 memiliki sebuah prosesor boolean yang lengkap bit-tunggal. RAM internal mengandung 128 bit yang dapat 34 dialamati dan ruang SFR dapat mendukung hingga 128 bit yang dapat dialamati lainnya. Semua jalur port juga merupakan bit yang dapat dialamati dan masing-masing dapat diperlakukan sebagai port bit tunggal yang terpisah. Instruksi-instruksi yang mengakses bit-bit ini tidak hanya di percabangan bersyarat saja, namun lengkap meliputi instruksi-intruksi pemindahan data mov, set, clear, komplemen, OR, dan AND. f. Instruksi lompatan bersyarat Instruksi pengetesan bit akan dilewati jika alamat bit set JC,JB,JBC atau jika alamat bit tidak diset JNC dan JNB. Semua bit PSW adalah pengalamatan langsung, jadi parity bit atau flag yang digunakan secara umum dapat juga digunakan sebagai bit instruksi set. g. Instruksi lompatan Ada beberapa jenis variasi instruksi : SJMP, LJMP, dan AJMP. Instruksi SJMP mempunyai ukuran 2 byte, instruksi LJMP mempunyai ukuran 3 byte dan instruksi AJMP mempunyai ukuran 2 byte. Dalam melakukan pembuatan program pada mikrokontroler AT89S51, ada beberapa jenis pengalamatan yang biasa digunakan, yaitu: 1. Mode Pengalamatan Langsung Direct Addressing Mode Mode pengalamatan ini digunakan untuk menunjuk data yang berada di suatu lokasi memori dengan cara menyebut lokasi alamat memori tempat data tersebut berada, misalnya: MOV A, 50H. Instruksi ini menyatakan bahwa data yang berada pada alamat 50H disalin ke akumulator A. 2. Mode Pengalamatan Segera Immediate Addressing Mode Mode pengalamatan segera digunakan untuk pemindahan data konstan atau menggunakan konstanta, yaitu data yang menyatu dengan instruksi. Contoh dari instruksi ini adalah MOV A, 40H. Instruksi ini mempunyai arti bahwa data sebesar 40H disalin ke akumulator A. 3. Mode Pengalamatan Tidak Langsung Indirect Addressing Mode Mode pengalamatan ini digunakan untuk mengakses data yang berada didalam memori namun lokasi memori tersebut tidak disebut secara 35 langsung tetapi disimpan dulu ke register lain, contohnya: MOV A, R0. Instruksi ini menyatakan bahwa data yang tersimpan pada memori yang alamat lokasinya tersimpan pada R0 disalin ke Akumulator A. 4. Mode Pengalamatan Register Register Addresing Mode Mode pengalamatan ini digunakan untuk mengakses data dari register sebagai tempat penyimpanan data yang praktis dan kerjanya sangat cepat, misalnya MOV A, R0. instruksi ini mempunyai arti bahwa data dalam register serba guna R0 disalin ke Akumulator A. 5. Mode Pengalamatan Kode Tidak Langsung Code Indirect Addressing Mode Mode pengalamatan ini digunakan untuk penyebutan data dalam memori program yang dilakukan secara tidak langsung, misalnya instruksi MOVC A, A+DPTR. Instruksi ini mempunyai arti bahwa data yang berada pada lokasi memori program yang beralamat di DPTR Data Pointer Register-2 Byte ditambah dengan nilai yang tersimpan dalam Akumulator A 1 byte. Agfianto Eko Putra, 2006

2.11 Visual Basic