Universitas Kristen Maranatha
REALISASI ROBOT BIPEDAL BERBASIS AVR
YANG MAMPU MENAIKI DAN MENURUNI ANAK TANGGA
Disusun oleh :
Nama
: Yohanes Budi Kurnianto
NRP
: 0422155
Jurusan Teknik Elektro, Fakultas Teknik, Universitas Kristen Maranatha,
Jl. Prof.Drg.Suria Sumantri, MPH no.65, Bandung, Indonesia.
Email :
ABSTRAK
Saat ini sudah banyak robot diciptakan dengan kemampuan yang beragam,
diantaranya adalah robot humanoid. Robot humanoid adalah sebuah robot yang
memiliki bentuk dan sejumlah karakteristik yang menyerupai manusia, baik dalam
hal struktur maupun pergerakannya. Karakteristik yang cukup menarik dari robot
humanoid adalah kemampuan berjalan yang seperti manusia. Organ penting
utama yang menopang robot humanoid untuk berjalan adalah kaki, yang pada
umumnya berbentuk bipedal atau berkaki dua. Pembuktian tentang kemampuan
yang baik dari robot humanoid untuk berjalan sudah banyak dideskripsikan dalam
beberapa penelitian lain.
Pada tugas akhir ini, hal yang ingin direalisasikan adalah kemampuan
bergerak robot humanoid untuk menaiki dan menuruni anak tangga. Dalam
penelitian ini, robot dibuat dengan rangka dua kaki yang dibangun sampai
pinggang dan memiliki fungsi berjalan lurus, menaiki dan menuruni anak tangga.
Rangka tersebut dibuat dari alumunium yang bertujuan agar mempunyai berat
yang ringan namun tetap kokoh. Robot bipedal ini dikontrol dengan menggunakan
pengontrol mikro AT Mega 16. Dalam pergerakannya robot bipedal ini
menggunakan delapan motor servo sebagai aktuator. Robot ini juga dilengkapi
dengan dua buah sensor, yaitu sensor ultrasonik dan sensor gaya.
Berdasarkan percobaan-percobaan yang telah dilakukan pada sejumlah
lima buah anak tangga dengan ketinggian tiap anak tangga 2,5 cm, lebar
permukaan anak tangga 10 cm, maka terbukti robot bipedal ini dapat berjalan
lurus, menaiki serta menuruni anak tangga. Kemampuan tersebut dibuktikan
dengan presentasi keberhasilan uji berjalan sebesar 100 %, keberhasilan menaiki
anak tangga sebesar 83,33 %, dan keberhasilan menuruni anak tangga sebesar
73,33%.
Universitas Kristen Maranatha
REALIZATION OF BIPEDAL ROBOT BASED ON AVR
WHICH HAVE ABILITY TO STEP UP AND DOWN STAIRS
Composed by :
Name
: Yohanes Budi Kurnianto
NRP
: 0422155
Department of Electrical Engineering, Maranatha Christian University,
Jl. Prof.Drg.Suria Sumantri, MPH no.65, Bandung, Indonesia.
Email :
ABSTRACT
This moment there so many robots with variance ability have been
developed, including humanoid robot. Humanoid robot is a robot with shape and
characteristic like a human, either the overall structure or the motion itself. The
quite interesting characteristic of humanoid robot is its movement ability as
human. The supporting important organ of the humanoid robot to walk is feet, that
mainly bipedal or having two feet. Experiment toward the ability of humanoid
robot to walk or step forward has been described in some previously research.
In this final project, the thing want to be realized is the movement ability
of humanoid robot in stepping forward, going up and going down the stairs. In
this research, the robot has been made with two waist-high feet frame that
functioned to step forward, go up, and go down the stairs as well. The frame has
been constructed of aluminum in order to have a light weight but still sturdy. This
bipedal robot is controlled by the AT Mega 16 microcontroller. In its movement,
this bipedal robot using eight servo motors as actuator. This robot is also equipped
with two sensors, namely ultrasonic and forced sensor.
Based on the experiments have been done on five stairs with 2.5
centimeters high, and 10 centimeters surface wide, it is proven that this bipedal
robot can step forward, go up, and go down the stairs. The movement ability has
been proven by the successful percentage of walking test by 100%, of going up
the stairs test by 83,33%, and of going down the stairs by 73,33%.
Universitas Kristen Maranatha
DAFTAR ISI
ABSTRAK ... i
ABSTRACT ... ii
KATA PENGANTAR ... Error! Bookmark not defined.
DAFTAR ISI ... v
DAFTAR GAMBAR ... vii
DAFTAR TABEL ... ix
BAB I PENDAHULUAN ... 1
I.1
Latar Belakang ... 1
I.2
Identifikasi Masalah ... 2
I.3
Perumusan Masalah ... 2
I.4
Tujuan
... 2
I.5
Pembatasan Masalah ... 2
I.6
Spesifikasi Alat ... 2
I.7
Sistematika Penulisan ... 3
BAB II LANDASAN TEORI ... 4
II.1
Bipedalisme ... 4
II.1.1
Evolusi Bipedal ... 4
II.1.2
Bagian Penggerak Kaki ... 7
II.1.3
Konstruksi Robot Bipedal ... 9
II.2
Motor DC Servo ... 12
II.3
Sensor ... 17
II.3.1
Sensor Ultrasonik ... 17
II.3.2
Sensor Gaya ... 20
II.4
Pengontrol Mikro... 21
II.4.1
Pengenalan ATMEL AVR RISC ... 21
II.4.2
Pengontrol Mikro ATmega16 ... 22
II.4.2.1Fitur ATmega16 ... 22
II.4.2.2Konfigurasi Pin ATmega16 ... 23
II.4.2.3Blok Diagram ATmega16 ... 25
II.4.2.4General Purpose Register ATmega16... 27
II.4.2.5Peta Memori ATmega16 ... 27
II.4.2.6PWM (Pulse Width Modulation) ATmega16 ... 29
BAB III PERANCANGAN DAN REALISASI ... 32
III.1
Blok Diagram Sistem Gerak Robot Bipedal ... 32
III.2
Perancangan dan Realisasi Robot Bipedal ... 32
III.3
Perancangan dan Realisasi Rangkaian Sensor dan Pengontrol Mikro .. 41
Universitas Kristen Maranatha
III.3.2
Sensor Gaya ... 43
III.3.2
Pengontrol Mikro ... 44
III.3.2.1Skematik Rangkaian Pengontrol Mikro ATMEGA 16 ... 44
III.3.2.2PWM ATMEGA16 ... 47
III.4
Algoritma Pemrograman Robot Bipedal ... 48
III.4.1
Sub Program Tegak ... 51
III.4.2
Sub Program Sensor ... 52
III.4.3
Sub Program Jalan ... 54
III.4.4
Sub Program Naik ... 59
III.4.5
Sub Program Turun ... 64
BAB IVDATA PENGAMATAN DAN ANALISA ... 70
IV.1
Pengenalan Area Pengambilan Data Pengamatan ... 70
IV.2
Pengamatan Sensor ... 72
IV.2.1
Pengamatan Sensor Ultrasonik (SRF 04) ... 72
IV.2.2
Pengamatan Sensor Gaya ... 76
IV.2.3
Pengamatan Sensor Pada Pola Gerak Keseluruhan ... 78
IV.3
Pola Gerak Robot Bipedal ... 84
IV.3.1
Pola Gerak Robot Bipedal Berjalan ... 84
IV.3.2
Pola Gerak Robot Bipedal Naik Anak Tangga ... 86
IV.3.3
Pola Gerak Robot Bipedal Turun Anak Tangga ... 89
IV.3.4
Pengujian Pola Gerak Keseluruhan Robot Bipedal ... 91
BAB V SIMPULAN DAN SARAN ... 92
V.1
Simpulan ... 92
V.2
Saran ... 93
DAFTAR PUSTAKA ... 94
LAMPIRAN A PROGRAM CODE VISION AVR
LAMPIRAN B FOTO ROBOT BIPEDAL
LAMPIRAN C SKEMATIK PENGONTROL MIKRO
Universitas Kristen Maranatha
DAFTAR GAMBAR
Gambar 2. 1 Perkembangan bipedalisme ... 5
Gambar 2. 2 Anggota Gerak Manusia ... 8
Gambar 2. 3 Gambar kaki robot... 9
Gambar 2. 4 Pergerakan Jalan Tampak Samping ... 10
Gambar 2. 5 Pergerakan Jalan Tampak Depan ... 10
Gambar 2. 6 Pola Penyesuaian Pergerakan Jalan Tipe Bipedal. ... 11
Gambar 2. 7 Konstruksi Robot Bipedal ... 12
Gambar 2. 8 Bentuk Motor Servo ... 13
Gambar 2. 9 Sistem Mekanik Motor Servo ... 13
Gambar 2. 10 Blok Diagram Motor DC Servo dengan Kontrol Kecepatan ... 14
Gambar 2. 11 Rangkaian Motor DC Servo dengan Kontrol Kecepatan ... 15
Gambar 2. 12 Pensinyalan Motor Servo ... 16
Gambar 2. 13 Contoh Posisi dan Waktu Pemberian Pulsa ... 17
Gambar 2. 14 Gambar Cara Kerja SRF 04 ... 17
Gambar 2. 15 Sensor Ultrasonik SRF 04 ... 18
Gambar 2. 16 Koneksi Pin SRF04 ... 19
Gambar 2. 17 Dimensi SRF 04 ... 19
Gambar 2. 18 Konstruksi Dan Koneksi FSR ... 20
Gambar 2. 19 Konfigurasi Pin ATmega16 ... 23
Gambar 2. 20 Blok Diagram ATmega16 ... 26
Gambar 2. 21 General Purpose Register ATmega16 ... 27
Gambar 2. 22 Peta Memori Program ATmega16 ... 28
Gambar 2. 23 Peta Memori Data ATmega16 ... 29
Gambar 2. 24 Pulse Width Modulation ... 30
Gambar 2. 25 Modulasi Lebar Pulsa dengan Gelombang Kotak ... 30
Universitas Kristen Maranatha
Gambar 3. 1 Blok Diagram Sistem Gerak Robot Bipedal ... 32
Gambar 3. 2 Koneksi Pin pada Motor Servo ... 33
Gambar 3. 3a Struktur Kaki Robot Bipedal Tampak Depan ... 35
Gambar 3. 3b Struktur Kaki Robot Bipedal Tampak Samping Kanan ... 36
Gambar 3. 3c Struktur Kaki Robot Bipedal Tampak Samping Kiri ... 37
Gambar 3. 3d Struktur Kaki Robot Bipedal Tampak Atas ... 38
Gambar 3. 3e Struktur Kaki Robot Bipedal Tampak Bawah ... 38
Gambar 3. 4 Penomoran Motor Servo ... 39
Gambar 3. 5 Ilustrasi Keseimbangan Tumpuan Kaki Kanan... 40
Gambar 3. 6 Ilustrasi Keseimbangan Tumpuan Kaki Kiri... 41
Gambar 3. 7 Pengalokasian Pin Pada Sensor Ultrasonik ... 42
Gambar 3. 8 Rangkaian Pembagi Tegangan ... 43
Gambar 3. 9 Skematik Rangkaian Pengontrol Mikro ... 46
Gambar 3. 10 Digram Alir Program Secara Keseluruhan ... 49
Gambar 3. 11 Diagram Alir Sub Program Tegak ... 51
Gambar 3. 12 Diagram Alir Sub Program Sensor ... 53
Gambar 3. 13 Diagram Alir Sub Program Jalan ... 55
Gambar 3. 14 Diagram Alir Sub Program Naik ... 60
Gambar 3. 15 Diagram Alir Sub Program Turun ... 65
Gambar 4. 1 Ukuran Anak Tangga. ... 70
Gambar 4. 2 Pengenalan Area Pengambilan Data ... 71
Gambar 4. 3 Tampilan Keluaran Pada LCD ... 71
Gambar 4. 4 Pemasangan Sensor Tekanan. ... 75
Gambar 4. 5 Pengamatan Keadaan Kaki. ... 75
Gambar 4. 6 Pola Gerak Robot Bipedal Jalan Langkah Kanan ... 85
Gambar 4. 7 Pola Gerak Robot Bipedal Jalan Langkah Kiri ... 86
Gambar 4. 8 Pola Gerak Robot Bipedal Naik Anak Tangga ... 88
Gambar 4. 9 Pola Gerak Robot Bipedal Turun Anak Tangga ... 90
Gambar 4. 10 Pola Gerak Keseluruhan Robot Bipedal ... 91
Universitas Kristen Maranatha
DAFTAR TABEL
Tabel 2. 1 Spesifikasi SRF 04 ... 18
Tabel 2. 2 Koneksi Pin SRF 04 Untuk Pengontrol Mikro ... 19
Tabel 2. 3 Fungsi Khusus Port B ... 24
Tabel 2. 4 Fungsi Khusus Port C ... 24
Tabel 2. 5 Fungsi Khusus Port D ... 25
Tabel 3. 1 Kawasan Kerja Motor Servo ... 39
Tabel 3. 2 Konektor Pin Sensor Pada Pengontrol Mikro ... 42
Tabel 3. 3 Konektor Pin Pada Pengontrol Mikro ... 44
Tabel 3. 4 Rentang Nilai Duty Cycle ... 48
Tabel 3. 5 Konektor Motor Servo Pada Port Pengotrol Mikro ... 52
Tabel 4. 1 Pengamatan Sensor Ultrasonik Saat Berjalan ... 72
Tabel 4. 2 Tabel Pengamatan Sensor Gaya Pada Saat Berjalan ... 76
Tabel 4. 3 Pengamatan Robot Pada Saat Berjalan ... 78
Tabel 4. 4 Pengamatan Robot Pada Saat Naik Anak Tangga ... 80
LAMPIRAN A
/***************************************************** This program was produced by the
CodeWizardAVR V1.25.3 Standard Automatic Program Generator
© Copyright 1998-2007 Pavel Haiduc, HP InfoTech s.r.l. http://www.hpinfotech.com
Project : Robot Biped Version :
Date : 7/1/2010 Author : Yohanes Budi Company : Maranatha Comments:
Chip type : ATmega16 Program type : Application Clock frequency : 11.095200 MHz Memory model : Small
External SRAM size : 0 Data Stack size : 256
*****************************************************/ #include <mega16.h>
#include <delay.h> #include <stdio.h>
unsigned int i,t,ta,s,si,a,b,c,z; unsigned char text[32];
// Alphanumeric LCD Module functions #asm
.equ __lcd_port=0x15 ;PORTC #endasm
#include <lcd.h>
#define ADC_VREF_TYPE 0x40 // Read the AD conversion result
unsigned int read_adc(unsigned char adc_input) {
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff); // Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10; return ADCW; }
// Declare your global variables here void tegak(void)
{
PORTA=255; PORTB=255; PORTB.3=1;
PORTB.7=1; delay_us(50); //1350 PORTB.7=0; PORTB.2=1; delay_us(1); //1350 PORTB.2=0; PORTB.1=1; delay_us(49); //1400 PORTB.1=0; PORTB.0=1;
delay_us(100); //1500 PORTB.0=0;
PORTB.4=1; delay_us(1); //1500 PORTB.4=0; PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTA.6=1;
delay_us(100); //1650 PORTA.6=0;
delay_us(8400); }
void jalan(void) {
// LANGKAH KIRI if(a==1)
{
if(b>400 && c>400) {
//LANGKAH KIRI for(i=0;i<200;i++) //1 {
PORTA=255; PORTB=255; PORTB.3=1;
delay_us(1300); //1300 PORTB.3=0;
PORTB.7=1; delay_us(50); //1350 PORTB.7=0; PORTB.2=1; delay_us(1); //1350 PORTB.2=0; PORTB.1=1; delay_us(49); //1400 PORTB.1=0; PORTB.0=1;
delay_us(100); //1500 PORTB.0=0;
PORTB.5=0; PORTA.6=1;
delay_us(100); //1650 PORTA.6=0;
delay_us(8400); };
for(i=0;i<200;i++) //2 {
PORTA=255; PORTB=255; PORTB.0=1;
delay_us(1100); //1500 //1400 //1300 //1200 //1100 PORTB.0=0;
PORTB.7=1;
delay_us(50); //1350 //1300 //1250 //1200 //1150 PORTB.7=0;
PORTB.3=1; delay_us(150); //1300 PORTB.3=0; PORTB.2=1;
delay_us(50); //1350 PORTB.2=0;
PORTB.1=1; delay_us(50); //1400 PORTB.1=0; PORTB.4=1;
delay_us(100); //1500 PORTB.4=0;
PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTA.6=1;
delay_us(100); //1650 PORTA.6=0;
delay_us(9000); };
for(i=0;i<200;i++) //3 {
PORTA=255; PORTB=255; PORTB.7=1;
delay_us(1150); //1350 //1300 //1250 //1200 //1150 PORTB.7=0;
PORTB.3=1;
delay_us(50); //1300 //1200 PORTB.3=0;
PORTB.1=1;
delay_us(100); //1400 //1300 PORTB.1=0;
PORTB.2=1;
delay_us(50); //1350 PORTB.2=0;
delay_us(150); //1500 PORTB.4=0;
PORTB.0=1;
delay_us(1); //1500 //1400 //1300 //1200 //1100 //1500 PORTB.0=0;
PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTA.6=1;
delay_us(100); //1650 PORTA.6=0;
delay_us(9000); };
for(i=0;i<200;i++) //4 {
PORTA=255; PORTB=255; PORTB.7=1;
delay_us(1150); //1350 //1300 //1250 //1200 //1150 PORTB.7=0;
PORTB.3=1;
delay_us(50); //1300 //1200 PORTB.3=0;
PORTB.1=1;
delay_us(100); //1400 //1300 PORTB.1=0;
PORTB.2=1;
delay_us(50); //1350 PORTB.2=0;
PORTB.4=1;
delay_us(50); //1500 //1400 PORTB.4=0;
PORTB.0=1;
delay_us(100); //1500 //1400 //1300 //1200 //1100 //1500 PORTB.0=0;
PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTA.6=1;
delay_us(1); //1650 //1550 PORTA.6=0;
delay_us(9000); };
for(i=0;i<200;i++) //5 {
PORTA=255; PORTB=255; PORTB.7=1;
delay_us(1200); //1350 //1300 //1250 //1200 //1150 //1200 PORTB.7=0;
PORTB.3=1;
delay_us(1); //1300 //1200 PORTB.3=0;
PORTB.1=1;
PORTB.1=0; PORTB.2=1;
delay_us(50); //1350 PORTB.2=0;
PORTB.4=1;
delay_us(50); //1500 //1400 PORTB.4=0;
PORTB.0=1;
delay_us(100); //1500 //1400 //1300 //1200 //1100 //1500 PORTB.0=0;
PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTA.6=1;
delay_us(1); //1650 //1550 PORTA.6=0;
delay_us(9000); };
for(i=0;i<200;i++) //6 {
PORTA=255; PORTB=255; PORTB.3=1;
delay_us(1200); //1300 //1200 PORTB.3=0;
PORTB.7=1;
delay_us(50); //1350 //1300 //1250 //1200 //1150 //1200 //1250 PORTB.7=0;
PORTB.1=1;
delay_us(50); //1400 //1300 PORTB.1=0;
PORTB.2=1;
delay_us(50); //1350 PORTB.2=0;
PORTB.4=1;
delay_us(50); //1500 //1400 PORTB.4=0;
PORTB.0=1;
delay_us(100); //1500 //1400 //1300 //1200 //1100 //1500 PORTB.0=0;
PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTA.6=1;
delay_us(1); //1650 //1550 PORTA.6=0;
delay_us(9000); };
for(i=0;i<200;i++) //7 {
PORTA=255; PORTB=255; PORTB.3=1;
PORTB.7=1;
delay_us(100); //1350 //1300 //1250 //1200 //1150 //1200 //1250 //1300 PORTB.7=0;
PORTB.1=1;
delay_us(1); //1400 //1300 PORTB.1=0;
PORTB.2=1;
delay_us(50); //1350 PORTB.2=0;
PORTB.4=1;
delay_us(50); //1500 //1400 PORTB.4=0;
PORTB.0=1;
delay_us(100); //1500 //1400 //1300 //1200 //1100 //1500 PORTB.0=0;
PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTA.6=1;
delay_us(1); //1650 //1550 PORTA.6=0;
delay_us(9000); };
for(i=0;i<200;i++) //8 {
PORTA=255; PORTB=255; PORTB.3=1;
delay_us(1200); //1300 //1200 PORTB.3=0;
PORTB.1=1;
delay_us(100); //1400 //1300 PORTB.1=0;
PORTB.2=1;
delay_us(50); //1350 PORTB.2=0;
PORTB.7=1;
delay_us(1); //1350 //1300 //1250 //1200 //1150 //1200 //1250 //1300 //1350 PORTB.7=0;
PORTB.4=1;
delay_us(50); //1500 //1400 PORTB.4=0;
PORTB.0=1;
delay_us(100); //1500 //1400 //1300 //1200 //1100 //1500 PORTB.0=0;
PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTA.6=1;
delay_us(1); //1650 //1550 PORTA.6=0;
delay_us(9000); };
PORTA=255; PORTB=255; PORTB.3=1;
delay_us(1200); //1300 //1200 PORTB.3=0;
PORTB.1=1;
delay_us(100); //1400 //1300 PORTB.1=0;
PORTB.2=1;
delay_us(50); //1350 PORTB.2=0;
PORTB.4=1;
delay_us(50); //1500 //1400 PORTB.4=0;
PORTB.5=1;
delay_us(150); //1550 PORTB.5=0;
PORTA.6=1;
delay_us(1); //1650 //1550 PORTA.6=0;
PORTB.0=1;
delay_us(150); //1500 //1400 //1300 //1200 //1100 //1500 //1700 PORTB.0=0;
PORTB.7=1;
delay_us(50); //1350 //1300 //1250 //1200 //1150 //1200 //1250 //1300 //1350 //1750 PORTB.7=0;
delay_us(9000); };
for(i=0;i<200;i++) //10 {
PORTA=255; PORTB=255; PORTB.3=1;
delay_us(1300); //1300 //1200 //1300 PORTB.3=0;
PORTB.2=1;
delay_us(50); //1350 PORTB.2=0;
PORTB.4=1;
delay_us(50); //1500 //1400 PORTB.4=0;
PORTB.1=1;
delay_us(1); //1400 //1300 //1400 PORTB.1=0;
PORTB.5=1;
delay_us(150); //1550 PORTB.5=0;
PORTA.6=1;
delay_us(1); //1650 //1550 PORTA.6=0;
PORTB.0=1;
delay_us(150); //1500 //1400 //1300 //1200 //1100 //1500 //1700 PORTB.0=0;
PORTB.7=1;
delay_us(9000); };
for(i=0;i<200;i++) //11 {
PORTA=255; PORTB=255; PORTB.3=1;
delay_us(1300); //1300 //1200 //1300 PORTB.3=0;
PORTB.2=1;
delay_us(50); //1350 PORTB.2=0;
PORTB.1=1;
delay_us(1); //1400 //1300 //1400 PORTB.1=0;
PORTB.4=1;
delay_us(100); //1500 //1400 //1500 PORTB.4=0;
PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTA.6=1;
delay_us(100); //1650 //1550 //1650 PORTA.6=0;
PORTB.0=1;
delay_us(50); //1500 //1400 //1300 //1200 //1100 //1500 //1700 PORTB.0=0;
PORTB.7=1;
delay_us(50); //1350 //1300 //1250 //1200 //1150 //1200 //1250 //1300 //1350 //1750 PORTB.7=0;
delay_us(9000); };
for(i=0;i<200;i++) //12 {
PORTA=255; PORTB=255; PORTB.3=1;
delay_us(1300); //1300 //1200 //1300 PORTB.3=0;
PORTB.2=1;
delay_us(50); //1350 PORTB.2=0;
PORTB.1=1;
delay_us(1); //1400 //1300 //1400 PORTB.1=0;
PORTB.4=1;
delay_us(100); //1500 //1400 //1500 PORTB.4=0;
PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTA.6=1;
delay_us(100); //1650 //1550 //1650 PORTA.6=0;
delay_us(1); //1500 //1400 //1300 //1200 //1100 //1500 //1700 //1650 PORTB.0=0;
PORTB.7=1;
delay_us(1); //1350 //1300 //1250 //1200 //1150 //1200 //1250 //1300 //1350 //1750 //1650 PORTB.7=0;
delay_us(9000); };
for(i=0;i<200;i++) //13 {
PORTA=255; PORTB=255; PORTB.3=1;
delay_us(1300); //1300 //1200 //1300 PORTB.3=0;
PORTB.2=1;
delay_us(50); //1350 PORTB.2=0;
PORTB.1=1;
delay_us(1); //1400 //1300 //1400 PORTB.1=0;
PORTB.4=1;
delay_us(100); //1500 //1400 //1500 PORTB.4=0;
PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTB.7=1;
delay_us(1); //1350 //1300 //1250 //1200 //1150 //1200 //1250 //1300 //1350 //1750 //1650 //1550 PORTB.7=0;
PORTB.0=1;
delay_us(50); //1500 //1400 //1300 //1200 //1100 //1500 //1700 //1650 //1600 PORTB.0=0;
PORTA.6=1;
delay_us(50); //1650 //1550 //1650 PORTA.6=0;
delay_us(9000); };
for(i=0;i<200;i++) //14 {
PORTA=255; PORTB=255; PORTB.3=1;
delay_us(1300); //1300 //1200 //1300 PORTB.3=0;
PORTB.2=1;
delay_us(50); //1350 PORTB.2=0;
PORTB.1=1;
delay_us(1); //1400 //1300 //1400 PORTB.1=0;
PORTB.7=1;
delay_us(50); //1350 //1300 //1250 //1200 //1150 //1200 //1250 //1300 //1350 //1750 //1650 //1550 //1450 PORTB.7=0;
PORTB.4=1;
PORTB.4=0; PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTB.0=1;
delay_us(1); //1500 //1400 //1300 //1200 //1100 //1500 //1700 //1650 //1600 //1550 PORTB.0=0;
PORTA.6=1;
delay_us(100); //1650 //1550 //1650 PORTA.6=0;
delay_us(9000); };
for(i=0;i<200;i++) //15 {
PORTA=255; PORTB=255; PORTB.3=1;
delay_us(1300); //1300 //1200 //1300 PORTB.3=0;
PORTB.2=1;
delay_us(50); //1350 PORTB.2=0;
PORTB.7=1;
delay_us(1); //1350 //1300 //1250 //1200 //1150 //1200 //1250 //1300 //1350 //1750 //1650 //1550 //1450 //1350
PORTB.7=0; PORTB.1=1;
delay_us(50); //1400 //1300 //1400 PORTB.1=0;
PORTB.4=1;
delay_us(50); //1500 //1400 //1500 PORTB.4=0;
PORTB.0=1;
delay_us(1); //1500 //1400 //1300 //1200 //1100 //1500 //1700 //1650 //1600 //1550 //1500 PORTB.0=0;
PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTA.6=1;
delay_us(100); //1650 //1550 //1650 PORTA.6=0;
delay_us(9000); };
} } else {
if(b>200 && c>200) {
//LANGKAH KANAN for(i=0;i<200;i++) //1 {
PORTB.3=1;
delay_us(1300); //1300 PORTB.3=0;
PORTB.7=1; delay_us(50); //1350 PORTB.7=0; PORTB.2=1; delay_us(1); //1350 PORTB.2=0; PORTB.1=1; delay_us(49); //1400 PORTB.1=0; PORTB.0=1;
delay_us(100); //1500 PORTB.0=0;
PORTB.4=1; delay_us(1); //1500 PORTB.4=0; PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTA.6=1;
delay_us(100); //1650 PORTA.6=0;
delay_us(8400); };
for(i=0;i<200;i++) //2 {
PORTA=255; PORTB=255; PORTB.3=1;
delay_us(1300); //1300 PORTB.3=0;
PORTB.2=1;
delay_us(50); //1350 PORTB.2=0;
PORTB.1=1; delay_us(50); //1400 PORTB.1=0; PORTB.4=1;
delay_us(100); //1500 PORTB.4=0;
PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTA.6=1;
delay_us(100); //1650 PORTA.6=0;
PORTB.0=1;
delay_us(50); //1500 //1550 //1600 //1650 //1700 PORTB.0=0;
PORTB.7=1;
delay_us(50); //1350 //1750 PORTB.7=0;
};
for(i=0;i<200;i++) //3 {
PORTA=255; PORTB=255; PORTB.3=1;
delay_us(1300); //1300 PORTB.3=0;
PORTB.2=1;
delay_us(50); //1350 PORTB.2=0;
PORTB.7=1;
delay_us(1); //1350 //1750 //1350 PORTB.7=0;
PORTB.1=1; delay_us(50); //1400 PORTB.1=0; PORTB.5=1;
delay_us(150); //1550 PORTB.5=0;
PORTB.4=1;
delay_us(50); //1500 //1600 PORTB.4=0;
PORTB.0=1;
delay_us(100); //1500 //1550 //1600 //1650 //1700 PORTB.0=0;
PORTA.6=1;
delay_us(1); //1650 //1700 PORTA.6=0;
delay_us(8400); };
for(i=0;i<200;i++) //4 {
PORTA=255; PORTB=255; PORTB.3=1;
delay_us(1300); //1300 PORTB.3=0;
PORTB.2=1;
delay_us(50); //1350 PORTB.2=0;
PORTB.7=1;
delay_us(1); //1350 //1750 //1350 PORTB.7=0;
PORTB.1=1;
delay_us(100); //1400 //1450 PORTB.1=0;
PORTB.5=1;
delay_us(100); //1550 PORTB.5=0;
PORTB.4=1;
delay_us(50); //1500 //1600 PORTB.4=0;
PORTB.0=1;
PORTB.0=0; PORTA.6=1;
delay_us(1); //1650 //1700 PORTA.6=0;
delay_us(8400); };
for(i=0;i<200;i++) //5 {
PORTA=255; PORTB=255; PORTB.3=1;
delay_us(1300); //1300 PORTB.3=0;
PORTB.2=1;
delay_us(50); //1350 PORTB.2=0;
PORTB.7=1;
delay_us(1); //1350 //1750 //1350 PORTB.7=0;
PORTB.1=1;
delay_us(150); //1400 //1450 //1500 PORTB.1=0;
PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTB.4=1;
delay_us(50); //1500 //1600 PORTB.4=0;
PORTB.0=1;
delay_us(100); //1500 //1550 //1600 //1650 //1700 PORTB.0=0;
PORTA.6=1;
delay_us(1); //1650 //1700 PORTA.6=0;
delay_us(8400); };
for(i=0;i<200;i++) //6 {
PORTA=255; PORTB=255; PORTB.2=1;
delay_us(1350); //1350 PORTB.2=0;
PORTB.7=1;
delay_us(1); //1350 //1750 //1350 PORTB.7=0;
PORTB.3=1;
delay_us(50); //1300 //1400 PORTB.3=0;
PORTB.1=1;
delay_us(100); //1400 //1500 PORTB.1=0;
delay_us(50); //1550 PORTB.5=0; PORTB.4=1;
delay_us(50); //1500 //1600 PORTB.4=0;
PORTB.0=1;
delay_us(100); //1500 //1550 //1600 //1650 //1700 PORTB.0=0;
PORTA.6=1;
delay_us(1); //1650 //1700 PORTA.6=0;
delay_us(8400); };
for(i=0;i<200;i++) //7 {
PORTA=255; PORTB=255; PORTB.2=1;
delay_us(1350); //1350 PORTB.2=0;
PORTB.7=1;
delay_us(1); //1350 //1750 //1350 PORTB.7=0;
PORTB.3=1;
delay_us(50); //1300 //1400 PORTB.3=0;
PORTB.1=1;
delay_us(100); //1400 //1500 PORTB.1=0;
PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTB.4=1;
delay_us(50); //1500 //1600 PORTB.4=0;
PORTB.0=1;
delay_us(50); //1500 //1550 //1600 //1650 //1700 //1650 PORTB.0=0;
PORTA.6=1;
delay_us(50); //1650 //1700 PORTA.6=0;
delay_us(8400); };
for(i=0;i<200;i++) //8 {
PORTA=255; PORTB=255; PORTB.2=1;
delay_us(1350); //1350 PORTB.2=0;
PORTB.7=1;
delay_us(1); //1350 //1750 //1350 PORTB.7=0;
PORTB.3=1;
PORTB.3=0; PORTB.1=1;
delay_us(100); //1400 //1500 PORTB.1=0;
PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTB.4=1;
delay_us(50); //1500 //1600 PORTB.4=0;
PORTB.0=1;
delay_us(1); //1500 //1550 //1600 //1650 //1700 //1650 //1600 PORTB.0=0;
PORTA.6=1;
delay_us(100); //1650 //1700 PORTA.6=0;
delay_us(8400); };
for(i=0;i<200;i++) //9 {
PORTA=255; PORTB=255; PORTB.2=1;
delay_us(1350); //1350 PORTB.2=0;
PORTB.7=1;
delay_us(1); //1350 //1750 //1350 PORTB.7=0;
PORTB.3=1;
delay_us(50); //1300 //1400 PORTB.3=0;
PORTB.1=1;
delay_us(100); //1400 //1500 PORTB.1=0;
PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTB.0=1;
delay_us(1); //1500 //1550 //1600 //1650 //1700 //1650 //1600 //1550 PORTB.0=0;
PORTB.4=1;
delay_us(50); //1500 //1600 PORTB.4=0;
PORTA.6=1;
delay_us(100); //1650 //1700 PORTA.6=0;
delay_us(8400); };
for(i=0;i<200;i++) //10 {
PORTA=255; PORTB=255; PORTB.2=1;
PORTB.7=1;
delay_us(1); //1350 //1750 //1350 PORTB.7=0;
PORTB.3=1;
delay_us(50); //1300 //1400 PORTB.3=0;
PORTB.1=1;
delay_us(100); //1400 //1500 PORTB.1=0;
PORTB.0=1;
delay_us(1); //1500 //1550 //1600 //1650 //1700 //1650 //1600 //1550 //1500 PORTB.0=0;
PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTB.4=1;
delay_us(50); //1500 //1600 PORTB.4=0;
PORTA.6=1;
delay_us(100); //1650 //1700 PORTA.6=0;
delay_us(8400); };
for(i=0;i<200;i++) //11 {
PORTA=255; PORTB=255; PORTB.0=1;
delay_us(1100); //1500 //1550 //1600 //1650 //1700 //1650 //1600 //1550 //1500 //1100 PORTB.0=0;
PORTB.7=1;
delay_us(50); //1350 //1750 //1350 //1150 PORTB.7=0;
PORTB.2=1;
delay_us(200); //1350 PORTB.2=0;
PORTB.3=1;
delay_us(50); //1300 //1400 PORTB.3=0;
PORTB.1=1;
delay_us(100); //1400 //1500 PORTB.1=0;
PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTB.4=1;
delay_us(50); //1500 //1600 PORTB.4=0;
PORTA.6=1;
delay_us(100); //1650 //1700 PORTA.6=0;
delay_us(8400); };
PORTA=255; PORTB=255; PORTB.0=1;
delay_us(1100); //1500 //1550 //1600 //1650 //1700 //1650 //1600 //1550 //1500 //1100 PORTB.0=0;
PORTB.7=1;
delay_us(50); //1350 //1750 //1350 //1150 PORTB.7=0;
PORTB.2=1;
delay_us(200); //1350 PORTB.2=0;
PORTB.3=1;
delay_us(50); //1300 //1400 PORTB.3=0;
PORTB.1=1;
delay_us(100); //1400 //1500 PORTB.1=0;
PORTB.4=1;
delay_us(1); //1500 //1600 //1500 PORTB.4=0;
PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTA.6=1;
delay_us(100); //1650 //1750 //1650 PORTA.6=0;
delay_us(8400); };
for(i=0;i<200;i++) //13 {
PORTA=255; PORTB=255; PORTB.0=1;
delay_us(1100); //1500 //1550 //1600 //1650 //1700 //1650 //1600 //1550 //1500 //1100 PORTB.0=0;
PORTB.7=1;
delay_us(50); //1350 //1750 //1350 //1150 PORTB.7=0;
PORTB.3=1;
delay_us(150); //1300 //1400 //1300 PORTB.3=0;
PORTB.2=1;
delay_us(50); //1350 PORTB.2=0;
PORTB.1=1;
delay_us(50); //1400 //1500 //1400 PORTB.1=0;
PORTB.4=1;
delay_us(100); //1500 //1600 //1500 PORTB.4=0;
PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTA.6=1;
delay_us(8400); };
for(i=0;i<200;i++) //14 {
PORTA=255; PORTB=255; PORTB.0=1;
delay_us(1200); //1500 //1550 //1600 //1650 //1700 //1650 //1600 //1550 //1500 //1100 //1200 PORTB.0=0;
PORTB.7=1;
delay_us(1); //1350 //1750 //1350 //1150 //1200 PORTB.7=0;
PORTB.3=1;
delay_us(100); //1300 //1400 //1300 PORTB.3=0;
PORTB.2=1;
delay_us(50); //1350 PORTB.2=0;
PORTB.1=1;
delay_us(50); //1400 //1500 //1400 PORTB.1=0;
PORTB.4=1;
delay_us(100); //1500 //1600 //1500 PORTB.4=0;
PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTA.6=1;
delay_us(100); //1650 //1750 //1650 PORTA.6=0;
delay_us(8400); };
for(i=0;i<200;i++) //15 {
PORTA=255; PORTB=255; PORTB.7=1;
delay_us(1300); //1350 //1750 //1350 //1150 //1200 //1250 //1300 PORTB.7=0;
PORTB.3=1;
delay_us(1); //1300 //1400 //1300 PORTB.3=0;
PORTB.2=1;
delay_us(50); //1350 PORTB.2=0;
PORTB.1=1;
delay_us(50); //1400 //1500 //1400 PORTB.1=0;
PORTB.0=1;
delay_us(1); //1500 //1550 //1600 //1650 //1700 //1650 //1600 //1550 //1500 //1100 //1200 //1300 //1400 PORTB.0=0;
PORTB.4=1;
delay_us(100); //1500 //1600 //1500 PORTB.4=0;
delay_us(50); //1550 PORTB.5=0; PORTA.6=1;
delay_us(100); //1650 //1750 //1650 PORTA.6=0;
delay_us(8400); };
for(i=0;i<200;i++) //16 {
PORTA=255; PORTB=255; PORTB.3=1;
delay_us(1300); //1300 //1400 //1300 PORTB.3=0;
PORTB.7=1;
delay_us(50); //1350 //1750 //1350 //1150 //1200 //1250 //1300 //1350 PORTB.7=0;
PORTB.2=1; delay_us(1); //1350 PORTB.2=0; PORTB.1=1;
delay_us(50); //1400 //1500 //1400 PORTB.1=0;
PORTB.0=1;
delay_us(100); //1500 //1550 //1600 //1650 //1700 //1650 //1600 //1550 //1500 //1100 //1200 //1300 //1400 //1500
PORTB.0=0; PORTB.4=1;
delay_us(1); //1500 //1600 //1500 PORTB.4=0;
PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTA.6=1;
delay_us(100); //1650 //1750 //1650 PORTA.6=0;
delay_us(8400); };
} } }
void tangga(void) {
for(i=0;i<300;i++) //1 {
PORTA=255; PORTB=255; PORTB.3=1;
delay_us(1300); //1300 PORTB.3=0;
PORTB.7=0; PORTB.2=1; delay_us(1); //1350 PORTB.2=0; PORTB.1=1; delay_us(50); //1400 PORTB.1=0; PORTB.4=1;
delay_us(100); //1500 PORTB.4=0;
PORTB.0=1; delay_us(1); //1500 PORTB.0=0; PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTA.6=1; delay_us(100); //1650 PORTA.6=0; delay_us(8450); };
for(i=0;i<300;i++) //2 {
PORTA=255; PORTB=255; PORTB.0=1;
delay_us(1050); //1050 PORTB.0=0;
PORTB.7=1;
delay_us(50); //1150 //1100 PORTB.7=0;
PORTB.3=1; delay_us(200); //1300 PORTB.3=0; PORTB.2=1; delay_us(50); //1350 PORTB.2=0; PORTB.1=1; delay_us(50); //1400 PORTB.1=0; PORTB.4=1; delay_us(50); //1450 PORTB.4=0; PORTB.5=1; delay_us(100); //1550 PORTB.5=0; PORTA.6=1; delay_us(100); //1650 PORTA.6=0; delay_us(9100); };
for(i=0;i<300;i++) //3 {
PORTB.2=1; delay_us(750); //750 PORTB.2=0; PORTB.7=1; delay_us(350); //1100 PORTB.7=0; PORTB.3=1;
delay_us(200); //600 //1300 PORTB.3=0;
PORTB.4=1;
delay_us(150); //1450 PORTB.4=0;
PORTB.0=1; delay_us(50); //1500 PORTB.0=0; PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTA.6=1; delay_us(100); //1650 PORTA.6=0; PORTB.1=1;
delay_us(50); //1400 //1700 PORTB.1=0;
delay_us(8950); };
for(i=0;i<300;i++) //4 {
PORTA=255; PORTB=255; PORTB.3=1; delay_us(500); //500 PORTB.3=0; PORTB.2=1;
delay_us(250); //750 //650 //750 PORTB.2=0;
PORTB.7=1;
delay_us(350); //1150 //1100 PORTB.7=0;
PORTB.4=1;
delay_us(350); //1450 PORTB.4=0;
PORTB.0=1; delay_us(50); //1500 PORTB.0=0; PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTB.1=1;
PORTA.6=1; delay_us(50); //1750 PORTA.6=0; delay_us(9650); };
for(i=0;i<300;i++) //5 {
PORTA=255; PORTB=255; PORTB.3=1; delay_us(500); //500 PORTB.3=0; PORTB.2=1;
delay_us(250); //750 //650 //750 PORTB.2=0;
PORTB.7=1; delay_us(400); //1150 PORTB.7=0; PORTB.1=1;
delay_us(250); //1400 //1700 //1400 PORTB.1=0;
PORTB.4=1; delay_us(50); //1450 PORTB.4=0; PORTB.0=1; delay_us(50); //1500 PORTB.0=0; PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTA.6=1; delay_us(200); //1750 PORTA.6=0; delay_us(9950); };
for(i=0;i<300;i++) //6 {
PORTA=255; PORTB=255; PORTB.3=1; delay_us(500); //500 PORTB.3=0; PORTB.2=1;
delay_us(250); //750 //650 //750 PORTB.2=0;
PORTB.7=1; delay_us(400); //1150 PORTB.7=0; PORTB.1=1;
delay_us(250); //1400 //1700 //1400 PORTB.1=0;
delay_us(50); //1450 PORTB.4=0; PORTB.0=1; delay_us(50); //1500 PORTB.0=0; PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTA.6=1;
delay_us(150); //1750 //1700 PORTA.6=0;
delay_us(10000); };
for(i=0;i<300;i++) //7 {
PORTA=255; PORTB=255; PORTB.3=1; delay_us(500); //500 PORTB.3=0; PORTB.2=1;
delay_us(150); //750 //650 PORTB.2=0;
PORTB.7=1; delay_us(500); //1150 PORTB.7=0; PORTB.1=1; delay_us(250); //1400 PORTB.1=0; PORTB.4=1; delay_us(50); //1450 PORTB.4=0; PORTB.0=1; delay_us(50); //1500 PORTB.0=0; PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTA.6=1;
delay_us(100); //1750 //1700 //1650 PORTA.6=0;
delay_us(10150); };
for(i=0;i<300;i++) //8 {
PORTA=255; PORTB=255; PORTB.3=1; delay_us(500); //500 PORTB.3=0; PORTB.2=1;
PORTB.2=0; PORTB.7=1; delay_us(500); //1150 PORTB.7=0; PORTB.1=1; delay_us(250); //1400 PORTB.1=0; PORTB.4=1; delay_us(50); //1450 PORTB.4=0; PORTB.0=1; delay_us(50); //1500 PORTB.0=0; PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTA.6=1;
delay_us(50); //1750 //1650 //1600 PORTA.6=0;
delay_us(10200); };
for(i=0;i<300;i++) //9 {
PORTA=255; PORTB=255; PORTB.3=1; delay_us(500); //500 PORTB.3=0; PORTB.2=1;
delay_us(150); //750 //650 PORTB.2=0;
PORTB.7=1; delay_us(500); //1150 PORTB.7=0; PORTB.1=1; delay_us(250); //1400 PORTB.1=0; PORTB.4=1; delay_us(50); //1450 PORTB.4=0; PORTB.0=1; delay_us(50); //1500 PORTB.0=0; PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTA.6=1;
delay_us(1); //1750 //1650 //1550 PORTA.6=0;
delay_us(10250); };
for(i=0;i<300;i++) //10 {
PORTB.3=1; delay_us(500); //500 PORTB.3=0; PORTB.2=1;
delay_us(150); //750 //650 PORTB.2=0;
PORTB.7=1; delay_us(500); //1150 PORTB.7=0; PORTB.4=1;
delay_us(200); //1450 //1350 PORTB.4=0;
PORTB.1=1; delay_us(50); //1400 PORTB.1=0; PORTB.0=1; delay_us(100); //1500 PORTB.0=0; PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTA.6=1;
delay_us(1); //1750 //1650 //1550 PORTA.6=0;
delay_us(10350); };
for(i=0;i<300;i++) //11 {
PORTA=255; PORTB=255; PORTB.3=1;
delay_us(600); //500 //600 PORTB.3=0;
PORTB.2=1;
delay_us(50); //750 //650 PORTB.2=0;
PORTB.7=1; delay_us(500); //1150 PORTB.7=0; PORTB.4=1;
delay_us(200); //1450 //1350 PORTB.4=0;
PORTB.1=1; delay_us(50); //1400 PORTB.1=0; PORTB.0=1; delay_us(100); //1500 PORTB.0=0; PORTA.6=1;
delay_us(1); //1750 //1650 //1550 //1500 PORTA.6=0;
delay_us(10300); };
for(i=0;i<200;i++) //12 {
PORTA=255; PORTB=255; PORTB.3=1;
delay_us(600); //500 //600 PORTB.3=0;
PORTB.2=1;
delay_us(50); //750 //650 PORTB.2=0;
PORTB.7=1; delay_us(500); //1150 PORTB.7=0; PORTB.4=1;
delay_us(200); //1450 //1350 PORTB.4=0;
PORTB.1=1; delay_us(50); //1400 PORTB.1=0; PORTA.6=1;
delay_us(50); //1750 //1650 //1550 //1500 //1450 PORTA.6=0;
PORTB.0=1; delay_us(50); //1500 PORTB.0=0; PORTB.5=1; delay_us(50); //1550 PORTB.5=0; delay_us(10350); };
for(i=0;i<300;i++) //13 eng ing eng {
PORTA=255; PORTB=255; PORTB.3=1;
delay_us(600); //500 //600 PORTB.3=0;
PORTB.2=1;
delay_us(50); //750 //650 PORTB.2=0;
PORTB.7=1; delay_us(500); //1150 PORTB.7=0; PORTB.4=1;
delay_us(100); //1450 //1350 //1250 PORTB.4=0;
PORTB.1=1; delay_us(150); //1400 PORTB.1=0; PORTA.6=1;
delay_us(50); //1750 //1650 //1550 //1500 //1450 PORTA.6=0;
delay_us(50); //1500 PORTB.0=0; PORTB.5=1; delay_us(50); //1550 PORTB.5=0; delay_us(10450); };
for(i=0;i<200;i++) //14 *awal {
PORTA=255; PORTB=255; PORTB.3=1;
delay_us(600); //500 //600 PORTB.3=0;
PORTB.2=1;
delay_us(50); //750 //650 PORTB.2=0;
PORTB.7=1; delay_us(500); //1150 PORTB.7=0; PORTB.4=1;
delay_us(100); //1450 //1350 //1250 PORTB.4=0;
PORTA.6=1;
delay_us(200); //1750 //1650 //1550 //1500 //1450 PORTA.6=0;
PORTB.0=1; delay_us(50); //1500 PORTB.0=0; PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTB.1=1;
delay_us(50); //1400 //1600 PORTB.1=0;
delay_us(10250); };
for(i=0;i<200;i++) //15 {
PORTA=255; PORTB=255; PORTB.3=1;
delay_us(600); //500 //600 PORTB.3=0;
PORTB.2=1;
delay_us(50); //750 //650 PORTB.2=0;
PORTB.7=1;
delay_us(550); //1150 //1200 PORTB.7=0;
PORTB.4=1;
delay_us(50); //1450 //1350 //1250 PORTB.4=0;
PORTA.6=1;
PORTA.6=0; PORTB.0=1; delay_us(50); //1500 PORTB.0=0; PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTB.1=1;
delay_us(50); //1400 //1600 PORTB.1=0;
delay_us(10250); };
for(i=0;i<200;i++) //16 {
PORTA=255; PORTB=255; PORTB.3=1;
delay_us(600); //500 //600 PORTB.3=0;
PORTB.2=1;
delay_us(50); //750 //650 PORTB.2=0;
PORTB.7=1;
delay_us(600); //1150 //1200 //1250 PORTB.7=0;
PORTB.4=1;
delay_us(1); //1450 //1350 //1250 PORTB.4=0;
PORTA.6=1;
delay_us(200); //1750 //1650 //1550 //1500 //1450 PORTA.6=0;
PORTB.0=1; delay_us(50); //1500 PORTB.0=0; PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTB.1=1;
delay_us(50); //1400 //1600 PORTB.1=0;
delay_us(10250); };
for(i=0;i<200;i++) //17 {
PORTA=255; PORTB=255; PORTB.3=1;
delay_us(600); //500 //600 PORTB.3=0;
PORTB.2=1;
delay_us(50); //750 //650 PORTB.2=0;
PORTB.4=1;
PORTB.7=1;
delay_us(50); //1150 //1200 //1250 //1300 PORTB.7=0;
PORTA.6=1;
delay_us(150); //1750 //1650 //1550 //1500 //1450 PORTA.6=0;
PORTB.0=1; delay_us(50); //1500 PORTB.0=0; PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTB.1=1;
delay_us(50); //1400 //1600 PORTB.1=0;
delay_us(10250); };
for(i=0;i<200;i++) //18 {
PORTA=255; PORTB=255; PORTB.3=1;
delay_us(600); //500 //600 PORTB.3=0;
PORTB.2=1;
delay_us(50); //750 //650 PORTB.2=0;
PORTB.4=1;
delay_us(600); //1450 //1350 //1250 PORTB.4=0;
PORTB.7=1;
delay_us(100); //1150 //1200 //1250 //1300 //1350 PORTB.7=0;
PORTA.6=1;
delay_us(100); //1750 //1650 //1550 //1500 //1450 PORTA.6=0;
PORTB.0=1; delay_us(50); //1500 PORTB.0=0; PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTB.1=1;
delay_us(50); //1400 //1600 PORTB.1=0;
delay_us(10250); };
for(i=0;i<300;i++) //19 -- miring di tangga ... {
delay_us(1); //400 PORTB.2=0; PORTB.7=1;
delay_us(949); //1350 PORTB.7=0;
PORTB.4=1;
delay_us(100); //1450 PORTB.4=0;
PORTB.5=1; delay_us(100); //1550 PORTB.5=0; PORTB.0=1;
delay_us(150); //1700 PORTB.0=0;
PORTB.1=1;
delay_us(200); //1600 //1900 PORTB.1=0;
PORTA.6=1; delay_us(100); //2000 PORTA.6=0; delay_us(9250); };
for(i=0;i<300;i++) //20 {
PORTA=255; PORTB=255; PORTB.3=1; delay_us(400); //400 PORTB.3=0; PORTB.2=1; delay_us(1); //400 PORTB.2=0; PORTB.7=1;
delay_us(950); //1350 PORTB.7=0;
PORTB.0=1;
delay_us(350); //1700 PORTB.0=0;
PORTB.1=1;
delay_us(300); //1600 // 1900 //2000 PORTB.1=0;
PORTA.6=1; delay_us(1); //2000 PORTA.6=0; PORTB.5=1;
delay_us(400); //1550 //1800 //2000 //2400 PORTB.5=0;
PORTB.4=1;
delay_us(1); //1450 //2400 PORTB.4=0;
delay_us(7350); };
for(i=0;i<300;i++) //21 {
PORTB=255; PORTB.3=1; delay_us(400); //400 PORTB.3=0; PORTB.2=1;
delay_us(100); //400 //500 PORTB.2=0;
PORTB.7=1;
delay_us(850); //1350 PORTB.7=0;
PORTB.0=1;
delay_us(350); //1700 PORTB.0=0;
PORTB.1=1;
delay_us(200); //1600 // 1900 //2000 //1900 PORTB.1=0;
PORTA.6=1; delay_us(100); //2000 PORTA.6=0; PORTB.5=1;
delay_us(400); //1550 //1800 //2000 //2400 PORTB.5=0;
PORTB.4=1;
delay_us(1); //1450 //2400 PORTB.4=0;
delay_us(7350); };
for(i=0;i<300;i++) //22 {
PORTA=255; PORTB=255; PORTB.3=1; delay_us(400); //400 PORTB.3=0; PORTB.2=1;
delay_us(200); //400 //500 //600 PORTB.2=0;
PORTB.7=1;
delay_us(750); //1350 PORTB.7=0;
PORTB.0=1;
delay_us(350); //1700 PORTB.0=0;
PORTB.1=1;
delay_us(100); //1600 // 1900 //2000 //1900 //1800 PORTB.1=0;
PORTA.6=1; delay_us(200); //2000 PORTA.6=0; PORTB.5=1;
delay_us(400); //1550 //1800 //2000 //2400 PORTB.5=0;
PORTB.4=1;
delay_us(1); //1450 //2400 PORTB.4=0;
};
for(i=0;i<200;i++) //23 {
PORTA=255; PORTB=255; PORTB.3=1; delay_us(400); //400 PORTB.3=0; PORTB.2=1;
delay_us(300); //400 //500 //600 //700 PORTB.2=0;
PORTB.7=1;
delay_us(650); //1350 PORTB.7=0;
PORTB.0=1;
delay_us(350); //1700 PORTB.0=0;
PORTB.1=1;
delay_us(1); //1600 // 1900 //2000 //1900 //1800 //1700 PORTB.1=0;
PORTA.6=1; delay_us(300); //2000 PORTA.6=0; PORTB.5=1;
delay_us(400); //1550 //1800 //2000 //2400 PORTB.5=0;
PORTB.4=1;
delay_us(1); //1450 //2400 PORTB.4=0;
delay_us(7350); };
for(i=0;i<300;i++) //24 {
PORTA=255; PORTB=255; PORTB.3=1; delay_us(400); //400 PORTB.3=0; PORTB.2=1;
delay_us(500); //400 //500 //600 //700 //800 //900 PORTB.2=0;
PORTB.7=1;
delay_us(450); //1350 PORTB.7=0;
PORTB.1=1;
delay_us(250); //1600 // 1900 //2000 //1900 //1800 //1700 //1600 PORTB.1=0;
PORTB.0=1;
delay_us(100); //1700 PORTB.0=0;
PORTA.6=1; delay_us(300); //2000 PORTA.6=0; PORTB.5=1;
PORTB.5=0; PORTB.4=1;
delay_us(1); //1450 //2400 PORTB.4=0;
delay_us(7250); };
for(i=0;i<300;i++) //25 {
PORTA=255; PORTB=255; PORTB.3=1; delay_us(400); //400 PORTB.3=0; PORTB.2=1;
delay_us(950); //400 //900 //1350 PORTB.2=0;
PORTB.7=1; delay_us(1); //1350 PORTB.7=0; PORTB.1=1;
delay_us(49); //1600 //1400 PORTB.1=0;
PORTB.0=1;
delay_us(300); //1700 PORTB.0=0;
PORTA.6=1; delay_us(300); //2000 PORTA.6=0; PORTB.5=1; delay_us(400); //2400 PORTB.5=0; PORTB.4=1; delay_us(1); //2400 PORTB.4=0; delay_us(7000); };
for(i=0;i<300;i++) //26 {
PORTA=255; PORTB=255; PORTB.3=1; delay_us(450); //450 PORTB.3=0; PORTB.2=1;
delay_us(900); //400 //900 //1350 PORTB.2=0;
PORTB.7=1; delay_us(1); //1350 PORTB.7=0; PORTB.1=1;
delay_us(49); //1600 //1400 PORTB.1=0;
PORTB.0=1;
PORTB.0=0; PORTA.6=1;
delay_us(1); //2000 //1700 PORTA.6=0;
PORTB.5=1; delay_us(699); //2400 PORTB.5=0; PORTB.4=1; delay_us(1); //2400 PORTB.4=0; delay_us(7250); };
for(i=0;i<300;i++) //27 {
PORTA=255; PORTB=255; PORTB.3=1;
delay_us(450); //400 //450 PORTB.3=0;
PORTB.2=1;
delay_us(900); //400 //900 //1350 PORTB.2=0;
PORTB.7=1; delay_us(1); //1350 PORTB.7=0; PORTB.1=1;
delay_us(49); //1600 //1400 PORTB.1=0;
PORTB.5=1;
delay_us(150); //2400 //1550 PORTB.5=0;
PORTB.0=1;
delay_us(150); //1700 PORTB.0=0;
PORTA.6=1;
delay_us(1); //2000 //1700 PORTA.6=0;
PORTB.4=1;
delay_us(699); //2400 PORTB.4=0;
delay_us(8100); };
for(i=0;i<300;i++) //28 {
PORTA=255; PORTB=255; PORTB.3=1;
delay_us(450); //400 //450 PORTB.3=0;
PORTB.2=1;
PORTB.7=1; delay_us(1); //1350 PORTB.7=0; PORTB.1=1;
delay_us(49); //1600 //1400 PORTB.1=0;
PORTB.5=1;
delay_us(150); //2400 //1550 PORTB.5=0;
PORTB.0=1;
delay_us(100); //1700 //1650 PORTB.0=0;
PORTA.6=1;
delay_us(50); //2000 //1700 PORTA.6=0;
PORTB.4=1;
delay_us(699); //2400 PORTB.4=0;
delay_us(8100); };
for(i=0;i<300;i++) //29 {
PORTA=255; PORTB=255; PORTB.3=1;
delay_us(450); //400 //450 PORTB.3=0;
PORTB.2=1;
delay_us(900); //400 //900 //1350 PORTB.2=0;
PORTB.7=1; delay_us(1); //1350 PORTB.7=0; PORTB.1=1;
delay_us(49); //1600 //1400 PORTB.1=0;
PORTB.5=1;
delay_us(150); //2400 //1550 PORTB.5=0;
PORTB.0=1;
delay_us(50); //1700 //1650 //1600 PORTB.0=0;
PORTA.6=1;
delay_us(100); //2000 //1700 PORTA.6=0;
PORTB.4=1;
delay_us(699); //2400 PORTB.4=0;
delay_us(8100); };
for(i=0;i<300;i++) //30 {
delay_us(450); //400 //450 PORTB.3=0;
PORTB.2=1;
delay_us(900); //400 //900 //1350 PORTB.2=0;
PORTB.7=1; delay_us(1); //1350 PORTB.7=0; PORTB.1=1;
delay_us(49); //1600 //1400 PORTB.1=0;
PORTB.5=1;
delay_us(150); //2400 //1550 PORTB.5=0;
PORTB.0=1;
delay_us(1); //1700 //1650 //1600 //1550 PORTB.0=0;
PORTA.6=1;
delay_us(150); //2000 //1700 PORTA.6=0;
PORTB.4=1;
delay_us(699); //2400 PORTB.4=0;
delay_us(8100); };
for(i=0;i<300;i++) //31 {
PORTA=255; PORTB=255; PORTB.3=1;
delay_us(450); //1300 //400 //450 PORTB.3=0;
PORTB.7=1;
delay_us(900); //1350 PORTB.7=0;
PORTB.2=1; delay_us(1); //1350 PORTB.2=0; PORTB.1=1; delay_us(49); //1400 PORTB.1=0; PORTB.0=1;
delay_us(100); //1500 PORTB.0=0;
PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTA.6=1; delay_us(100); //1650 PORTA.6=0; PORTB.4=1;
delay_us(750); //1450 //2400 PORTB.4=0;
for(i=0;i<300;i++) //32 {
PORTA=255; PORTB=255; PORTB.3=1;
delay_us(1300); //1300 PORTB.3=0;
PORTB.7=1; delay_us(50); //1350 PORTB.7=0; PORTB.2=1; delay_us(1); //1350 PORTB.2=0; PORTB.1=1; delay_us(50); //1400 PORTB.1=0; PORTB.4=1;
delay_us(100); //1500 PORTB.4=0;
PORTB.0=1; delay_us(1); //1500 PORTB.0=0; PORTB.5=1; delay_us(49); //1550 PORTB.5=0; PORTA.6=1; delay_us(100); //1650 PORTA.6=0; delay_us(8400); };
}
void turun(void) {
for(i=0;i<300;i++) //1 {
PORTA=255; PORTB=255; PORTB.3=1;
delay_us(1300); //1300 PORTB.3=0;
PORTB.7=1; delay_us(50); //1350 PORTB.7=0; PORTB.2=1; delay_us(1); //1350 PORTB.2=0; PORTB.1=1; delay_us(50); //1400 PORTB.1=0; PORTB.4=1;
delay_us(100); //1500 PORTB.4=0;
delay_us(1); //1500 PORTB.0=0; PORTB.5=1; delay_us(49); //1550 PORTB.5=0; PORTA.6=1; delay_us(100); //1650 PORTA.6=0; delay_us(8400); };
for(i=0;i<300;i++) //2 {
PORTA=255; PORTB=255; PORTB.3=1;
delay_us(450); //1300 //400 //450 PORTB.3=0;
PORTB.7=1;
delay_us(900); //1350 PORTB.7=0;
PORTB.2=1; delay_us(1); //1350 PORTB.2=0; PORTB.1=1; delay_us(49); //1400 PORTB.1=0; PORTB.0=1;
delay_us(100); //1500 PORTB.0=0;
PORTB.5=1; delay_us(50); //1550 PORTB.5=0; PORTA.6=1; delay_us(100); //1650 PORTA.6=0; PORTB.4=1;
delay_us(650); //1450 //2300 PORTB.4=0;
delay_us(8350); };
for(i=0;i<300;i++) //3 {
PORTA=255; PORTB=255; PORTB.3=1;
delay_us(450); //400 //450 PORTB.3=0;
PORTB.2=1;
delay_us(900); //400 //900 //1350 PORTB.2=0;
PORTB.1=1;
delay_us(50); //1600 //1400 PORTB.1=0;
PORTB.5=1;
PORTB.5=0; PORTB.0=1;
delay_us(150); //1700 PORTB.0=0;
PORTA.6=1;
delay_us(1); //2000 //1700 PORTA.6=0;
PORTB.7=1;
delay_us(49); //1350 //1750 PORTB.7=0;
PORTB.4=1;
delay_us(550); //2300 PORTB.4=0;
delay_us(8100); };
for(i=0;i<300;i++) //4 {
PORTA=255; PORTB=255; PORTB.3=1; delay_us(450); //450 PORTB.3=0; PORTB.2=1;
delay_us(900); //400 //900 //1350 PORTB.2=0;
PORTB.7=1; delay_us(1); //1350 PORTB.7=0; PORTB.1=1;
delay_us(49); //1600 //1400 PORTB.1=0;
PORTB.0=1;
delay_us(300); //1700 PORTB.0=0;
PORTA.6=1;
delay_us(1); //2000 //1700 PORTA.6=0;
PORTB.4=1;
delay_us(600); //2300 PORTB.4=0;
PORTB.5=1; delay_us(100); //2400 PORTB.5=0; delay_us(7250); };
for(i=0;i<300;i++) //5 {
PORTA=255; PORTB=255; PORTB.3=1; delay_us(400); //400 PORTB.3=0; PORTB.2=1;
PORTB.7=1; delay_us(1); //1350 PORTB.7=0; PORTB.1=1;
delay_us(49); //1600 //1400 PORTB.1=0;
PORTB.0=1;
delay_us(300); //1700 PORTB.0=0;
PORTA.6=1; delay_us(300); //2000 PORTA.6=0; PORTB.4=1;
delay_us(300); //2300 PORTB.4=0;
PORTB.5=1; delay_us(100); //2400 PORTB.5=0; delay_us(7000); };
for(i=0;i<300;i++) //6 {
PORTA=255; PORTB=255; PORTB.3=1; delay_us(400); //400 PORTB.3=0; PORTB.2=1;
delay_us(500); //400 //500 //600 //700 //800 //900 PORTB.2=0;
PORTB.7=1;
delay_us(450); //1350 PORTB.7=0;
PORTB.1=1;
delay_us(250); //1600 // 1900 //2000 //1900 //1800 //1700 //1600 PORTB.1=0;
PORTB.0=1;
delay_us(100); //1700 PORTB.0=0;
PORTA.6=1; delay_us(300); //2000 PORTA.6=0; PORTB.4=1;
delay_us(300); //1450 //2300 PORTB.4=0;
PORTB.5=1;
delay_us(100); //1550 //1800 //2000 //2400 PORTB.5=0;
delay_us(7250); };
for(i=0;i<200;i++) //7 {
delay_us(400); //400 PORTB.3=0; PORTB.2=1;
delay_us(300); //400 //500 //600 //700 PORTB.2=0;
PORTB.7=1;
delay_us(650); //1350 PORTB.7=0;
PORTB.0=1;
delay_us(350); //1700 PORTB.0=0;
PORTB.1=1;
delay_us(1); //1600 // 1900 //2000 //1900 //1800 //1700 PORTB.1=0;
PORTA.6=1; delay_us(300); //2000 PORTA.6=0; PORTB.4=1;
delay_us(300); //1450 //2300 PORTB.4=0;
PORTB.5=1;
delay_us(100); //1550 //1800 //2000 //2400 PORTB.5=0;
delay_us(7350); };
for(i=0;i<300;i++) //8 {
PORTA=255; PORTB=255; PORTB.3=1; delay_us(400); //400 PORTB.3=0; PORTB.2=1;
delay_us(200); //400 //500 //600 PORTB.2=0;
PORTB.7=1;
delay_us(750); //1350 PORTB.7=0;
PORTB.0=1;
delay_us(350); //1700 PORTB.0=0;
PORTB.1=1;
delay_us(100); //1600 // 1900 //2000 //1900 //1800 PORTB.1=0;
PORTA.6=1; delay_us(200); //2000 PORTA.6=0; PORTB.4=1;
delay_us(300); //1450 //2400 PORTB.4=0;
PORTB.5=1;
delay_us(100); //1550 //1800 //2000 //2400 PORTB.5=0;
for(i=0;i<300;i++) //9 {
PORTA=255; PORTB=255; PORTB.3=1; delay_us(400); //400 PORTB.3=0; PORTB.2=1;
delay_us(100); //400 //500 PORTB.2=0;
PORTB.7=1;
delay_us(850); //1350 PORTB.7=0;
PORTB.0=1;
delay_us(350); //1700 PORTB.0=0;
PORTB.1=1;
delay_us(200); //1600 // 1900 //2000 //1900 PORTB.1=0;
PORTA.6=1; delay_us(100); //2000 PORTA.6=0; PORTB.4=1;
delay_us(300); //1450 //2300 PORTB.4=0;
PORTB.5=1;
delay_us(100); //1550 //1800 //2000 //2400 PORTB.5=0;
delay_us(7350); };
for(i=0;i<300;i++) //10 {
PORTA=255; PORTB=255; PORTB.3=1; delay_us(400); //400 PORTB.3=0; PORTB.2=1; delay_us(1); //400 PORTB.2=0; PORTB.7=1;
delay_us(950); //1350 PORTB.7=0;
PORTB.0=1;
delay_us(350); //1700 PORTB.0=0;
PORTB.1=1;
delay_us(300); //1600 // 1900 //2000 PORTB.1=0;
PORTA.6=1; delay_us(1); //2000 PORTA.6=0; PORTB.4=1;
delay_us(300); //1450 //2300 PORTB.4=0;
delay_us(100); //1550 //1800 //2000 //2400 PORTB.5=0;
delay_us(7350); };
for(i=0;i<300;i++) //11 -- miring di tangga ... {
PORTA=255; PORTB=255; PORTB.3=1; delay_us(400); //400 PORTB.3=0; PORTB.2=1; delay_us(1); //400 PORTB.2=0; PORTB.7=1;
delay_us(949); //1350 PORTB.7=0;
PORTB.4=1;
delay_us(100); //1450 PORTB.4=0;
PORTB.5=1; delay_us(100); //1550 PORTB.5=0; PORTB.0=1;
delay_us(150); //1700 PORTB.0=0;
PORTB.1=1;
delay_us(200); //1600 //1900 PORTB.1=0;
PORTA.6=1; delay_us(100); //2000 PORTA.6=0; delay_us(9250); };
for(i=0;i<300;i++) //12 -- miring di tangga ... {
PORTA=255; PORTB=255; PORTB.3=1; delay_us(400); //400 PORTB.3=0; PORTB.2=1; delay_us(1); //400 PORTB.2=0; PORTB.4=1;
delay_us(899); //1450 //1250 //1300 PORTB.4=0;
PORTB.7=1; delay_us(50); //1350 PORTB.7=0; PORTB.5=1; delay_us(200); //1550 PORTB.5=0; PORTA.6=1;
PORTA.6=0; PORTB.0=1; delay_us(50); //1700 PORTB.0=0; PORTB.1=1;
delay_us(200); //1600 //1900 PORTB.1=0;
delay_us(9250); };
for(i=0;i<300;i++) //13 -- miring di tangga ... {
PORTA=255; PORT