Студопедия — Урок 2. Регистры микроконтроллера. Порты ввода/вывода
Студопедия Главная Случайная страница Обратная связь

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

Урок 2. Регистры микроконтроллера. Порты ввода/вывода






  • Урок1. Введение. Устройство микроконтроллера

Как известно из первого урока, каждый микроконтроллер имеет регистры общего назначения, которые представляю собой оперативную память, хранящую числа, обрабатываемые арифметико-логическим устройством (АЛУ). Причем, по ходу исполнения программы, эти числа могут изменяться: увеличиваться, уменьшаться, сбрасываться, снова загружаться и т.д. Вся память разбита на ячейки. Размер ячейки зависит от разрядности процессора 8, 16 или 32 бита. Каждой ячейке памяти соответствует свой адрес, используя который в нее можно записать число.

Для программиста понятие регистр может ассоциироваться с понятием переменной. В нашем курсе по микроконтроллерам мы будем учиться писать программы на языке С. Конечно же для более глубокого понимания принципа работы микроконтроллера лучше изучить его программирование на языке Assembler, но на мой взгляд этот язык будет сложен в понимания для начинающих программистов. В принципе, на ассемблере можно писать только небольшие и несложные программы, ну или подпрограммы (функции), где требуется высокое быстродействие. Лично я начинал изучать микроконтроллеры на языке C.

Данный курс рассчитан на людей, знающих азы языка программирования Си. Могу посоветовать для изучения Си следующие книги:

  • Керниган, Ричи. Язык С
  • Герберт Шилдт. Полный справочник по С

Нет желания писать прошивку для микроконтроллера? А может нет времени на изучение основ программирования микроконтроллера? А может нужно срочно выполнять дипломную работу, в которую входит написание программы для микроконтроллера? Какими бы не были причины, мы можем помочь Вам запрограммировать Ваше устройство. Если Вам нужна наша помощь, сделайте заказ, заполнив форму.

Итак, регистрам в программе на Си присваиваются имена. Когда создается какая-либо переменная, то она автоматически связывается с адресом свободной ячейки памяти.

Например:

unsigned char my_variable;

Данные, записываемые в эту переменную, будут занимать в оперативной памяти 1 байт, т.к. переменная типа unsignedcharимеет размер 1 байт. Если мы захотим сложить два числа и получить результат, мы можем создать три переменных:

unsigned char var1, var2, sum;

Затем произвести арифметическую операцию сложения:

sum = var1 + var2;

Значение из регистров, которые связаны с переменными var1 и var2, поступят на обработку АЛУ. Затем АЛУ выдаст результат операции (в данном случае сложения) в ячейку памяти, связанную с переменной sum.

Помимо регистров общего назначения, в микроконтроллере есть регистры специального назначения, которые играют очень важную роль. Без них микроконтроллер был бы бессмысленной «железкой». С помощью регистров специального назначения выполняется управление функциями ядра и периферийными модулями микроконтроллера (таймеры, АЦП, аналоговые компараторы, UART, USB и т.д.), а также портами ввода-вывода. В отличие от регистров общего назначения, регистрам специального назначения строго присвоены свои адреса. Меняя значения регистров специального назначения можно управлять работой всех модулей микроконтроллера. Для примера рассмотрим карту памяти микроконтроллера PIC12F675.

Ячейки, обозначенные серым цветом – не используемая область памяти. Как видно, данный микроконтроллер имеет 64 байта ОЗУ (GeneralPurposeRegisters– регистры общего назначения) и для банка памяти. Если необходимо писать программу на ассемблере, то всегда нужно помнить в каком банке памяти находится необходимый регистр и на протяжении всей программы нужно постоянно переключаться между банками памяти. Написание программы на языке Си избавляет программиста от этой головной боли.

Итак, рассмотрим для примера регистр специального назначения GPIO. GPIO - 8-разрядный регистр порта ввода вывода. С помощью этого регистра мы можем установить на определенных цифровых выходах микроконтроллера логическую 1 или 0. Данный регистр обычно настраивается совместно с регистром TRISIO. Регистр TRISIOопределяет направление работы порта. Как было сказано в предыдущем уроке, порты микроконтроллера можно настроить для работы в качестве выходов или входов.

Микроконтроллер PIC12F675 представляет собой 8-выводную микросхему, у которой есть только 6 цифровых входов/выходов:

Рассмотрим более детально описание регистров GPIO и TRISIO:

Если записать в программе следующие строки

TRISIO = 0b00010100;

GPIO = 0b00100011;

то это означает, что пины 7,6,4 и 2 будут работать на выход. Пины 7,6 и 2 будут установлены в 1, а пин 4 будет иметь низкий уровень – 0. Биты 6 и 7, обозначенные серым цветом, в регистрах не используются и то, что будет в них записано не имеет никакого смысла. 0b00100011 – буква b данной записи обозначает двоичное представление числа.

Бывают также десятичное (привычное для нас), восьмеричное и шестнадцатеричное представление числа. В начале шестнадцатеричного числа записывается 0x, восьмеричного – цифра 0. Подробнее о системах счисления можно почитать здесь.

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







Дата добавления: 2015-10-15; просмотров: 504. Нарушение авторских прав; Мы поможем в написании вашей работы!



Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

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

Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...

Седалищно-прямокишечная ямка Седалищно-прямокишечная (анальная) ямка, fossa ischiorectalis (ischioanalis) – это парное углубление в области промежности, находящееся по бокам от конечного отдела прямой кишки и седалищных бугров, заполненное жировой клетчаткой, сосудами, нервами и...

Основные структурные физиотерапевтические подразделения Физиотерапевтическое подразделение является одним из структурных подразделений лечебно-профилактического учреждения, которое предназначено для оказания физиотерапевтической помощи...

Почему важны муниципальные выборы? Туристическая фирма оставляет за собой право, в случае причин непреодолимого характера, вносить некоторые изменения в программу тура без уменьшения общего объема и качества услуг, в том числе предоставлять замену отеля на равнозначный...

Классификация потерь населения в очагах поражения в военное время Ядерное, химическое и бактериологическое (биологическое) оружие является оружием массового поражения...

Факторы, влияющие на степень электролитической диссоциации Степень диссоциации зависит от природы электролита и растворителя, концентрации раствора, температуры, присутствия одноименного иона и других факторов...

Йодометрия. Характеристика метода Метод йодометрии основан на ОВ-реакциях, связанных с превращением I2 в ионы I- и обратно...

Studopedia.info - Студопедия - 2014-2024 год . (0.013 сек.) русская версия | украинская версия