Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Из того же сундука, но множитель другой и до 255(+)

Отправлено Quasy 13 марта 2008 г. 16:31
В ответ на: PS небольшое пояснение (+): отправлено argus98 13 марта 2008 г. 10:48


/////////////////////////////////////////////
PUBLIC Bin_BCD
// Исходный байт в R16. Диапазон: 0...255
// Возвращает unsigned int (2 байта), R17(H),R16(L)
// B pезультатe - упакованные тетрады:
// R17(7...4) - 0000
// R17(3...0) - сотни
// R16(7...4) - десятки
// R16(3...0) - единицы
/////////////////////////////////////////////
RSEG CODE
/////////////////////////////////////////////
Bin_BCD:
//--- BCD-преобразованиe
clr R17
cpi R16,100
brcs Bin_BCD_0
subi R16, 100
inc r17
cpi R16,100
brcs Bin_BCD_0
subi R16, 100
inc r17
Bin_BCD_0:
ldi R19,0xce // 206 * 2 = 412. Можно множитель 410,411,412,413
mul R16,R19
mov R18,R1
add R18,R18
andi R18,0xf0
ldi R19,0xa0 // 160
mul R18,R19
sub R16,R1
or R16,R18
ret
/////////////////////////////////////////////
extern unsigned int Bin_BCD(unsigned char t);
int main( void )
{
// Проверка...
printf("%03x\n",Bin_BCD(100));
printf("%03x\n",Bin_BCD(25));
printf("%03x\n",Bin_BCD(255));
printf("%03x\n",Bin_BCD(90));
printf("%03x\n",Bin_BCD(199));
printf("%03x\n",Bin_BCD(128));
printf("%03x\n",Bin_BCD(88));
printf("%03x\n",Bin_BCD(1));
printf("%03x\n",Bin_BCD(5));
printf("%03x\n",Bin_BCD(45));
printf("%03x\n",Bin_BCD(65));
}



Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
вычтите из двух единицу:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru