• Tidak ada hasil yang ditemukan

Listing Program Aquaponik

N/A
N/A
Protected

Academic year: 2021

Membagikan "Listing Program Aquaponik"

Copied!
17
0
0

Teks penuh

(1)

Listing Program Aquaponik

/******************************************************* Chip type : ATmega16

Program type : Application AVR Core Clock frequency : 12,000000 MHz Memory model : Small

External RAM size : 0 Data Stack size : 256

*******************************************************/ #include <mega16.h> #include <stdio.h> #include <delay.h> int detik,menit,jam,tunggu,hitung; int detik_s,detik_p,menit_s,menit_p,jam_s,jam_p,tunggu_pbp,tunggu_sms; bit prs_isi,prs_buang,sms_ml,tunggu_t_kran,tunggu_b_kran,tunggu_bp,beri_pakan; bit ubah_jam,ubah_menit,ubah_detik,siap_isi;

// Timer1 overflow interrupt service routine interrupt [TIM1_OVF] void timer1_ovf_isr(void) {

// Reinitialize Timer1 value 50ms TCNT1H=0xDE40 >> 8; TCNT1L=0xDE40 & 0xff; hitung++; tunggu++; tunggu_pbp++; tunggu_sms++; }

void to7seg(int angka) { if (angka==0) { PORTA.0=0; PORTA.1=0; PORTA.2=0; PORTA.3=0; } if (angka==1) {

(2)

PORTA.0=1; PORTA.1=0; PORTA.2=0; PORTA.3=0; } if (angka==2) { PORTA.0=0; PORTA.1=1; PORTA.2=0; PORTA.3=0; } if (angka==3) { PORTA.0=1; PORTA.1=1; PORTA.2=0; PORTA.3=0; } if (angka==4) { PORTA.0=0; PORTA.1=0; PORTA.2=1; PORTA.3=0; } if (angka==5) { PORTA.0=1; PORTA.1=0; PORTA.2=1; PORTA.3=0; } if (angka==6) { PORTA.0=0; PORTA.1=1; PORTA.2=1; PORTA.3=0; } if (angka==7) { PORTA.0=1; PORTA.1=1;

(3)

PORTA.2=1; PORTA.3=0; } if (angka==8) { PORTA.0=0; PORTA.1=0; PORTA.2=0; PORTA.3=1; } if (angka==9) { PORTA.0=1; PORTA.1=0; PORTA.2=0; PORTA.3=1; } } void prs_waktu(void) { if (hitung>=20) { hitung=0; detik++; if (detik>=60) { detik=0; menit++; if (menit>=60) { menit=0; jam++; if (jam>=24) jam=0; } } } detik_s=detik%10; detik_p=detik/10; menit_s=menit%10; menit_p=menit/10; jam_s=jam%10; jam_p=jam/10;

(4)

}

void tampil_waktu(void) {

// tampilkan detik digit "2 to7seg(detik_s); PORTC.0=0; PORTC.1=1; PORTC.2=1; PORTC.3=1; PORTC.4=1; PORTC.5=1; delay_ms(1);

// tampilkan detik digit "1 to7seg(detik_p); PORTC.0=1; PORTC.1=0; PORTC.2=1; PORTC.3=1; PORTC.4=1; PORTC.5=1; delay_ms(1);

// tampilkan menit digit "2 to7seg(menit_s); PORTC.0=1; PORTC.1=1; PORTC.2=0; PORTC.3=1; PORTC.4=1; PORTC.5=1; delay_ms(1);

// tampilkan menit digit "1 to7seg(menit_p); PORTC.0=1; PORTC.1=1; PORTC.2=1; PORTC.3=0; PORTC.4=1; PORTC.5=1; delay_ms(1);

// tampilkan jam digit "2 to7seg(jam_s);

PORTC.0=1; PORTC.1=1;

(5)

PORTC.2=1; PORTC.3=1; PORTC.4=0; PORTC.5=1; delay_ms(1);

// tampilkan jam digit "1 to7seg(jam_p); PORTC.0=1; PORTC.1=1; PORTC.2=1; PORTC.3=1; PORTC.4=1; PORTC.5=0; delay_ms(1); } void krm_sms1(void) { PORTC.7=0; printf("AT+CMGF=1"); putchar(13); putchar(10); tunggu_sms=0; while (tunggu_sms<10) { prs_waktu(); tampil_waktu(); } printf("AT+CMGS="); putchar('"'); printf("089611527601"); putchar('"'); putchar(13); putchar(10); tunggu_sms=0; while (tunggu_sms<10) { prs_waktu(); tampil_waktu(); } printf("Perhatian !!!"); putchar(13); putchar(10);

(6)

putchar(13); putchar(10); putchar(0x1A); tunggu_sms=0; while (tunggu_sms<10) { prs_waktu(); tampil_waktu(); } PORTC.7=1; } void krm_sms2(void) { PORTC.7=0; printf("AT+CMGF=1"); putchar(13); putchar(10); tunggu_sms=0; while (tunggu_sms<10) { prs_waktu(); tampil_waktu(); } printf("AT+CMGS="); putchar('"'); printf("089611527601"); putchar('"'); putchar(13); putchar(10); tunggu_sms=0; while (tunggu_sms<10) { prs_waktu(); tampil_waktu(); } printf("Perhatian !!!"); putchar(13); putchar(10);

printf("Aliran Listrik dari PLN MATI"); putchar(13);

putchar(10); putchar(0x1A); tunggu_sms=0;

(7)

while (tunggu_sms<10) { prs_waktu(); tampil_waktu(); } PORTC.7=1; } void ctrl_beri_pkn(void) {

//baca sensor pakan if (PINB.1==0) { krm_sms1(); } else { PORTB.5=1; tunggu_pbp=0; tunggu_bp=1; } beri_pakan=1; } void main(void) {

DDRA=(0<<DDA7) | (0<<DDA6) | (0<<DDA5) | (0<<DDA4) | (1<<DDA3) | (1<<DDA2) | (1<<DDA1) | (1<<DDA0);

PORTA=(1<<PORTA7) | (1<<PORTA6) | (1<<PORTA5) | (1<<PORTA4) | (0<<PORTA3) | (0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0);

DDRB=(1<<DDB7) | (1<<DDB6) | (1<<DDB5) | (1<<DDB4) | (0<<DDB3) | (0<<DDB2) | (0<<DDB1) | (0<<DDB0);

PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) | (1<<PORTB3) | (1<<PORTB2) | (1<<PORTB1) | (1<<PORTB0);

DDRC=0xFF; PORTC=0x00; // Timer/Counter 1 initialization // Timer Period: 50 ms

TCCR1A=(0<<COM1A1) | (0<<COM1A0) | (0<<COM1B1) | (0<<COM1B0) | (0<<WGM11) | (0<<WGM10);

(8)

TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (0<<WGM12) | (0<<CS12) | (1<<CS11) | (1<<CS10); TCNT1H=0xDE; TCNT1L=0x40; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; // USART initialization

// Communication Parameters: 8 Data, 1 Stop, No Parity // USART Baud Rate: 9600

UCSRA=(0<<RXC) | (0<<TXC) | (0<<UDRE) | (0<<FE) | (0<<DOR) | (0<<UPE) | (0<<U2X) | (0<<MPCM);

UCSRB=(0<<RXCIE) | (0<<TXCIE) | (0<<UDRIE) | (1<<RXEN) | (1<<TXEN) | (0<<UCSZ2) | (0<<RXB8) | (0<<TXB8);

UCSRC=(1<<URSEL) | (0<<UMSEL) | (0<<UPM1) | (0<<UPM0) | (0<<USBS) | (1<<UCSZ1) | (1<<UCSZ0) | (0<<UCPOL);

UBRRH=0x00; UBRRL=0x47;

// Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x04;

// Analog Comparator initialization ACSR=0x80;

SFIOR=0x00;

// Global enable interrupts #asm("sei")

prs_isi=0; //1:proses isi berlangsung prs_buang=0; //1:proses buang berlangsung

sms_ml=0; //0:sms mati lampu blm dilakukan : 1:sms sudah dilakukan tunggu_t_kran=0;

tunggu_b_kran=0; siap_isi=0;

beri_pakan=0;

//jika didalam pot masih ada air => buang if (PINB.3==0)

{

(9)

//buka kran air PORTB.6=0; PORTB.7=1; tunggu=0; while (tunggu<20) {} PORTB.6=0; PORTB.7=0; while (PINB.3==0) {} } PORTC.7=1; while (1) {

//jika air pot kering => Isi air pot if (PINB.3==1 && prs_isi==0) {

//tutup kran air PORTB.6=1; PORTB.7=0; tunggu=0; while (tunggu<20) { prs_waktu(); tampil_waktu(); } PORTB.6=0; PORTB.7=0;

//hidupkan pompa air PORTB.4=1; prs_isi=1; prs_buang=0; }

//jika air dlm pot penuh => kosongkan air dlm pot if (PINB.2==0 && prs_buang==0)

{

//matikan pompa air PORTB.4=0;

//buka kran air pembuangan PORTB.6=0; PORTB.7=1; tunggu=0; while (tunggu<20) { prs_waktu(); tampil_waktu();

(10)

} PORTB.6=0; PORTB.7=0; prs_buang=1; prs_isi=0; }

//cek sumber arus => PLN Mati if (PINB.0==1) { if (sms_ml==0) { sms_ml=1; krm_sms2(); } } else sms_ml=0;

//baca waktu untuk pemberian pakan

if (jam==7 && menit==0 && beri_pakan==0) ctrl_beri_pkn();

if (jam==12 && menit==0 && beri_pakan==0) ctrl_beri_pkn();

if (jam==17 && menit==0 && beri_pakan==0) ctrl_beri_pkn();

if (jam==7 && menit==1) beri_pakan=0;

if (jam==12 && menit==1) beri_pakan=0;

if (jam==17 && menit==1) beri_pakan=0;

//hentikan proses pemberian pakan if (tunggu_bp==1) { if (tunggu_pbp>30) { tunggu_bp=0; PORTB.5=0; } }

//proses dan tampilkan waktu prs_waktu();

tampil_waktu(); //pengubahan waktu if (PINA.4==0)

(11)

ubah_jam=1;

if (PINA.4==1 && ubah_jam==1) { jam++; if (jam>23) jam=0; hitung=0; ubah_jam=0; } if (PINA.5==0) ubah_menit=1;

if (PINA.5==1 && ubah_menit==1) { menit++; if (menit>59) menit=0; hitung=0; ubah_menit=0; } if (PINA.6==0) ubah_detik=1;

if (PINA.6==1 && ubah_detik==1) { detik++; if (detik>59) detik=0; hitung=0; ubah_detik=0; }

//proses dan tampilkan waktu prs_waktu();

tampil_waktu(); }

}

Listing Program TES SMS

/******************************************************* This program was created by the

CodeWizardAVR V3.12 Advanced Automatic Program Generator

© Copyright 1998-2014 Pavel Haiduc, HP InfoTech s.r.l. http://www.hpinfotech.com

(12)

Project : Version : Date : 09/08/2015 Author : Company : Comments:

Chip type : ATmega16 Program type : Application

AVR Core Clock frequency: 12,000000 MHz Memory model : Small

External RAM size : 0 Data Stack size : 256

*******************************************************/ #include <mega16.h>

#include <delay.h> #include <stdio.h>

// Declare your global variables here bit krm_sms; void main(void) { DDRC=0xFF; PORTC=0x00; DDRD=0xFF; PORTD=0x00; // USART initialization

// Communication Parameters: 8 Data, 1 Stop, No Parity // USART Receiver: On || USART Transmitter: On

// USART Mode: Asynchronous || USART Baud Rate: 9600

UCSRA=(0<<RXC) | (0<<TXC) | (0<<UDRE) | (0<<FE) | (0<<DOR) | (0<<UPE) | (0<<U2X) | (0<<MPCM);

UCSRB=(0<<RXCIE) | (0<<TXCIE) | (0<<UDRIE) | (1<<RXEN) | (1<<TXEN) | (0<<UCSZ2) | (0<<RXB8) | (0<<TXB8);

UCSRC=(1<<URSEL) | (0<<UMSEL) | (0<<UPM1) | (0<<UPM0) | (0<<USBS) | (1<<UCSZ1) | (1<<UCSZ0) | (0<<UCPOL);

UBRRH=0x00; UBRRL=0x4D;

(13)

ACSR=(1<<ACD) | (0<<ACBG) | (0<<ACO) | (0<<ACI) | (0<<ACIE) | (0<<ACIC) | (0<<ACIS1) | (0<<ACIS0);

SFIOR=(0<<ACME); krm_sms=0;

// Place your code here PORTC.7=1; delay_ms(250); PORTC.7=0; delay_ms(250); PORTC.7=1; delay_ms(250); PORTC.7=0; delay_ms(250); while (1) { if (krm_sms==0) { PORTC.7=1; krm_sms=1; printf("AT"); putchar(0x0D); putchar(0x0A); //while (getchar()!='K') {} delay_ms(250); PORTC.7=0; printf("AT+CMGF=1"); putchar(0x0D); putchar(0x0A); //while (getchar()!='K') {} delay_ms(250); PORTC.7=1; printf("AT+CMGS="); putchar('"'); printf("081368024300"); putchar('"'); putchar(0x0D); putchar(0x0A);

printf("Test Kirim SMS dari Mikro Kontroler ...."); putchar(0x0D); putchar(0x0A); printf("[SUKSES !!!!!]"); putchar(0x0D); putchar(0x0A); putchar(0x1A);

(14)

delay_ms(250); PORTC.7=0; }

} }

Listing Program tes sms lain

#include <mega16.h> #include <delay.h> #include <stdio.h> int test=0,krm_sms; void main(void) { DDRC=0xFF; PORTC=0x00; DDRD=0xFF; PORTD=0x00; // USART initialization

// Communication Parameters: 8 Data, 1 Stop, No Parity // USART Receiver: On || USART Transmitter: On

// USART Mode: Asynchronous || USART Baud Rate: 9600

UCSRA=(0<<RXC) | (0<<TXC) | (0<<UDRE) | (0<<FE) | (0<<DOR) | (0<<UPE) | (0<<U2X) | (0<<MPCM);

UCSRB=(0<<RXCIE) | (0<<TXCIE) | (0<<UDRIE) | (1<<RXEN) | (1<<TXEN) | (0<<UCSZ2) | (0<<RXB8) | (0<<TXB8);

UCSRC=(1<<URSEL) | (0<<UMSEL) | (0<<UPM1) | (0<<UPM0) | (0<<USBS) | (1<<UCSZ1) | (1<<UCSZ0) | (0<<UCPOL);

UBRRH=0x00; UBRRL=0x4D;

ACSR=(1<<ACD) | (0<<ACBG) | (0<<ACO) | (0<<ACI) | (0<<ACIE) | (0<<ACIC) | (0<<ACIS1) | (0<<ACIS0);

SFIOR=(0<<ACME); krm_sms=0;

// Place your code here PORTC.7=1; delay_ms(250); PORTC.7=0; delay_ms(250); PORTC.7=1; delay_ms(250); PORTC.7=0; delay_ms(250); while (1) {

(15)

putchar(0xCC); delay_ms(100); PORTC.7=(test%2); test++; if (test>6000) test=0; } }

Listing Program tes sms2

/******************************************************* This program was created by the

CodeWizardAVR V3.12 Advanced Automatic Program Generator

© Copyright 1998-2014 Pavel Haiduc, HP InfoTech s.r.l. http://www.hpinfotech.com Project : Version : Date : 03/09/2015 Author : Company : Comments:

Chip type : ATmega16 Program type : Application

AVR Core Clock frequency: 11,059200 MHz Memory model : Small

External RAM size : 0 Data Stack size : 256

*******************************************************/ #include <mega16.h> #include <delay.h> #include <stdio.h> bit krm_sms; void main(void) { DDRC=0xFF; PORTC=0x00; // Port D initialization

// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In DDRD=(0<<DDD7) | (0<<DDD6) | (0<<DDD5) | (0<<DDD4) | (0<<DDD3) | (0<<DDD2) | (0<<DDD1) | (0<<DDD0);

(16)

PORTD=(0<<PORTD7) | (0<<PORTD6) | (0<<PORTD5) | (0<<PORTD4) | (0<<PORTD3) | (0<<PORTD2) | (0<<PORTD1) | (0<<PORTD0);

// USART initialization

// Communication Parameters: 8 Data, 1 Stop, No Parity // USART Receiver: Off

// USART Transmitter: On // USART Mode: Asynchronous // USART Baud Rate: 9600

UCSRA=(0<<RXC) | (0<<TXC) | (0<<UDRE) | (0<<FE) | (0<<DOR) | (0<<UPE) | (0<<U2X) | (0<<MPCM);

UCSRB=(0<<RXCIE) | (0<<TXCIE) | (0<<UDRIE) | (0<<RXEN) | (1<<TXEN) | (0<<UCSZ2) | (0<<RXB8) | (0<<TXB8);

UCSRC=(1<<URSEL) | (0<<UMSEL) | (0<<UPM1) | (0<<UPM0) | (0<<USBS) | (1<<UCSZ1) | (1<<UCSZ0) | (0<<UCPOL);

UBRRH=0x00; UBRRL=0x47;

// Analog Comparator initialization // Analog Comparator: Off

// The Analog Comparator's positive input is // connected to the AIN0 pin

// The Analog Comparator's negative input is // connected to the AIN1 pin

ACSR=(1<<ACD) | (0<<ACBG) | (0<<ACO) | (0<<ACI) | (0<<ACIE) | (0<<ACIC) | (0<<ACIS1) | (0<<ACIS0);

SFIOR=(0<<ACME);

krm_sms=0;

// Place your code here PORTC.7=1; delay_ms(250); PORTC.7=0; delay_ms(250); PORTC.7=1; delay_ms(250); PORTC.7=0; delay_ms(250); while (1) { if (krm_sms==0) { PORTC.7=1; krm_sms=1; printf("AT"); putchar(0x0D); putchar(0x0A); //while (getchar()!='K') {} delay_ms(250); PORTC.7=0;

(17)

printf("AT+CMGF=1"); putchar(0x0D); putchar(0x0A); //while (getchar()!='K') {} delay_ms(250); PORTC.7=1; printf("AT+CMGS="); putchar('"'); printf("081368024300"); putchar('"'); putchar(0x0D); putchar(0x0A);

printf("Test Kirim SMS dari Mikro Kontroler ...."); putchar(0x0D); putchar(0x0A); printf("[SUKSES !!!!!]"); putchar(0x0D); putchar(0x0A); putchar(0x1A); delay_ms(250); PORTC.7=0; } } }

Referensi

Dokumen terkait

Sanjeev Bhojraj dan Partha Sengupta (2003) Dependen: Bond Rating Independen: Institusional Ownership, Board of Directors Sampel penelitian yaitu 1.005 obligasi dari

Karena konstituen penghasil asap dibuang selama proses pembuatan kokas, kokas menjadi bahan bakar yang baik untuk kompor dan tungku yang tidak cocok untuk

Diskusikan dengan teman kelompok yang mana jarak titik A ke garis HB pada model kerangka kubus 4D frame yang telah disusun.. Deskripsikan alasannya

1) Pihak pertama menugaskan pihak kedua untuk memungut hasil eksploitasi bahan galian golongan C pasir bangunan di Kabupaten Lumajang dengan sistem penimbangan

(2001),kepuasan konsumen merupakan perasaan senang atau kecewa konsumen yang didapat dengan membandingkan antara kesan kinerja terhadap kinerja produk jasa dengan

GESEK TUNAI Rate 2, 3 % Visa Master JCB Proses cepat di Perni- agaan Kota. SUAMI BANGGA Istri Bisa Bantu Suami Cari Uang, Langsung Kerja Gaji Tinggi. TNP tes

Penelitian ini diharapkan mampu memberikan kontribusi keilmuan di kalangan akademisi yang tertarik untuk mempelajari asuransi murni syariah yaitu Takaful (Hijrah

a) Hasil evaluasi yang mengindikasikan pekerjaan tidak dapat dilaksanakan dengan harga yang ditawarkan, karena penawar akan menderita kerugian yang lebih