دوستان عزیز برای نمایش دما بر روی سون سگمنت به مشکل خوردم
در سنسور های آنالوگ معمولی همچون lm35 براحتی می تونم دما رو بر روی سون سگمنت نمایش بدم ولی زمانی که همین کار رو با سنسور DS18B20 انجام می دم
سون سگمنت شروع به چشمک زدن می کنه این مشکل هم برمی گرده به مدت زمان پاسخ گویی سنسور که 750میلی ثانیه طول می کشه
این مشکل رو هم حل کردم با قرار دادن تابع نمایش در یک تایمر ولی اینبار در تابع اصلی مدار دما خونده میشه ولی رو سون سگمنت نمایش داده نمی شه و عدد صفر نمایش داده میشه
دوستان لطفا راهنمایی کنید .
در سنسور های آنالوگ معمولی همچون lm35 براحتی می تونم دما رو بر روی سون سگمنت نمایش بدم ولی زمانی که همین کار رو با سنسور DS18B20 انجام می دم
سون سگمنت شروع به چشمک زدن می کنه این مشکل هم برمی گرده به مدت زمان پاسخ گویی سنسور که 750میلی ثانیه طول می کشه
این مشکل رو هم حل کردم با قرار دادن تابع نمایش در یک تایمر ولی اینبار در تابع اصلی مدار دما خونده میشه ولی رو سون سگمنت نمایش داده نمی شه و عدد صفر نمایش داده میشه
#include <mega32.h>
#include <ds18b20.h>
#include <1wire.h>
#include <delay.h>
#define Data_Pin PORTD
#define En1 PORTC.2
#define En2 PORTC.3
#define En3 PORTC.4
#define En4 PORTC.5
#define xtal 8000000
#define MAX_DS1820 8
این قسمت تایمر
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
d++;
if(d==1)
{
Hex_to_DEC(temp_t);
}
if(d>5)
{
PORTC = 0b00101111;
PORTA =part1;
}
if(d>10)
{
PORTC = 0b00110111;
PORTA =part2| 0x80; // 0x80 Is For dot in SevenSegmeant
}
if(d>15)
{
PORTC = 0b00111011;
PORTA =part3;
}
if(d>20)
{
PORTC = 0b00011111;
PORTA =0x39;
}
if(d>25)
{
//PORTC = 0b00111111;
d=0;
}
//------------------------
TCNT0=0xB2;
}
اینم قسمت سوم
while (1)
{
temp_t =temp_sensor();
delay_ms(750);
}
دیدگاه