Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: вывод двузначных чисел на ЖКИ
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры > PIC
Hellka
измеряю температуру, допустим получаю 90 градусов, возник
вопрос, каким образом сразу передать 2 цифры. что-то
вспоминаю, что нужно перевести в двоично-десятичный вид и
затем уже получаем младшая терада - единицы, старшая -
десятки, переводим в код аски и выдаем....если это
действительно правильно никто не подкинет подпрограму
перевода, желательно на асме и что-нибудь попроще...
derun
Асемблер понятие растяжимое, для какого процессора?
Могу предложить алгоритм,и программу для 51.

HEXTOBCD8:
;--------------АЛГОРИТМ-----------------

;1.Сдвигать в лево
;2.Прибавлять 3 к каждой BCD тетраде которая >=5
;Повторять столько раз сколько бит в числе
;в последнем цикле прибавлять 3 не нужно !!!

;Пример 8 бит число: $F9 в BCD
; Результат : Исходное число
;0000 0000 0000 : 1111 1001
;0000 0000 0001 : 1111 0010 (сдвиг в лево)
;0000 0000 0011 : 1110 0100 (сдвиг в лево)
;0000 0000 0111 : 1100 1000 (сдвиг в лево)
;0000 0000 1010 : 1100 1000 (add 3)
;0000 0001 0101 : 1001 0000 (сдвиг в лево)
;0000 0001 1000 : 1001 0000 (add 3)
;0000 0011 0001 : 0010 0000 (сдвиг в лево
;0000 0110 0010 : 0100 0000 (сдвиг в лево)
;0000 1001 0010 : 0100 0000 (add 3)
;0001 0010 0100 : 1000 0000 (сдвиг в лево)
;0010 0100 1001 : 0000 0000 (сдвиг в лево)

;В результате получим BCD 249.
;гораздо проще чем использовать DIV !!!

Успехов.
urry1
Цитата(derun @ Dec 15 2006, 15:28) *
Асемблер понятие растяжимое, для какого процессора?

и какое число, и для какого индикатора ? smile.gif
Я когда-то работал с мт107 , так там передаются 4 разряда и стробируются адрес/данные..
Они сами не знают, чего хочуть.. smile.gif
ttron
Цитата(Hellka @ Dec 15 2006, 11:45) *
измеряю температуру, допустим получаю 90 градусов, возник
вопрос, каким образом сразу передать 2 цифры. что-то
вспоминаю, что нужно перевести в двоично-десятичный вид и
затем уже получаем младшая терада - единицы, старшая -
десятки, переводим в код аски и выдаем....если это
действительно правильно никто не подкинет подпрограму
перевода, желательно на асме и что-нибудь попроще...


Вы, часом, не курсовик делаете? Зачетная неделя скоро tongue.gif

Код
;=======
;веpс.:    Microchip Embedded Control Handbook, 1993 p.2-203
;объем:    10
; стек:    1
;время:    max=82 (с вызовом)
; вход:    w=двоичное число ( max 99, иначе ст.цифpа с ошибкой !)
;акция:    вычитает 10 из числа,пока не пpоизойдет заем
;выход:    acc6=ст.цифpа, acc4=мл.цифpа
bin_bcd
    movwf    acc4    ;
bin_10
    clrf    acc6    ;
    movlw    10    ;
    subwf    acc4,w    ;
    btfss    c    ;
    return        ;
    movwf    acc4    ;
    incf    acc6    ;
    goto    $-6    ;
urry1
[quote name='ttron' date='Dec 15 2006, 17:15' post='187754']

[/quote]

Вы, часом, не курсовик делаете? Зачетная неделя скоро tongue.gif

[/quote]

Да пусть человек просто скажет, что ему нужно... Из кусков он фик слепит.. smile.gif
Глядишь, обчими усилиями - и весь проект.. Все равно на работе скучаю... sad.gif
giran
Вы, часом, не курсовик делаете? Зачетная неделя скоро

Да нет, он ждёт когда за него всё сделают, причём не только на этом форуме
http://kazus.ru/forum/topics/5763.html
http://www.microchip.ru/phorum/read.php?f=...69&t=151769
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.