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

Автор: Пользователь скрыл имя, 23 Января 2011 в 10:55, контрольная работа

Краткое описание

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

Оглавление

1. Представление данных в вычислительных системах (двоичная и шестнадцатеричная система счисления)
2. Алгоритм преобразования многобайтного двоичного числа в двоично-десятичный код
3. Способы организации взаимосвязи задач в микропроцессорной системе. Организация системы прерываний.
4. X - 16-битное число без знака, находящееся в ОЗУ с начальным адресом ADR1, CONST - 16-битная константа. Выполнить вычитание X - CONST и занести результат в ОЗУ с адреса ADR2.

Файлы: 1 файл

Контрольная_ПР.doc

— 131.00 Кб (Скачать)

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

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

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

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

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

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

    ПО  КУРСУ

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

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

    Саранск  
     

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

    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,75 D                 0101 0110 0111 1111, 1100 B

                                                5       6        7        F       C   H 
     

           Т а б л и  ц а 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. Способы организации взаимосвязи задач в микропроцессорной системе. Организация системы прерываний.

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

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

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

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

           

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

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

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

           Варианты организации  планирования задач по приоритетам:

           1. Использование слова запросов на выполнение задач.

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

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

           2. Использование системы вложенных прерываний.

    Во  втором случае  выполняемая задача может быть прервана для выполнения задачи с большим приоритетом.

Информация о работе Программирование микропроцессорных систем