A-1 LISTING PROGRAM MIKROKONTROLER de #inclu <mega32a.h> #include <stdio.h> #include <string.h> #include <stdlib.h> #include <delay.h> // Alphanumeric LCD functions #include <alcd.h> // Declare your global variables here char tampil_lcd[32]; int Mj=1; int nilaisensor, panjangngantar, panjangkembali, nilaisensorcek; char *str; int a,b; int i=0; char nilaitampil[32]; char nilaitampilcek[32]; unsigned int awal, akhir; unsigned char ngantar[50]; unsigned char gerakngantar[50]; unsigned char kembali[50]; unsigned char gerakkembali[50]; unsigned char tampilngantar[50]; unsigned char tampilkembali[50]; void OKSensor(); signed int nilai_sensor(); void Pushbutton (); void void kiri(); void kanan(); signed int nilai_sensorcek(); void inputdata(); void turun(){ for (i=0; i<50; i++) { PORTC.7=1; delay_us(1500); PORTC.7=0; delay_us(18500); void naik(){ for (i=0; i<50; i++) { PORTC.7=1; delay_us(1100); PORTC.7=0; delay_us(18900);
A-2 ain(void) m { // Declare your local variables here // Input/Output Ports initialization // Port A 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 PORTA=0x00; DDRA=0x00; // 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=0xFF; DDRB=0x00; // Port C 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 PORTC=0x00; DDRC=0x80; // Port D initialization // Func7=In Func6=In Func5=Out Func4=Out Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=0 State4=0 State3=T State2=T State1=T State0=T PORTD=0x00; DDRD=0xFC; // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: Timer 0 Stopped // Mode: Normal top=0xff // OC0 output: Disconnected TCCR0=0x00; TCNT0=0x00; OCR0=0x00; // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: 11.719 khz // Mode: Fast PWM top=0x00ff // OC1A output: Non-Inv. // OC1B output: Non-Inv. // Noise Canceler: Off // Input Capture on Falling Edge // Timer1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=0xA1; TCCR1B=0x0D;
A-3 =0x00; TCNT1H TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; // Timer/Counter 2 initialization // Clock source: System Clock // Clock value: Timer2 Stopped // Mode: Normal top=0xff // OC2 output: Disconnected ASSR=0x00; TCCR2=0x00; TCNT2=0x00; OCR2=0x00; // External Interrupt(s) initialization // INT0: Off // INT1: Off // INT2: Off MCUCR=0x00; MCUCSR=0x00; // Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x00; // USART initialization // USART disabled UCSRB=0x00; // Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80; SFIOR=0x00; // ADC initialization // ADC disabled ADCSRA=0x00; // SPI initialization // SPI disabled SPCR=0x00; // TWI initialization // TWI disabled TWCR=0x00; // Alphanumeric LCD initialization // Connections are specified in the // Project Configure C Compiler Libraries Alphanumeric LCD menu: // RS - PORTA Bit 0 // RD - PORTA Bit 1 // EN - PORTA Bit 2 // D4 - PORTA Bit 3 // D5 - PORTA Bit 4 // D6 - PORTA Bit 5
A-4 // D7 - PORTA Bit 6 // Characters/line: 16 lcd_init(16); lcd_gotoxy(3,0); lcd_puts("bissmillah"); delay_ms(1000); while (1) { inputdata(); a=0; b=0; while (a<panjangngantar){ OKSensor(); nilaisensorcek=nilai_sensorcek(); nilaisensor=nilai_sensor(); sprintf(nilaitampil,"nilai:%i ",nilaisensor); sprintf(nilaitampilcek,"%i ",nilaisensorcek); lcd_puts(nilaitampil); itoa(a,str); strcat(str," "); lcd_gotoxy(15,1); lcd_puts(str); lcd_gotoxy(11,1); lcd_puts(nilaitampilcek); if ((nilaisensorcek==12)){ while (1){ OKSensor(); nilaisensorcek=nilai_sensorcek(); nilaisensor=nilai_sensor(); sprintf(nilaitampil,"nilai:%i ",nilaisensor); sprintf(nilaitampilcek,"%i ",nilaisensorcek); lcd_puts(nilaitampil); lcd_gotoxy(11,1); lcd_puts(nilaitampilcek); if ((nilaisensorcek==12)){ if (gerakngantar[a]=='t'){ OCR1A=90; OCR1B=85; else if (gerakngantar[a]=='s'){ if (a==panjangngantar-1){ a++;
A-5 else { break; else if (gerakngantar[a]=='x'){ OCR1A=95; delay_ms(500); else if(gerakngantar[a]=='y'){ OCR1B=90; delay_ms(500); else{ a++; break; if (nilaisensor==0){ OCR1A=90; OCR1B=85; else if (nilaisensor<0){ OCR1A=95; else if (nilaisensor>0){ OCR1B=90; if (a==panjangngantar){ lcd_gotoxy(2,0); lcd_puts("ambil Makanan"); delay_ms(3000); lcd_gotoxy(2,0); lcd_puts("terima KASIH"); delay_ms(1000); a++; turun(); lcd_gotoxy(3,0); lcd_puts("kembali Ke"); lcd_gotoxy(4,1); lcd_puts("home BASE");
A-6 delay_ms(2000); while (b<panjangkembali){ OKSensor(); nilaisensorcek=nilai_sensorcek(); nilaisensor=nilai_sensor(); sprintf(nilaitampil,"nilai:%i ",nilaisensor); sprintf(nilaitampilcek,"%i ",nilaisensorcek); lcd_puts(nilaitampil); itoa(b,str); strcat(str," "); lcd_gotoxy(15,1); lcd_puts(str); lcd_gotoxy(11,1); lcd_puts(nilaitampilcek); if ((nilaisensorcek==12)){ while (1){ OKSensor(); nilaisensorcek=nilai_sensorcek(); nilaisensor=nilai_sensor(); sprintf(nilaitampil,"nilai:%i ",nilaisensor); sprintf(nilaitampilcek,"%i ",nilaisensorcek); lcd_puts(nilaitampil); lcd_gotoxy(11,1); lcd_puts(nilaitampilcek); if ((nilaisensorcek==12)){ if (gerakkembali[b]=='t'){ OCR1A=90; OCR1B=85; else if (gerakkembali[b]=='s'){ if (a==panjangkembali-1){ lcd_gotoxy(0,0); lcd_puts("load Makanan"); delay_ms(3000); b++; break; else if (gerakkembali[b]=='x'){ OCR1A=95; delay_ms(500); else if(gerakkembali[b]=='y'){ OCR1B=90; delay_ms(500);
A-7 else { else{ b++; break; if (nilaisensor==0){ OCR1A=90; OCR1B=85; else if (nilaisensor<0){ OCR1A=95; else if (nilaisensor>0){ OCR1B=90; signed int nilai_sensor(){ int kiri=0; int kanan=0; if (PINC.0==1){ kiri=kiri+3; if (PINC.1==1){ kiri=kiri+2; if (PINC.2==1){ kiri=kiri+1; if (PINC.3==1){ kanan=kanan-1; if (PINC.4==1){ kanan=kanan-2; if (PINC.5==1){ kanan=kanan-3; return kiri+kanan; signed int nilai_sensorcek(){ int kiri=0; int kanan=0;
A-8 if (PINC.0==1){ kiri=kiri+3; if (PINC.1==1){ kiri=kiri+2; if (PINC.2==1){ kiri=kiri+1; if (PINC.3==1){ kanan=kanan+1; if (PINC.4==1){ kanan=kanan+2; if (PINC.5==1){ kanan=kanan+3; return kiri+kanan; void OKSensor(){ if (PINC.0 == 1){ lcd_gotoxy(0,0); lcd_putsf("1"); else{ lcd_gotoxy(0,0); lcd_putsf("0"); if (PINC.1 == 1){ lcd_gotoxy(2,0); lcd_putsf("1"); else{ lcd_gotoxy(2,0); lcd_putsf("0"); if (PINC.2 == 1){ lcd_gotoxy(4,0); lcd_putsf("1"); else{ lcd_gotoxy(4,0);
A-9 lcd_putsf("0"); if (PINC.3 == 1){ lcd_gotoxy(6,0); lcd_putsf("1"); else{ lcd_gotoxy(6,0); lcd_putsf("0"); if (PINC.4 == 1){ lcd_gotoxy(8,0); lcd_putsf("1"); else{ lcd_gotoxy(8,0); lcd_putsf("0"); if (PINC.5 == 1){ lcd_gotoxy(10,0); lcd_putsf("1"); else{ lcd_gotoxy(10,0); lcd_putsf("0"); void Pushbutton (){ delay_ms(250); while(pinb.4==1 ) { Mj=Mj; if (PINB.2==0){Mj=Mj+1;delay_ms(20); if (PINB.3==0){Mj=Mj-1;delay_ms(20); if (Mj>6) {Mj=0;delay_ms(20); if (Mj<0) {Mj=6;delay_ms(20); lcd_gotoxy(3,0); lcd_puts("input MEJA"); sprintf(tampil_lcd,"meja:%i ",Mj); lcd_puts(tampil_lcd); delay_ms(150);
A-10 void aju(){ m PORTD.7=1; PORTD.3=0; PORTD.6=1; PORTD.2=0; void kanan(){ PORTD.7=1; PORTD.3=0; PORTD.6=0; PORTD.2=1; void kiri(){ PORTD.7=0; PORTD.3=1; PORTD.6=1; PORTD.2=0; void inputdata(){ Mj=1; naik(); Pushbutton(); awal=0; akhir=mj; if (awal==0){ if (akhir==1){ strcat(ngantar,"0d1"); strcat(gerakngantar,"txs"); strcat(kembali,"1a0"); strcat(gerakkembali,"txs"); else if (akhir==2){ strcat(ngantar,"0de2"); strcat(gerakngantar,"ttxs"); strcat(kembali,"2ba0"); strcat(gerakkembali,"txts");
A-11 else if (akhir==3){ strcat(ngantar,"0def3"); strcat(gerakngantar,"tttxs"); strcat(kembali,"3cba0"); strcat(gerakkembali,"txtts"); else if (akhir==4){ strcat(ngantar,"0d4"); strcat(gerakngantar,"tys"); strcat(kembali,"4higcba0"); strcat(gerakkembali,"ttttttts"); else if (akhir==5){ strcat(ngantar,"0de5"); strcat(gerakngantar,"ttys"); strcat(kembali,"5higcba0"); strcat(gerakkembali,"txttttts"); else if (akhir==6){ strcat(ngantar,"0def6"); strcat(gerakngantar,"tttys"); strcat(kembali,"6igcba0"); strcat(gerakkembali,"txtttts"); panjangngantar=strlen(ngantar); sprintf(tampilngantar,"p ngantar : %i",panjangngantar); panjangkembali=strlen(kembali); sprintf(tampilkembali,"p kembali : %i",panjangkembali); lcd_gotoxy(0,0); lcd_puts(ngantar); lcd_puts(tampilngantar); delay_ms(1000); lcd_gotoxy(0,0); lcd_puts(kembali); lcd_puts(tampilkembali); delay_ms(1000);
B-1 CURRICULUM VITAE Nama : M. Febri Rahmansyah Alamat Sekarang : Jl. Jamin Ginting, Padang Bulan Pasar 5 Alamat Orang Tua : Jl. Sei Serba Desa Jambo Rambong Kec. Tamiang Hulu Kab.Aceh Tamiang Telp/Hp : 085262109922 Email : febri_ragiel@yahoo.co.id Riwayat Pendidikan 2009 2014 : S1 Ilmu Komputer Fasilkom-TI, Medan 2007 2009 : SMA Negeri 2 Tamiang Hulu 2007 2005 : SMP Negeri 1 Pulau Tiga 2005 2000 : SD Negeri 1 Jambo Rambong Pengalaman Organisasi/Kepanitiaan No Nama Organisasi/UKM/Panitia Memegang Posisi Tertinggi Tahun/Periode 1 Pramuka Ketua 2005-2006 2 OSIS Wakil Ketua 2007-2008 3 BKM Al-Khuwarizmi S1 Ilmu Komputer USU Anggota 2010-2011 4 Pelatihan Dasar Organiasi IMILKOM USU Peserta 2009 5 PORSENI IV IMILKOM Wakil Ketua 2010 6 PMB S1 Ilmu Komputer USU Ketua OSPEK 2011
7 8 9 10 11 Ikatan Mahasiswa S1 Ilmu Komuter (IMILKOM) USU Ikatan Mahasiswa S1 Ilmu Komuter (IMILKOM) USU Ikatan Mahasiswa S1 Ilmu Komuter (IMILKOM) USU Unit Kegiatan Mahasiswa (UKM) Sepak Bola USU Unit Kegiatan Mahasiswa (UKM) Sepak Bola USU B-2 Anggota Bidang Seni dan Olah Raga 2010-2011 Ketua Bidang Seni dan Olah Raga 2011-2012 Ketua Bidang Seni dan Olah Raga 2012-2013 Anggota 2011-2012 Anggota 2012-2013