• Tidak ada hasil yang ditemukan

Perancangan dan Pembuatan AlatPendeteksi Tingkat Kebisingan Bunyi Berbasis Mikrokontroler Dengan Feedback SuaraOperator

N/A
N/A
Protected

Academic year: 2017

Membagikan "Perancangan dan Pembuatan AlatPendeteksi Tingkat Kebisingan Bunyi Berbasis Mikrokontroler Dengan Feedback SuaraOperator"

Copied!
18
0
0

Teks penuh

(1)

LAMPIRAN A

(2)

LAMPIRAN B

Program Keseluruhan Pada Mikrokontroler ATmega8535

/***************************************************** This program was produced by the

CodeWizardAVR V2.05.3 Standard Automatic Program Generator

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

Project : Version : Date : Author : user Company : free Comments:

Chip type : ATmega8535 Program type : Application AVR Core Clock frequency: 11,059200 MHz Memory model : Small

External RAM size : 0 Data Stack size : 128

*****************************************************/

(3)

#define data PORTC.0 #define busy PIND.7

// Alphanumeric LCD functions #include <alcd.h>

#define ADC_VREF_TYPE 0x00 #define PINC.2 1

// Read the AD conversion result

unsigned int read_adc(unsigned char adc_input) {

ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);

// Delay needed for the stabilization of the ADC input voltage

delay_us(10);

// 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 unsigned char buff[33];

unsigned int mask,x;

unsigned int intTOTAL, intADC;

float flHASIL, flMEAN,temp,temp1;

void play_voice(unsigned int command) {

(4)

delay_ms(2);

for (mask=0x8000;mask>0;mask>>=1) {

clock=0;

delay_us(50);

if (command & mask) {data=1;} else

{data=0;} delay_us(50);

clock=1;

delay_us(100); if (mask>0x0001) {

delay_ms(2); }

}

delay_ms(100); while (busy==1){} delay_ms(50); }

void main(void) {

// 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

(5)

// Port B initialization

// Func7=In Func6=In Func5=In Func4=Out Func3=In Func2=In Func1=In Func0=In

// State7=T State6=T State5=T State4=0 State3=T State2=T State1=T State0=T

PORTB=0x00; DDRB=0x10;

// Port C initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In

// State7=P State6=P State5=T State4=T State3=P State2=P State1=T State0=T

PORTC=0xCC; DDRC=0x03;

// 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=0x00;

// Timer/Counter 0 initialization // Clock source: System Clock // Clock value: Timer 0 Stopped // Mode: Normal top=0xFF

// OC0 output: Disconnected TCCR0=0x00;

(6)

// Timer/Counter 1 initialization // Clock source: System Clock // Clock value: Timer1 Stopped // Mode: Normal top=0xFFFF // OC1A output: Discon. // OC1B output: Discon. // 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=0x00;

TCCR1B=0x00; TCNT1H=0x00; 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;

(7)

// 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

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

// USART Transmitter: On // USART Mode: Asynchronous // USART Baud Rate: 9600 UCSRA=0x00;

UCSRB=0x08; UCSRC=0x86; UBRRH=0x00; UBRRL=0x47;

// Analog Comparator initialization // Analog Comparator: Off

// Analog Comparator Input Capture by Timer/Counter 1: Off

ACSR=0x80; SFIOR=0x00;

// ADC initialization

(8)

// ADC High Speed Mode: Off

// ADC Auto Trigger Source: Free Running ADMUX=ADC_VREF_TYPE & 0xff;

ADCSRA=0xA6; SFIOR&=0x0F;

// 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 - PORTD Bit 6 // RD - PORTD Bit 5 // EN - PORTD Bit 4 // D4 - PORTD Bit 3 // D5 - PORTD Bit 2 // D6 - PORTB Bit 1 // D7 - PORTD Bit 0 // Characters/line: 16 DDRB.4=1;

lcd_init(16); lcd_gotoxy(0,0); lcd_putsf("esna"); lcd_gotoxy(0,1);

(9)

lcd_clear(); lcd_gotoxy(0,0);

lcd_putsf("noise level:"); delay_ms(1000);

lcd_clear(); while (1) {

// Place your code here intTOTAL = 0;

flHASIL = 0;

for (x=0; x<100; x++) {

intADC = read_adc(0);

intTOTAL = intTOTAL + intADC;

delay_ms(10); // 50 x 10 mS = 500 mS = 0.5 detik

}

flMEAN = (float) intTOTAL / 100; // nilai rata-rata

temp1=flMEAN; temp =temp1/6;

sprintf(buff,"lvl:%2.2f",temp); lcd_gotoxy(0,0);

lcd_puts(buff); printf("%2.2f \r \n",temp); //pengiriman secara serial // delay_ms(50);

if (temp <70) {

lcd_clear();

(10)

lcd_gotoxy(0,0); lcd_puts(buff); lcd_gotoxy(0,1); lcd_putsf("normal"); }

if (temp <89 && temp >70) {

lcd_gotoxy(0,1);

lcd_puts("kebisingan sedang"); PORTB.4=1;

delay_ms(500); PORTB.4=0;

play_voice(1); delay_ms(500);

}

if ( temp >90) {

lcd_gotoxy(0,1);

lcd_puts("kebisingan tinggi"); PORTB.4=1;

delay_ms(1000); PORTB.4=0;

play_voice(2); delay_ms(500);

} }

(11)

LAMPIRAN C

PROGRAM PADA VISUAL BASIC

/****************************************************** Dim c

Dim sensor

Dim db As Database Dim rs As Recordset Public Sub setFlex() Dim T As Single

Set db = OpenDatabase(App.Path & "\daq.mdb") Set rs = db.OpenRecordset("log", dbOpenDynaset) fg.TextMatrix(0, 0) = "Sr No"

fg.TextMatrix(0, 1) = "Time And Date" fg.TextMatrix(0, 2) = "Nilai"

fg.ColWidth(0) = 700 fg.ColWidth(1) = 2000 fg.ColWidth(2) = 900 For i = 0 To 2

fg.Row = 0 fg.Col = i

fg.CellFontBold = True fg.ColAlignment(i) = 3 Next i

End Sub

Sub fillGrid()

Do While Not rs.EOF T = T + 1

fg.TextMatrix(T, 0) = rs.Fields("Sr No")

fg.TextMatrix(T, 1) = rs.Fields("TimeAndDate") fg.TextMatrix(T, 2) = rs.Fields("Nilai")

(12)

If Not rs.EOF Then rs.MoveNext

If fg.TextMatrix(fg.Rows - 1, 2) <> "" Then fg.Rows = fg.Rows + 1

End If Loop End Sub

Private Sub Command1_Click()

Dim Msg, Style, Title, Response, MyString Msg = "hapus semua record??"

Style = vbYesNo + vbCritical + vbDefaultButton2 Title = "Confirmation Box"

Response = MsgBox(Msg, Style, Title) If Response = vbYes Then

Call delRec End If

End Sub

Private Sub Command2_Click() Form2.Show vbModal

End Sub

Private Sub exit_Click() End

End Sub

Private Sub stopcmd_Click() VScroll3.Enabled = True stopcmd.Enabled = False Start.Enabled = True MSComm1.PortOpen = False End Sub

Sub delRec()

(13)

fg.Rows = 2 Call setFlex

totalrec.Caption = "Total Records: 0" End Sub

Private Sub Form_Load() Call setFlex

Call fillGrid

stopcmd.Enabled = False VScroll3.Value = 9 Text4.Text = "9" End Sub

Private Sub MSComm1_OnComm() 'buffer = MSComm1.Input

'If buffer <> "" Then Dim buffer As String 'With Text1

If (MSComm1.CommEvent = comEvReceive) Then buffer = MSComm1.Input

If buffer <> "" Then With Text3

.SelStart = Len(.Text) .SelText = buffer

End With End If

Label1(0).Caption = Text3 Text3.Text = ""

fg.TextMatrix(fg.Rows - 1, 0) = CStr(fg.Rows - 1) fg.TextMatrix(fg.Rows - 1, 1) = CStr(Now)

fg.TextMatrix(fg.Rows - 1, 2) = Label1(0).Caption totalrec.Caption = "Total Records: "

+ CStr(fg.Rows - 1) rs.AddNew

(14)

rs.Fields("TimeAndDate").Value = Now

rs.Fields("Nilai").Value = Val(fg.TextMatrix(fg.Rows– 1,2))

rs.Update

fg.Rows = fg.Rows + 1 End If

End Sub

Private Sub Start_Click()

MSComm1.CommPort = VScroll3.Value MSComm1.Settings = "9600,N,8,1"

MSComm1.RThreshold = 5 'nilai/20=x detik interval MSComm1.InputLen = 1024

MSComm1.PortOpen = True Start.Enabled = False stopcmd.Enabled = True VScroll3.Enabled = False End Sub

Private Sub Form_Unload(Cancel As Integer) If MSComm1.PortOpen = True Then

MSComm1.PortOpen = False End If

End Sub

Private Sub VScroll1_Change(Index As Integer) End Sub

(15)

LAMPIRAN D

Tabel Hasil Pengambilan Data Implementasi Sistem Deteksi Pada

Laboratorium Terpadu FMIPA Universitas Sumatera Utara

(16)
(17)
(18)

Gambar

Tabel Hasil Pengambilan Data Implementasi Sistem Deteksi Pada Laboratorium Terpadu FMIPA Universitas Sumatera Utara

Referensi

Dokumen terkait

konsep yang mengacu pada prinsip-prinsip konservasi (perlindungan, pengawetan, dan pemanfaatan secara lestari) baik konservasi terhadap sumberdaya alam, seni dan budaya,..

(5) Terhadap utang pajak yang telah diterbitkan surat keputusan sebagaimana dimaksud pada ayat (1) tidak dapat lagi diajukan permohonan untuk mengangsur atau menunda

orang yang baru masuk Islam yang imannya masih lemah. e) Memerdekakan budak, dalam hal ini mencakup juga untuk melepaskan muslim yang ditawan oleh orang-orang kafir. f) Orang

Berita Acara Hasil Pelelangan (BAHP) Nomor: Nom anggal 29 Desember 2016 oleh Kelompok Kerja Provinsi Kalimantan Timur melalui Aplikasi SPSE Kementerian.

[r]

Berdasarkan Berita Acara Hasil Klarifikasi dan Negosiasi Harga Penunjukan Langsung Kendaraan Bermotor Roda Empat Minibus Nomor : 06/PPBJ/PL-MBL/III.27/VI/2012 tanggal 08 Juni

[r]

Dengan keterbatasan peneliti baik dari segi waktu maupun dana dan untuk menghindari penafsiran yang berbeda-beda, maka masalah dalam penelitian ini dibatasi pada