Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR...

 
Опции темы

Преобразование двоичного числа в двоично-десятичное: от К580 к AVR Mega16

Непрочитано 30.11.2012, 11:29  
Boba_spb
Почётный гражданин KAZUS.RUN
 
Регистрация: 08.06.2008
Сообщений: 1,393
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: Преобразование двоичного числа в двоично-десятичное: от К580 к AVR Mega16

Может так будет работать?

//======= r16:r17:r18 = (R16:r17)
.MACRO daa
subi @0,-3
sbrs @0,3
subi @0,3
subi @0,-0x30
sbrs @0,7
subi @0,0x30
.ENDMACRO
BinDec:
push r19
push r20
push r21
movw r21:r20,r17:r16
clr r16
clr r17
clr r18
ldi r19,16
BinDec_loop:
lsl r20
rol r21
rol r16
rol r17
rol r18
dec r19
breq BinDec_exit
daa r16
daa r17
daa r18
jmp BinDec_loop
BinDec_exit:
pop r21
pop r20
pop r19
ret
Реклама:
Boba_spb вне форума  
Непрочитано 30.11.2012, 13:23  
movel22
Прохожий
 
Регистрация: 21.09.2009
Сообщений: 7
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
movel22 на пути к лучшему
По умолчанию Re: Преобразование двоичного числа в двоично-десятичное: от К580 к AVR Mega16

http://www.electroclub.fatal.ru/RusA...BCD/BINBCD.htm - вот здесь посмотри
movel22 вне форума  
Непрочитано 30.11.2012, 14:39  
trassertrasser
Прохожий
 
Регистрация: 24.09.2007
Сообщений: 1
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
trassertrasser на пути к лучшему
По умолчанию Re: Преобразование двоичного числа в двоично-десятичное: от К580 к AVR Mega16

в отличие от К580 в AVR нет десятичной коррекции, так что сначала разберитесь с DAA
если очень нужно могу найти свои исходники ..

Последний раз редактировалось trassertrasser; 30.11.2012 в 14:44.
trassertrasser вне форума  
Непрочитано 30.11.2012, 15:49  
Boba_spb
Почётный гражданин KAZUS.RUN
 
Регистрация: 08.06.2008
Сообщений: 1,393
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: Преобразование двоичного числа в двоично-десятичное: от К580 к AVR Mega16

Сообщение от trassertrasser Посмотреть сообщение
так что сначала разберитесь с DAA
если очень нужно могу найти свои исходники ..
Это кому совет?
Boba_spb вне форума  
Непрочитано 30.11.2012, 18:34  
alex1_09
Вид на жительство
 
Аватар для alex1_09
 
Регистрация: 14.07.2009
Сообщений: 322
Сказал спасибо: 103
Сказали Спасибо 109 раз(а) в 56 сообщении(ях)
alex1_09 на пути к лучшему
По умолчанию Re: Преобразование двоичного числа в двоично-десятичное: от К580 к AVR Mega16

Сообщение от ut1wpr Посмотреть сообщение
Ведь даже мозг особо подключать не надо, лишь глаза и пальцы. Остальное доделает Гугл...
.
Вот уж действительно! Зачем учить таблицу умножения, если есть калькулятор!
Только вопрос: А кто же составит эту таблицу, если все будут надеяться на гугл...? И отучатся мозг подключать!? А потом вдруг обнаружишь что смотришь в эту таблицу как баран и ни чего не понимаешь.
alex1_09 вне форума  
Непрочитано 30.11.2012, 18:58  
ut1wpr
Почётный гражданин KAZUS.RUN
 
Аватар для ut1wpr
 
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,613
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
ut1wpr на пути к лучшему
По умолчанию Re: Преобразование двоичного числа в двоично-десятичное: от К580 к AVR Mega16

Сообщение от alex1_09 Посмотреть сообщение
.
Вот уж действительно! Зачем учить таблицу умножения, если есть калькулятор!
Только вопрос: А кто же составит эту таблицу, если все будут надеяться на гугл...? И отучатся мозг подключать!? А потом вдруг обнаружишь что смотришь в эту таблицу как баран и ни чего не понимаешь.
Не совсем понял метафору. Если это про давно созданную таблицу умножения - зачем учится ее создавать снова? Для заглядывания в таблицу умножения мозг подключать? Явный перебор в поисках метафор. Насчет "мозг подключать" возражений нет. Все остальное - из области "поговорить".
__________________
С уважением,
Vic / ut1wpr
ut1wpr вне форума  
Сказали "Спасибо" ut1wpr
true71 (01.12.2012)
Непрочитано 30.11.2012, 19:31  
Boba_spb
Почётный гражданин KAZUS.RUN
 
Регистрация: 08.06.2008
Сообщений: 1,393
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: Преобразование двоичного числа в двоично-десятичное: от К580 к AVR Mega16

Вспомнил детство! Учитель математики учил нас -"Известно как вскипятить воду - взять со стола пустой чайиник,налить в чайник воды, зажечь газ, поставить чайник на плиту, когда вскипел - выключить газ. Поэтому, если Вам захотелось чаю, а на плите стоит чайник, то .......... вылейте из него воду и поставьте на стол - ибо задача вскипятить его уже давно решена!!!"

Поэтому прежде чем начать решать задачу,- надо постараться найти уже готовое решение или разбить ее на куски, которые уже решены.

Единственное, что чуток смущает, так это то, что профи не тратят время на выкладывание в инете своих трудов. Поэтому надо еще уметь оценить то что тут выставляют.
Boba_spb вне форума  
Сказали "Спасибо" Boba_spb
ut1wpr (30.11.2012)
Непрочитано 30.11.2012, 20:02  
alex1_09
Вид на жительство
 
Аватар для alex1_09
 
Регистрация: 14.07.2009
Сообщений: 322
Сказал спасибо: 103
Сказали Спасибо 109 раз(а) в 56 сообщении(ях)
alex1_09 на пути к лучшему
По умолчанию Re: Преобразование двоичного числа в двоично-десятичное: от К580 к AVR Mega16

Сообщение от ut1wpr Посмотреть сообщение
Не совсем понял метафору. Если это про давно созданную таблицу умножения - зачем учится ее создавать снова? Для заглядывания в таблицу умножения мозг подключать? Явный перебор в поисках метафор. Насчет "мозг подключать" возражений нет. Все остальное - из области "поговорить".
.
А смысл в том, что если будеш отключать мозг и надеется на гугол - то великим программистом не станеш!!! (однажды отключишь, а включить будет уже лень...)
Все начинается с малого, с решения 2+2=, и если понадеешся на гугол, то и это не научишся решать!

Топик стартер между прочим написал "...Решил в познавательных целях перенести алгоритм преобразования двоичного числа в три десятичные цифры ..."

Мое мнение такое - и правильно сделал что решил перевести САМ, и не надеется на гугол! Вот так понемножку привыкнет чтобы мозг был включен ПОСТОЯННО в любых ситуациях.
А там, смотришь, и какой-нибудь новый алгоритм придумает (если, конечно, не будет надеятся на кого то)
alex1_09 вне форума  
Непрочитано 01.12.2012, 01:09  
analitik33
Прописка
 
Регистрация: 11.11.2007
Сообщений: 143
Сказал спасибо: 15
Сказали Спасибо 11 раз(а) в 11 сообщении(ях)
analitik33 на пути к лучшему
По умолчанию Re: Преобразование двоичного числа в двоично-десятичное: от К580 к AVR Mega16

=GM=, Спасибо за поправку, но, к сожалению, после аргумента 230 в сотнях ошибка - выдает 0.
Хочу пояснить, что я не технарь, а юрист. МК-дилетантское увлечение.
Спасибо всем, кто ответил по существу! Разбираюсь...
analitik33 вне форума  
Непрочитано 01.12.2012, 11:26  
anakost
Временная регистрация
 
Регистрация: 15.05.2010
Адрес: г. Липецк
Сообщений: 88
Сказал спасибо: 8
Сказали Спасибо 16 раз(а) в 10 сообщении(ях)
anakost на пути к лучшему
По умолчанию Re: Преобразование двоичного числа в двоично-десятичное: от К580 к AVR Mega16

Есть несколько алгоритмов преобразования числа из двоичного в двоично-десятичное. Простое переложение с ассемблера а51 на AVR слишком накладно из-за разных систем команд. Для AVR я пользуюсь таким:

Код:
; **************************************************  ************************
.MACRO BinToBCD				; двоично-десятичное преобразование
; BinToBCD kff, reg; r16 - исходный двоичный байт
; kff - делитель; reg - BCD результат 		
	ldi	@1, -1				;	
$MCR_DGT:	
	inc	@1				;
	subi	r16, @0			;
	brsh	MCR_DGT			;
	subi	r16, -@0			;
.ENDM
; ************* Применение макро BinToBCD **********************************
	BinToBCD 100, r18			; BCD старшая цифра
	BinToBCD 10, r17			; BCD средняя цифра
;						; BCD младшая цифра осталась в r16
; **************************************************  ************************
Это если надо преобразовать один байт, для двухбайтового числа алгоритм тот же, немного сложнее, для 4 байтового BCD числа (9999):

Код:
; **************************************************  ************************
.DEF	BCD_0		= R7	; цифра 2 разряда, BCD формат
.DEF	BCD_1		= R8	; цифра 3 разряда, BCD формат
.DEF	BCD_2		= R9	; цифра 4 разряда, BCD формат
.DEF	VALUEL		= R24	; младший байт суммы замеров
.DEF	VALUEH		= R25	; старший байт суммы замеров

	LDIL	BCD_2, -1
OP_1:
	INC	BCD_2
	SUBI	VALUEL, Low(1000)   
	SBCI	VALUEH, High(1000)   
	BRSH	OP_1   
	SUBI	VALUEL, Low(-1000)   
	SBCI	VALUEH, High(-1000)   
	LDIL	BCD_1, -1   
OP_2:       
	INC	BCD_1   
	SUBI	VALUEL, Low(100)   
	SBCI	VALUEH, High(100)   
	BRSH	OP_2   
	SUBI	VALUEL, -100   
	LDIL	BCD_0, -1   
OP_3:       
	INC	BCD_0   
	SUBI	VALUEL, 10   
	BRSH	OP_3   
	SUBI	VALUEL, -10   
;				; BCD младшая цифра осталась в VALUEL
; **************************************************  ************************
Если нужен полный диаппазон 2х байтового числа, добавить делитель 10000.

Возможно кого то собьет с толку строка
LDIL BCD_0, -1
Нет, новых команд в ассемблере AVR не появилось, это равнозначно
LDI BCD_0, -1
Просто дергал из листинга...

Последний раз редактировалось anakost; 01.12.2012 в 20:08.
anakost вне форума  
Сказали "Спасибо" anakost
Slav.07 (25.06.2018)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Преобразование числа в строку STM32 Cocox sanstan Embedd С 16 05.11.2016 17:58
Преобразование числа vvkka Микроконтроллеры, АЦП, память и т.д 12 27.12.2011 01:44
преобразование 16bit числа на Си (нужна помощь) Uz_Sleep_Walker Микроконтроллеры, АЦП, память и т.д 4 19.02.2010 15:49
преобразование из двоичного в двоич-десятичное CERGEI1982 Микроконтроллеры, АЦП, память и т.д 0 25.01.2007 15:50
преобразование числа для занесения его в регистр на PIC16F84 CERGEI1982 Микроконтроллеры, АЦП, память и т.д 9 11.01.2007 17:47


Часовой пояс GMT +4, время: 09:01.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.