Главная страница Комбинированное использование портов main self
Преобразование двоично-десятичных кодов в двоичные Числа, закодированные в двоично-десятичном коде, часто используют, например, при управлении внешними цифровыми индикаторами, в том числе и семисегментными светодиодными. Листинг 4.9 демонстрирует программу преобразования двоично-десятичных чисел в двоичную форму. Программа преобразует 5-разрядные десятичные числа, представленные в коде, в 16-разрядные двоичные числа, при этом использует 30 ячеек памяти и выполняется в течение 121 командного цикла. Число в формате размещается в регистрах R0, R1, R2, причем старший десятичный разряд располагается в правом (младшем) полубайте R0. 16-разрядное двоичное число, полученное в результате преобразования, помещается в регистрах H byte и L byte, где H byte - старший байт. Листинг 4.9 I ******************************************************************************** ; Преобразование BCD-кода в двоичный. ; Данная программа преобразует 5-разрядное десятичное число, ; представленное в BCD-коде, в 16-разрядный двоичный код. ; Число размещается в байтах R0, RI, R2. Старший десятичный разряд ; располагается в правом полубайте R0. двоичное число представляется в байтах H byte и L byte. Показатели: используемая память: 30; количество командных циклов: 121. Программа соответствует инструкции по применению AN526 фирмы Microchip. ф******************************************************************************
= 8 . N.
******************************* Тестовая программа. ******************************* main movlw 06 movwf НО movlw 55 movwf Rl movlw 35 movwf R2 call BCDtoB self goto self org IF goto main *********************************************** *********************************************** RO = 06. Rl = 55. R2 = 35 (RO, Rl, R2 = 6, 55, 35). После преобразования H byte = FF и Lbyte = FF. Преобразование двоичных кодов в двоично-десятичные программа осуществляет преобразование, обратное выполняемому Предыдущей программой. Программа имеет две версии, одна ЛзКОТОрьЕС преобразует 16-разрядное двоичное число в 5-разрядное десятичное, представленное в BCD-коде, а другая - преобразование й-разрядного двоичного числа в две цифры BCD-кода. ( Начоло MSD LSD so! si I C0UNT=16 \ I R0=Rl=rR2:=0 I БинарныО MSD LSD ro Rl!r2 i-1. Сдбиг блебо SO, SI б RO, Rl. R2 HQ 1 6um MSD - старшая цифре (байт) LSD - младшая цифра (баОт) LSD+3>7 LSD=LSD+3 ~~\ НЕТ Рис.4.4 оритм преобразования двоичных чисел в двоично-десятичные Алгоритм преобразования представлен на рис. 4.4, а код програм-**bt - в листингах 4.10 и 4.11. Показатели двух подпрограмм: ♦ преобразование 8-разрядного кода требует 10 ячеек naMatjj и выполняется за 81 командный цикл (максимум); ♦ преобразование 16-разрядного кода требует 30 ячеек naMattj и выполняется за 719 командных циклов. В случае преобразования 8-разрядного кода бинарное число, кото. рое надо преобразовать, помещается в регистр W, а результат возвра. щается в регистрах MSD и LSD, причем старшая цифра располагает-ся в MSD. В случае преобразования 16-разрядного кода двоичное число, ко-торое надо преобразовать, помещается в регистры НЬу te и L by te со старшим байтом в H byte. Полученное в результате число в двоично-десятичном коде помещается в R0, R1 и R2. Цифра старшего разряда располагается в правом (младшем) полубайте R0. Листинг 4.10 *********************************************************** Преобразование двоичных чисел в двоично-десятичные. Эта программа преобразует двоичное В-разрядное число, содержащееся в регистре W, в двухразрядное десятичное число, представленное в BCD-коде. Младшая цифра формируется в регистре LSD, старшая - в MSD. Показатели; объем памяти: 10; количество командных циклов: 81 (W = 63 hex, т. е. 99 в десятичном представлении). self itt***********************************************************************
W = 60 hex. После преобразования MSD = 9 и LSD = 9 (63 в hex = 99 в десятичном). Яисшнг 4.11 ********************************************************************************* Преобразование двоичных кодов в двоично-десятичные. Эта программа преобразует 16-разрядное двоичное числов 5-разрядное десятичное, представленное в BCD коде. Исходное двоичное число располагается в H byte и L byte. помещается в байты R0, R1 и R2. Полученное в результате десятичное число Старшая цифра содержится в правом полубайте R0. Показатели: объем памяти: 35; количество командных циклов: 885. Программа соответствует инструкции по применению AN526 фирмы Microchip. к* ****** ****** >**** **** ********* *** ************* * ** **<
Сброс бита переноса.
|
© 2000 - 2024 ULTRASONEX-AMFODENT.RU.
Копирование материалов разрешено исключительно при условии цититирования. |