Pemrograman PID

Pemrograman yang menggunakan kendali PID, fungsi interup dan output untuk servo

Membuat Tampilan Warna Di CodeBlocks

Baiklah kali ini saya akan shared gimana caranya membuat tampilan hasil program pada Code::Blocks menjadi warna seperti...

Sensor Encoder

Bagaimana cara mengetahui kecepatan pergerakan Robot, posisi Robot dari posisi sebelumnya, menggambarkan pergerakan Robot pd komputer, atau mengatur agar Robot brada pd posisi tertentu. Salah satu jawabannya yaitu dengan sensor Encoder, cara lain menggunakan sensor kompas ato menggnkn prinsip kerja GPS...

This is Software Konversi Bilangan

Bagi Sobat yang mau download software ini silakan klik ini. Dan software ini tidak begitu sulit kok untuk digunakan oleh pemula atau pun siapa pun. ^_^

CircuitMaker 6 PRO

Ini adalah sebuah software untuk mensimulasikan sebuah rangkaian. Read more...

Sabtu, 20 Agustus 2011

Konversi Bilangan Dalam Program Bahasa C

Baiklah kali ini saya ingin shared nih... Yaitu membuat konversi bilangan dalam program C yang di buat menggunakan codeblocks. Konversi bilangan ini terdiri dari Bilangan Biner, Bilangan Desimal, Bilangan Oktal dan Bilangan Heksadesimal. Dimana bilangan Biner ini terdiri dari angka 1 dan 0. Desimal terdiri dari angka 0,1,2,3,4,5,6,7,8 dan 9. Oktal terdiri dari angaka 0,1,2,3,4,5,6 dan 7. Heksadesimal terdiri dari 0,1,2,3,4,5,6,7,8,9,a,b,c,d,e dan f.
contoh: Biner dari : 1010
maka Desimalnya : 10
Oktalnya : 12
Heksadesimalnya : a

Dibawah ini adalah tampilan menu program untuk memilih yang saya buat:

Dan bagi sobat yang ingin download aplikasi dan list programnya silahkan KLIK_SINI

Dibawah ini list programnya dalam program C:

#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<windows.h>
main()
{
int d,i,c,a,e,f;
char h;
awal:
system("cls");
SetConsoleTextAttribute (GetStdHandle(STD_OUTPUT_HANDLE),10);
printf("\n\t");
for(f=0;f<=66;f++){printf("%c",25);}
printf("\n\t");
for(f=0;f<=66;f++){printf("%c",219);}
printf("\n\t");
for(f=0;f<=66;f++){if (f==0||f==65){printf("%c",219);}printf(" ");}
printf("\n\t%c SELAMAT DATANG DIPROGRAM KONVERSI BILANGAN BY AMIRUL HUDA %c\n\t",219,219);
for(f=0;f<=66;f++){if (f==0||f==65){printf("%c",219);}printf(" ");}
printf("\n\t%c \t JURUSAN/NIM = Teknik Elektronik/1010117421001 %c\n\t",219,219);
for(f=0;f<=66;f++){if (f==0||f==65){printf("%c",219);}printf(" ");}
printf("\n\t");
for(f=0;f<=66;f++){printf("%c",219);}
printf("\n\t%c%c 1. Biner =%c Desimal, Oktal dan Heksadesimal\t %c%c\n",219,219,16,219,219);
printf("\t %c%c 2. Desimal =%c Oktal, Heksadesimal dan Biner %c%c\n",219,219,16,219,219);
printf("\t %c%c 3. Oktal =%c Desimal, Heksadesimal dan Biner %c%c\n",219,219,16,219,219);
printf("\t %c%c 4. Heksadesimal =%c Desimal, Oktal dan Biner\t %c%c\n",219,219,16,219,219);
printf("\t %c%c 5. Mengakhiri Program ^_^\t\t\t %c%c\n\t ",219,219,219,219);
for(f=0;f<=58;f++){printf("%c",219);}
printf("\n\nProgram ini hanya untuk mengkonversikan bilangan bulat saja tidak untuk pecahan.");
printf("\nBilangan Biner \t\t= terdiri dari angka 1 dan 0\nBilangan Desimal \t= terdiri dari angka 0,1,2,3,4,5,6,7,8 dan 9");
printf("\nBilangan OKtal \t\t= terdiri dari angka 0,1,2,3,4,5,6 dan 7");
printf("\nBilangan Heksadesimal \t= terdiri dari angka 0,1,2,3,4,5,6,7,8,9,a,b,c,d,e \t\t\t\t dan f");
printf("\n\n\t\t %c Masukkan Angka Pilihan Anda (1/2/3/4/5)= ",2); scanf("%d",&e);
if(e==1)
{printf("\n%c 1. Masukkan bilangan BINER (max 10bit)= ",1);scanf("%d",&d);
desimal(d);
printf("\n\n");
oktal(d);
printf("\n");
heksa(d);
printf("\n");
printf("Apakah anda ingin mengulang <Y/N>= ");scanf("%s",&h);
if(h=='Y'||h=='y') goto awal; else goto akhir;}
if(e==2){
printf("\n\n%c 2. Masukkan bilangan DESIMAL= ",1);
scanf("%d",&i);
printf("\n =%cOktalnya adalah \t\t\t= %o",16,i);
printf("\n\n =%cHeksadesimalnya adalah \t\t= %x",16,i);
printf("\n\n =%cBinernya adalah \t\t= ",16);
for(a=0;a<=10;a++)
{c=i%2;
i=i/2;
printf("%d",c);}
printf(" %c=Dibaca dari kanan kekiri",17);
printf("\nApakah anda ingin mengulang <Y/N>= ");scanf("%s",&h);
if(h=='Y'||h=='y') goto awal; else goto akhir;}
if(e==3)
{printf("\n\n%c 3. Masukkan bilangan OKTAL = ",1);
scanf("%o",&i);
printf("\n =%cDesimalnya adalah \t\t= %d",16,i);
printf("\n\n =%cHeksadesimalnya adalah \t\t= %x",16,i);
printf("\n\n =%cBinernya adalah \t\t= ",16);
for(a=0;a<=10;a++)
{c=i%2;
i=i/2;
printf("%d",c);}
printf(" %c=Dibaca dari kanan kekiri",17);
printf("\nApakah anda ingin mengulang <Y/N>= ");scanf("%s",&h);
if(h=='Y'||h=='y') goto awal; else goto akhir;}
if(e==4)
{printf("\n\n%c 4. Masukkan bilangan HEKSADESIMAL = ",1);
scanf("%x",&i);
printf("\n =%cDesimalnya adalah \t\t= %d",16,i);
printf("\n\n =%cOktalnya adalah \t\t= %o",16,i);
printf("\n\n =%cBinernya adalah \t\t= ",16);
for(a=0;a<=10;a++)
{c=i%2;
i=i/2;
printf("%d",c);}
printf(" %c=Dibaca dari kanan kekiri",17);
printf("\nApakah anda ingin mengulang <Y/N>= ");scanf("%s",&h);
if(h=='Y'||h=='y') goto awal; else goto akhir; }
if(e==5)
akhir:
{printf("\n\n\t ");
for(f=0;f<=57;f++){printf("%c",30);}
printf("\n\t %c TERIMAKASIH TELAH MENGGUNAKAN PROGRAM INI ^_^ %c",31,31);
printf("\n\t %c SALAM SEHAT DAN SUKSES SELALU BY AMIRUL HUDA %c",30,30);
printf("\n\t ");
for(f=0;f<=57;f++){printf("%c",31);}}
getch();
}
int desimal(int d)
{
int e,f,g,h;
h=0;
for(e=0;e<=35;e++)
{ f=d%10;
d=d/10;
g=f*pow(2,e);
h=h+g;}
printf("\n =%cDesimalnya adalah\t\t= %d ",16,h);
}
int oktal(int d)
{
int e,f,g,h,a,b;
h=0;
printf(" =%cOktalnya adalah \t\t= ",16);
for(a=0;a<=10;a++)
{ b=d%1000;
for(e=0;e<=35;e++)
{ f=b%10;
b=b/10;
g=f*pow(2,e);
h=h+g;}
d=d/1000;
printf("%d",h);
h=0;}
printf(" %c=Dibaca dari kanan kekiri",17);
}
int heksa(int d)
{
int e,f,g,h,a,b;
h=0;
printf(" =%cHeksadesimalnya adalah \t= ",16);
for(a=0;a<=10;a++)
{ b=d%10000;
for(e=0;e<=35;e++)
{ f=b%10;
b=b/10;
g=f*pow(2,e);
h=h+g;}
d=d/10000;
if(h==10)
{
printf("a");
}
else if(h==11)
{
printf("b");
}
else if(h==12)
{
printf("c");
}
else if(h==13)
{
printf("d");
}
else if(h==14)
{
printf("e");
}
else if(h==15)
{
printf("f");
}
else
printf("%d",h);
h=0;}
printf(" %c=Dibaca dari kanan kekiri",17);
}



Kamis, 28 Juli 2011

CircuitMaker 6 PRO

Hai sob!!! apa kabar ni semuanya???? ^_^
Kali ini saya ingin shared sebuah aplikasi Elektronika nih, yaitu CircuitMaker.
CirkuitMaker adalah sebuah aplikasi yang digunakan untuk mensimulasikan rangkaian dan juga bisa juga untuk membuat layout. Ini dia tampilan saat dijalankan:


Disini berbagai macam juga layout yang dihasilkan dapat di CirkuitMaker, protel dan lain-lain.Kalau sobat mau download silahkan KLIK DISINI!

Sabtu, 23 Juli 2011

TRAXMAKER 3 PRO

 Trakmaker 3 PRO adalah sebuah software untuk membuat layout di PCB. Hal ini digunakan sebagai pengganti ketika kita membuat layout dengan menggaris-garis jalur diPCB. Tapi dengan adanya software ini kita bisa membuat layout dengan baik dan rapi. Akan tetapi prosesnya ya agak lama... kita harus print terlebih dahulu kemudian memfoto kopi ke kertas transparan atau kalender dan distrika di PCB. Ini tampilan softwarenya:

Bagi sobat yang tertarik dengan Software ini bisa download

Selasa, 05 Juli 2011

Rangkaian Kendali Lampu Jalan Otomatis Dengan LDR

Skema Rangkaian
Jalur Rangkaian dan Letak Rangkaian
Letak Rangkaian
Untuk letak rangkaian dan Jalur rangkaian terserah sesuai keinginan. Tapi jangan sampai salah dengan skema rangkaian. Cara kerja rangkaian ini adalah ketika delap (nilai tahanan LDR besar), arus listrik yang lewat kecil. karena arus listrik kecil dan bernilai kurang dari tegangan aktif transistor, arus listrik tidak dilewatkan, rangkaian lampu AC close, dan lampu menyala.
Ketika terang (nilai tahanan LDR kecil), arus listrik yang lewat besar. karena arus listrik yang lewat besar dan bernilai lebih besar dari tegangan pada daerah aktif transistor, arus listrik dilewatkan, relai dalam kondisi ON, Rangkaian lampu AC open, dan lampu padam.

KOMPONEN-KOMPONEN
  • LDR
  • R2                                        : 1Kohm
  • R3                                        : 1Kohm
  • R4                                        :  Potensiometer 10Kohm
  • TRANSISTOR T1&T2        : 2N2222
  • RELAI                                  : 9volt
  • LAMPU PIJAR 220V AC    
  • F1                                        : Sekring 1 A
  • Catu Daya                            : 9 Vdc
Sumber: Buku contoh-contoh Rangkaian elektronika

Rabu, 29 Juni 2011

Software Menghitung Nilai Resistor

Hai sob, kali ini saya ingin shared ni... bagi sobat-sobat yang lagi kesusahan untuk mengetahui nilai sebuah resistor atau tidak tahu berapa tahanan resistor tersebut serta persen errornya. Nah disini ada sebuah software ni, dimana software ini hanya memilih warna apa saja yang diinginkan dan ada juga pemilihan berapa gelang warna yang sobat inginkan. nah ini contoh tampilan softwarenya:
Nah seperti ini lah tampilannya. dan hasil nilai tahanan resistor itu akan muncul di kolom SPECIFY BAND COLOURS. Bagi sobat yang mau download bisa Disini.

Minggu, 10 April 2011

Creating a Line Tracking Robot

In general, line tracking robots can be designed with reference tothe main component is a constituent line tracking sensor,comparator, motors and motor as diver.
1. SENSOR
Sensors that can be used to manufacture line tracking isphotodiode. In order photodiode can be used as a sensor, thephotodiode dibias reverse. The workings of the photodiode, the resistance changes according to the intensity of light received by it,because actually a photodiode to encourage the free electrons tocross the junction pn junction, and causes the flow to the sensorcircuit mengalir.berikut
2. COMPARATOR Comparator is an application of the op-amp (operational amplifier), which has the function of comparing two given potential.The workings of the comparator device compares the potential difference is provided at input terminals A (+) and B (-). If the voltage is A> B then out to saturation, if the voltage of A <B or A = B then out = 0. IC LM339 comparator is used with pin-out configuration is shown in the picture above. In IC packaging LM339 comparator, there are 4 modules at once. Thus allows us to expand. 

3. MOTOR DRIVER Driver motor function as tools that served to carry both motor and set the direction of motor rotation speed motor. Kinds of motor drivers are: · Driver Control Voltage, with the driver controls the motor voltage using voltage levels directly to regulate the speed of motor rotation.· Drivers PWM, the PWM control we can set the motor speed to provide pulses with a fixed frequency to the motor, while that used to regulate the speed of the pulse duty cycle is given. · Driver H, H-type drivers are used to control the motor rotation can be CW or CCW direction of rotation. Driver is basically using 4 pieces of transistors for switching of motor rotation and in turn to reverse the polarity of the motor.

4. MOTOR Elekrik DC motor is a motor that uses DC voltage magnitude convert electricity into mechanical quantities. DC motors are generally used on small jobs and more suitable for use in applications - electronics applications such as robot cars. DC motor has two electrical terminals. By providing different voltages to the second terminal of the motor will be able to rotate in one direction and when the polarity of the voltage is reversed, the direction of motor rotation will be reversed as well. The polarity of the applied voltage at two terminals determine the direction of motor rotation, while the applied voltage difference determines the motor speed.

Rabu, 30 Maret 2011

Sirine Polisi Dan Ambulance


Rangkaian sirine polisi atau ambulance akan menghasilkan suara yang hampir mirip dengan sirene polisi atau ambulance dan bisa dipasang di mobil atau sepeda motor.

 Rangkaian ini terdiri dari 2 buah IC NE 555 yang berfungsi sebagai multivibrator astabil yang frekuensi dapat diatur untuk bermain VR1 dan Vr2,

 sehingga dapat menghasilkn beragam suara.
Image result for rangkaian sirine



Gambar Skema Rangkaian Sirine Polisi

Saya sudah membuktikan rangkaian ini memang benar bisa menghasilkan suara seperti sirine polisi atau ambulance, sehingga kita dapat membuat sirine polisi atau ambulance. Jika output suara kurang keras , maka kita dapat menambahkan rangkaian brace power amplifier.

Senin, 13 Desember 2010

Pembagi Tegangan Dan Pembagi Arus

     Pada perinsipnya, setiap paralel dari sebuah cabang memiliki tegangan yang sama. dan setiap seri dari sebuah rangkaian memiliki arus yang sama.
Prinsip pembagi tegangan adalah resistansi yang terhubung dari tegangan ke ground dibagi resistansi tegangan di jalur itu kemudian dikali tegangan input. yang perlu diperhatikan dalam pembagi tegangan, tegangan di resistansi yang besar lebih besar tegangannya dari pada tegangan di resistansi kecil, berlaku di resistor seri.
Sementara pada pembagi arus, arus di resistansi besar, lebih kecil dibandingkan arus di resistansi kecil, pada resistansi paralel. Untuk mencari IR1 pada rangkaian paralel adalah IR1=(R2/(R1+R2))*Itot.

Minggu, 12 Desember 2010

MIKROKONTROLLER

AI.            TEORI PENDAHULUAN
1.1  MIKROKONTROLLER
Adalah sebuah single chip yang  di dalam-nya sudah berisi
- CPU ( Central Processing Unit )
- RAM (Random Acces Memory)
- ROM (Read Only Memory)
- I/O (Unit Input / Output)
- Timer/Counter , Serial COM Port.

Blok Diagram MIKROKONTROLLER
Mikrokontrller diproduksi mulai  ± tahun 1976 dengan INTEL  yang produksinya type 8746 ( MCS-48) yang di dalamnya sdh ada 1 KByte EPROM, 64 Byte RAM, 27 I/O dan 8 bit Timer. <div class="fullpost">


1.2 PERANGKAT LUNAK MIKROKONTROLER MCS-51
         Sebuah mikrokontroler tidak akan dapat bekerja bila tidak diberikan program kepadanya.
         Sistem kerja mikrokontroler dapat dirubah setiap saat sesuai dengan program yang diberikan kepadanya.
         Instruksi-instruksi perangkat lunak berbeda untuk masing-masing jenis mikrokontroller.
         Sebuah mikrokontroler tidak dapat memahami instruksi-instruksi yang berlaku pada mikrokontroler jenis lain.
            Contoh:
                        Mikrokontroler buatan Intel dengan
                       mikrokontroler buatan Zilog memiliki
                        perangkat instruksi yang berbeda
         Instruksi-instruksi pada mikrokontroler dikenal sebagai bahasa pemrograman sistem mikrokontroler

1.3 berbagai Tipe Mikrokontroler
1.3.1 Mikrokontroler ATMEL
            Mikrokontroler keluaran ATMEL dapat dikatakan sebagai mikrokontroler terlaris   dan termurah saat ini. Chip mikrokontroler ini dapat diprogram menggunakan port paralel atau serial. Selain itu, dapat beroperasi hanya dengan 1 chip dan beberapa komponen dasar seprti kristal, resitor dan kapasitor

1.3.2 MikrokontrolerPIC
            PIC ialah keluarga mikrokontroler tipe RISC buatan Microchip Technology. Bersumber dari PIC1650 yang dibuat oleh Divisi Mikroelektronika General Instruments. Teknologi Microchip tidak menggukana PIC sebagai akronim,melaikan nama brandnya ialah PICmicro. Hal ini karena PIC singkatan dari Peripheral Interface Controller, tetapi General Instruments mempunyai akronim PIC1650 sebagai Programmabel Intelligent Computer.
PIC pada awalnya dibuat menggunakan teknologi General Instruments 16 bit CPU yaitu CP1600. * bit PIC dibuat pertama kali 1975 untuk meningkatkan performa sistem peningkatan pada I/). Saat ini PIC telah dilengkapi dengan EPROM dan komunikasi serial, UAT, kernel kontrol motor dll serta memori program dari 512 word hingga 32 word. 1 Word disini sama dengan 1 instruki bahasa assembly yang bervariasi dari 12 hingga 16 bit, tergantung dari tipe PICmicro tersebut.

1.3.3 Maxim
            Maxim merupakan salah satu produsen chip yang fokus pada komponen digital dan kompunikasi seperti mikrocontroler, akuisisi data dan komponen RF (Radio Frekwensi). Maxim cukup inovatif dengan meluncurkan mikrokontroler yang mendukung jaringan komputer antara lain 80C400 dengan kecepatan tinggi. untuk melihat berbagai produk dan mendownload datasheet, atau contoh aplikasi. Beberapa chip mikrokontroler juga mendukung penggunakan compiler berbasis bahsaa C antara lai softwaqre Keil yang berfungsi sebagai compiler C , macro assemblers, real-time kernels, debuggers, simulator pada lingkungan IDE (Interface Design Environment) yang bagus.

II.         TUJUAN PRAKTIKUM
1. Membuat led berjalan putar kiri dengan menggunakan Mikrokontroler Atmel AT89S51dan Bahasa Assembler.
2. Memahami pelajaran yang telah diberikan mengenai mikrokontroler
3. Membuktikan apakah program yang kita buat sesuai dengan yang kita inginkan.

III.     LANGKAH KERJA
  1. Tulis program mikrokontroler di notepad.
  2. Simpan file tersebut dengan akhiran .asm (coba.asm) pada folder yang didalamnya terdapat aplikasi asm51 + mod.
  3. Kemudian compile file tersebut dengan aplikasi asm51 yang terdapat difolder penyimpanan file program yang anda gunakan.
  4. Periksa apakah ada data yang salah dengan cara, buka file yang berakhiran .lst
  5. Jika sudah tidak ada kesalahan lagi, simulasikan data tersebut menggunakan topview simulator
  6. Mendownload data tersebut ke IC, dapat dilakukan dengan cara sebagai berikut:
a. Hubungkan DT-HiQ AT89 USB ISP ke target board.
b. Ambil kode dengan perintah “Load File”. Untuk melakukan perintah “Load File”, lakukan salah satu hal berikut:
·          Klik pada tombol Load File
·         Klik File | Load File
·         Tekan Ctrl + L dan buka file Intel-hex atau file biner.
c. Pilih dan deteksi IC target dengan perintah “Device Select”. Untuk melakukan perintah “Device Select”, klik Options | Device Select.
d. Centang semua opsi pada Options | Auto Programming Options.
e. Programlah IC target dengan perintah “Auto”. Untuk melakukan perintah “Auto”, lakukan salah satu hal berikut:
·         Klik tombol Auto Programming
·         Klik Instructions | Auto
·         Tekan Ctrl + A
f. Jika kita ingin memasukkan program ke IC maka pilih icon WRITE FLASH, dan jika kita ingin melihat apakah data sudah masuk maka klik icon READ FLASH.
g. Proses pemrograman akan ditampilkan pada status bar. Saat pemrograman sudah selesai, tulisan “Verify Complete” akan ditampilkan pada status bar. Jika terjadi masalah pada saat instalasi atau penggunaan, bacalah panduan troubleshooting pada manual terlebih dahulu untuk mencari solusinya.

IV.         TABLE KEBENARAN

time
D7
D6
D5
D4
D3
D2
D1
D0
T0
1
1
1
1
1
1
1
0
T1
1
1
1
1
1
1
0
1
T2
1
1
1
1
1
0
1
1
T3
1
1
1
1
0
1
1
1
T4
1
1
1
0
1
1
1
1
T5
1
1
0
1
1
1
1
1
T6
1
0
1
1
1
1
1
1
T7
0
1
1
1
1
1
1
1


V.     LISTING PROGRAM
Secara umum perintah dalam bahasa assembly disusun sebagai berikut:
[label:] mnemonic [operand1] [,operand2] [,operand3] [;komentar]
  • Label
Sifatnya opsional. Label digunakan sebagai penanda lokasi baris perintah. Label yang digunakan adalah kata apa saja terserah kita. Label selalu diikuti oleh titik dua (:) dan tidak boleh diawali dengan angka.

  • Mnemonic
Adalah sebuah singkatan yang mudah diingat yang menunjukkan arti perintah tertentu. Berada dengan label, mnemonic sifatnya sudah ditetapkan.

  • Operand
Adalah parameter tambahan yang mengikuti mnemonic. Jumlahnya tergantung mnemonic-nya.

  • Komentar
Sifatnya juga opsional. Bagian ini tidak akan diproses oleh assembler, tetapi berguna untuk keperluan dokumentasi agar program menjadi lebih mudah dimengerti.


Contoh Listing Program
$mod51
            org       00h
            mov     a, #11111110b
loop:    mov     P1, a
            rl          a
            mov     R7, #10
L1:       mov     R6, #255
L2:       mov     R5, #255
L3:       djnz     R5, L3
            djnz     R6, L2
            djnz     R7, L1
            sjmp     loop
            end
setiap perintah akan dilaksanakan secara urut dari atas ke bawah, terkecuali ada perintah untuk melompat.

VI.  PENJELASAN PROGRAM
Listing program:
$mod51
org       00h
mov     a, #11111110b
loop:    mov     P1, a
rl          a
mov     R7, #10
L1:       mov     R6, #255
L2:       mov     R5, #255
L3:       djnz     R5, L3
djnz     R6, L2
djnz     R7, L1
sjmp     loop
end

Penjelasan program diatas:
Perintah mov a, #11111110b →berarti: mengisi register a (accumulator) dengan bilangan 11111110b (b menunjukkan biner).
Baris ini tidak memiliki label dan diikuti oleh dua operand. Mov sendiri adalah singkatan dari move yang berarti memindahkan. Namun demikian pengertian sebenarnya bukanlah memindahkan, melainkan menyalin, yaitu: menyalin apa saja yang terdapat pada operand2 ke operand1. oleh karena itu perintah mov selalu diikuti oleh dua operand. Operand pertama adalah tujuan, sedangkan operand kedua adalah sumber.
               Perintah mov P1, a →artinya: mengirim data pada register a ke P1.
Baris perintah ini memiliki label, yaitu loop:  pemberian label pada baris perintah ini diperlukan untuk hal yang akan diterangkan nanti. Perintah ini menyebabkan LED lainnya padam. Mengapa........?...
Jawab: karena sebelum register a sudah diisi dengan bilangan 11111110b juga. Kita tahu bahwa angka 1 pada P1 menyebabkan LED padam dan angka 0 menyebabkan LED menyala. (hal ini dinamakan aktif low).
               Perintah berikutnya adalah r1 a →artinya: memutar isi register a ke kiri (rl= rotate left).
Jika sebelum perintah ini, isi register a adalah 11111110b, maka setelah perintah ini isi register a akan menjadi 11111101b. Jika kemudian dilakukan perintah rl lagi, isi register a akan menjadi 11111011b. Begitu seterusnya. Perintah rl selalu diikuti oleh sebuah operand dan selalu register a sebagai operandnya. Perintah yang mirip dengan ini adalah perintah rr a yang artinya memutar isi register a kekanan (rr = rotate right). Enam baris perintah berikutnya hanya digunakan untuk tujuan penundaan (delay).
               Perintah mov R7, #10 akan menyebabkan register R7 dengan bilangan 10.
Sedangkan perintah djnz R5, L3 berarti mengurangi register R5 dengan 1, kemudian melompat ke baris perintah yang diberikan label L3, jika isinya tidak sama dengan 0 (nol). (djnz = decrease and jump if not zero). Kita lihat bahwa baris perintah yang memiliki L3 adalah baris perintah itu sendiri.
Sedangkan baris perintah diatasnya adalah mov E5, #255 yang berarti sebelum masuk perintah djnz R5, L3, R5 berisi 255, hal ini berarti bahwa perintah akan berputar-putar pada baris itu saja sampai 255 kali sebelum turun untuk melaksanakan baris perintah dibawahnya, yaitu pada saat R5 sudah sama dengan nol (0). Anda sudah pasti bisa menebak bahwa perintah djnz R6, L2 akan mengurangi isi register R6 dengan satu dan melompat kebaris perintah yang diberikan label L2, jika isi register R6 tidak sama dengan nol (0). Baris perintah tersebut adalah baris perintah pengisian R5 yang kemudian diikuti pada perputaran pada baris perintah djnz R5, L3 sebanyak 255 kali.
Dengan demikian keenam baris ini merupakan barisperintah yang akan berptuar-putar sebanyak 255 kali putaran (menggunakan R5) dikalikan 255 kali putaran (menggunakan R6) dikalikan lagi dengan 10 kali putaran menggunakan R7. Setelah mikrokontroller menjalankan perintah yang hanya berputar-putar 255x255x10, akhirnya mikrokontroller akan bertemu dengan sjmp loop. Perintah ini akan menyebabkan urutan pelaksanaan melompat ke baris perintah yang memiliki label loop (sjmp = short jump), yaitu perintah mov P1, a. Baris terakhir adalah end. Baris ini tidak termasuk dalam baris perintah, tetapi disebut dengan direktif. Direktif end memberitahukan kepada assembler bahwa program sudah selesai.
               Arti dari keseluruhan program adalah sebagai berikut: ”Isi P1 dengan register a, kemudian putar kekiri isi register a, lakukan penundaan dan kemudian ulangi. Akan tetapi sebelum perulangan tersebut, isi register a dengan data 11111110b”.
VII.         KESIMPULAN
Setelah melalui tahap perancangan dan pengujian system maka dapat diambil kesimpulan sebagai berikut :
1. Untuk mengubah supaya perputaran kita menggunakan perintah instruksi (RL= rotate left). dan (RR= rotate right).
2. Kita dapat mengubah hidup dan matinya lampu dengan cara mengganti angka biner yang dimasukan (ex:mov a, #11111110b menjadi mov a, #11111100b).
3. Kita dapat mengatur waktu pergantian lampu, dengan cara mengubah angka pada mov R5, mov R6 dan mov R7.
4. Dengan mengggunakan mikrokontroller AT89S51 kita dapat membuat apa saja yang menggunakan program sendiri, contoh: runing texs, led putar kiri, led putar kanan dan lain-lain.



VIII.     DAFTAR PUSTAKA
  • support@innovativeelectronics.com
  • Catatan mikrokontroler
  • Powerpoint Jurusan Teknik Elektro Industri Politeknik Elektronika Negeri Surabaya Institut Teknologi Sepuluh Nopember Surabaya 2007
  • Quick Start DT-HiQ AT89 USB ISP.pdf
  • http://akhathea.blogspot.com/2009/02/teknologi-mikrokontroler-terkini-pokok.html.
    </div>


Share

Twitter Delicious Facebook Digg Stumbleupon Favorites More