پروژه دماسنج با کدویژن
پروژه دماسنج با کدویژن-پروژه دماسنجی که تصویر آن را در زیر مشاهده می فرمایید با میکروکنترلرatmega16 و نرم افزار covision avr برنامه نویسی شده است . حسگر مدار آی سی حساس به دماlm35 می باشد و دما را با دقت 1درجه روی سون سگمنت برای شما نمایش می دهد
مدار را با کمی تغییر در برنامه می توان با atmega8 ساختبرای ساخت فایل هگز کدهای پایین صفحه را درون نرم افزا codvision avrکپی کرده وبعد از کامپایلر فایل هگز آن را استخراج کنید
پروژه دماسنج با کدویژن
/*****************************************************
Project : Temprature Measurement with LM35
Author : Reza Sepas Yar
Company : Pishro Noavaran Kavosh
Chip type : ATmega16
Clock frequency : 1.000000 MHz
*****************************************************/
#include <mega16.h>
#include <delay.h>
#include <stdio.h>
#define xtal 1000000
unsigned int p[12]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0x1E,0x7F};
unsigned int a;
unsigned int b;
unsigned int c;
unsigned int d;
unsigned int e;
unsigned int f;
unsigned int g;
int adc_in;
float temp;
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x12 ;PORTD
#endasm
#define ADC_VREF_TYPE 0xC0
// Read the AD conversion result
unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input|ADC_VREF_TYPE;
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCW;
}
void main(void)
{
//int adc_in;
//float temp;
PORTB=0x00;
DDRB=0xff;
PORTD=0xff;
DDRD=0xff;
// ADC initialization
// ADC Clock frequency: 15.625 kHz
// ADC Voltage Reference: Int., cap. on AREF
// ADC Auto Trigger Source: None
ADMUX=ADC_VREF_TYPE;
ADCSRA=0x86;
// LCD module initialization
while (1)
{
adc_in=read_adc(0);
temp=adc_in/4;
g=temp;
a=g/100;
b=g%100;
c=b/10;
d=b%10;
f=10;
e=11;
if( g<100)
a=e;
PORTD=0b000001;
PORTB=p[a];
delay_ms(4);
PORTD=0b000010;
PORTB=p[c];
delay_ms(4);
PORTD=0b000100;
PORTB=p[d];
delay_ms(4);
PORTD=0b001000;
PORTB=p[f];
delay_ms(4);
};
}
پروژه دماسنج با کدویژن