• 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

(saldo/limit dalam account terpisah dari saldo pulsa handphone anda dan akan dikurangi setiap transaksi yang dilakukan sesuai dengan harga yang berlaku pada saat

private static final int APPSTATUS_UNINITED = -1; private static final int APPSTATUS_INIT_APP = 0; private static final int APPSTATUS_INIT_QCAR = 1;

Global RSU As New ADODB.Connection Global rsRSU As New ADODB.Recordset Global rsGanti As New ADODB.Recordset Global rsobat As New ADODB.Recordset Global rsdokter As

Dalam hal ini dunia pendidikan mempunyai tanggung jawab yang besar, terutama dalam menyiapkan sumber daya manusia yang tangguh sehingga mampu hidup selaras didalam perubahan

&lt;p align=&#34;justify&#34;&gt;Penggabungan dari 3 Departemen dari pemerintahan prae federal dalam satu Kementerian yaitu Kementerian Perhubungan Tenaga dan PU.RIS dianggap

Kerjasama dengan sentra kardiovaskuler yang lebih maju seperti Pusat Jantung Nasional Rumah Sakit Harapan Kita Jakarta, dilakukan untuk pengembangan Instalasi Kardiovaskuler RSUP

lebih hitam dibanding banteng yang berada di daerah Jawa Timur yang. berwarna

Jika anda memberi tanda (√) pada skala 7 dikolom A, maka artinya adalah kriteria A dalam contoh ini Kapasitas sangat lebih penting dibanding dengan kriteria B dalam