
- •Основные понятия и определения. Лекция №1. Микропроцессоры и микроконтроллеры. Общие сведения. Шина адреса, шина управления.
- •Что такое микропроцессор?
- •Шинная структура связей
- •Лекция №2. Архитектура микропроцессоров и микроконтроллеров. Risc и cisc система команд в мп и мк. Архитектура микропроцессорных систем
- •Типы микропроцессорных систем
- •Risc и cisc система команд в мп и мк
- •Команды пересылки данных
- •Арифметические команды
- •Логические команды
- •Команды переходов
- •Лекция №3. Внутренняя организация процессора. Назначение и функциональные особенности блоков. Быстродействие процессора
- •Классификация и структура
- •Процессорное ядро
- •Функции процессора
- •Лекция №4. Последовательность выполнения команд микропроцессором. Режимы адресации.
- •Адресация операндов
- •Методы адресации
- •Адресация байтов и слов
- •Регистры процессора
- •Система команд мп. Лекция №5. Архитектура изучаемого микроконтроллера. Назначение внутренних блоков. Микроконтроллеры семейства avr
- •Микроконтроллер aTtiny2313 фирмы Atmel
- •Архитектура микроконтроллеров семейства Tiny
- •Организация памяти
- •Память программ
- •Память данных
- •Способы адресации памяти данных
- •Прямая адресация
- •Лекция №6. Блок регистров общего назначения. Команды с непосредственной адресацией. Различные режимы адресации. Энергонезависимая память данных (eeprom)
- •Доступ к eeprom
- •Меры предосторожности
- •Счетчик команд и выполнение программы
- •Лекция №7. Система команд изучаемого микроконтроллера.
- •Лекция №8. Команды переходов и сдвига. Остальные команды.
- •Выводы микроконтроллера. Лекция №9. Описание выводов микроконтроллера.
- •Описание выводов
- •Кварцевый генератор
- •Лекция №10. Пространство ввода/вывода микроконтроллера.
- •Порт ввода/вывода в
- •Регистр направления данных порта b - ddrb
- •Альтернативные функции portb
- •Порт ввода/вывода d
- •Регистр направления данных порта b - ddrb
- •Порт d, как порт ввода/вывода общего назначения
- •Альтернативные функции порта d
- •Регистры и обработка прерываний микроконтроллера. Лекция №13. Регистр состояния и указатель стека микроконтроллера.
- •Регистр состояния - sreg
- •Указатель стека sp
- •Лекция №14. Обработка внешних прерываний в микроконтроллере.
- •Обработка внешних прерываний. Общий регистр маски прерываний gimsk
- •Общий регистр флагов прерываний
- •Регистр управления микроконтроллером - mcucr
- •Лекция №15. Обработка прерываний от таймеров/счетчиков в микроконтроллере.
- •Регистр маски прерывания от таймера/счетчика - timsk
- •Регистр флагов прерываний от таймеров/счетчиков - tifr
- •Прерывания в микроконтроллере. Лекция №16. Определитель таймеров/счетчиков. Принцип работы таймера/счетчика 0.
- •Определитель таймеров/счетчиков
- •Регистр управления таймером/счетчиком 0 - tccr0
- •Лекция №17. Режимы работы таймера/счетчика 1.
- •Регистр a управления таймером/счетчиком 1 - tccr1a
- •Таймер/счетчик 1 - tcnt1h и tcnt1l
- •Регистр совпадения a таймера/счетчика 1 - ocr1ah и ocr1al
- •Регистр захвата таймера/счетчика 1 - icr1h и icr1l
- •Таймер/счетчик в режиме шим
- •Лекция №18. Универсальный асинхронный приемо-передатчик. Принцип работы и управления.
- •Передача данных
- •Прием данных
- •Управление uart регистр ввода/вывода uart
- •Регистр состояния uart (usr)
- •Регистр управления uart (ucr)
- •Генератор скорости передачи
- •Лекция №19. Аналоговый компаратор и сторожевой таймер микроконтроллера.
- •Аналоговый компаратор регистр управления и состояния аналогового компаратора (acsr).
- •Регистр управления сторожевым таймером - wdtcr
- •Форматы представления чисел в эвм. Лекция №20. Формат чисел с фиксированной точкой и элементарные операции над ними.
- •Компьютерное представление целых чисел
- •Лекция №21. Формат чисел с плавающей точкой и элементарные операции над ними.
- •Компьютерное представление вещественных чисел
- •Цифро-аналоговые преобразователи. Лекция №22. Основные понятия и определения цифро-аналоговых преобразователей (цап). Виды погрешностей преобразования.
- •Параметры цап
- •Лекция №23. Цап на взвешивающей матрице и на матрице r-2r. Принцип работы. Достоинства и недостатки. Цап на взвешивающей матрице
- •Цап на матрице r-2r
Лекция №21. Формат чисел с плавающей точкой и элементарные операции над ними.
Существуют два основных типа представления чисел в компьютере, называемые представлениями с фиксированной и с плавающей запятой. Целые числа в компьютере хранятся в формате с фиксированной запятой.
Для представления вещественных чисел в современных компьютерах принят способ представления с плавающей запятой. Этот способ представления опирается на нормализованную (экспоненциальную) запись действительных чисел.
Компьютерное представление вещественных чисел
Как и для целых чисел, при представлении действительных чисел в компьютере используется чаще всего двоичная система счисления, следовательно, предварительно десятичное число должно быть переведено в двоичную систему. Однако мы сталкиваемся и с нормализованными десятичными числами, например, при работе с калькуляторами.
Нормализованная запись числа
Нормализованная запись отличного от нуля действительного числа - это запись вида a = ± m Pq, где q - целое число (положительное, отрицательное, или ноль), а m - правильная Р-ичная дробь, у которой первая цифра после запятой не равна нулю, т.е. 1/Р ≤ m <1. При этом m называется мантиссой числа, q - порядком числа.
Пример. Приведем примеры нормализации чисел
1) 3,1415926 = 0,31415926 101;
2) 1000 = 0,1 104;
3) 0,123456789 = 0,123456789 100 (запятую передвигать не нужно);
4) 0,00001078 = 0,1078 8-4
(порядок записан в десятичной системе);
5) 1000,00012 = 0,100000012 24
(порядок записан в десятичной системе).
Заметим, что число нуль не может быть записано в нормализованной форме так, как она была определена. Поэтому относительно нормализованной записи нуля приходится прибегать к особым соглашениям.
Условимся, что запись нуля является нормализованной, если и мантисса и порядок равны нулю, т.е. 0 = 0,0 100.
Представление чисел с плавающей запятой
При представлении чисел с плавающей запятой часть разрядов ячейки отводится для записи порядка числа, остальные разряды - для записи мантиссы. По одному разряду в каждой группе отводится для изображения знака порядка и знака мантиссы.
Например, можно представить себе такое распределение разрядов ячейки памяти:
Первые два разряда служат для изображения знаков порядка и мантиссы соответственно: 0 - если знак «плюс», 1 - знак «минус». Следующие k разрядов используются для изображения абсолютной величины порядка числа, остальные n разрядов используются для изображения абсолютной величины мантиссы.
На точность вычислений оказывает влияние длина мантиссы, а количество разрядов, отводимых под порядок, влияет на допустимый диапазон представимых чисел. Очевидно, чем большая точность нам требуется, тем более «длинную» ячейку придется использовать.
Выполнение арифметических операций над числами с плавающей запятой
Использование в компьютере или калькуляторе представления чисел с плавающей запятой усложняет схему арифметического устройства.
Сложение и вычитание
При сложении и вычитании чисел сначала производится подготовительное действие, называемое выравниванием порядков. Порядок меньшего по модулю числа при этом становится равным порядку большего. Для этого мантисса числа с меньшим порядком сдвигается в своей ячейке вправо на количество разрядов, равное разности порядков данных чисел. После этой операции одинаковые разряды чисел оказываются расположенными в соответствующих (одних и тех же) разрядах обеих ячеек, и теперь уже сложение или вычитание мантисс выполняется достаточно просто, так же как над числами с фиксированной запятой.
Пример. Предположим, что в ячейке памяти калькулятора можно записать один десятичный разряд порядка и пять десятичных разрядов мантиссы. Требуется выполнить сложение следующих чисел:
102 0,23619 и 102 0,71824.
Перед сложением производится выравнивание порядков. Меньший порядок «приводится» к большему. В данном случае второе слагаемое будет преобразовано к виду: 102 0,00071824, после чего выполняется сложение
102 0,23619
102 0,00071824
102 0,23690824.
Результат получили с большим числом разрядов, чем вмещает ячейка, поэтому он округляется и записывается в ячейку памяти в виде 102 0,23691.
Умножение и деление
При умножении двух целых чисел с плавающей запятой их порядки просто необходимо сложить, а мантиссы - перемножить (предварительное выравнивание порядков не производится). При делении из порядка делимого надо вычесть порядок делителя, а мантиссу делимого разделить на мантиссу делителя. Помимо потери точности в результате операций над мантиссами, в данном случае может произойти переполнение порядка, то есть сумма или разность порядков может оказаться как больше максимально представимого порядка, так и меньше минимально возможного.
Пример. С помощью описанного в предыдущем примере калькулятора выполним умножение
0,2 l05 0,5 l05 = 0,l l010.
Но в калькуляторе для порядка отведен один десятичный разряд, т.е. результат умножения двух представимых в калькуляторе чисел не может быть в нем записан.
Нормализация результата
После операций над порядками и мантиссами мы получаем порядок и мантиссу результата. Однако мантисса результата может не удовлетворять ограничениям, накладываемым на мантиссы нормализованных чисел. Так как от результата арифметических операций в машине требуется, чтобы он также был нормализованным числом, необходимо дополнительное преобразование результата, называемое нормализацией. В зависимости от величины получившейся мантиссы результата, она сдвигается вправо или влево так, чтобы ее первая значащая цифра попала в первый разряд после запятой. Одновременно порядок результата увеличивается или уменьшается на число, равное величине сдвига.
Заметим, что над мантиссами в арифметическом устройстве должны выполняться все четыре арифметических действия, а также операции сдвига, тогда как над порядками производятся только действия сложения и вычитания.