Berisi kesimpulan yang dapat diambil berdasarkan hasil yang didapat serta saran yang dapat diberikan.
DASAR TEORI
2.1 Mikrokontroler AT89S51
Mikrokontroller AT89S51 merupakan Mikrokontroller yang kompatibel dengan Mikrokontroller 8051 buatan Intel. Perintah-perintah yang digunakan pada Mikrokontroller AT89S51 dapat digunakan pula pada Mikrokontroller 8051
[1]. Blok diagram dari ATMEL AT89S51 dapat dilihat pada gambar 2.1 sebagai berikut.
Gambar 2.1 Blok Diagram ATMEL AT89S51
2.1.1 Organisasi Memori
Untuk pengalamatan memori, dapat dibedakan menjadi dua yaitu untuk program memori dan untuk data memori [1]. Masing-masing program memori dan data memori dapat mengalamati sampai 64 Kb, dengan masing-masing byte lebar datanya 8 bit.
Program memori hanya dapat dibaca, tidak dapat ditulis. Di sini tersimpan program yang akan dijalankan oleh mikrokontroler dan data-data konstanta. Sinyal pembacaan EPROM eksternal adalah dari pin-PSEN. Ada dua tipe organisasi memori dari program memori. Yang pertama adalah pengaksesan program memori sebagian berasal dari internal EPROM yang menempati alamat terendah dan alamat berikutnya dari EPROM eksternal. Sedang yang kedua adalah pengaksesan program memori yang semuanya dari eksternal EPROM.
Data memori menempati alamat yang terpisah dari program memori. Data memori merupakan tempat penyimpanan data variable, operasi stack dan sebagainya. Data memori dapat dibaca dan ditulis.
Sinyal pembacaan untuk eksternal RAM berasal dari pin RD dan untuk penulisan berasal dari pin WR. Alamat 00H-FFH merupakan alamat dari internal RAM yang dapat dialamati dalam dua mode. Pada alamat 00H-7FH dapat dialamati dalam mode direct maupun indirect addressing.
Alamat 80H-FFH hanya dapat dialamati dalam mode direct addressing.
Di luar alamat tersebut merupakan alamat eksternal RAM.
2.1.2 Register
Mikrokontroler ini memiliki sejumlah register yang memiliki fungsi khusus (special function register – SFR) dan register umum (general purpose register) [1]. General purpose register yang dapat diakses adalah 8 byte per bank yaitu register R0-R7, dengan jumlah bank sebanyak 4. Untuk register-register pada SFR yang dapat dialamati per bit diantaranya adalah:
1. Register ACC(accumulator)
Register ini memiliki alamat 0E0h, dapat dialamati per bit (bit addressable). Biasanya ditulis dengan kode A.
2. Register B
Register ini memiliki alamat 0F0h, bit addressable. Biasa ditulis dengan kode B. digunakan pada proses perkalian dan pembagian, dan dapat dipakai pada instruksi lain sebagai register umum.
3. Register PSW (Program Status Register)
Register ini memiliki alamat 0D0h, bit addressable. Biasa ditulis dengan kode PSW.
Gambar 2.2 Alokasi Bit Register PSW
4. Stack Pointer (SP)
Register yang memiliki alamat 081h ini nilainya ditambah satu (increaament) sebelum data disimpan dengan perintah PUSH ataupun CALL. Stack Pointer memiliki nilai 07h setelah proses RESET dan POWER ON, dengan demikian stack akan berawal dari alamat 080h. namun posisi stack bisa saja dari RAM internal.
5. Data Pointer (DPTR)
Register ini adalah register 16 bit yang terdiri dari dua register 8 bit yaitu DPL (address:082h) dan DPH (address: 083h). DPTR digunakan untuk menunjuk address memory16 bit yang akan diakses misalnya oleh instruksi MOVX A,@DPTR.
6. Register Timer
Yaitu register-register 16 bit yang merupakan isi dari timer/counter 0, 1, dan 2. Timer/counter 1 memiliki register TH1 pada 8DH dan TL1 pada 8BH, timer/counter 0 registernya TL0 pada 8CH dan TH0 pada 84H.
7. Register PCON (Power Control)
Register ini memiliki alamat 087h, dengan bit-bit control sebagai berikut:
Tabel 2.1a Nama-Nama Bit Kontrol dari Register PCON
Simbol Posisi Nama
SMOD PCON.7 Double baud rate rate bit
GF1 PCON.3 General purpose flag 1
Tabel 2.1b Nama-Nama Bit Kontrol dari Register PCON (lanjutan)
Simbol Posisi Nama
GF2 PCON.2 General purpose flag 2
PD PCON.1 Power Down mode
IDL PCON.0 Idle mode
8. Register Interupsi
Mikrokontroller ini memiliki 5 buah interupsi dengan dua level prioritas interupsi, interupsi secara otomatis akan dimatikan bila sistem di-reset. Register yang behubungan dengan interupsi adalah Interrupt Enable Register (IE) pada alamat A8H dan Interupsi Priority Register (IP) pada alamat B8H.
9. Register TCON (Timer /Counter Control)
Register yang memiliki address 088h berfungsi untuk mengontrol fungsi timer 1 dan timer 0 , mengatur respon mikrokontroler ini terhadap level tegangan pada input external interrupt, serta memberikan tanda flag jika telah ada sinyal interrupt external.
10. Register TMOD (Timer/ Counter mode)
Register yang memiliki address 089h berfungsi untuk mengontrol mode Timer 1 dan timer 0.
11. Register SCON (Serial Port Control)
Register ini memiliki address 098h berfungsi untuk mengontrol fungsi Serial Port.
2.1.3 Struktur Interupsi
Mikrokontroller ini menyediakan 5 sumber interupsi, yaitu : 2 interupsi eksternal, 2 interupsi pewaktu dan sebuah interupsi serial [1]. Setiap sumber interupsi dapat dimatikan dan dihidupkan secara individual dengan cara meresetkan bit-bit IE dalam SFR. Pada bit IE ini terkandung juga sebuah bit aktivasi interupsi secara global. Gambar 2.3 menunjukkkan IE pada Mikrokontroller ATMEL AT89S51.
Gambar 2.3 Register Interrupt Enable ATMEL AT 89S51 Fungsi-fungsi pin IE dapat dilihat pada tabel 2.3. Pin IE7 digunakan sebagai kontrol utama bagi interupsi-interupsi yang lain. Bila pin ini bernilai 1 maka semua pin interupsi akan dapat digunakan (enable), sedangkan bila bernilai 0 maka semua pin interupsi akan tidak dapat digunakan (Disable).
Pin IE6 dan IE5 digunakan sebagai cadangan pada Mikrokontroler ini. IE4 dipergunakan sebagai bit aktivasi interupsi port serial, sehingga bila diinginkan interupsi menggunakan port serial pin IE4 ini harus diberi nilai tinggi atau 1.
Pin IE3 dan IE1 digunakan untuk timer 0 dan timer 1, bila timer digunakan dan telah mencapai nilai yang diharapkan maka interupsi ini akan bernilai tinggi atau 1.
Pin IE2 dan IE0 dipergunakan sebagai masukan interupsi yang berasal dari luar, sebagai contoh pin ini dihubungkan dengan saklar external.
Tabel 2.2 Register IE
Simbol Posisi Fungsi
EA IE.7 Untuk mematikan dan menghidupkan seluruh interupsi secara serentak.
- IE.6 Cadangan
- IE.5 Cadangan
ES IE.4 Bit aktivasi interupsi Port Serial ET1 IE.3 Bit aktivasi interupsi timer 1 overflow EX1 IE.2 Bit aktivasi interupsi external 1 ET0 IE.1 Bit aktivasi interupsi timer 0 overflow EX0 IE.0 Bit aktivasi interupsi external 0
Sebuah interupsi yang berprioritas rendah dapat diinterupsi oleh yang berprioritas lebih tinggi, sedangkan interupsi dengan prioritas tinggi tidak dapat diinterupsi oleh prioritas yang lebih rendah. Bila kedua prioritas muncul pada saat yang bersamaan maka interupsi dengan prioritas yang tertinggi yang akan dieksekusi terlebih dahulu. Namun jika muncul dua interupsi yang mempunyai prioritas yang sama maka CPU akan melakukan metode pengecekan secara kontinyu untuk menentukan interupsi mana yang akan dilayani pertama kali. Prioritas interupsi dapat dilihat pada tabel 2.8.
Tabel 2.3 Prioritas Interupsi Simbol Posisi Fungsi
- 1P.7 Cadangan
- IP.6 Cadangan
- IP.5 Cadangan
PS IP.4 Bit prioritas untuk Interupsi Port Serial PT1 IP.3 Bit prioritas untuk Interupsi timer 1 PX1 IP.2 Bit prioritas untuk Interupsi external 1 PT0 IP.1 Bit prioritas untuk Interupsi timer 0 PX0 IP.0 Bit prioritas untuk Interupsi external 0
2.1.4 Port I/O Serial
Port I/O serial yang dimiliki mikrokontroler ini memiliki karakteristik full duplex (dapat menerima sekaligus mengirimkan data secara simultan), dan receive-buffered (dapat memulai penerimaan data yang kedua sebelum data pertama dibaca dari register pembacaan[1]. Pengiriman dan pengiriman data pada port serial melalui SBUF.
Port serial dapat bekerja pada 4 mode. Yaitu, 1. Mode 0
Pada mode ini data serial diterima dan dikirim lewat pin RXD, seangkan pin TXD berfungsi untuk mengirimkan shift clock. Data yang diterima dan dikirimkan adalah selebar 8 bit dengan bit terendah dikirimkan /diterima pertama kali. Kecepatan pengiriman (baud rate) adalah tetap. Sebesar 1/12 frekuensi osilator.
2. Mode1
Pada mode ini data 8 bit dikirim/diterima dengan 2 bit tambahan, dengan urutan start bit (logika0), 8 bit data (dengan bit terendah di depan), dan 1 stop bit (logika 1). Pada saat penerimaan, stop bit masuk pada bit RB8 pada register SCON. Baud rate pada mode ini adalah variable.
3. Mode 2
Pada mode ini data 8 bit dikirim/diterima dengan 3 bit tambahan dengan urutan start bit (logika 0), 8 bit data, 1 bit tambahan yang dapat diprogram, dan 1 stop bit (logika1). Pada saat pengiriman. Bit yang dapat diprogram adalah bit yang terdapat pada bit TB8 pada register SCON. Pada saat penerimaan, bit yang dapat diprogram masuk pada bit RB8 pada register SCON. Baud rate pada mode ini adalah 1/32 atau 1/64 frekuensi osilator.
4. Mode 3
Pada mode ini data 8 bit dikirim/diterima dengan 3 bit tambahan dengan urutan start bit (logika 0), 8 bit data (dengan bit terendah di depan), 1 bit tambahan yang dapat diprogram, dan 1 stop bit (logika 1). Mode ini persis sama dengan mode 2 kecuali baud rate- nya yang variable.
2.1.5 Pengaturan Baud Rate
Baud rate adalah kecepatan transmisi data serial [1]. Berupa banyaknya transisi logika pada saluran data serial setiap detik. Semakin
besar nilai baud rate, maka semakin cepat proses pengiriman/penerimaan data serial.
Pada mode 0, baud rate adalah tetap sebesar 1/12 frekuensi osilator.
Bit SMOD pada register PCON menentukan baud rate pada mode 2.
untuk SMOD=1 baud rate adalah 1/32 frekuensi osilator, dan jika SMOD=0 maka baud rate adalah 1/64 frekuensi osilator. Baud rate untuk mode1 dan 3 ditentukan oleh kecepatan overflow pada Timer 1.
Baud rate untuk mode 1 dan 3 ditentukan oleh persamaan:
32
Konfigurasi timer 1 yang diperlukan untuk menjalani fungsi diatas adalah:
1) Timer dijalankan pada operasi “timer” atau “counter”, dengan mode 1, 2, atau 3
2) Timer 1 interrupt dibuat tidak bekerja (Disable)
Tabel 2.4 Mode Serial dan Baud Rate
Mode Baud rate
2.2 Motor DC
Motor DC merupakan salah satu mesin yang dapat merubah energi listrik menjadi energi mekanik/gerak. Salah satu jenis motor DC adalah motor DC magnet permanen [8]. Motor DC magnet permanen pada dasarnya tersusun dari dua bagian pokok, yaitu :
1. Rotor
Kumparan rotor/komutator merupakan bagian motor yang bergerak yang tersusun dari kumparan-kumparan yang diletakkan pada poros motor. Jika dialiri arus listrik, kumparan rotor akan menghasilkan flux magnet.
2. Stator
Stator merupakan bagian motor yang diam, bagian ini terdiri dari magnet permanen yang mempunyai dua kutub. Pada bagian ini akan dihasilkan garis gaya magnet yang bergerak dari kutub utara ke kutub selatan magnet.
Motor DC magnet permanen merupakan motor dengan daya yang kecil yang mempunyai penggunaan yang luas, antara lain sebagai servo motor pada sistem kendali. Karena motor ini menggunakan magnet permanen untuk menghasilkan medan magnet pada statornya, maka kuat medan magnet stator tetap dan dengan terbatasnya medan magnet stator maka pada gilirannya akan membatasi torsi yang dihasilkan.
Salah satu jenis motor DC yang lain adalah motor DC dengan menggunakan gearhead. Disini kecepatan putar dari suatu motor DC dapat dikurangi/diperkecil. Besar pengurangan putar dari motor tersebut tergantung
besar dan banyaknya gear-gear yang dipakai. Sebagai contoh pada penelitian ini digunakan motor DC dengan gearhead yang pada akhirnya menghasilkan perbandingan putar antara motor DC utama (tanpa gearhead) dan dengan gearhead adalah 1:30. Jadi 30 kali putaran motor DC utama akan sama dengan 1 kali putaran motor dengan gearhead. Seri dari motor DC yang dipakai adalah GH35GM.
M
-+ MG1
MOTOR DC
12
Gambar 2.4 Lambang Motor DC pada rangkaian
2.3 Driver Motor DC
Untuk dapat memutar suatu motor DC maka diperlukan suatu driver, untuk itu digunakan IC L293D untuk mendrive motor DC (dengan gearhead) tersebut. L293D didesaian untuk dapat beroperasi dengan arus hingga 600mA dan tegangan dari 4.5 V hingga 36 V [6]. Komponen ini dapat menggerakkan relay, solenoid, motor dc, motor stepper bipolar. Semua input beroperasi pada logika TTL.
Gambar 2.5 Diagram blok dari IC L293D
Sebuah IC L293D dapat mendrive 2 buah motor DC. IC ini mempunyai 4 input (in1, in2, in3, in 4), 4 output (out1, out2, out3, out4), dan 2 enable (en1, en2). Input dan enable tersebut bekerja sesuai dengan tabel berikut:
Tabel 2.5 Logika Aplikasi L293D En1 In1 In2 Out1 Out2 Motor DC
H H H L L Diam
H H L H L Putar kiri
H L H L H Putar kanan
H L L L L Diam
L H H L L Diam
2.4 Sensor Posisi
Sensor posisi adalah suatu sensor yang digunakan untuk mendeteksi letak/posisi suatu benda pada saat itu. Banyak komponen yang dapat digunakan sebagai sensor posisi. Salah satunya adalah reed switch . Reed switch atau sering disebut relai buluh terdiri dari dua buah plat kontak yang tertutup kedap udara (hermetis) pada tabung gelas yang diisi dengan gas pelindung. Pada saat magnet permanen didekatkan pada tabung, maka ujung-ujung tab kontak akan saling menarik satu sama lain dan akan terjadi kontak. Karena magnet permanen digerakan lebih jauh, ujung-ujung tab kontak dihilangkan kemagnetannya dan kembali pada posisi aslinya. Pada sistem kerjanya menyerupai saklar yang diaktifkan oleh magnet. Saklar Reed switch dilindungi tabung agar bebas dari
kelembaban. Oleh karena itu kontak saklar dibuat tertutup agar kontak tidak terpengaruh oleh debu, air, asap atau uap sehingga dapat dipakai lebih lama.
Pengaktif Reed switch yang paling umum adalah menggunakan magnet permanen, namun dapat digunakan magnet induksi.
Bentuk Sebuah Reeds Switch dapat dilihat pada gambar 2.6
Gambar 2.6 Bentuk Sebuah Reed Switch
2.5 Antarmuka (Interface) PC
Pada penelitian ini, untuk antarmuka antara pengendali (mikrokontroler) dan PC digunakan serial port atau communication port (COM). Komunikasi serial merupakan komunikasi asinkron, yaitu bahwa antara penerima dan pengirim data, tidak ada sikronisasi berupa clock. Sehingga mengharuskan ada penyesuaian kecepatan transfer data [1]. Kecepatan data tersebut disebut sebagai baud rate. Terminal serial port pada PC berupa konektor DB-9 male.
Hampir semua alat digital yang digunakan memerlukan salah satu dari level logika TTL atau CMOS. Untuk itu diperlukan suatu RS-232 level converter yang berguna mengubah level RS-232 ke bentuk tegangan 0 V dan 5 V. salah satu bentuk lain dari RS-232 level converter adalah MAX-232. IC ini mempunyai 4 buah inverter, yaitu 2 inverter untuk mengubah level logika TTL/CMOS ke level logika RS-232 dan dua inverter untuk mengubah level logika RS-232 ke level logika TTL/CMOS.
Gambar 2.7 Informasi pin MAX 232
PERANCANGAN ALAT
3.1 Diagram Kotak Pengendali Putaran Arah Rumah pada Pemodelan Rumah Pintar
Diagram kotak dari Pengendali Putaran Arah Rumah pada Pemodelan Rumah Pintar dapat ditunjukkan pada gambar dibawah ini:
Gambar 3.1 Diagram Kotak Pengendali Putaran Arah Rumah Pada Pemodelan Rumah Pintar PC dalam hal ini berlaku sebagai master control yang berfungsi untuk memberikan input dari GUI (Graphical User Interface), user memberikan perintah untuk kemudian diteruskan kepada mikrokontroler untuk kemudian proses pengendalian dilakukan. Sebaliknya, user juga akan menerima tampilan berhasil atau gagalnya suatu perintah dari PC.
Seperti dijelaskan pada dasar teori bahwa antarmuka berfungsi sebagai perantara/penghubung antara PC dan mikrokontroler. Dalam hal ini juga untuk
mengubah level logika antara kedua blok tersebut (PC dan mikrokontroler) dalam komunikasi serial.
Gambar 3.2 Gambar Pemodelan Rumah dan Koneksinya ke PC
Sensor posisi disini akan memberikan referensi kepada mikrokontroler tentang arah rumah pada saat ini. Sehingga mikrokontroler dapat menentukan kearah mana dan pada posisi mana motor harus berputar untuk mendapatkan posisi yang diinginkan. Setelah berputar, sensor ini juga akan memberikan informasi kepada mikrokontroler apakah posisi yang diinginkan tercapai. Gambar pemodelan rumah pintar dan koneksinya dapat dilihat pada gambar 3.2.
Setelah mendapatkan perintah, mikrokontroler akan mengendalikan ke arah mana semestinya motor DC berputar melalui driver motor DC, dalam hal ini driver yang digunakan adalah L293D. Motor DC secara tidak langsung akan memberikan umpan balik kepada sensor. Motor DC akan berputar dan menyebabkan sensor posisi mendeteksi perputaran dari motor DC yang kemudian akan memberi referensi kepada mikrokontroler.
Posisi rumah pada awal pengendalian sudah terlebih dahulu diatur menghadap arah utara sebagai posisi default-nya. Pengaturan ini dilakukan
dengan menggunakan kompas analog. Kompas ini juga digunakan untuk mendapatkan arah mata angin yang presisi untuk arah rumah yang lain. Untuk program, pengaturan posisi default dilakukan oleh PC.
3.2 Antarmuka RS232
Untuk berhubungan dengan serial port pada PC, tegangan pada mikrokontroler harus diubah dahulu dari standar TTL ke standar RS232.
Sebaliknya, serial port pada PC juga harus mengubah level tegangannya dari standar 232 ke standar TTL.
Untuk itu digunakan IC MAX232 yang memiliki 2 buah pengubah tegangan dari standar TTL ke standar RS232 dan 2 buah pengubah tegangan dari standar RS232 ke standar TTL. Pada IC MAX232 ini perlu ditambahkan beberapa kapasitor untuk menunjang fungsinya sebagai pengubah level tegangan.
Koneksi dan besarnya kapasitor disesuaikan sesuai dengan datasheet.
Koneksi antara MAX232, mikrokontroler, dan PC ditunjukkan pada gambar 3.3.
Gambar 3.3 Koneksi MAX232, mikrokontroler, dan PC
3.3 Perancangan Pengendalian driver motor DC
Arus yang dihasilkan oleh mikrokontroler melalui keluaran dari pin-pin port 0 sebesar maksimal 15 mA, belum mencukupi untuk menggerakkan motor DC yang membutuhkan arus rata-rata sebesar 185mA. Untuk itu diperlukan suatu komponen penggerak motor DC yang mampu memenuhi kebutuhan besar arus yang semestinya dapat menggerakkan motor DC tersebut. Untuk itu digunakan suatu driver motor DC.
Driver motor DC yang digunakan disini adalah IC L293D. IC ini mampu menggerakkan suatu motor DC dengan arus keluaran mencapai level maksimum 1,2 A. dan hanya dengan masukan arus input minimum 0,1 mA untuk masukan nilai tinggi (high). Arus ini masih dibawah nilai arus keluaran dari mikrokontroler. Semua nilai-nilai tersebut terdapat pada datasheet masing-masing komponen.
Motor DC akan berputar searah jarum jam apabila sebelumnya masukan 1 (in1) pada driver mendapat logika tinggi (H) dan masukan 2 (in2) mendapat masukan berupa logika rendah (L) dari mikrokontroler. Sedangkan untuk putaran berlawanan jarum jam, terjadi hal yang sebaliknya. In1 mendapat masukan rendah dan in2 mendapat masukan tinggi. Dari kedua kondisi tersebut, enable pada driver harus terlebih mendapat masukan tinggi dari mikrokontroler.
Koneksi antara mikrokontroler, driver motor DC, dan motor DC ditunjukkan oleh gambar 3.4.
+5V
Gambar 3.4 Koneksi Mikrokontroler, L293D, dan Motor DC
3.4 Perancangan sensor posisi
Sensor posisi di sini yang digunakan adalah reed switch. Dengan posisi awal (default) dari model rumah pintar tersebut menghadap utara. Sensor reed switch mempunyai arus maksimal sampai 1 A. Namun pada perancangan ini menggunakan arus sebesar 10mA agar arus yang mengalir tidak melebihi batas arus maksimal dan mampu mampu mengalir pada mikrokontroler.
Gambar 3.5 Rangkaian Reed Swich
Cara kerja dari rangkaian pengaman jendela adalah reed switch yang akan ikut berputar sesuai dengan putaran rumah. Dari kondisi tersebut, apabila
magnet yang berputar mendekati salah satu dari dari reed switch maka arus akan mengalir melalui reed switch tersebut yang kemudian akan memberikan referensi kepada mikrokontroler tentang posisi sensor reed switch yang ON.
3.5 Perancangan Mikrokontroler
Selain Perancangan koneksi-koneksi mikrokontroler dengan perangkat yang lain. Juga dijelaskan perancangan mikrokontroler tersebut sendiri.
Mikrokontroler juga membutuhkan adanya osilator dan adanya rangkaian reset yang digunakan untuk menset kembali mikrokontroler ke keadaan semula.
3.5.1 Rangkaian Osilator
Mikrokontroler mempunyai rangkaian osilator internal (on chip oscillator) yang merupakan sumber clock bagi CPU. Untuk dapat menggunakan rangkaian osilator dalam chip, ditambahkan 1 buah kristal dan 2 buah kapasitor pada pin XTAL dan pin XTAL2 (pin 18 dan 19)[1]. Rangkaian ini menggunakan kristal 12 MHz dan 2 buah kapasitor 30 pF sehingga frekuensi detak pada CPU adalah 12 MHz.
12MHz
Gambar 3.6 Rangkaian Osilator
3.5.2 Rangkaian Reset
Rangkaian ini digunakan untuk mereset mikrokontroler pada saat catu daya dihidupkan. Keadaan reset pada mikrokontroler diperoleh apabila pin reset diberi logika tinggi [1]. Waktu reset tersebut dihitung dengan rumus T=RC. Waktu reset 100ms dengan C=10uF aliran arus mengalir dari Vcc melalui resistor 1kΩ menuju kaki reset:
54
Gambar 3.7 Rangkaian Reset
3.6 Perancangan Perangkat Lunak
Mikrokontroler dapat bekerja bila dimasukkan instruksi-instruksi yang diprogramkan. Program dalam perancangan ini terdiri dari bagian program utama dan program sub rutin penggerak motor DC. Program utama adalah program rutin yang mencakup seluruh kerja dari program. Mulai dari komunikasi dengan PC sampai dengan bergeraknya motor DC. Sedangkan sub rutin penggerak motor DC mencakup pengolahan data dari PC sampai pada keputusan-keputusan dari mikrokontroler yang harus diambil tentang berputarnya motor DC.
3.6.1 Rutin Utama Perangkat Lunak pada Mikrokontroler
.
Gambar 3.8 Diagram Alir Utama Perangkat Lunak Pada Mikrokontroler
Rutin utama perangkat lunak pada mikrokontroler akan menginisialisasi fasilitas-fasilitas yang akan digunakan pada mikrokontroler. Mikrokontroler akan memulai rutin untuk transfer data secara serial dari komputer ke mikrokontroler. Setelah transfer selesai, data tersebut akan diolah oleh mikrokontroler yang selanjutnya digunakan untuk menggerakkan motor DC.
Diagram alir rutin utama perangkat lunak pada mikrokontroler ditunjukkan pada gambar 3.8
3.6.2 Subrutin Penggerak Motor DC
Sub rutin penggerak ini diawali dengan inisialisasi komunikasi serial antara PC dan mikrokontroler. Pada komunikasi serial ini terlebih dahulu harus diatur dua hal terlebih dahulu. Yaitu menentukan mode serial yang akan digunakan dan menentukan baud rate. Penentuan mode serial dilakukan dengan mengisi register SCON.
Pada perancangan ini mode serial yang digunakan adalah mode 1. yaitu menggunakan 8 UART dengan baud rate yang dapat diatur.
Pada mode ini, komunikasi data dilakukan secara 8 bit data asinkron, yang terdiri dari 10 bit. Yaitu 1 bit start, 8 bit data, dan 1 bit
Pada mode ini, komunikasi data dilakukan secara 8 bit data asinkron, yang terdiri dari 10 bit. Yaitu 1 bit start, 8 bit data, dan 1 bit