
- •Санкт-петербургский государственный технический университет
- •Оглавление
- •Введение
- •1. Арифметические основы вычислительной техники
- •Позиционные системы счисления
- •1.2. Двоичная система счисления
- •1.3. Алгоритмы преобразования десятичных чисел в двоичные
- •В двоичную систему счисления методом вычитания
- •1.4. Восьмеричная и шестнадцатеричная системы счисления
- •Представление чисел в различных системах счисления
- •1.5. Представление символьной информации
- •Представление алфавитно-цифровых и управляющих символов в коде ascii
- •1.6. Представление отрицательных чисел
- •1.7. Сложение и вычитание двоичных чисел
- •Правила сложения двоичных чисел
- •Архитектура микроконтроллеров 80c51
- •Общие сведения о микроконтроллерах 80c51
- •2.2. Особенности архитектуры
- •2.3. Организация памяти
- •2.4. Программная память
- •2.5. Память данных
- •Адресное пространство внутренней памяти данных, доступное для побитовой адресации
- •Регистры специальных функций мк 80с51
- •2.6. Слово состояния программы
- •Формат слова состояния программы
- •2.7. Общая характеристика системы команд
- •Система команд микроконтроллеров семейства mcs-51
- •Команды, модифицирующие флаги psw
- •2.8. Способы адресации
- •2.9. Синхронизация процессора
- •А. Для всех команд, кроме movx; в. Для команды movx
- •2.10. Параллельные порты
- •2.11. Таймеры/счетчики
- •Альтернативные функции портов p0, p2 и p3 мк 80с51
- •Регистр управления режимом таймера/счетчика
- •Регистр управления таймера/счетчика
- •2.12. Последовательный порт
- •Регистр управления последовательного порта
- •Регистр управления мощностью
- •Программирование таймера 1 для обеспечения работы последовательного порта в режимах 1 и 3
- •2.13. Программный Счетчик
- •2.14. Стек
- •2.15. Подпрограммы
- •2.16. Система прерываний
- •Адреса векторов прерываний мк 80с51
- •Регистр разрешения прерываний
- •Регистр приоритетов прерываний
- •2.17. Аппаратный сброс
- •Включении электропитания
- •2.18. Энергосберегающие режимы работы
- •3. Технология программирования микроконтроллеров
- •3.1. Общие положения
- •3.2. Подготовка исходного текста программы
- •3.3. Трансляция программы
- •Трансляции программы
- •Ошибки в программе
- •3.4. Компоновка программы
- •3.5. Отладка программы
- •Литература
- •Система команд мк семейства mcs-51
- •Эмулятор пзу чип32-02
- •1. Назначение
- •2. Технические характеристики
- •3. Инструкция по эксплуатации
- •Англо-русский словарь специальных терминов и сокращений
- •195251, Г. Санкт-Петербург, ул. Политехническая, д. 29
1.3. Алгоритмы преобразования десятичных чисел в двоичные
1.3.1. Алгоритм (algorithm)–это точное предписание, определяющее вычислительный процесс, ведущий от исходных данных к искомому результату [ 3 ].
В данном учебном пособии рассмотрены три алгоритма преобразования чисел из десятичной системы счисления в двоичную [ 1 ], которые условно названы методом вычитания, методом деления и методом умножения. Метод вычитания может быть использован для перевода в двоичную систему счисления как целых десятичных чисел, так и десятичных дробей. Метод деления применяется для перевода только целых чисел, а метод умножения –для перевода только десятичных дробей. Если исходное число больше единицы и не является целым, то его целая и дробная части преобразуются отдельно.
Каждый из рассмотренных ниже алгоритмов позволяет перевести число не только в двоичную, но также и в любую другую позиционную систему счисления, удовлетворяющую условию (1.3). Для этого лишь требуется в описаниях алгоритмов всюду вместо числа 2 подставить основание той системы счисления, в которой должно быть представлено число.
1.3.2. Метод вычитания(рис. 1.1):
1) из исходного числа вычесть наибольшую степень числа 2, не превосходящую данное число. Записать 1 в разряд искомого двоичного числа, порядковый номер которого равен показателю степени числа 2;
2) из разности, полученной на предыдущем шаге, вычесть наибольшую степень числа 2, не превосходящую эту разность, и записать 1 в разряд искомого двоичного числа, порядковый номер которого равен показателю степени числа 2;
3) операции, описанные в п.2, продолжать до тех пор, пока разность не уменьшится до нуля. В том случае, когда исходное число меньше нуля, процесс преобразования следует продолжать до тех пор, пока либо разность не уменьшится до нуля, либо не будет получено требуемое количество разрядов искомой двоичной дроби;
записать нули во все разряды двоичного числа, в которых не записаны единицы.
Рис.1.1. Перевод целого десятичного числа (А) и десятичной дроби (В)
В двоичную систему счисления методом вычитания
1.3.3. Метод деления(рис. 1.2):
1) разделить исходное целое число на 2, остаток от деления записать в младший (нулевой) разряд искомого двоичного числа;
2) частное, полученное на предыдущем шаге, снова разделить на 2, а остаток от деления записать в следующий (слева от предыдущего) разряд двоичного числа;
3) операции, описанные в п.2, продолжать до тех пор, пока частное не станет равным нулю. Остаток от последнего деления записать в старший разряд искомого числа.
Рис.1.2. Перевод десятичного числа в двоичное методом деления
1.3.4. Метод умножения(рис. 1.3):
1) умножить исходную дробь на 2 и записать целую часть полученного произведения в старший разряд (справа от запятой) искомой двоичной дроби;
2) дробную часть произведения, полученного на предыдущем шаге, умножить на 2 и записать целую часть результата в следующий разряд (справа от предыдущего) искомой двоичной дроби;
3) операции, описанные в п. 2, продолжать до тех пор, пока или результат умножения не будет точно равен 1, или не будет получено требуемое количество разрядов искомой двоичной дроби.
Рис.1.3. Перевод десятичной дроби в двоичную методом умножения