Пятница, 20 апреля 2012 04:44

Бит, байт и простое объяснение логических операций.

Written by
Rate this item
(0 votes)

Как и в любой вычислительной технике,  где применяется цифровой сигнал  практически всегда встречаются такие слова  как  "бит" и "байт".  Не является исключением и микроконтроллеры. Давайте  попробуем разобраться, что же это такое.

 

Бит - (англ. binary digit; также игра слов: англ. bit — немного) — единица измерения информации, один разряд двоичного кода (двоичная цифра).  Бит может принимать только два значения "0" или "1", да или нет, включено/выключено, и т. п. В вычислительной технике  "0" и "1"  передаются различными уровнями напряжения, к примеру, в микросхемах  ТТЛ  "0" соответствует  напряжением в диапазоне от +0 до + 0,8 В, а "1" в диапазоне от 2,0 до 5,0 В"..

«Бит» часто применяется в значении «двоичный разряд»(старший бит — старший двоичный разряд байта или слова, младший бит - младший разряд слова , о которых идёт речь). Относительно к микроконтроллерам, мы часто будем сталкиваться с битами. В семействе  микроконтроллерах  PIC18XXXX существуют специальные БИТ-ОРИЕНТИРОВАННЫЕ КОМАНДЫ. с помощью которых можно будет сбрасывать/устанавливать определенные биты в байтах (регистрах).
 

Байт (англ. byte) — единица измерения количества информации. В стандартном виде байт считается равным восьми  двоичным цифрам (битам). Он  может принимать 256 (2 в 8 й степени) различных значений. Значениями одного байта можно кодировать довольно большие объемы информации. Например, все заглавные и строчные буквы алфавита, цифры, знаки препинания, символы и служебные коды, используемые при передаче данных.Емкость различных  устройств хранения информации, в том числе и в микроконтроллерах, измеряется тоже в байтах. Так же как при работе с битами, в семействе  микроконтроллерах  PIC18XXXX существуют и БАЙТ-ОРИЕНТИРОВАННЫЕ КОМАНДЫ, которые позволяют изменять байт "целиком" (сбрасывать, записывать в него данные (0-255) и т.д.). Младший бит находится справа, соответственно старший слева.

Многие путают  производные единицы — килобиты  с  килоБайтами. Заметьте я специально написал байты с большой буквы, вот на это и следует обращать внимание. Если написано кб - имеется в виду килобит, если написано кБ - то имеется ввиду килобайт. И килобайт соответственно больше в восемь раз килобита. То же самое Мегабиты ( Мб ) и  МегаБайты  (МБ)  и т.д..

В битах (килобитах, мегабитах) в секунду и  в байтах (килобайотах, мегабайтах) в секунду измеряется скорость передачи данных  (к примеру скорость Вашего Интернета ).

В предыдущей главе мы выяснили, что двоичные числа,  так же как и десятичные, можно складывать, умножать, вычитать и делить. Естественно, что эти операции можно производить и над байтами. А в  микроконтроллерах кроме этого, предусмотрены различные команды сравнения, сдвига, в том числе и команды, выполняющие простые логические операции.  Если Вы сталкивались ранее с логическими микросхемами, то соответственно сталкивались и с побитовыми логическими операциями "И", "ИЛИ", "НЕ" и исключающие ИЛИ. Для тех кто слабо понимает что это такое попробуем разобраться.

Побитовое отрицание (NOT)  (или побитовое "НЕ", или дополнение) — это бинарная операция, действие которой эквивалентно применению логического отрицания к каждому биту двоичного представления операнда. Простыми  словами, там где в двоичном представлении операнда был 0, после выполнения операции будет 1, и, наоборот, где была 1, там будет 0.  В семействе  микроконтроллерах  PIC18XXXX  есть такая команда  "COMF", которая инвертирует содержимое регистра (байта). Обозначение:

Пример:

 

1 0 1 1 1 0 0 1
0 1 0 0 0 1 1 0

 

Побитовое И (AND)— это бинарная операция, действие которой эквивалентно применению логического "И"  к каждой паре битов, которые стоят на одинаковых позициях в сравниваемых байтах . Другими словами, если оба соответствующих бита байтов равны 1, то результат двоичного разряда  будет 1; если же хотя бы один бит из пары равен 0, то результат двоичного разряда будет  0. По отношению к микроконтроллерам существуют команда  "ANDWF", к стати первые три буквы  AND как раз и говорят об  операции "И" над регистром (байтом) "F"  и   "W" (пока не будем вникать и назовем его то же байт, по сути так и есть). Обозначение: a & b

Пример:

1 0 0 1 1 1 0 1
1 1 0 0 0 1 1 1
1 0 0 0 0 1 0 1

Побитовое ИЛИ (OR)  — это бинарная операция, действие которой эквивалентно применению логического "ИЛИ"  к каждой паре битов, которые стоят на одинаковых позициях в сравниваемых байтах. Другими словами, если оба соответствующих бита байтов равны 0, то результат двоичного разряда  будет 0; если же хотя бы один бит из пары равен 1, то результат двоичного разряда будет  1. Опять же по отношению к микроконтроллерам существуют команда  "IORWF"Обозначение: a | b

Пример:

1 0 0 0 1 1 1 1
0 0 1 0 1 0 0 0
1 0 1 0 1 1 1 1

Сложение по модулю два (XOR) (исключающее ИЛИ) —  это бинарная операция, результат действия которой равен 1, если число складываемых единичных битов нечетно, если же их число четно, то результат ,будет  0. По отношению к микроконтроллерам существуют команда  "XORWF". Обозначение: a^b

Пример:

1 1 0 0 0 1 0 0
1 0 0 0 1 1 1 0
0 1 0 0 1 0 1 0

К логическим битовым операциям можно также отнести  битовые сдвиги. Их несколько - это  логический, циклический  и арифметический. Нас интересует только циклический сдвиг.  При циклическом сдвиге, значение последнего бита по направлению сдвига копируется в первый бит .

alt

В  семействе  микроконтроллерах  PIC18XXXX  есть такие команды, как RLCF, RLNCF- сдвиг регистра влево  через перенос и без переноса и RRCF, RRNC - то же самое только сдвиг регистра (байта) происходит вправо. Более подробно мы остановимся,  когда будет рассматривать  команды микроконтроллера.

Read 2368 times Last modified on Воскресенье, 10 августа 2014 05:59

Все права принадлежат ChipMK.ru. При копировании материала ссылка обязательна. 2011-2017 © ChipMK.ru

ChipMk.ru Яндекс.Метрика
PRCY.ru