Технология цифровой связи

Проектирование цифровой линии

Изучение структурной организации и приемов программирования однокристального микроконтроллера К1816ВЕ48

A7B = 1010 0111 1011

A 7 B

Перевод в десятичную систему счисления. Так как перевести числа из двоичной системы в шестнадцатеричную и обратно нетрудно, то для простоты выкладок рассмотрим перевод чисел из шестнадцатеричной системы и обратно.

В качестве примера перевода числа из шестнадцатеричной системы в десятичную систему выберем число 9A5F:

9A5F16 = (9∙163 + 10∙162 + 5∙161 + 15∙160)=(((9∙16+10)∙16+5)∙16+15) = 3951910

9 A 5 F

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

Покажем действия по переводу чисел из десятичной системы счисления в шестнадцатеричную на примере преобразования десятичного числа 3951910 в шестнадцатеричную систему счисления

39519 |16

39504 2469 |16

15 2464 154 . |16

F 5 144 9

10

A

Отсюда 3951910 = 9A5F16. Таким образом, последовательно деля на 16 целую часть десятичного числа и образующиеся частные, получаем в последнем частном и остатках цифры всех разрядов шестнадцатеричного представления числа.

Пример 2.5

. Преобразование кодов из одной системы счисления в другую. Преобразование кода из одной позиционной системы счисления в другую осуществляется делением исходного числа на основание новой системы счисления. При этом деление должно выполняться по правилам исходной системы счисления. Например, для преобразования двоичного числа в двоично-десятичное исходное двоичное число должно быть поделено на 10 (10102). Деление должно осуществляться по правилам двоичной арифметики.

Пусть требуется выполнить преобразование 8-битного двоичного числа в двоично-десятичное. Исходный двоичный код хранится в аккумуляторе. Результат преобразования состоит из 12 бит: младшие 4 бита – единицы, представляют собой остаток от деления исходного числа на 10; следующие 4 бита – десятки, представляют собой остаток от деления на 10 полученного частного; старшие 4 бита – сотни, являются частным от второго деления:

BBD: CALL DIV10 ; деление исходного кода на 10

MOV R7,A ; сохранение остатка в R7

MOV A,R1 ; загрузка в аккумулятор частного

CALL DIV10 ; деление частного на 10

SWAP A ; передача остатка в старшую тетраду A

ORL A,R7 ; передача R7 в младшую тетраду A

JMP EXIT ; выход из процедуры

; подпрограмма деления на 10

; исходный двоичный код в аккумуляторе

; результат: в R1 – частное, в аккумуляторе – остаток

DIV10: MOV R1,#0 ; сброс R1

SUB10: ADD A,#(NOT(10)+1) ; вычитание 10 из делимого

INC R1 ; инкремент частного

JC SUB10 ; цикл, если остаток >= 0

DEC R1 ; восстановление частного

ADD A,#10 ; восстановление остатка

RET ; возврат

EXIT: … ;

В результате выполнения процедуры в младшей тетраде R1 хранятся сотни, в аккумуляторе – десятки и единицы двоично-десятичного эквивалента исходного двоичного числа.

3.4.3. Изучение аппаратных и программных средств ввода/вывода информации микроконтроллера ВЕ48

1) Изучить организацию каналов ввода/вывода информации микроконтроллера ВЕ48, интерфейс расширения ввода/вывода;

2) Рассмотреть команды, которые обслуживают пространство ввода/вывода;

3) Ознакомиться с приведенными ниже примерами программ на языке ассемблера;

4) Произвести ввод, отладку и трансляцию в объектный код этих программ;

5) Выполнить программы по шагам с просмотром результатов выполнения в регистрах и оперативной памяти.

Пример 3.1

. Ввести байт из порта 1 и передать его в порт 2:

TRAN: MOV A,#0FF ; настройка порта 1 на ввод

OUTL P1,A ;

IN A,P1 ; ввод байта из порта 1

OUTL P2,A ; вывод байта в порт 2

Пример 3.2 Перейти на страницу: 1 2 3 4 5 6 7


Другое по теме:

Расчет водопотребления на нужды поселка и предприятия Определение водопотребителей Объединенный хозяйственно-питьевой и противопожарный водопровод должен обеспечивать расход воды на хозяйственно-питьевые нужды поселка, хозяйственно-питьевые нужды предприятия, хозяйственно-бытовые нужды обществе ...