рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Перетворення кодів з однієї системи числення в іншу

Перетворення кодів з однієї системи числення в іншу - раздел Информатика, ПЕРЕТВОРЕННЯ ІНФОРМАЦІЇ   Перетворення Коду З Однієї Позиційної Системи Числення В Іншу...

 

Перетворення коду з однієї позиційної системи числення в іншу здійснюється діленням вхідного числа на основу нової системи числення. При цьому ділення повинно виконуватись за правилами вхідної системи числення.

Перетворення двійкового числа в двійково-десяткове в цьому випадку повинно здійснюватися діленням початкового числа на 10. Причому, ділення повинно здійснюватися за правилами двійкової арифметики. Для цього необхідно вхідний двійковий n-розрядний код числа поділити на двійковий код числа 10 (1010).

Нехай необхідно виконати перетворення 10-розрядного двійкового числа, що зберігається в пам'яті даних мікроконтролера, в двійково-десяткове.

Так як регістри загального призначення пам'яті даних ОМК PIC 16/17 восьмирозрядні, то для зберігання початкового числа необхідно буде використати два регістри, що містять, наприклад, змінні START і ENDSTART. Припустимо, що вісім старших розрядів початкового числа будуть знаходитись в змінній START, а молодші два розряди в бітах 0 і 1 змінної ENDSTART.

При перетворенні двійкового числа в двійково-десяткове звичайно вимагається виконати максимум два кроки ділення. Причому, на першому кроці необхідно буде зробити шість віднімань числа 1010 з діленого (якщо початкове число, наприклад, восьмирозрядне). Але в нашому випадку число 10-розрядне, то потрібно здійснити вісім віднімань. При цьому, вже після 2-го віднімання можна буде зсунути ділене (START) на два розряди ліворуч і записати в молодшу частину діленого зміст 0-го і 1-го бітів змінної ENDSTART (молодші два розряди початкового числа). Після цього необхідно продовжити алгоритм ділення.

Для спрощення прикладу програми в даному випадку прийнято, що вхідне двійкове число, задане в змінних START і ENDSTART, не перевищує його десяткового еквіваленту 999. В такому випадку, результат перетворення складається з 12 б і представляє собою три 4-розрядних двійкових числа (3-и декади).

Таким чином, для зберігання результату перетворення знадобиться три змінні: DEC1 – перша декада (одиниці, представляють собою залишок від ділення початкового числа на 10); DEC2 – друга декада (десятки, представляють собою залишок від ділення на 10 отриманої частки); REZ – третя декада (сотні, є часткою від другого ділення). Причому, змінна REZ буде використана також для зберігання проміжних результатів ділення.

Для підрахунку кількості віднімань знадобиться змінна TIME, що буде використовуватися в якості програмуємого лічильника. При цьому, константа, що заздалегідь завантажується в цей лічильник, визначається розрядністю початкового двійкового числа (дільника).

Очевидно, що ділення на 1010 (змінна TEN) доцільно представити у вигляді процедури (DIV10), бо дану операцію під час перетворення знадобиться повторювати багаторазово. Кількість повторень знов таки визначається розрядністю початкового двійкового коду. Так, якщо це число знаходиться в межах від 0 до 99, то достатньо одного виклику процедури DIV10. В цьому випадку результат перетворення буде знаходитись в змінних START і REZ. Якщо розрядність початкового числа буде більше, то знадобиться декілька викликів цієї процедури. Причому, в проміжках між викликами процедури DIV10 необхідно, очевидно, буде настроювати змінну TIME. В нашому випадку до процедури DIV10 прийдеться звертатися тричі.

Текст програми перетворення десятирозрядного двійкового числа в двійково-десяткове (BIN-DEC1), написаний на підставі представлених вище міркувань, наведений нижче:

 

; Текст процедури BIN-DEC1

LIST P = PIC16C84

– Конец работы –

Эта тема принадлежит разделу:

ПЕРЕТВОРЕННЯ ІНФОРМАЦІЇ

ПЕРЕТВОРЕННЯ ІНФОРМАЦІЇ З ОДНІЄЇ ФОРМИ ПОДАННЯ В ІНШУ Досить часто в мікроконтролерних приладах...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Перетворення кодів з однієї системи числення в іншу

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

З ОДНІЄЇ ФОРМИ ПОДАННЯ В ІНШУ
  Досить часто в мікроконтролерних приладах виникає необхідність перетворення інформації з однієї форми подання в іншу. Це в зв'язку з тим, що обробка даних в мікроконтролері здійснює

Секція заголовка
; Опис спеціальних регістрів STATUS EQU 03H ; Опис регістрів пам'яті даних і змінних START EQU 0CH ; 8 старших розрядів ; початкового числа ENDSTART EQU

Робоча секція
; Початок коду, що виконується ORG 0 GOTO BEGIN ORG 100 BEGIN ; Початок першого кроку ділення CLRW ; Очистити регістр W MOVLW B'0000 0

Введення аналогових сигналів і формування дискретних статичних сигналів
Розглянемо приклад, в якому необхідно ввести від 2-х незалежних датчиків аналогові сигнали постійного струму (U1 і U2), виконати порівняння їх між собою і за результатами порівняння здійснити:

Секція заголовка
; Опис регістрів, бітів і змінних STATUS EQU 03H ; Регістр STATUS PORTB EQU 06H ; Регістр порту В ADCON0 EQU 08H ; Регістр управління АЦП ADRES EQU 09H ; Регістр

Робоча секція
ORG 0 ; Початкова адреса після скидання GOTO BEG ; Перехід на початок програми ORG 100 ; Початкова адреса програми ; (наступна команда буде ; розміщена за адресо

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги