
- •Глава 1 позиционные системы счисления
- •Глава 2. Формат представления базовых данных
- •2. А положительное, b отрицательное и по абсолютной величине больше, чем а.
- •3. А положительное, b отрицательное и по абсолютной величине меньше, чем а.
- •4. А и в отрицательные.
- •Глава 2. Логические основы piCmicro
- •Элемент не
- •Элемент и
- •Элемент или
- •Элемент Исключающее или
- •Логические элементы в интегральном исполнении
- •Глава 3. Комбинационные устройства
- •Дешифраторы
- •Шифраторы
- •Мультиплексоры
- •Преобразователи кодов.
- •Сумматоры
- •Глава 4. Последовательностные устройства
- •Параллельные регистры
- •Последовательные (сдвиговые) регистры
- •Блок обработки информации алу/рабочий регистр
- •Счетчики импульсов
- •Глава 5. Запоминающие устройства Иерархия запоминающих устройств эвм
- •Иерархическая структура памяти
- •Структурная схема зу
- •Типы оперативных запоминающих устройств
- •Основные параметры запоминающих устройств
- •Микросхемы озу
- •Постоянные запоминающие устройства (пзу)
- •Флэш-память
- •Глава 6. Обработка хранимой программы
- •Режимы адресации
- •Устройство управления
- •Микроконтроллерная система
- •Глава 5. Архитектура микроконтроллера семейства p1c.
- •Регистр слова состояния status
- •Память данных
- •Параллельные порты ввода/вывода
- •Регистр таймера/счетчика tmr0
- •Eeprom память данных eedata, eeadr
- •Специальные регистры w, intcon, option
- •Глава 6. Требования языка ассемблер
- •Операнд
- •Комментарии в программах на ассемблере
- •Метка/Имя
- •Формат кодирования
- •Глава 7. Набор команд pic контроллера
- •Сложение
- •Очистка
- •Команды инкрементирования и декрементирования
- •Бит ориентированные команды
- •Вычитание
- •Глава 8. Логика и организация программ
- •Последовательное выполнение команд
- •Конструкция выбор пути
- •Команды передачи управления. Команда «нет операции»
- •Команда безусловного перехода
- •Команды условного перехода
- •Конструкция цикл
- •Косвенная адресация памяти данных
- •Глава 9. Модульное программирование
- •Временная задержка малой длительности.
- •Метод вложенных циклов
- •Временная задержка длительностью 1с.
- •10. Организация связи с оператором
Глава 1 позиционные системы счисления
До нашего времени дошли такие системы счисления как римская и арабская. Первая является непозиционной (значение цифры не зависит от позиции в числе), а вторая – позиционной системой счисления (значение цифры определяется позицией, которую она занимает в числе).
Пусть задано число, состоящее из n целых цифр a. Пронумеруем влево, начиная с нуля, позиции числа. Представим наше число с позиционной точки зрения в виде:
Позиция (разряд) |
n |
n-1 |
... |
1 |
0 |
Число |
an |
an-1 |
… |
a1 |
a0 |
А = аn*bn + аn-1*bn-1 + ...+а1*b1 + a0*b0 +c1*b-1 +…+ck*b-k (1)
С помощью этой формулы можно перевести число из любой позиционной системы в десятичную.
Десятичная система счисления
Число в арабской системе счисления c основанием b=10 состоит из множество цифр {0,1,2,3,4,5,6,7,8,9}
Позиция (разряд) |
4 |
3 |
2 |
1 |
0 |
Число |
8 |
2 |
5 |
6 |
3 |
82563 = 8*104 +2*103 +5*102 +6*101 +3*100
Все привычные вычисления в десятичной системе счисления работают точно также и в других позиционных системах счисления.
Двоичная система счисления
Сочетанием двоичных цифр (битов) можно представить любое значение. Значение двоичного числа определяется относительной позицией каждого бита и наличием единичных битов.
Перевод двоичных чисел в десятичную систему счисления
Двоичная система является позиционной с основанием b=2. Поэтому для нее справедлива формула (1), т.е. мы можем разложить число по степеням с основанием два.
Пример
1101101.01b → ??? dec
Позиция/Разряд |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Позиционные веса |
128 27 |
64 26 |
32 25 |
16 24 |
8 23 |
4 22 |
2 21 |
1 20 |
Число |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
Получаем результат
1*26+1*25+1*23+1*22+1*20+1*2-2
64 + 32 + 8 + 4 + 1 + 0.25 = 117,25
Двоичное число не ограничено только восемью битами. Так как процессор 8086 использует 16-битовую архитектуру, он автоматически оперирует с 16-битовыми числами. (216 – 1) дает значение 65535. 16-битовое (двухбайтовое) поле называется словом. Биты в слове пронумерованы от 0 до 15 справа налево, как это показано для слова PC:
Позиция/ Разряд |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Число |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
Перевод десятичных чисел в двоичную систему счисления
Для перевода целого десятичного числа в систему счисления с основанием два необходимо подобрать весовые коэффициенты двоичного кода, которые в сумме дадут десятичное число, в выбранных позициях (разрядах) записать 1, в остальных – 0.
Пример
65 → ???bin
Позиция /Разряд |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Позиционные веса |
128 |
64 |
32 |
16 |
8 |
4 |
2 |
1 |
Число |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
Получаем результат
64+1 → 1000001
Шестнадцатиричная система счисления
Представим, что необходимо просмотреть содержимое некоторых байт в памяти. Требуется определить содержимое четырех последовательных байт (двух слов), которые имеют двоичные значения.
Так как четыре байта включают в себя 32 бита, то специалисты разработали "стенографический" метод представления двоичных данных. По этому методу каждый байт делится пополам и каждые полбайта выражаются соответствующим значением.
Рассмотрим следующие четыре байта:
Двоичное: 0101 1001 0011 0101 1011 1001 1100 1110
Десятичное: 5 9 3 5 11 9 12 14
Так как здесь для некоторых чисел требуется две цифры, расширим систему счисления так, чтобы 10=A, 11=B, 12=C, 13=D, 14=E, 15=F. Таким образом получим более сокращенную форму, которая представляет содержимое вышеуказанных байт:
59 35 B9 CE
Такая система счисления включает "цифры" от 0 до F, и так как таких цифр 16, она называется шестнадцатеричным представлениeм. На Рис.1. приведены двоичные, десятичные и шестнадцатиричные значения чисел от 0 до 15.
Двоич. Дес. Шест. Двоич. Дес. Шест.
0000 0 0 1000 8 8
0001 1 1 1001 9 9
0010 2 2 1010 10 A
0011 3 3 1011 11 B
0100 4 4 1100 12 C
0101 5 5 1101 13 D
0110 6 6 1110 14 E
0111 7 7 1111 15 F
Рис.1 Двоичное, десятичное и шестнадцатеричное представления.
Шестнадцатеричный формат нашел большое применение в языке ассемблера. В листингах ассемблирования программ в шестнадцатеричном формате показаны все адреса, машинные коды команд и содержимое констант.
Перевод шестнадцатеричных чисел в десятичную систему счисления
Для перевода шестнадцатеричных чисел в двоичную систему счисления необходимо воспользоваться формулой (1):
А = аn*bn + аn-1*bn-1 + ...+а1*b1 + a0*b0 +c1*b-1 +…+ck*b-k (1)
С помощью этой формулы можно перевести число из любой позиционной системы в десятичную.
Пример
703Нех→???dec
7*162 +0*161 +3*160 =7*256 + 3*1 = 1795
Перевод двоичных чисел в шестнадцатеричную систему счисления
Для перевода двоичных чисел в шестнадцатеричную систему счисления необходимо разбить двоичное число на тетрады, начиная с младшего разряда, и каждую тетраду заменить коэффициентом шестнадцатеричного кода.
Пример
1100 0110 1110 0001 → ???Hex
0001→1; 1110→E; 0110→6; 1100→С
1100011011100001→C6E1Hex
Перевод шестнадцатеричных чисел в двоичную систему счисления
Для перевода шестнадцатеричных чисел в двоичную систему счисления необходимо каждый коэффициент шестнадцатеричного кода заменить четырьмя разрядами двоичного кода.
Пример
А703Нех→???bin
А→1011; 7→0111; 0→0000; 3→0011
А703Hex →1010 0111 0000 0011bin
Если немного поработать с шестнадцатеричным форматом, то можно быстро привыкнуть к нему. рассмотрим несколько проcтых примеров шестнадцатеричной арифметики. Следует помнить, что после шест. числа F следует шестнадцатеричное 10, что равно десятичному числу 16.
6 5 F F 10 FF
4 8 1 F 10 1
A D 10 1E 20 100
Заметьте также, что шест.20 эквивалентно десятичному 32, шест.100 - десятичному 256 и шест.1000 - десятичному 4096.
В данной книге шестнадцатеричные (Hexadecimal) числа записываются, например, как 4BН, двоичные (Binary) числа как 01001011В, и десятичные (Decimal) числа, как 75 (отсутствие какого-либо описания предполагает десятичное число).
Исключения возможны, когда база числа очевидна из контекста. Шестнадцатеричное число всегда начинается с деcятичной цифры 0-9, таким образом, B8H записывается как 0B8H.
ОСНОВНЫЕ ПОЛОЖЕНИЯ НА ПАМЯТЬ
- Информация в компьютере хранится в ячейках памяти. Для базовой конфигурации PIC 16ХХ ячейки для хранения целых чисел имеют размерность байт.
- Бит (bit) – это двоичный разряд{0,1}. Последовательность двоичных цифр длиной в 8 бит называется байт (byte). Байт – наименьшая адресуемая компьтером единица информации.
- Сокращенная запись групп из четырех битов представляет собой шестнадцатеричный формат. Цифры 0-9 и AН─FН представляют двоичные числа от 0000 до 1111.
- Максимальное число, которое можно разместить в байте в двоичном формате, состоит из восьми единиц, в шестнадцатеричном – из дух цифр FF: FFh→11111111b→255d
- Слово (word) представляет собой последовательность информации длиной в два байта:
FFFFh→1111 1111 1111 1111 1111b→65535d
- Компьютер способен различать биты, имеющие разное значение: 0 или 1, и выполнять арифметические операции только в двоичном формате.
- Значение двоичного числа определено расположением единичных битов. Так, двоичное 1111 равно 2**3 + 2**2 + 2**1 + 2**0, или 15.
ВОПРОСЫ ДЛЯ САМОПРОВЕРКИ
1. Напишите битовые представления для следующих чисел: а) 5, б) 13, в) 21, г) 27.
2. Определите десятичные представления для следующих HEX чисел. Проверьте также полученные результаты, преобразовав шест. значения в двоичные и сложив единичные биты: а) 19, б) 33, в) 89, г) 255, д) 409, е) 633.
3. Сложите следующие шест. числа:
а) 23AВ б) 51FD в) 7779 г) EABE
0022 3 887 2 6C4