Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Шестнадцатеричная система счисления



ВВЕДЕНИЕ

 

Целью лабораторного практикума по дисциплине «Программное обеспечение и технология программирования микроконтроллеров» является закрепление знаний по архитектуре и функционированию основных модулей микроконтроллеров на примере микроконтроллеров AT90S4434/8535 семейства AVR, а также приобретение в процессе выполнения лабораторного практикума навыков программирования и отладки программ на языке Ассемблера.

Для удобства проведения лабораторного практикума в методическом руководстве дано описание основных элементов языка Ассемблера семейства AVR: системы счисления, машинное представление данных и команд. Кроме того, приведены директивы Ассемблера для AVR, и система команд процессора AT90S4434/8535 и некоторые дополнительные сведения к ним.

Одна из глав книги описывает порядок создания, компиляции и отладки программ на этапе разработки с помощью программы AvrStudio. Для записи программы в микроконтроллер используется программа New_SP.

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

 

 


МИКРОКОНТРОЛЛЕРЫ AT90S4434/8535 СЕМЕЙСТВА AVR

 

Структура микроконтроллеров AVR

 

Упрощенно модульную структуру микроконтроллера семейства AVRможно представить в следующем виде (рис. 1.1).

 

UART
32 регистра общего назначения
  Память данных SRAM
Порты ввода/вывода
Счетчик команд
Flash-память программ ROM
Сторожевой таймер
Таймеры / счетчики
Последовательный периферийный интерфейс SPI
Регистр команд
ЦПУ
Блок прерываний
АЦП
Аналоговый компаратор
АЛУ
EEPROM
64 регистра пространства ввода/вывода
Схемы синхронизации
Схемы управления

 

 


Рис. 1. Структура микроконтроллера семейства AVR

 

AVR представляет собой 8-разрядный RISC микроконтроллер, имеющий быстрое процессорное ядро, внутрисистемно программируемую Flash-память программ (ROM) емкостью 8 Кбайт, EEPROM память данных емкостью 512 байт, память данных SRAM (512 байт), порты ввода/вывода и интерфейсные схемы.

В микроконтроллерах AVR использованы принципы Гарвардской архитектуры – отдельные память и шины для программ и данных.

При работе с памятью программ используется одноуровневый конвейер – в то время, как одна команда выполняется, следующая команда выбирается из памяти программ, Такой прием позволяет выполнять команду в каждом тактовом цикле.

 

Представление данных в языке ассемблера

 

Для освоения программирования на ассемблере необходимо познакомиться с двоичными и шестнадцатеричными числами, так как без понимания того, как хранятся данные в памяти компьютера, трудно использовать логические и битовые операции.

 

Двоичная система счисления

В электрических цепях микропроцессорных систем напряжение может принимать два значения – низкого и высокого уровня (нет сигнала и есть сигнал). Этим двум значения поставили в соответствие две цифры – ноль и единица. Именно эти две цифры и используются в двоичной системе счисления, а вместо степеней десяти, как в обычной десятичной системе, – степени двойки. Для перевода двоичного числа в десятичное необходимо сложить двойки в степенях, соответствующих позициям, где в двоичном числе стоят единицы. Например:

 

10010111b =

= 1 × 27 + 0 × 26 + 0 × 25 + 1 × 24 + 0 × 23 + 1 × 22 + 1 × 21 + 1 × 20 =

= 128 + 16 + 4 + 2 + 1 = 151.

 

Для перевода десятичного числа в двоичное можно, например, разделить его на два, записывая остатки справа налево (таблица 1.1).

Чтобы отличать двоичные числа от десятичных, в тексте в конце каждого двоичного числа ставится буква b.

 

Таблица 1.1. Перевод десятичного числа в двоичное

 

Частное Остаток
151 / 2
75 / 2
37 / 2
18 / 2
9 / 2
4 / 2
2 / 2
1 / 2
Результат 10010111b

Биты, байты и слова

Битом называется минимальная единица информации. Бит либо есть, либо его нет, то есть, можно сказать, что он принимает два значения – ноль и единица, «да» и «нет» и т.п. Важно лишь то, что бит имеет только два значения. Очевидно, что один разряд двоичного числа несет один бит информации.

Единица информации размером восемь бит называется байт. Байт – это минимальный объем данных, который реально может использовать компьютерная программа. Даже для изменения одного бита в памяти приходится считывать байт, содержащий его. Биты в байте нумеруются справа налево, от нуля до семи (рис. 1.2). Нулевой бит часто называют младшим битом, седьмой – старшим.

 

Рис. 1.2. Байт.

 

Так как в байте всего восемь бит, то он может принимать до 28 = 256 различных значений. Байт используется для представления целых чисел
от 0 до 255, целых чисел со знаком от –128 до +127 или любых переменных, принимающих менее 256 значений.

Следующий по размеру базовый тип данных – слово. Размер одного слова – два байта. Биты с нулевого по седьмой составляют младший байт слова, а биты с восьмого по пятнадцатый – старший. В слове содержится шестнадцать бит, а значит, оно может принимать до 216 = 65536 различных значений. Два слова подряд образуют двойное слово (32 бит), а два двойных слова – одно учетверенное слово (64 бит).

 

Шестнадцатеричная система счисления

Главное неудобство двоичной системы счисления – это размеры чисел, с которыми приходится обращаться. На практике с двоичными числами работают, только если необходимо следить за значениями отдельных битов, а когда размеры переменных превышают четыре бита, используется шестнадцатеричная система. Она хороша тем, что компактнее десятичной, и тем, что перевод в двоичную систему и обратно происходит очень легко.
В шестнадцатеричной системе используются шестнадцать знаков (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F). Каждая позиция цифры в числе соответствует степени числа шестнадцать. Например,

97h = 9 × 161 + 7 × 160 = 9 × 16 + 7 = 151.

 

Перевод в двоичную систему и обратно осуществляется просто – вместо каждой шестнадцатеричной цифры подставляют соответствующее четырехзначное двоичное число и наоборот:

 

97h = (9h = 1001b, 7h = 0111b) = 10010111b.

 

Чтобы отличать шестнадцатеричные числа от десятичных в тексте в конце каждого шестнадцатеричного числа ставится буква h.

Иногда в ассемблерных программах используется восьмеричная система счисления. В восьмеричной системе используются восемь знаков
(0, 1, 2, 3, 4, 5, 6, 7). Каждая позиция цифры в числе соответствует степени числа восемь. Например,

 

0227h = 2 × 82 + 2 × 81 + 7 × 80 = 2 × 64 + 2 × 8 + 7 = 128 + 16 + 7 = 151.

 

Перевод в двоичную систему и обратно осуществляется просто – вместо каждой восьмеричной цифры подставляют соответствующее трехзначное двоичное число и наоборот:

 

0227h = (2 = 010b, 2 = 010b, 7 = 111b) = 10010111b.

 

Чтобы отличать восьмеричные числа от десятичных в тексте перед каждым восьмеричным числом ставится 0.

Для того чтобы в программах при записи чисел, не перепутать системы счисления, а числа начинающиеся с A, B, C, D, E, F – с переменными, в каждом ассемблере принимают свои обозначения.

В ассемблере для AVR приняты следующие форматы операндов:

– десятичный (по умолчанию): 10, 255;

– шестнадцатеричный (два способа): 0а, $0а;

– двоичный: 0b00001010, 0b11111111;

– восьмеричный (впереди ноль): 010, 077.

 

В таблице 1.2 дано соответствие десятичных, двоичных и шестнадцате-ричных чисел от нуля до шестнадцати.

 

Таблица 1.2. Соответствие десятичных, двоичных и шестнадцатеричных чисел

 

десятичное двоичное шестнадцатеричное восьмеричное
0b0000 $00
0b0001 $01
0b0010 $02
0b0011 $03
0b0100 $04
0b0101 $05
0b0110 $06
0b0111 $07
0b1000 $08
0b1001 $09
0b1010 $0A
0b1011 $0B
0b1100 $0C
0b1101 $0D
0b1110 $0E
0b1111 $0F
0b10000 $10

 

 




©2015 studenchik.ru Все права принадлежат авторам размещенных материалов.