Professional Documents
Culture Documents
#include <stdio.h>
#include <reg51.h>
#include <absacc.h>
void INITPPI(){
XBYTE [Pcont] = 0x90; // PA sbg input, PB dan PC sbg Output
}
void maju () {
int I;
for(I=1;I<=13;I++){ // memutar motor stepper sebesar 93,6 drajat
XBYTE [PB] =0x18;
DELAY (2200);
XBYTE [PB] =0x24;
DELAY (2200);
XBYTE [PB] =0x42;
DELAY (2200);
XBYTE [PB] =0x81;
DELAY (2200);
}
}
void mundur() {
int I;
for(I=1;I<=13;I++){ // memutar motor stepper sebesar 93,6 drajat
XBYTE [PB] =0x81;
DELAY (2200);
XBYTE [PB] =0x42;
DELAY (2200);
XBYTE [PB] =0x24;
DELAY (2200);
XBYTE [PB] =0x18;
DELAY (2200);
}
}
void majubb () {
int I;
for(I=1;I<=336;I++){ // maju sejauh 1 meter
XBYTE [PB] =0x18;
DELAY (2200);
XBYTE [PB] =0x24;
DELAY (2200);
XBYTE [PB] =0x42;
DELAY (2200);
XBYTE [PB] =0x81;
DELAY (2200);
}
}
void kanan() {
int I;
for(I=1;I<=3;I++){ // memutar motor stepper sebesar 93,6 drajat
XBYTE [PB] =0x11;
DELAY (2200);
XBYTE [PB] =0x22;
DELAY (2200);
XBYTE [PB] =0x44;
DELAY (2200);
XBYTE [PB] =0x88;
DELAY (2200);
}
}
void kiri () {
int I;
for(I=1;I<=3;I++){ // memutar motor stepper sebesar 93,6 drajat
XBYTE [PB] =0x88;
DELAY (2200);
XBYTE [PB] =0x44;
DELAY (2200);
XBYTE [PB] =0x22;
DELAY (2200);
XBYTE [PB] =0x11;
DELAY (2200);
}
}
void diam () {
for (;;){
}
}
if (ired == 1){
if ( suka > suki ){ // untuk mendetekasi kamar sebelah kanan robot
putarka90();
majubb(); // maju 1 meter
kamar ();
putarka90();
}
else if ( suki > suka ){// utk mendetekasi kamar sebelah kiri robot
putarki90();
majubb(); // maju 1 meter
kamar ();
putarki90();
}
else if (sute <= 200){ // jika mendeteksi ujung ruang/gedung
putar180();
diam ();
}
else {
maju();
}
}
else if (suka >= suki && sute <= suki && sute <= 150 ){
putarka90 ();
}
else {
maju();
}
}
}
}
if (ired == 1){
if ( suka > suki ){ // untuk mendetekasi kamar sebelah kanan robot
putarka90();
majubb(); // maju 1 meter
kamar ();
putarka90();
}
else if ( suki > suka ){ // utk detekasi kamar sebelah kiri robot
putarki90();
majubb(); // maju 1 meter
kamar ();
putarki90();
}
else {
maju();
}
}
else if (suka >= suki && sute <= suki && sute <= 150 ){
putarka90 ();
}
else {
maju();
}
}
}
}