реклама на сайте
подробности

 
 
> Перевод двоичного числа в десятичное и вывод на ЛСД.
Charoit
сообщение Oct 24 2007, 19:49
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 48
Регистрация: 10-10-07
Пользователь №: 31 217



Делаю электронный термометр, датчик DS1621, МК - Атмега8515. Данные, что получаю по И2С запоминаются в двоичном виде, если я правильно понимаю, то чтобы вывести значение температуры на ЖКИ, надо перевести это число сначала в десятичную форму? А как потом выводить на ЖКИ - составлять таблицу соответствия? Если есть у кого пример - киньте пожалуйста, заранее спасибо!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 4)
zltigo
сообщение Oct 24 2007, 19:52
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Charoit @ Oct 24 2007, 22:49) *
А как....

По этому избитому вопросу воспользуйтесь поиском. Ну или просто подумайте.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
rezident
сообщение Oct 24 2007, 20:01
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(zltigo @ Oct 25 2007, 01:52) *
По этому избитому вопросу воспользуйтесь поиском. Ну или просто подумайте.

+1. Эти вопросы на форуме раз в две недели возникают.

Charoit, вы для начала разделите ваши проблемы на
1) вывод информации (любой) на LCD
2) вывод числа в символьном виде
3) перевод из двоичного формата в двоично-десятичный
А после этого решайте их последовательно.
Go to the top of the page
 
+Quote Post
Busel Roman
сообщение Oct 26 2007, 06:45
Сообщение #4


Участник
*

Группа: Новичок
Сообщений: 51
Регистрация: 19-06-07
Из: Республика Беларусь, г.Витебск
Пользователь №: 28 538



Цитата(Charoit @ Oct 24 2007, 22:49) *
Делаю электронный термометр, датчик DS1621 ...
Советую применить полный аналог данной микросхемы - AD7416. Работает быстрее и без глюков!
Go to the top of the page
 
+Quote Post
kolisnichenko_r
сообщение Oct 26 2007, 10:43
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 435
Регистрация: 12-09-07
Пользователь №: 30 482



Попробуй это
void INDIC_U(double rez,double d)
//rez- преобразуемая величина
//d - множитель
// d=54.4519555 (250v)
// d=1.04706656 (7v)
// d=1 (Ikz)
{unsigned long i1;
char c[7]={0x2c/*","*/};
lcd_char(0x3d);//"="
rez=rez*d;
if(rez>=1000.0)
{com4=1;
com1=com2=com3=0;
rez=rez*100.0;
goto coma;}
if(rez>=100.0)
{com3=1;
com1=com2=com4=0;
rez=rez*1000.0;
goto coma;}
if(rez>=10.0)
{com2=1;
com1=com3=com4=0;
rez=rez*10000.0;
goto coma;}
else
{com1=1;
com2=com3=com4=0;
rez=rez*100000.0;}
coma:
i1=rez;
if((i1%10)>=5){rez=rez+10;}
i1=rez/10;
i1=i1%10;
c[5]=i1+48;
i1=rez/100;
i1=i1%10;
c[4]=i1+48;
i1=rez/1000;
i1=i1%10;
c[3]=i1+48;
i1=rez/10000;
i1=i1%10;
c[2]=i1+48;
i1=rez/100000;
i1=i1%10;
c[1]=i1+48;
i1=rez/1000000;
i1=i1%10;
c[6]=i1+48;
if(c[6]!=0x30) lcd_char(c[6]);
;
lcd_char(c[1]);
if(com1==1)lcd_char(c[0]);
lcd_char(c[2]);
if(com2==1)lcd_char(c[0]);
lcd_char(c[3]);
if(com3==1)lcd_char(c[0]);
lcd_char(c[4]);
if(com4==1)lcd_char(c[0]);
lcd_char(c[5]);
}
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th July 2025 - 12:33
Рейтинг@Mail.ru


Страница сгенерированна за 0.01372 секунд с 7
ELECTRONIX ©2004-2016