با سلام
من برنامه LM35
پایین رو تو کدویژن نوشتم ولی تو پروتئوس که اجرا میکنم فقط عبارت TEMP= رو رو ال سی دی نمایش میده و دمای سنسور رو نشون نمیده
اگه میشه راهنماییم کنیید
من برنامه LM35
پایین رو تو کدویژن نوشتم ولی تو پروتئوس که اجرا میکنم فقط عبارت TEMP= رو رو ال سی دی نمایش میده و دمای سنسور رو نشون نمیده
اگه میشه راهنماییم کنیید
#include <mega16.h>
#include <delay.h>
#include <stdio.h>
#define xtal 1000000
#include <lcd.h>
#asm
.equ __lcd_port=0x12 ;PORTD
#endasm
float t;
unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input|c0;
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return (ADCW/4);
}
void main(void)
{
char buffer[20];
PORTA=0x00;
DDRA=0x00;
ADMUX=c0;
ADCSRA=0x86;
lcd_init(16);
//lcd_clear();
while (1)
{
t=read_adc(0);
lcd_clear();
sprintf(buffer,"TEMP=%f ",t);
lcd_gotoxy(0,0);
lcd_puts(buffer);
delay_ms(1000);
}
}
#include <delay.h>
#include <stdio.h>
#define xtal 1000000
#include <lcd.h>
#asm
.equ __lcd_port=0x12 ;PORTD
#endasm
float t;
unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input|c0;
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return (ADCW/4);
}
void main(void)
{
char buffer[20];
PORTA=0x00;
DDRA=0x00;
ADMUX=c0;
ADCSRA=0x86;
lcd_init(16);
//lcd_clear();
while (1)
{
t=read_adc(0);
lcd_clear();
sprintf(buffer,"TEMP=%f ",t);
lcd_gotoxy(0,0);
lcd_puts(buffer);
delay_ms(1000);
}
}
دیدگاه