Senin, 12 Agustus 2013

Program Pengukuran Suhu dengan CodeVisionAVR

This program was produced by the
CodeWizardAVR V1.25.9 Evaluation
Automatic Program Generator
© Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project :
Version :
Date : 2/7/2010
Author : Freeware, for evaluation and non-commercial use only
Company :
Comments:
Chip type : ATmega8535L
Program type : Application
Clock frequency : 8.000000 MHz
Memory model : Small
External SRAM size : 0
Data Stack size : 128
*****************************************************/
#include <mega8535.h>
#include <stdio.h>
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x15 ;PORTC //LCD diPORTC
#endasm
#include <delay.h>
#include <lcd.h>
#define ADC_VREF_TYPE 0x60
#define alarm PORTB.0 //alarm di hubungkan dg PORTB.0
// Read the 8 most significant bits
// of the AD conversion result
unsigned char read_adc(unsigned char adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE &amp; 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 &amp; 0x10)==0);
ADCSRA|=0x10;
return ADCH; //resolusi 8 bit
}
// Declare your global variables here
unsigned char meri[33];
void lcd(unsigned int dat) //subfungsi LCD
{
sprintf(meri,"%d ",dat);
lcd_puts(meri);
}
void main(void)
{
// Declare your local variables here
unsigned int suhu;
float adc;
// 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
PORTA=0x00;
DDRA=0x00;
// Port B 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
PORTB=0x00;
DDRB=0x00;
// Port C 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
PORTC=0x00;
DDRC=0x00;
// 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=FFh
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 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: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
// ADC initialization
// ADC Clock frequency: 1000.000 kHz
// ADC Voltage Reference: AVCC pin //Tegangan referensi AVCC=5 volt
// ADC High Speed Mode: Off
// ADC Auto Trigger Source: None
// Only the 8 most significant bits of
// the AD conversion result are used
ADMUX=ADC_VREF_TYPE &amp; 0xff;
ADCSRA=0x83;
SFIOR&amp;=0xEF;
// LCD module initialization
lcd_init(16);
while (1)
{
// Place your code here
adc = read_adc(0); //output LM35 dihubungkan di PINA.0
suhu=adc*1.961; //perhitungan suhu
if (suhu&lt;27&amp;&amp;suhu&gt;33)
{ //jika suhu dibawah 27 derajat diatas 32 derajat celcius
alarm=1; // maka alarm hidup
}
Else //jika suhu normal
{
alarm=0; // maka alarm mati
}
lcd_putsf("Suhu sekarang adalah= ");
lcd(suhu); //pemanggilan subfungsi lcd
delay_ms(1000); //waktu tunda 1000 ms
lcd_clear(); //layar lcd dibersihlkan
};
}

Tidak ada komentar:

Posting Komentar

CARA DOWNLOAD DI BLOG INI

1. Klik link download, anda akan diarahkan menuju adf.ly. tunggu 5 detik pilih SKIP AD
Silabus dan RPP SMA Kurikulum 2013
2. Klik Download yang berwarna biru.
Silabus dan RPP SMA Kurikulum 2013
3. Isi Verification Code. setelah terisi sesuai dengan yang diminta klik Download yang berwarna biru di bawah kotak verification code.
Silabus dan RPP SMA Kurikulum 2013
Semoga bermanfaat dan terimakasih atas kunjungannya....