Таблица 1
Номер последней цифры шифра | Число (целое) | Число (дробное / смешанное) |
0 | 67 | 0,28 / 52,45 |
1 | 48 | 0,76 / 33,12 |
2 | 86 | 0,35 / 67,48 |
3 | 57 | 0,42 / 83,19 |
4 | 99 | 0,61 / 41,55 |
5 | 27 | 0,82 / 39,33 |
6 | 39 | 0,57 / 71,42 |
7 | 41 | 0,38 / 91,22 |
8 | 71 | 0,14 / 38,76 |
9 | 94 | 0,21 / 45,31 |
Методические указания к решению задачи 1
В данной задаче студентам необходимо показать умение представлять целые и смешанные числа в любой системе счисления: двоичной, восьмеричной, шестнадцатеричной (для целых чисел), в двоичной системе для смешанных чисел и с использованием биполярных кодов.
Особенности представления целых чисел без знака и со знаком изучались в курсах "Микропроцессоры" и "Элементы систем автоматики" и особых пояснений не требует. Вспомните, что Вы уже знаете, и представьте заданное число, сведя результаты в таблицу 2.
Таблица 2
Число | Кодовая комбинация | |
Десятичное | 75D (decimal) | |
Двоичное | 01001011B (binary) | |
Восьмеричное | 113O (octal) | |
Шестнадцатеричное | 4BH (hex) | |
Прямой со знаком | +75 | -75 |
01001011 | 11001011 | |
Обратный | 01001011 | 10110100 |
Дополнительный | 01001011 | 10110101 |
Смещенный | 11001011 | 00110101 |
Для перевода отрицательного числа из дополнительного кода (на магистрали микроЭВМ) в его десятичный эквивалент и обратно следует вспомнить правило:
"инвертировать все разряды числа, исключая знаковый и прибавить единицу."
В цифровой вычислительной технике при записи чисел целую часть от дробной отделяют точкой. Соответственно, двум алгебраическим формам записи вещественных чисел: обычной (5000; -3,77; 13,784)
и показательной (5·103; -377·10-2; 137,84·10-1) различают две формы представления данных: с ФТ (фиксированной точкой (запятой)), с ПТ (плавающей точкой (запятой)).
Представление целых двоичных чисел в формате с ФТ означает, что в рамках заданного формата точка фиксируется за правой границей формата (т. е. по существу отсутствует) [2].
Представление данных вещественного типа в формате с ПТ означает, что в рамках заданного формата логически фиксируется одинаковое местоположение точки, разделяющей целую и дробную части числа.
Все процессы с ФТ оперируют с числами, представленными в дополнительном коде, что позволяет существенно упростить выполнение арифметических операций.
Правила перевода в дополнительный код не зависят от типа чисел – целые или дробные.
При переводе дробного десятичного числа в двоичное следует помнить, что дробное десятичное число переводится в двоичное в отличие от целых приближенно. Кодовая комбинация формируется из совокупности 0 и 1, получающихся при последовательном умножении заданного числа на 2, начиная со старшего разряда. Например, для числа 0,6510 получим:
1) 0,65 2) 0,3 3) 0,6 4) 0,2 5) 0,4
× 2 × 2 × 2 × 2 × 2
1.30 0.6 1.2 0.4 0.8
6) 0,8 7) 0,6 8) 0,2
× 2 × 2 × 2
1.6 1.2 0.4
0.10100110
Для смешанных чисел в двоичную форму переводится отдельно целая и дробная части числа, т. е. 75,65 = 01001011.10100110.
Задача 2. Представьте в дополнительном коде максимальные, минимальные положительные и отрицательные целые и дробные числа для 16-разрядных чисел, для которых в = 15.
Методические указания к решению задачи 2
Для восьмибитных чисел (байт) в дополнительном коде
- максимальное положительное число:
+127D → 7FH → 01111111B → 27 – 1 = 2в – 1;
- минимальное положительное число:
1D → 1H → 00000001B → 1;
- максимальное по модулю отрицательное число:
- 128D → 80H → 10000000B → - 27;
- минимальное по модулю отрицательное число:
- 1D → FFH → 11111111B → - 1.
Для восьмибитных дробных чисел соответственно:
- максимальное положительное число:
1 – 2-7 = 0.1111111 = 0,9921875;
- минимальное положительное число:
2-7 = 0.0000001 = 0,0078125;
- максимальное по модулю отрицательное число:
- 1 = 1.0000000 → -1D;
- минимальное по модулю отрицательное число:
- 2-7 = 1.1111111 = - 0,0078125.
Задача 3. Определить динамический диапазон данных D (в децибелах) цифровой системы регулирования с аналого-цифровым преобразователем (АЦП), имеющим n разрядов.
Построить зависимость D = f(n) ( nmax ограничить 32 разрядами с шагом расчета, равным 2).
Методические указания к решению задачи 3
Динамический диапазон данных представляет собой отношение максимального и минимального (не равного нулю) значений и определяется в первую очередь разрядностью АЦП. При этом следует иметь в виду, что один бит данных соответствует
20lg2 (децибел) ≈ 6,0205998,
а полный динамический диапазон определяется из соотношения:
D= n·20lg2.
Задача 4. Представить в виде алгоритма методику создания исполняемой программы на языке ассемблера любого микроконтроллера, известного Вам, если имя программы и используемых подпрограмм приведены в таблице 3.
Таблица 3
Номер последней цифры шифра | Имя головной программы | Имена подпрограмм |
0 | Main0 | Sub1, time |
1 | Prog1 | Sub2, cir |
2 | Test2 | sub3,sub4 |
3 | Program3 | wind1, ADC |
4 | CAP | ADC, timer |
5 | CODER | un1, un2, un3 |
6 | SHD | t1, t2 |
7 | BLDC | win1, cool2 |
8 | SRM | ADC, DAC |
9 | ACD | root, level |
Методические указания к решению задачи 4
Для программирования современных микроконтроллеров и цифровых сигнальных процессоров (DSP – Digital Signal Processor) используются языки ассемблера и языки высокого уровня (CИ, Pascal и др.).
Языки ассемблера являются машинно-ориентированными языками и для разных типов процессоров существует свой язык. Почти каждая команда ассемблера эквивалентна команде на машинном языке процессора. Следует заметить, что знание языка ассемблера остается необходимым условием получения "хороших программ" на языке СИ.
Все компиляторы CИ поддерживают включение в программу модулей на языке ассемблера.
Этапы разработки программы следующие:
· формулирование технического задания (постановка задачи);
· определение структур данных и памяти;
· разработка алгоритма и структуры программы с использованием принципов модульного программирования;
· выбор языка программирования;
· составление текста программы и подпрограмм;
· создание выполняемой программы.
В условиях данной задачи пройдены все этапы, кроме двух последних. Считаем, что тексты программы и подпрограмм написаны, им присвоены символические названия, представленные в таблице 3.
В процессе подготовки исполняемых программ следует различать следующие базовые понятия:
- объектный код – код, полученный в результате трансляции (с помощью программы транслятора) на машинный язык или близкий к нему язык программы, записанной на некотором исходном языке (например, языке ассемблера);
- перемещаемый (относительный) программный модуль – представляет собой программу, которая может быть настроена на загрузку и выполнение в любой области памяти. В такой программе все требуемые адреса выражаются относительно общей точки отсчета – начала программы. Настройка перемещаемых модулей на абсолютные адреса производится компоновщиком (специальной программой);
- абсолютный адрес – число, однозначно указывающее положение данных или кодов памяти;
- абсолютный (неперемещаемый) программный модуль – программный модуль, использующий абсолютные (фактические) адреса;
- выполняемый (загрузочный) модуль – программа, представленная в виде, пригодном для загрузки в память системы и её выполнения процессором.
Известно, что система программирования любого микроконтроллера должна включать в свой состав комплекс программ, обеспечивающих их создание и редактирование, трансляцию, компоновку и отладку. Методика создания загрузочного модуля для микроконтроллеров семейства MCS-196 [2] фирмы INTEL представлена ниже: