Главная страница Статьи Карта сайта Регистрация
Реклама
Популярные статьи
Календарь
Реклама

Семейство микропроцессоров Motorola 68HC11x

  1. Оглавление
  2. О микроконтроллере 68HC11
  3. Архитектура / Аппаратный дизайн
  4. Модель программиста
  5. Набор инструкций
  6. Общее использование
  7. Библиография / Ссылки

Motorola 68HC11
Motorola 68HC11. Взято из http://upload.wikimedia.org/wikipedia/commons/b/b5/MC68HC11_microcontroller.jpg ,

Оглавление

презентация

Перейти к презентация ,

Скачать THRSim11 HC11 симулятор для Windows.

Скачать мою программу: алгоритм Евклида для определения Наибольший общий делитель (RAR-файл) между двумя целыми числами без знака. Или скачать программа C ,

Наконец, скачать все мои заметки и презентационные материалы (Файл RAR).

Вернуться к началу

О микроконтроллере 68HC11

Микроконтроллер Motorola 68HC11 является расширением и общим улучшением семейства микроконтроллеров Motorola 6800 (построено в 1975 году). 68HC11 совместим вверх с процессором 6800 с добавлением регистра индекса Y. Процессор 68HC11 представляет собой 8-битный 16-битный адресный микроконтроллер данных. Существует много разновидностей микроконтроллера 68HC11. В зависимости от разновидности, он имеет встроенную EEPROM 1 , ОЗУ, цифровой ввод / вывод, таймеры, аналого-цифровой преобразователь, ШИМ 2 генератор, а также синхронные и асинхронные каналы связи. Процессор 68HC11 также является машиной CISC. Набор команд для процессора 68HC11 содержит около 145 инструкций, 91 из которых является новой для 68HC11. Это расширение линейки процессоров 6800. Freescale Inc. теперь производит этот процессор.

  1. EEPROM (также называемая E2PROM) или электронно- программируемая программируемая память - это энергонезависимая микросхема памяти, используемая в компьютерах и других устройствах для хранения небольших объемов энергозависимых данных (конфигурации). Если требуется хранить большее количество статических данных (например, на USB-накопителях), другие типы памяти, такие как флэш-память, являются более экономичными. ( http://en.wikipedia.org/wiki/EEPROM )
  2. Широтно-импульсная модуляция (ШИМ) источника сигнала или мощности включает в себя модуляцию его рабочего цикла, чтобы либо передавать информацию по каналу связи, либо управлять количеством мощности, передаваемой нагрузке. ( http://en.wikipedia.org/wiki/Pulse-width_modulation )
Вернуться к началу

Архитектура / Аппаратный дизайн

68HC11 - это 8-битный процессор данных и 16-битный адрес . Это означает, что он может хранить в своих регистрах данных 8 бит данных одновременно. Однако он обрабатывает 16-разрядное адресное пространство (от 0x0000 до 0xFFFF). Существуют инструкции, которые могут принимать как входные, так и выходные данные - 16-битную константу для 8-битных регистров. (то есть 16 битов, разделенных на 16 битов, хранящихся в 8 битах.)

Архитектура микроконтроллера 68HC11 очень проста. Обычно имеется 5 портов с маркировкой от A до E. В зависимости от модели, которую вы покупаете, это может варьироваться. Каждый порт используется для ввода / вывода данных. Порт A используется для ввода / вывода с накопителем импульсов (таймер). Порты B и C используются для общего ввода-вывода. Порт D используется для некоторого общего ввода-вывода и для специального ввода-вывода с SCI. Порт E используется для общего ввода-вывода или в качестве входов для аналого-цифрового преобразователя.

Микроконтроллер также оснащен средствами памяти. Обычно около 8 килобайт зарезервировано для ПЗУ, 512 байт ЭСППЗУ и 256 байт ОЗУ. Помимо памяти, есть процессор (конечно!), Тактовая логика, логика прерываний, управление режимом, адресное пространство, шина, параллельный ввод / вывод из 5 портов, система таймера и, что не менее важно, SPI

Ниже вы найдете логическую блок-схему, содержащую детали 68HC11 и их взаимосвязь.
Ниже вы найдете логическую блок-схему, содержащую детали 68HC11 и их взаимосвязь
Взято из http://www.vlsilab.polito.it/~max/motorola/68hc11/docs/11a8td.pdf (стр. 14).

Вернуться к началу

Модель программиста

Процессор 68HC11 имеет в общей сложности 6 регистров (и один «псевдо»). Это A, B, IX, IY, PC, SP. Регистр D - это псевдо-регистр, который содержит как A (как старшие значащие биты D), так и B (как младшие значащие биты D). Вы можете помещать значения в и читать значения из D без необходимости явного вызова A или B, именно поэтому это фантомный «псевдо» регистр. В модели программиста это перечисляется с регистрами A и B, но не отдельно, как перечисляются другие регистры.

Другими интересными регистрами являются два 16-битных регистра IX и IY. Эти регистры «I» (что означает «индекс») содержат адреса памяти, используемые для хранения значений и считывания значений из памяти. набор инструкций из 68HC11 содержит инструкции для выполнения сложных операций с регистрами IX и IY. Например, вы можете сохранить регистр IX в памяти. Инструкция для этого может быть

STX $ 0001, где $ 0001 - адрес памяти (помните, что адреса памяти варьируются от $ 0000 до $ FFFF). Также обратите внимание, что $ 0001 - это прямая память, а не использование IX. Для этого примера было бы бессмысленно делать STX IX (хотя, возможно, вы захотите это сделать).

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

Во время обработки инструкций некоторые флаги поднимаются, могут измениться или иным образом не измениться. Это так называемые коды состояния 68HC11. Они есть:

  • C - Carry (или заимствовать из MSB)
  • V - переполнение
  • Z - ноль
  • N - отрицательный
  • Я - Я-Прерывание Маска
  • H - Половина переноса (от бита 3)
  • X - X-Interrupt Mask
  • S - Стоп Отключить

Ниже приведена схема модели программиста и коды условий.
Ниже приведена схема модели программиста и коды условий
Взято из http://www.vlsilab.polito.it/~max/motorola/68hc11/docs/11a8td.pdf (страница 15)

Вернуться к началу

Набор инструкций

68HC11 в настоящее время имеет 145 инструкций. исчерпывающий список каждая инструкция окажется довольно громоздкой, поэтому я покажу лишь несколько основных инструкций. Имейте в виду, что набор команд 68HC11 является CISC, что, как ни странно, не является нормальным для встроенного процессора или микроконтроллера.

Давайте поработаем с аккумулятором (регистром) А. Чтобы сохранить десятичную константу 5 , мы бы использовали:

SOMELABEL: LDAA # $ 05 любые слова после LDAA <oper> - комментарий

LDAA обозначает LoaD Accumulator A, а # представляет собой константу. Без # мы бы ссылались на ячейку памяти. Вместо этого мы ссылаемся на константу 5 . Мы используем $ 05, потому что аккумулятор A имеет ширину всего 8 бит. Синтаксически мы не могли бы использовать:

SOMELABEL: LDAA # $ 0005 Это неправильно.

Теперь давайте загрузим две константы в аккумуляторы A и B, добавим их и сохраним результат в некоторой памяти.

LDAA # $ 06 Загрузите десятичное число '6' в аккумулятор A LDAB # $ 55 Загрузите десятичное число '85' в аккумулятор B * Обратите внимание, что аккумулятор D теперь содержит значение десятичного знака без знака '1621'. * Почему это? D можно представить как конкатенацию между A и B. * так что D = 0000 0110 0101 0101 (что на самом деле 1621). ABA Это означает «Добавить аккумуляторы B и A» и сохранить результат в A STAA $ 0101. Хранить аккумулятор A по адресу $ 0101 ( дек. 257). * Адрес $ 0101 теперь имеет значение 0x5B

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

LDAA # $ 06 Загрузите десятичное число '6' в аккумулятор A LDAB # $ 7E Загрузите десятичное число '126' в аккумулятор B ABA Это означает Добавить аккумуляторы B и A и сохранить результат в A BVC NOV Branch to NOV, если переполнение ясно (V является сигнал переполнения). FOO: BRA FOO Бесконечный цикл. Ветвь Всегда для маркировки FOO. НОЯБРЬ: STAA $ 0101 Храните аккумулятор A по адресу $ 0101 (дек. 257). * Почему это переполнение? Мы работаем с 8-битными целыми числами со знаком!

Я привожу больше примеров в своей презентации. Увидеть presenation область для более подробной информации.

Вернуться к началу

Общее использование

Безусловно, наиболее распространенное использование микроконтроллера 68HC11 - это процессор для маленьких роботов. В частности, и сама причина, почему я заинтересован в этом микроконтроллере, MicroMouse Конкурс проводится каждый год видит широкое использование этого микроконтроллера. Существует множество веб-сайтов, на которых можно подробно описать процесс создания собственной «мыши».

Другая область экономики также интенсивно использует 68HC11. Университеты везде Используйте этот «простой» процессор, чтобы научить своих учеников EE / CE внутреннему функционированию базового встроенного процессора. Наш собственный доктор Д. Раскович преподавал EE 444 Конечно, прошлой весной, и некоторые из его учеников использовали этот самый контроллер в своих проектах.

Конечно, вы можете использовать этот микроконтроллер для любой встроенной задачи. Просто позволь себе побродить ...

Вернуться к началу

Библиография / Ссылки

  • Веттер, Фредерик J, "68HC11 Инструкция", 6 сентября 2005 г.
    http://www.ele.uri.edu/Courses/ele205/6811-Instructions/index.html
  • Carveth, Don, "68HC11 Slace I / O", апрель 2000 г.,
    http://www.seattlerobotics.org/encoder/200004/hc11slave.htm
  • Диккенс, Том, «Что такое 68HC11?», 3 марта 2004 г.,
    http://home.earthlink.net/~tdickens/68hc11/basics/basics1.html
  • Беннетт, Джон К и Янг, Джеймс Ф., "Ассамблея 68HC11", 1994-2000,
    http://www.owlnet.rice.edu/~elec201/Book/6811_asm.html
  • Motorola Inc., "MC68HC11A8", 1996,
    http://www.vlsilab.polito.it/~max/motorola/68hc11/docs/11a8td.pdf
  • Википедия (несколько авторов), "Freescale 68HC11", 2 октября 2007 г.,
    http://en.wikipedia.org/wiki/68HC11
  • Джонс, Найджел, «Эффективный код C для восьмибитных микроконтроллеров» Программирование встроенных систем, ноябрь 1998 г.,
    http://www.netrino.com/Articles/EfficientC/index.php
  • Мартин, Фред адаптирован Broeders, Гарри, «68HC11 Введение», 2 апреля 2004,
    http://bd.thrijswijk.nl/mcca1/68hc11_intro.htm
  • Рейсвейкский технологический институт, «Микроконтроллер Motorola 68HC11», 2002,
    http://www.hc11.demon.nl/thrsim11/68hc11/index.htm
  • Cool Link: «GM HC11 CPU Core»,
    http://www.gmvhdl.com/hc11core.html
Вернуться к началу

Copyright © 2007, Джонатан Сойер. Jonmsawyer AT Gmail DOT ком.


Почему это?
Почему это переполнение?
Все права принадлежат сайту www.teamviewer64.ru