Soal
PETUNJUK UMUM
Buatlah simulasi perangkat untuk mendeteksi suhu kamar. Suhu kamar yang normal berkisar 20 hingga 25 derajat Celcius. Berikan indikator jika suhu di luar suhu normal.Jika suhu normal, tidak ada indikator yang aktif.
Indikator dapat berupa LED, Buzzer, Tulisan, atau semacamnya.
Indikator antara suhu kurang dan lebih dari suhu normal harus bisa dibedakan.
Misalnya jika indikator berupa buzzer, gunakan frekuensi 100 Hz jika suhu di bawah 20 derajat Celcius dan frekuensi 500 Hz jika suhu di atas 25 derajat Celcius.
PETUNJUK KHUSUS NPM GANJIL
Gunakan sistem bilangan oktal untuk pengaturan register-register (DDRx, PORTx, PINx, dan lainnya).PETUNJUK KHUSUS NPM GENAP
Gunakan sistem bilangan heksadesimal untuk pengaturan register-register (DDRx, PORTx, PINx, dan lainnya).Jawaban (NIM GENAP)
Rangkaian ISIS Proteus
Code Vision AVR
#include <mega32.h> #include <delay.h> #include <lcd.h> #include <stdlib.h> #asm .equ __lcd_port=0x15 #endasm #define ADC_VREF_TYPE 0x00 unsigned int read_adc(unsigned char adc_input) { ADMUX=adc_input | (ADC_VREF_TYPE & 0xff); delay_us(10); ADCSRA|=0x40; while ((ADCSRA & 0x10)==0); ADCSRA|=0x10; return ADCW; } int data; float suhu; char temp [25]; void baca_suhu() { data = read_adc(1); } void hitung_suhu() { suhu = (float)(data)/2; } void main(void) { PORTA=0x00; DDRA=0x00; PORTB=0x00; DDRB=0x00; PORTC=0x00; DDRC=0x00; PORTD=0x00; DDRD=0x03; TCCR0=0x00; TCNT0=0x00; OCR0=0x00; TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; ASSR=0x00; TCCR2=0x00; TCNT2=0x00; OCR2=0x00; MCUCR=0x00; MCUCSR=0x00; TIMSK=0x00; UCSRB=0x00; ACSR=0x80; SFIOR=0x00; ADMUX=ADC_VREF_TYPE & 0xff; ADCSRA=0x83; SPCR=0x00; TWCR=0x00; lcd_init(16); lcd_clear(); lcd_gotoxy(0,0); lcd_putsf("Suhu Ruangan"); while (1) { if(suhu >= 20 && suhu <= 25) { PORTD.0 = 0x00; PORTD.1 = 0x00; } else if(suhu < 20) { PORTD.0 = 0x01; PORTD.1 = 0x00; } else if(suhu > 25) { PORTD.1 = 0x01; PORTD.0 = 0x00; } baca_suhu(); hitung_suhu(); ftoa(suhu,1,temp); lcd_gotoxy(0,1); lcd_puts (temp); lcd_gotoxy (5,1); lcd_putchar(0xdf); lcd_putsf("C"); } }
Post A Comment:
0 comments:
Silahkan berikan komentar anda menggunakan kata-kata yang sopan!