Академический Документы
Профессиональный Документы
Культура Документы
: 9/13/2014
Author :
Company :
Comments:
Chip type
Program type
Clock frequency
: ATmega16
: Application
: 12.000000 MHz
Memory model
: Small
: 256
*****************************************************/
#include <mega16.h>
#include <delay.h>
#include <stdlib.h>
#include <math.h>
#include <stdio.h> // inisialisasi data string
#define servo PORTD.0 // servo connected with PORTD.0
#define servo1 PORTD.1
#define servo2 PORTD.2
#include <delay.h>
char buf1[8];
char buf2[8];
{
//cek barang
for (i=0;i<30;i++)
{
servo=1;
delay_us(700);
servo=0;
delay_us(19300);
servo1=1;
delay_us(1300);
servo1=0;
delay_us(18700);
servo2=1;
delay_us(800);
servo2=0;
delay_us(19200);
servo3=1;
delay_us(1100);
servo3=0;
delay_us(1800);
}
}
void jepit()
{
for (i=0;i<30;i++)
{
// jepit barang biru
servo3=1;
delay_us(500);
servo3=0;
delay_us(19500);
}
}
void angkat_jepit_hijau()
{
for (i=0;i<30;i++)
{
//angkat barang biru
servo=1;
delay_us(700);
servo=0;
delay_us(19300);
servo1=1;
delay_us(1100);
servo1=0;
delay_us(18900);
servo2=1;
delay_us(500);
servo2=0;
delay_us(19500);
servo3=1;
delay_us(500);
servo3=0;
delay_us(19500);
}
}
void pindah_hijau()
{
for (i=0;i<30;i++)
{
//pindahkan barang biru ke tempat 3
servo=1;
delay_us(1500);
servo=0;
delay_us(18500);
servo1=1;
delay_us(900);
servo1=0;
delay_us(19100);
servo2=1;
delay_us(800);
servo2=0;
delay_us(19200);
servo3=1;
delay_us(500);
servo3=0;
delay_us(19500);
}
}
void turun_hijau()
{
for (i=0;i<30;i++)
{
//turunkan barang biru ke tempat 3
servo=1;
delay_us(1500);
servo=0;
delay_us(18500);
servo1=1;
delay_us(1300);
servo1=0;
delay_us(18700);
servo2=1;
delay_us(800);
servo2=0;
delay_us(19200);
servo3=1;
delay_us(500);
servo3=0;
delay_us(19500);
}
}
void lepas()
{
for (i=0;i<30;i++)
{
// lepas barang biru
servo3=1;
delay_us(1100);
servo3=0;
delay_us(18900);
}
}
void angkat_lepas_hijau()
{
for (i=0;i<30;i++)
{
//angkat barang biru
servo=1;
delay_us(1500);
servo=0;
delay_us(18500);
servo1=1;
delay_us(1100);
servo1=0;
delay_us(18900);
servo2=1;
delay_us(500);
servo2=0;
delay_us(19500);
servo3=1;
delay_us(1100);
servo3=0;
delay_us(18900);
}
}
void angkat_jepit_biru()
{
for (i=0;i<30;i++)
{
servo1=1;
delay_us(900);
servo1=0;
delay_us(19100);
servo2=1;
delay_us(800);
servo2=0;
delay_us(19200);
servo3=1;
delay_us(500);
servo3=0;
delay_us(19500);
}
}
void turun_biru()
{
for (i=0;i<30;i++)
{
//turunkan barang biru ke tempat 3
servo=1;
delay_us(2400);
servo=0;
delay_us(17600);
servo1=1;
delay_us(1100);
servo1=0;
delay_us(18900);
servo2=1;
delay_us(800);
servo2=0;
delay_us(19200);
servo3=1;
delay_us(500);
servo3=0;
delay_us(19500);
}
}
void angkat_lepas_biru()
{
for (i=0;i<30;i++)
{
//angkat barang biru
servo=1;
delay_us(2400);
servo=0;
delay_us(17600);
servo1=1;
delay_us(900);
servo1=0;
delay_us(18100);
servo2=1;
delay_us(500);
servo2=0;
delay_us(19500);
servo3=1;
delay_us(1100);
servo3=0;
delay_us(18900);
}
}
void main(void)
{
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In
Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T
State0=T
PORTB=0x00;
DDRB=0x00;
// Port C initialization
// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In
Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T
State0=T
PORTD=0x00;
DDRD=0xFF;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;
// ADC initialization
// ADC Clock frequency: 750.000 kHz
// ADC Voltage Reference: AREF pin
// ADC Auto Trigger Source: None
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0x84;
Kondisi_awal();
cek();
while(1)
{
// Place your code here
adc0=read_adc(0); // pembacaan nilai ADC 0 dimasukkan ke dalam label
ADC0
sprintf(buf0,"%d",adc0); //menyimpan nilai ADC 0 ke internal LCD
lcd_gotoxy(0,1); // letak
lcd_puts(buf0); // menampilkan nilai ADC 0 ke LCD
adc1=read_adc(1);
sprintf(buf1,"%d",adc1);
lcd_gotoxy(7,1);
lcd_puts(buf1);
adc2=read_adc(2);
sprintf(buf2,"%d",adc2);
lcd_gotoxy(13,1);
lcd_puts(buf2);
nilai = (adc0+adc1+adc2);
//=============================HIJAU
if(nilai==1420){
lcd_gotoxy(0,0);
lcd_putsf("
lcd_gotoxy(6,0);
lcd_putsf("HIJAU");
delay_ms(1000);
");
lcd_gotoxy(0,0);
lcd_putsf("
");
lcd_gotoxy(0,0);
lcd_putsf("==KE TEMPAT 2==");
jepit();
angkat_jepit_hijau();
pindah_hijau();
turun_hijau();
lepas();
delay_ms(1000);
lcd_gotoxy(0,0);
lcd_putsf("
");
lcd_gotoxy(0,0);
lcd_putsf("BARANG TERSIMPAN");
angkat_lepas_hijau();
Kondisi_awal();
cek();
}
//=============================BIRU
if(nilai==1627){
lcd_gotoxy(0,0);
lcd_putsf("
");
lcd_gotoxy(6,0);
lcd_putsf("BIRU");
delay_ms(1000);
lcd_gotoxy(0,0);
lcd_putsf("
lcd_gotoxy(0,0);
");
");
lcd_gotoxy(0,0);
lcd_putsf("BARANG TERSIMPAN");
angkat_lepas_biru();
Kondisi_awal();
cek();
}
//=============================NORMAL
if(nilai!=2668&&nilai!=2667){
lcd_gotoxy(0,0);
lcd_putsf("
");
lcd_gotoxy(2,0);
lcd_putsf("CEK BARANG"); }
}
}