bin16_ascii

Обсуждаем контроллеры компании Atmel.
Ответить
Открыл глаза
Сообщения: 75
Зарегистрирован: Пн янв 10, 2011 00:12:19

Сообщение arm-17 »

Здравствуйте! Помогите разобратса.Задача передать на LCD цифры от 0 до 65535.
Куда вставить число и откуда его забрать ? Не судите строго я только учусь. Пишу на асме
;*************************************************************************
;* *
;* Convert unsigned 16 bit to 5 digit ASCII *
;* *
;* Author: Peter Dannegger *
;* *
;*************************************************************************
;
;input: R17, R16 = 16 bit value 0 ... 65535
;output: R20, R19, R18, R17, R16 = 5 digits (ASCII)
;cycle: 20 ... 170
;
bin16_ascii:

ldi r20, -1 + '0'
_bcd1: inc r20
subi r16, low(10000) ;-10000
sbci r17, high(10000)
brcc _bcd1

ldi r19, 10 + '0'
_bcd2: dec r19
subi r16, low(-1000) ;+1000
sbci r17, high(-1000)
brcs _bcd2

ldi r18, -1 + '0'
_bcd3: inc r18
subi r16, low(100) ;-100
sbci r17, high(100)
brcc _bcd3

ldi r17, 10 + '0'
_bcd4: dec r17
subi r16, -10 ;+10
brcs _bcd4

subi r16, -'0'
ret
Реклама
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1518
Зарегистрирован: Пт дек 28, 2012 21:56:46
Откуда: St. Petersburg

Сообщение blackx »

Черным по белому же написано :facepalm::

Код: Выделить всё

 ;input: R17, R16 = 16 bit value 0 ... 65535
 ;output: R20, R19, R18, R17, R16 = 5 digits (ASCII)
Вставить в R17, R16, вызвать, вынуть из R16-R20.
Изображение only pure true norwegian blackx Изображение
Реклама
Ответить

Вернуться в «AVR»