Смекни!
smekni.com

Программирование микропроцессорных систем (стр. 1 из 2)

ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«МОРДОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

ИМ. Н. П. ОГАРЁВА»

Факультет электронной техники

Кафедра промышленной электроники

КОНТРОЛЬНАЯ РАБОТА

ПО КУРСУ

«Программирование микропроцессорных систем»

ВЫПОЛНИЛ: ПРОВЕРИЛ:

Саранск

ЗАДАНИЕ К КОНТРОЛЬНОЙ РАБОТЕ.

1. Представление данных в вычислительных системах (двоичная и шестнадцатеричная система счисления)

2. Алгоритм преобразования многобайтного двоичного числа в двоично-десятичный код

3. Способы организации взаимосвязи задач в микропроцессорной системе. Организация системы прерываний.

4. X - 16-битное число без знака, находящееся в ОЗУ с начальным адресом ADR1, CONST - 16-битная константа. Выполнить вычитание X - CONST и занести результат в ОЗУ с адреса ADR2.


1. Представление данных в вычислительных системах (двоичная и шестнадцатеричная система счисления)

В цифровых вычислительных системах, непосредственно для вычислений используется бинарный код представленный двумя логическими уровнями «0» и «1».

Непосредственно уровни сигналов передающиеся по шинам микропроцессора проще всего переставить двоичном виде.

1.1 Двоичная система счисления.

В двоичной системе счисления используется основание р = 2.
Для записи чисел используется набор из двух цифр 0 и 1. Числа в бинарном коде обозначаются буквой B, пример записи бинарного числа: 1011010 B.

Для получения значения числа в десятичном коде необходимо значения разрядов умножить на 2 в степени соответствующей разряду и полученные значения сложить.

Пример записи десятичного числа 46,5 в бинарном счислении:

1 0 1 1 1 0, 1 0 B =1х25(32)+ 0х24(16)+1х23(8)+ 1х22(4)+ 1х21(2)+1х20(1)+ 1х2-1(0,5)+ 0х2-2(0,25)= 46,5 D

Минимальное значение бинарных данных соответствующее одному
двоичному разряду –БИТ

Также используются кратные форматы 8 разрядов- БАЙТ, состоящее из нескольких байт СЛОВО, либо четырехразрядная форма ТЕТРАДА.

1.2 Шестнадцатеричная система счисления.

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

В шестнадцатеричной системе счисления используется основание
р = 16 поскольку натуральных чисел всего 10 для обозначения значении
корме цифр от 0 до 9 дополнительно используются буквы от Aдо F
при этом A=10, B=11, C=12, D=13, E=14, F=15 соответственно.

При этом значение одного разряда шестнадцатеричной записи соответствует четырем разрядам двоичной.

Пример представления десятичного числа в двоичной и шестнадцатеричной формах: 22143,75D 0101 0110 0111 1111, 1100B

5 6 7 FCH

Т а б л и ц а 1

.

Представление чисел в двоичной и шестнадцатеричной системах.

Десятичная Двоичная Шестнадцатеричная Деся-тичная Двоичная Шестнадцатеричная
0 0000 0 8 1000 8
1 0001 1 9 1001 9
2 0010 2 10 1010 А
3 0011 3 11 1011 В
4 0100 4 12 1100 С
5 0101 5 13 1101 D
6 0110 6 14 1110 Е
7 0111 7 15 1111 F

2. Алгоритм преобразования многобайтного двоичного числа в двоично-десятичный код.

Сущность алгоритма преобразования двоичного кода в двоично-десятичный, состоит в том, что для получения двоично-десятичного кода необходимо посчитать, сколько в исходном числе единиц, десятков, сотен, тысяч, и т.д. Для этого из исходного числа необходимо отнимать десятичные числа начиная с максимального кратного 10, (величина которого зависит от разрядности исходного числа) до тех пор пока не получится отрицательное значение. Количество итераций и будет значением кода для данного разряда. Из числа оставшегося при вычитании числа вычитаем десятичное число меньшее на один разряд предыдущего и так далее.

Для записи полученного кода выделяем необходимое количество памяти в соответствии с разрядностью исходного числа.

Алгоритм перевода целого значения, записанного двоичным кодом, в двоично-десятичный код можно представить, как показано на рисунке. 2.1.

Рис. 2.1. Алгоритм преобразования двоичного числа в двоично-десятичный код

где: n – номер десятичного разряда десятичного эквивалента двоичного кода А', аn – количество весов 10n, входящих в исходное значение (т. е. значение соответствующего десятичного разряда).

Последовательность действий по переводу двоичных чисел в двоично-десятичный код можно описать следующими формулами.

1. Эквивалент А целого двоичного числа А' в десятичной системе находится путем последовательного определения количества десятичных весов в исходном значении и преобразования их в двоичный код:

аn = Ent [А'/10 n]

аn–1 = Ent [(А' – a n 10 n)/10 n – 1]

аn–2 = Ent [(А' – a n 10 n a n–1 10 n – 1 )/10 n – 2]

… …

а0 = Ent [(А' – a n 10 n a n–1 10 n – 1a n–2 10 n – 2 – … – a1 101)/10 0].

(2.1)

2. Эквивалент А правильной двоичной дроби А' в десятичной системе получается путем последовательного определения количества дробных десятичных весов в исходном значении и преобразования их в двоичный код:

а–1 = Ent А'10

а–2 = Ent (А'10 – а –1)10

а–3 = Ent ((А'10 – а 1)10 – a –2)10

… …

а–n = Ent (…((А'10 – а –1)10 – a –2)10 – … – а – (n – 1))10,

(2.2)

где Ent – операция выделения целой части числа.

3. Смешанные дроби разбиваются на целую и дробную части, десятичный эквивалент получается путем «сшивки» результатов перевода каждой части по формулам (2.1) и (2.2).

В двоичной арифметике деление сводится к многократному вычитанию. Поэтому действия, представленные формулами (2.1) и (2.2)., можно свести к простому циклическому алгоритму.

При программной реализации данного алгоритма набор необхо

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

3. Способы организации взаимосвязи задач в микропроцессорной системе. Организация системы прерываний.

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

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

Функции, реализуемых системой, можно представить в виде автономной программы или задачи, которая выполняется независимо от других. Действия, реализуемые в системе по распределению времени для решения задач процессором, называются планированием задач.

Задачи могут находиться в одном из трех состояний: выполнения, когда процессор выполняет задачу; готовности к выполнению при выделении времени процессора; приостановки (ожидания, блокировки), когда задача должна ожидать некоторого внешнего события или когда истек отведенный ей интервал времени процессора. Когда одна задача переходит в состояние ожидания, процессор переключается на выполнение другой.

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

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

По мере возникновения новых задач, требующих решения, происходит их включение в цикл уже решаемых задач. Если задача решена полностью и далее в ее выполнении нет необходимости, то она исключается из перечня решаемых задач.