Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PIC микроконтроллеры.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
21.99 Mб
Скачать

Глава 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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]