RANGKAIAN LENGKAP
Rangkaian Output Suara Dan Rangkaian Op-Amp
Rangkaian USB to TTL
PROGRAM LENGKAP /****************************************************** 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
: 04/24/2015
Author
:
Company : Comments:
Chip type
: ATmega32A
Program type
: Application
AVR Core Clock frequency: 11.059200 MHz Memory model
: Small
External RAM size
: 0
Data Stack size
: 512
******************************************************/
#include <mega32a.h> #include <delay.h> #include <stdlib.h> #include <delay.h> #include
#include <stdio.h> #include <math.h> #include <1wire.h> #include <delay.h>
#include #include <stdio.h> #include #include #include <math.h> #define clock PORTD.5 #define data
PORTD.6
#define busy
PIND.7
//#define MAX_DS1820 8
int suhu,suhu1, suara,a; char temp[8];
float suhu_celcius, suhu_celcius1; unsigned int mask;
// maximum number of DS1820 devices // connected to the 1 Wire bus // number of DS1820 devices // connected to the 1 Wire bus //unsigned char ds1820_devices; // DS1820 devices ROM code storage area, // 9 bytes are used for each device // (see the w1_search function description in the help)
// Alphanumeric LCD functions #include
// Declare your global variables here
// Standard Input/Output functions #include <stdio.h> // Voltage Reference: AREF pin
#define ADC_VREF_TYPE ((0<
// Read the AD conversion result unsigned int read_adc(unsigned char adc_input) { ADMUX=adc_input | ADC_VREF_TYPE; // Delay needed for the stabilization of the ADC input voltage delay_us(10); // Start the AD conversion ADCSRA|=(1<
void play_voice(unsigned int command) { clock=0; 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 // Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In DDRA=(0<
// Port B initialization // Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In DDRB=(0<
PORTB=(0<
// Port C initialization // Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In DDRC=(1<
// Port D initialization // Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In DDRD=(0<
// Timer/Counter 0 initialization // Clock source: System Clock // Clock value: Timer 0 Stopped // Mode: Normal top=0xFF // OC0 output: Disconnected TCCR0=(0<<WGM00) | (0<
TCNT0=0x00; OCR0=0x00;
// Timer/Counter 1 initialization // Clock source: System Clock // Clock value: Timer1 Stopped // Mode: Normal top=0xFFFF // OC1A output: Disconnected // OC1B output: Disconnected // 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=(0<
// Timer/Counter 2 initialization // Clock source: System Clock // Clock value: Timer2 Stopped // Mode: Normal top=0xFF // OC2 output: Disconnected
ASSR=0<
// Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=(0<
// External Interrupt(s) initialization // INT0: Off // INT1: Off // INT2: Off MCUCR=(0<
// 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<
// 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<
// ADC initialization // ADC Clock frequency: 691.200 kHz // ADC Voltage Reference: AREF pin // ADC Auto Trigger Source: ADC Stopped ADMUX=ADC_VREF_TYPE; ADCSRA=(1<
// SPI initialization // SPI disabled SPCR=(0<<SPIE) | (0<<SPE) | (0<
// TWI initialization // TWI disabled TWCR=(0<
// Alphanumeric LCD initialization // Connections are specified in the // Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
// RS - PORTB Bit 0 // RD - PORTB Bit 1 // EN - PORTB Bit 2 // D4 - PORTB Bit 3 // D5 - PORTB Bit 4 // D6 - PORTB Bit 5 // D7 - PORTB Bit 6 // Characters/line: 16 lcd_init(16); lcd_gotoxy(3,0); lcd_putsf("Tugas Akhir"); lcd_gotoxy(1,1); lcd_putsf("Hidayati Irsan");
while (1) { // Place your code here a++; if (a>50){a=0;} lcd_clear(); suhu1 = read_adc(1);
//
mengambil data adc dari PORTA.0 suhu_celcius1 = suhu1*0.4887;
// nilai
0.004887 di dapat dari 5/1023, 6.38, adalah gain dari penguatan op amp ftoa(suhu_celcius1,1,temp); lcd_gotoxy(7,0); lcd_puts(temp); lcd_gotoxy(12,0); lcd_putchar(0xdf); //menampilkan karakter derajat Celcius lcd_putsf("C"); lcd_gotoxy(0,0);
lcd_putsf("Temp1:"); suhu = read_adc(2);
//
mengambil data adc dari PORTA.7 suhu_celcius =suhu*0.4887*0.13126612;
//;
//
nilai 0.004887 di dapat dari 5/1023, 6.38, adalah gain dari penguatan op amp suara=suhu_celcius-20; ftoa(suhu_celcius,1,temp); lcd_gotoxy(7,1); lcd_puts(temp); lcd_gotoxy(12,1); lcd_putchar(0xdf); //menampilkan karakter derajat Celcius lcd_putsf("C"); lcd_gotoxy(0,1); lcd_putsf("Temp2:"); printf("%0.1f\n\r",suhu_celcius1); pengiriman ke komputer printf("%0.1f\n\r",suhu_celcius); if (a==0){play_voice(suara);} if (suhu_celcius>10){PORTC=0x01;} if (suhu_celcius>20){PORTC=0x03;} if (suhu_celcius>30){PORTC=0x07;} if (suhu_celcius>40){PORTC=0x0f;} if (suhu_celcius>50){PORTC=0x1f;} if (suhu_celcius>60){PORTC=0x3f;} if (suhu_celcius>70){PORTC=0x7f;} delay_ms(100); } }
//
PROSEDUR CARA KERJA PROGRAM
Di buka CodevisionAVR
Kemudian akan muncul seperti gambar di bawah ini
Untuk membuat program baru klik file,new dan projek
Kemudian klik, yes
Pilih AT90,ATtiny, ATmega lalu klik ok
Maka tampill window seperti di bawah ini Di aktifkan konfigurasi pin sesuai yang kita inginkan Tahap awal memilih chip yang akan kita gunakan dan kristal
Kemudian pin konfigurasi
Mengatur konfigurasi pengiriman serial
Mengaktifkan ADC pada mikrokontroler
Mengaktifkan LCD 16x2
Langkah selanjutnya yaitu mengklik program kemudian generate save and exit
Membuat nama dan menyimpan program untuk extensi .c
Kemudian untuk extensi .prj
Dan yang terakhir untuk extensi .cwp
Langkah tekhir yaitu membuat program yang kita inginkan
Setelah program selesai klik project dan build all
Maka akan tampil window seperti di bawah ini Yang akan menunjukan program ini error atau tidaknya
File di dalam folder adalah sebagai berikut
Langkah yang terakhir yaitu mendownload atau flash program ke miroontroler Dengan program Prog isp Buka program prog isp yang tampilannya sebagai berikut:
Untuk mengetahui mirokontroler baik dan buruk atau mikro terhubung dengan baik ke computer melalui usbasp, klik read signature makan akan di tampilkan id signatur seperti gambar di bawah:
Untuk memasukan program klik load lalu cari program .hex di folder penyimpanan program yang telah di buat
Setelah di dapat klik open dan auto tapi jangan lupa untuk menyesuaikan chip yang di gunakan.