Микропроцессорные информационно-управляющие системы
Краткая характеристика базовой модели однокристальных микрокомпьютеров семейства Intel 8051. Анализ организации памяти микроконтроллера. Использование регистров специальных функций и общего назначения программистами. Основные режимы адресации данных.
Рубрика | Коммуникации, связь, цифровые приборы и радиоэлектроника |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 15.05.2016 |
Размер файла | 165,0 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
РОСЖЕЛДОР
Федеральное государственное бюджетное образовательное учреждение высшего образования
«Ростовский государственный университет путей сообщения» (ФГБОУ ВО РГУПС)
Кафедра «Автоматика и телемеханика на железнодорожном транспорте»
Расчетно-графическая работа
по дисциплине «Микропроцессорные информационно-управляющие системы»
Ростов-на-Дону 2016
1. МИУС. Общие сведения
Ознакомьтесь с определением МИУС, классификацией, реализуемыми функциями. Какие требования, предъявляются к МИУС с учетом специфики работы устройств железнодорожного транспорта?
Изучите общую методику проектирования МП-систем на базе микроконтроллеров. Ознакомьтесь с этапами подготовки программного обеспечения для микропроцессорных систем. Какие программно-технические средства используются на каждом этапе?
1.1 Архитектура и система команд микроконтроллера Intel 8051
Дайте краткую характеристику базовой модели однокристальных микро-ЭВМ семейства Intel 8051:
- приведите основные характеристики базовой версии микроконтроллера,
- нарисуйте структурную схему микроконтроллера, опишите основные элементы программной модели,
- опишите устройство и режимы работы универсального асинхронного приёмопередатчика микроконтроллера.
Приведите общие сведения о системе команд микроконтроллера, опишите используемые режимы адресации данных и типы операндов.
Заполните таблицу 1, используя описание системы команд в приложении.
Последняя цифра шифра |
|||||||||||
№ вар |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
|
№ задания в табл. 1 |
1 8 12 |
2 7 13 |
3 9 14 |
4 10 15 |
5 10 16 |
6 11 17 |
3 7 18 |
2 9 19 |
5 8 20 |
6 10 13 |
Запишите мнемонику команды, ее машинный код, укажите количество байтов и машинных циклов, определите время выполнения команды при частоте процессора 24 МГц (см. пример в таблице 1)
1.2 Индивидуальное задание
Напишите программу на языке ассемблера микроконтроллеров семейства Intel 8051, нарисуйте блок-схему алгоритма работы программы.
Область внешней памяти данных (ВПД), начиная с адреса NADR заполнить последовательностью чисел по возрастанию, начиная с числа BEGIN и далее, увеличивая на Х, до тех пор, пока текущее значение станет больше либо равно значения ETALON. При выполнении условия переслать последнее число в порт Р1. Программу разместить в памяти, начиная с адреса 40h.
Числовые значения задаются личным шифром студента:
NADR = ШИФР, BEGIN = Ш, ETALON = ФР, Х = И+1
Напишите программу циклического вывода через последовательный порт символа, соответствующего первой букве фамилии студента, при рабочей частоте процессора 11,059 МГц и скорости передачи 2400 Бод. Каждый цикл сопровождается стробирующим сигналом на линии Р1.1 микроконтроллера длительностью 200 мкс.
2. Архитектура и система команд микроконтроллера Intel 8051
2.1 Краткая характеристика базовой модели однокристальных микро-ЭВМ семейства Intel 8051
Микроконтроллеры базового семейства Intel 8051 (МК51) выполнены на основе высокоуровневой n-МОП или КМОП технологии. Для работы МК51 требуется источник питания +5В. Основу структурной схемы МК51 составляет внутренняя 8-битная шина, связывающая между собой все основные узлы и устройства: резидентную память, арифметико-логическое устройство (АЛУ), блок регистров специальных функций, устройство управления и порты ввода-вывода.
Базовая модель однокристальных ЭВМ 80С51содержит:
Центральный восьмиразрядный процессор.
Внутреннюю память программ 4 кбайт с возможностью расширения до 64 кбайт за счет подключения внешней памяти программ.
Внутреннюю память данных емкостью 128 байт с возможностью расширения до 64 кбайт.
Четыре восьмиразрядных программируемых порта ввода - вывода.
Два 16-битных многорежимных таймер-счетчика.
Подсистему прерываний с 5 векторами и 2 уровнями.
Последовательный интерфейс.
Тактовый генератор.
Схему управления энергопотреблением.
Базовая частота тактирования MК51 - 12 МГц. Каждый машинный цикл выполняется за 12 тактов. В однокристальных микро-ЭВМ данного семейства реализованы режимы пониженного энергопотребления: Режим холостого хода - Idle. Блокируются функциональные узлы процессора, это и понижает потребляемую мощность. Режим микропотребления - Power Down. Задающий генератор выключается, работа всех узлов ОМЭВМ прекращается, сохраняется только содержимое ОЗУ, единственный выход - аппаратный сброс.
Основу структурной схемы образует внутренняя двунаправленная 8-битная шина, которая связывает между собой основные узлы и устройства микроконтроллера: резидентную память программ, резидентную память данных, арифметико-логическое устройство, блок регистров специальных функций, устройство управления и порты ввода/вывода.
Рисунок 1 - Структурная схема микроконтроллера семейства Intel 8051
УУ и УС - устройство управления и устройство синхронизации. OSC - oscillator - внутренний ГТИ для синхронизации которого нужен кварц. РПД - resident Program memory - резидентная память данных. РПП - resident Data memory - резидентная память программ. Микропроцессорное ядро осуществляет организацию взаимодействия между всеми элементами МК, управляя его работой. В его состав входят: ALU - арифметико-логическое устройство, A - accumulator - сверхоперативный регистр, который является местом фиксации результата операций, B - второй сверхоперативный регистр, PSW - Program Status Word - регистр слова состояния программы, содержит флаги - признаки результата операции, SP - Stack Pointer - регистр указатель стека, PС - Program Counter - счетчик команд, содержит адрес выполняемой команды, RAR - Ram Address Register - регистр адреса данных, содержит адреса данных, используемых в операциях, программно недоступен, DPTR - Data Pointer - регистр указатель данных, содержит адреса ячеек памяти (ВПП и ВПД). Контроллер прерываний - устройство, реализующее механизм прерываний, Таймеры/счетчики Т0, Т1, Т2- устройства, использующиеся для подсчета количества импульсов или формирования временных интервалов. UART - универсальный асинхронный приемопередатчик, последовательный порт МК, использующийся при обмене данных с внешними устройствами. Р0-Р3 - параллельные двунаправленные восьмиразрядные порты ввода/вывода, формируют шину расширения МК. ВПД - внешняя память данных, расширение адресного пространства ПД до 64 Кбайт. ВПП - внешняя память программ, расширение адресного пространства ПП до 64 Кбайт. WDT - Watchdog Timer - сторожевой таймер, автоматически сбрасывающий МК, при сбоях в работе или зависании. ВУ - внешние устройства
Программная модель микроконтроллера семейства Intel 8051 включает ресурсы микроконтроллера, которые доступны программисту при создании программ. Прежде всего, к ней относятся ресурсы внутренней памяти программ и данных микроконтроллера и программный счетчик PC.
Однокристальные ЭВМ семейства Intel 8051 содержат 32 регистра общего назначения, 128 программно управляемых битов (флагов), набор регистров специальных функций. Каждому регистру специальных функций поставлен в соответствие восьмибитный адрес внутренней памяти программ.
Организация памяти микроконтроллера. Микроконтроллеры семейства Intel 8051 имеют несколько адресных пространств. Функционально и логически они разделены за счет реализации различных алгоритмов адресации и формирования различных сигналов управления. К ним относятся: внешняя память программ (ВПП), резидентная память программ (РПП), внешняя память данных (ВПД), резидентная память данных (РПД).
Память программ предназначена для хранения команд, констант, управляющих слов инициализации, таблиц перекодировки входных и выходных переменных и т.п.
Адресация ячеек памяти программ может осуществляться с использованием программного счетчика PC или регистра-указателя данных DPTR.
Резидентная память программ адресуется с использованием счетчика команд PC. Младшие адреса резидентной памяти программ отведены под обработку внешних прерываний, прерываний от таймеров/счетчиков, последовательного порта и дополнительных устройств.
Рисунок 2 - Организация памяти программ
В случае возникновения какого-либо из указанных прерываний происходит обращение к соответствующей ячейке резидентной памяти программ (например, при возникновении прерывания от таймера Т0 в PC записывается адрес вектора прерываний 000Вh).
При обращении к внешней памяти программ микроконтроллеры семейства Intel 8051 всегда используют полный 16-разрядный адрес, что обеспечивает доступ к 64 Кбайт внешней памяти программ ВПП. Обращение к внешней памяти программ сопровождается сигналом чтения внешней памяти программ PSEN (Program Store Enable) и возможно в двух случаях:
Когда сигнал ЕА активен, т.е. имеет уровень логического нуля, микроконтроллер выполняет программу с нулевого адреса внешней памяти программ.
Когда программный счетчик РС содержит число больше 0FFFh (последний адрес РПП при объеме 4 Кбайт) - микроконтроллер, выбрав команды из внутренней памяти, продолжает выполнять программу из внешней памяти программ.
Объем внешней памяти данных может достигать 64 Кбайт. Для обращения к внешней памяти данных используется только косвенная адресация с помощью регистров R0 и R1 или с помощью 16-разрядного регистра-указателя DPTR. Обращение к внешней памяти данных сопровождается стробирующими сигналами чтения RD^ и записи WR^.
Рисунок 3 - Организация памяти данных
Резидентная память данных РПД предназначена для хранения переменных в процессе выполнения прикладной программы, адресуется одним байтом и имеет емкость 128 байт. В РПД выделяют несколько специализированных областей.
Первые 32 байта памяти данных с 00h по 1Fh организованы в четыре банка регистров общего назначения, обозначаемых соответственно Банк 0 - Банк 3. Каждый из них состоит из восьми регистров R0 - R7. В любой момент программе доступен только один банк регистров, выбор которого производится в регистре слова состояния программы PSW.
Следующие 16 байт памяти данных с 20h по 2Fh представляют собой так называемую побитно адресуемую область. Она предоставляет возможность при помощи специальных команд обратиться к каждому из 128 бит ячеек памяти. При адресации бит, может быть указан либо абсолютный битовый адрес, либо символический адрес
С адресным пространством резидентной памяти данных граничит адресное пространство блока регистров специальных функций SFR (Special Function Register) c80h по FFh.
Чаще всего программист использует регистры специальных функций, регистры общего назначения и программно управляемые флаги, расположенные в адресном пространстве внутреннего ОЗУ памяти данных. Однокристальные ЭВМ семейства Intel 8051 содержат 32 регистра общего назначения, 128 программно управляемых битов (флагов), набор регистров специальных функций. Каждому регистру специальных функций поставлен в соответствие восьмибитный адрес внутренней памяти программ.
Таблица 1 - Регистры специальных функций базового микроконтроллера семейства Intel 8051
Имя |
Адрес |
Назначение |
Значение при сбросе |
|
В* |
F0h |
Регистр В |
00000000 |
|
АСС* |
E0h |
Аккумулятор |
00000000 |
|
PSW* |
D0h |
Слово состояния программы |
00000000 |
|
IP* |
B8h |
Регистр приоритетов прерываний |
X0000000 |
|
РЗ* |
B0h |
Порт 3 |
11111111 |
|
IE* |
A8h |
Регистр разрешения прерываний |
00000000 |
|
Р2* |
A0h |
Порт 2 |
11111111 |
|
SBUF |
99h |
Буфер последовательного порта |
XXXXXXXX |
|
SCON* |
98h |
Управление последовательным портом |
00000000 |
|
Р1* |
90h |
Порт 1 |
11111111 |
|
ТН1 |
8Dh |
Старший байт таймера/счетчика Т/С1 |
00000000 |
|
ТН0 |
8Ch |
Старший байт таймера/счетчика Т/С0 |
00000000 |
|
TL1 |
8Вh |
Младший байт таймера/счетчика Т/С1 |
00000000 |
|
TL0 |
8Ah |
Младший байт таймера/счетчика Т/С0 |
00000000 |
|
TMOD* |
89h |
Регистр режимов таймер/счетчиков |
00000000 |
|
TCON* |
88h |
Регистр управления таймер/счетчиков |
00000000 |
|
PCON* |
87h |
Регистр управления энергопотреблением |
00XX0000 |
|
DPH |
83h |
Старший байт указателя данных DPTR |
00000000 |
|
DPL |
82h |
Младший байт указателя данных DPTR |
00000000 |
|
SP |
81h |
Указатель стека |
00000111 |
|
Р0* |
80h |
Порт 0 |
11111111 |
* - возможна побитовая адресация регистра.
Аккумулятор А (0E0H) - Accumulator - является источником операнда и местом фиксации результата при выполнении арифметических, логических операций и операций передачи данных.
Регистр В (0F0H) - Multiplication Register - регистр расширитель аккумулятора, используется в сочетании с аккумулятором при выполнении операций умножения и деления. В других операциях регистр B является обычным регистром общего назначения.
Регистр слова состояния PSW (0D0H) - Program Status Word - предназначен для фиксации признаков операций - флагов, которые формируются при выполнении ряда команд в арифметико-логическом устройстве.
Регистры-защелки параллельных портов P0-P3 (080Н, 090H, 0A0H, 0B0H) - Port0-Port3 - предназначены для обеспечения обмена информацией микроконтроллера с внешними устройствами, образуя 32 линии ввода/вывода. Помимо обычного ввода/вывода указанные порты могут выполнять ряд альтернативных функций.
Регистр-указатель стека SP (081H) - Stack Pointer - может адресовать любую область внутренней памяти данных. В процессе МК после сигнала сброса или при включении питающего напряжения в SP заносится код 07Н. Это означает, что первый элемент стека будет располагаться в ячейке памяти с адресом 08Н.
Регистр-указатель данных DPTR - Data Pointer - предназначен для хранения 16-разрядного адреса внешней памяти и состоит из двух программно доступных регистров DPH (083H) и DPL (082H), которые могут использоваться в качестве независимых регистров общего назначения. Кроме того, DPTR служит базовым регистром при косвенной адресации в некоторых командах пересылки или перехода.
Таймеры/счетчики Т/С0-Т/С1 - Timer/Counter0-Timer/Counter1 - два программно-управляемых 16-разрядных таймера/счетчика. Они представлены регистровыми парами с именами TH0 (08CH), TL0 (08AH) и TH1 (08DH), TL1 (08BH) которые могут быть программно прочитаны или загружены как в рабочем, так и в выключенном состоянии.
Регистр режимов работы таймеров/счетчиков TMOD (089H) - Timer/Counter Mode Control Register - используется для определения режима работы Т/Сn. однокристальный микроконтроллер память регистр
Регистр управления работой таймеров/счетчиков TCON (088H) - Timer/Counter Control Register - осуществляет контроль и управление работой таймеров/счетчиков
Регистр IE (0A8H) - Interrupt Enable Register - используется для разрешения или запрещения прерываний от соответствующих источников.
Регистр IP (0B8H) - Interrupt Priority Control Register - используется для установки уровня приоритета прерывания для каждого из источников прерываний.
Регистр PCON (087H) - Power Control Register - используется для управления режимами энергопотребления микроконтроллера.
Регистр SCON (098H) - Serial Port Control Register - предназначен для контроля и управления последовательным интерфейсом микроконтроллера.
Регистр SBUF (099H) - Serial Data Buffer - обеспечивает программный доступ к регистрам передатчика и приемника последовательного порта микроконтроллера.
2.2 Последовательный порт микроконтроллера Intel 8051
Через универсальный асинхронный приёмопередатчик UART (Universal Asynchronous Receiver-Transmitter) происходит передача информации, представленной последовательным кодом (младшими битами вперед), в полном дуплексном режиме обмена. В состав UART, называемого часто последовательным портом, входят принимающий и передающий сдвигающие регистры, а также специальный буферный регистр приёмопередатчика.
Регистр SCON. Регистр предназначен для управления режимом работы UART. Регистр содержит управляющие биты, а также биты прерывания приёмопередатчика RI и TI.
Таблица 2 - Регистр управления/статуса SCON
Символ |
Разряд |
Имя и назначение |
|
SM0 |
SCON.7 |
Биты управления режимом работы UART. Устанавливаются/сбрасываются программно (см. ниже) |
|
SM1 |
SCON.6 |
||
SM2 |
SCON.5 |
Бит управления режимом UART. Устанавливается программно для запрета приёма сообщения, в котором девятый бит равен 0 |
|
REN |
SCON.4 |
Бит разрешения приёма. Устанавливается/сбрасывается программно для разрешения/запрета приёма последовательных данных. |
|
TB8 |
SCON.3 |
Передача бита 8. Устанавливается/сбрасывается программно для задания девятого передаваемого бита в режиме UART 9 бит |
|
RB8 |
SCON.2 |
Приём бита 8. Устанавливается/сбрасывается аппаратно для фиксации девятого принимаемого бита в режиме UART -9 бит |
|
TI |
SCON.1 |
Флаг прерывания передатчика. Устанавливается аппаратно при окончании передачи байта. Сбрасывается программно после обслуживания прерывания |
|
RI |
SCON.0 |
Флаг прерывания приёмника. Устанавливается аппаратно при приёме байта. Сбрасывается программно после обслуживания прерывания |
|
SM0 |
SM1 |
Режим работы UART |
|
0 |
0 |
Сдвигающий регистр расширения ввода/вывода |
|
0 |
1 |
UART - 8 бит. Изменяемая скорость передачи |
|
1 |
0 |
UART - 9 бит. Фиксированная скорость передачи |
|
1 |
1 |
UART - 9 бит. Изменяемая скорость передачи |
Регистр SBUF. Представляет собой два независимых регистра: буфер приёмника и буфер передатчика. Загрузка байта в SBUF немедленно вызывает начало процесса передачи через последовательный порт.
Прикладная программа путём загрузки в два старших разряда SCON определяет режим работы UART. Последовательный порт может работать в четырех различных режимах.
Режим 0 - восемь бит данных передаются и принимаются через вход приёмника RхD. Выход передатчика TхD используется для выдачи импульсов синхронизации, которые сопровождают каждый бит. За один машинный цикл передаётся один бит. Частота передачи равна FРЕЗ/12.
Режим 1 - передаются или принимаются 10 бит данных в формате:
старт-бит=0, 8 бит данных, стоп-бит=1
Скорость приёма/передачи задаётся таймером.
Режим 2 - передаются или принимаются 11 бит данных в формате:
старт-бит=0, 8 бит данных, программируемый девятый бит В8, стоп-бит=1
Девятый бит может использоваться для повышения достоверности путём контроля чётности, в него можно записать значение признака паритета из PSW. Частота приёма/передачи выбирается программно и может быть равна FРЕЗ/32 или FРЕЗ/64 частоты резонатора в зависимости от состояния бита SMOD в регистре PCON.
Режим 3 - совпадает с режимом 2, но частота приёма/передачи задаётся таймером.
Во всех режимах передача инициируется любой командой, где SBUF указан как получатель байта. Приём в UART в режиме 0 происходит при условии RI=0 и REN=1. В режимах 1-3 приём начинается с приходом старт-бита, если REN=1.
В TB8 программно устанавливается значение девятого бита данных, который будет передан в режиме 2 или 3. В RB8 фиксируется в режимах 2 и 3 девятый принимаемый бит данных. В режиме 1, если SM2=0, в бит RB8 заносится стоп-бит. В режиме 0 RB8 не используется.
Флаг прерывания передатчика TI устанавливается аппаратно в конце периода передачи восьмого бита данных в режиме 0 и в начале периода передачи стоп-бита в режимах 1-3. Подпрограмма обслуживания этого прерывания должна сбрасывать бит TI.
Флаг прерывания приёмника RI устанавливается аппаратно в конце периода приёма восьмого бита данных в режиме 0 и в середине периода приёма стол-бита в режимах 1-3. Подпрограмма обслуживания прерывания должна сбрасывать бит RI.
Работа UART в мультиконтроллерных системах. В системах децентрализованного управления, которые используются для управления и регулирования в типологически распределенных объектах, возникает задача обмена информацией между множеством микроконтроллеров, объединенных в локальную вычислительно-управляющую сеть. Как правило, локальные сети на основе Intel 51 имеют магистральную архитектуру с разделяемым моноканалом (коаксиальный кабель, витая пара, оптическое волокно), по которому осуществляется обмен информацией между контроллерами.
Бит SM2 в SCON позволяет простыми средствами реализовать межконтроллерный обмен. Механизм обмена построен на том, что в режимах 2 и 3 программируемый девятый бит данных при приёме фиксируется в бите RB8. UART может быть запрограммирован таким образом, что при получении стоп-бита прерывание от приёмника будет возможно только при условии RB8=1. Ведущий контроллер всем ведомым передаёт широковещательное сообщение с байтом-идентификатором абонента, которое отличается от байтов данных только тем, что в его девятом бите содержится 1. Ведомые по этому признаку вызывают подпрограммы сравнения байта-идентификатора с кодом собственного сетевого адреса. Адресуемый контроллер сбрасывает свой SM2 и готовится к приёму блока данных. Остальные ведомые микроконтроллеры оставляют неизменными свои SM2=1 и передают управление основной программе. При SM2=1 информационные байты в сети прерывания не вызывают.
В режиме 1 автономного микроконтроллера SM2 используется для контроля истинности стоп-бита. В режиме 0 SM2 не используется и должен быть сброшен.
Скорость приёма/передачи. Скорость зависит от режима работы UART. В режиме 0 частота зависит только от резонатора: f0=fрез/12. За один машинный цикл передаётся один бит.
В режимах 1-3 скорость зависит от значения управляющего бита SMOD в регистре специальных функций PCON (таблица 8).
В режиме 2 частота передачи f2=(2SMOD/64)fрез.
В режимах 1 и 3 в формировании частоты передачи кроме управляющего бита SMOD принимает участие таймер 1. При этом частота передачи зависит от частоты переполнения (OVT1) и определяется следующим образом: f1,3=(2SMOD/32)fOVT1. Прерывание от таймера 1 в этом случае должно быть заблокировано. Сам T/C1 может работать и как таймер, и как счётчик событий в любом из трёх режимов. Однако наиболее удобно использовать режим таймера с автоперезагрузкой (старшая тетрада TMOD=0010В). При этом частота передачи определяется выражением
f1,3=(2SMOD/32)(fрез/12)(256-(TH1)).
3. Общая характеристика системы команд микроконтроллера Intel 8051
Набор команд микроконтроллеров семейства включает 42 мнемонических обозначения, связанных с конкретными способами адресации и типами данных. Всего система команд содержит 111 базовых команд, разделенных по функциональному признаку на группы:
- команды передачи данных;
- команды арифметических операций;
- команды логических операций;
- команды ветвления и передачи управления;
- команды битовых операций.
Большую часть команд передачи данных составляют операции пересылки и обмена байтов. Все команды данной группы не модифицируют флаги результата, за исключением команд загрузки PSW и аккумулятора (флаг Р).
В зависимости от способа адресации и места расположения операнда можно выделить девять типов операндов, между которыми возможен информационный обмен, в том числе и без участия аккумулятора.
Группу команд арифметических операций образуют команды, выполняющие операции сложения, вычитания, умножения, деления, десятичной коррекции и инкремента/декремента байтов. Команды ADD и ADDC допускают сложение аккумулятора с большим числом операндов. Также существуют четыре команды SUBB, что позволяет производить вычитание байтов и многобайтных двоичных чисел.
Группу команд логических операций образуют команды, реализующие функционально полную систему логических операций над байтами. Это операции И, ИЛИ, НЕ, исключающее ИЛИ, циклические сдвиги и обмен тетрадами.
Отличительной особенностью команд операций с битами является то, что они оперируют с одноразрядными операндами. В качестве таких операндов могут выступать отдельные биты некоторых регистров специальных функций и портов, а также 128 программных флагов пользователя.
К группе команд передачи управления относятся команды, условных и безусловных переходов, вызова и возврата из подпрограмм, а также пустая операция NOP. В большинстве команд используется прямая адресация.
Система условных переходов предоставляет возможность осуществлять ветвление по следующим условиям: аккумулятор содержит нуль, содержимое аккумулятора не равно нулю, перенос равен единице, перенос равен нулю, адресуемый бит равен единице, адресуемый бит равен нулю.
Длинный переход (Long) по всему адресному пространству памяти программ - LJMP ad16.
Абсолютный переход (Absolute) в пределах одной страницы памяти программ размером 2 Кбайта - АJMP ad11. Такая команда содержит только 11 младших битов адреса перехода.
Короткий относительный переход (Short) позволяет передать управление в пределах от -128 до +127 байт относительно адреса следующей команды - SJMP rel. Относительный адрес перехода содержится во втором байте команды.
Косвенный относительный переход JMP @А+DPTR позволяет передавать управление по косвенному адресу. Эта команда удобна тем, что предоставляет возможность организации перехода по адресу, вычисляемому самой программой и неизвестному при написании исходного текста программы.
Правила записи программ на языке ассемблера А51 предполагают, что текст программы разбивается на специализированные поля, которые отделяются друг от друга пробелами или табуляцией. Таким образом, каждая команда представляет собой строку:
<МЕТКА>: ОПЕРАЦИЯ <ОПЕРАНД 1> <ОПЕРАНД 2>; <КОММЕНТАРИЙ>
3.1 Режимы адресации данных
Способ представления данного в поле операнда называется режимом адресации. Для адресации данных в микроконтроллерах семейства Intel 8051 используются следующие режимы.
Непосредственная адресация (Immediate constants). Операнд содержится непосредственно в поле команды вслед за кодом операции и может занимать один или два байта. Префиксом непосредственной адресации является знак #.
MOV A,#10h ;переслать в аккумулятор число 10h
Прямая адресация (Direct Addressing) используется для обращения к внутренней памяти данных и регистров специальных функций. Операнд определяется восьмиразрядным адресом соответствующего байта или бита.
MOV A,10h ;переслать в аккумулятор содержимое ;ячейки РПД с адресом 10h
Регистровая адресация (Register Instruction). Данная адресация применяется для доступа к регистрам R0…R7 выбранного банка регистров общего назначения. Команды с регистровой адресацией содержат в байте кода операции трехразрядное поле, определяющее номер регистра.
MOV A,R2 ;переслать в аккумулятор содержимое ;регистра R2
Косвенная адресация (Indirect Addressing) применяется при обращении, как к резидентной, так и к внешней памяти. В этом случае инструкция адресует регистр-указатель, содержащий адрес операнда. Префиксом косвенной адресации является знак @. Для указания однобайтных адресов резидентной памяти могут использоваться регистры R0 и R1 выбранного банка регистров общего назначения. Для двухбайтной адресации внешней памяти используется регистр указатель данных DPTR.
MOVX A,@DPTR ;переслать в аккумулятор содержимое ;ячейки ВПД, адресуемой регистром DPTR
Индексная адресация (Indexed Addressing) используется при чтении памяти программ. Двухбайтные регистр DPTR (или PC) указывает базовый адрес таблицы, а аккумулятор А - указывает на точку входа. Адрес элемента таблицы находится сложением базы с индексом (содержимым аккумулятора).
MOVC A,@A+DPTR ;переслать в аккумулятор содержимое ;ячейки ВПП, адрес которой определен ;как (A)+(DPTR)
Неявная адресация (Register-Specific Instructions). Некоторые инструкции используют индивидуальные регистры (например, аккумулятор), при этом данные в поле операнда отсутствуют, но адрес, указывающий на регистр, заложен в код операции.
CLR А ;сбросить аккумулятор
Таблица 3 - Вариант 3
Команда |
Группа команд |
Мнемокод |
Режим адресации |
Б |
Ц |
Время, мкс |
КОП |
||
Bin |
Hex |
||||||||
Переслать в аккумулятор содержимое ячейки ВПД |
передачи данных |
MOVX A,@DPTR |
косвенная |
1 |
2 |
1 |
1110 0000 |
E0 |
|
Сложить аккумулятор с числом 16h |
арифметических действий |
ADD A, #16H |
непосред-ственная |
2 |
1 |
0,5 |
0010 0100 0001 0110 |
24 16 |
|
15. Сдвинуть содержимое аккумулятора влево |
логических операций |
RL A |
неявная |
1 |
1 |
0,5 |
0010 0011 |
23 |
4. Индивидуальное задание
4.1 Задание 1
Область внешней памяти данных (ВПД), начиная с адреса NADR заполнить последовательностью чисел по возрастанию, начиная с числа BEGIN и далее, увеличивая на Х, до тех пор, пока текущее значение станет больше либо равно значения ETALON. При выполнении условия переслать последнее число в порт Р1. Программу разместить в памяти, начиная с адреса 40h.
Исходные данные NADR = 6683, BEGIN = 6, Х = 7, ETALON = 83
NADR EQU 1А1Вh ;присвоить имени NADR значение начального адреса
BEGINEQU 6 ;присвоить имени BEGIN значение первого числа
X EQU 7 ;присвоить имени Х значение шага увеличения числа
ETALONEQU 53h ;присвоить имени ETALON значение эталона
START:JMP 40h ;перейти к началу программы по адресу 40h
ORG 40h;разместить программу по адресу 40h
MOV A, #BEGIN;переслать в аккумулятор первое число BEGIN
MOV DPTR, #NADR ; переслать в регистр указатель данных адрес NADR
MOVX @DPTR, A;переслать в ВПД первое число из аккумулятора
M1:INC DPTR;увеличить содержимое регистра указателя данных на 1
ADD A, #X;прибавить число X к содержимому аккумулятора
MOVX @DPTR, A;переслать в ВПД следующее число из аккумулятора
CLR C;сброс флага переноса
SUBB A, #ETALON;вычесть из аккумулятора значение ETALON
MOVX A, @DPTR;вернуть в аккумулятор последнее число из ВПД,
JC M1;если (А)< ETALON, продолжить заполнение памяти
MOV P1, A ;если (А) ? ETALON переслать его в порт Р1
END
4.2 Задание 2
Программа циклического вывода через последовательный порт микроконтроллера символа «З» при рабочей частоте процессора 11,059 МГц и скорости передачи 2400 бод.
START: MOV SCON,#40h;выбор Режима 1 для последовательного порта
MOV TMOD,#20h ;выбор Режима 2 для таймера Т1
MOV TH1,#0F4h ;выбор скорости передачи 2400 Бод при F=11,059 МГц
CLR P1.1 ;сброс строб-сигнала на линии P1.1
SETB TR1 ;запуск таймера Т1
M1: MOV SBUF,#0xCC;загрузка в буфер последовательного порта символа 'З'
CALL STROBE_200
WAIT: JNB TI, WAIT ;цикл ожидания окончания передачи, проверка флага TI
CLR TI ;сброс флага прерывания передатчика
JMP M1 ;переход к новому циклу передачи данных
STROBE_200:SETB P1.1 ;формирование строб-сигнала на линии P1.1
MOV R1,#92;длительность сигнала 92x2x(12/11,059)=200
DJNZ R1,$;проверка счетчика R1
CLR P1.1 ;сброс строб-сигнала на линии P1.1
RET;выход из подпрограммы
END
Размещено на Allbest.ru
...Подобные документы
Ознакомление со структурой микроконтроллера семейства MCS-51. Характеристика программно доступных ресурсов и организации памяти. Анализ прямого, непосредственного, регистрового способов адресации операндов. Описание программной модели битового процессора.
курсовая работа [405,5 K], добавлен 22.08.2010Изучение функциональных возможностей программы ISIS Proteus, системы команд и способов адресации данных в микро ЭВМ семейства МК51. Определение состояния регистров и внутренней памяти данных после выполнения программы. Сохранение содержимого в стеке.
лабораторная работа [89,7 K], добавлен 16.04.2014Структурная схема микроконтроллеров семейства MCS-51: отличительные особенности, назначение выводов, блок регистров специальных функций. Карта прямоадресуемых бит. Методы адресации, граф команд пересылки, обмена и загрузки. Ввод и отображение информации.
курсовая работа [135,5 K], добавлен 22.08.2011Описание модели регистрового запоминающего устройства общего назначения и характеристика параметров его микропроцессора. Построение параметрического блока для хранения данных входного и выходного сдвигателя. Описание библиотек запоминающего устройства.
лабораторная работа [179,4 K], добавлен 02.04.2015Общая характеристика однокристальных микроЭВМ семейства МК51 и их структуры. Регистр состояния программы. Регистры таймера. Изучение восьмиразрядных высокопроизводительных однокристальных микроЭВМ (ОМЭВМ) семейства МК51, которое включает пять модификаций.
контрольная работа [151,7 K], добавлен 23.08.2010Микропроцессорные системы и микроконтроллеры. Разработка схемы и программы микроконтроллера. Симуляция проекта в программе Proteus 7. Прерывание программы по внешнему сигналу, поступающему в процессор. Устройство и настройка канала порта на ввод-вывод.
контрольная работа [551,8 K], добавлен 26.01.2013Структурная схема микропроцессорной системы. Арифметико-логическое устройство обработки информации. Системные и управляющие регистры процессора, их категории. Схема внутреннего управления. Типовые значения ключевых параметров для кэш-памяти; чипсет.
презентация [2,9 M], добавлен 29.08.2015Рассмотрение структуры и принципов работы таймеров/счетчиков (общего назначения, сторожевого, типов А, В, С, D, Е) микроконтроллеров и аналого-цифрового преобразователя семейства AVR с целью разработки обучающего компьютерного электронного пособия.
курсовая работа [1,0 M], добавлен 06.03.2010Семейство однокристальных микроконтроллеров HCS12. Внутренняя или неявная адресация INH. Команды загрузки и пересылки данных, битовых операций, вызова подпрограмм и перехода в режимы пониженного энергопотребления. Основная блок-схема алгоритма, листинг.
курсовая работа [453,4 K], добавлен 04.06.2014Наименование, применения, цель создания информационно-справочной подсистем САПР. Логические элементы: И, ИЛИ, НЕ, И-НЕ, ИЛИ-НЕ. Информационно-справочная подсистема. Семантическое моделирование данных. Основные понятия модели Entity-Relationship.
дипломная работа [4,8 M], добавлен 06.06.2010Функциональные особенности и архитектура Intel Itanium. Работа вычислительной среды и инструкции перехода. Параллелизм уровня инструкций. Поддержка в операционных системах модели множественного адресного пространства. Состав прикладных регистров.
контрольная работа [429,4 K], добавлен 09.11.2014Особенности микроконтроллера ATTINY семейства AVR. Описание ресурсов микроконтроллера ATTINY12: описание процессора, порты ввода/вывода, периферийные устройства, архитектура ядра. Разработка устройства со световыми эффектами на базе микроконтроллера.
курсовая работа [2,1 M], добавлен 24.06.2013Структурная схема и программная модель микроконтроллеров семейства MCS-51. Особенности и принципы использования регистровой, непосредственной, косвенной, байтовой и битовой адресации данных. Описание формата команд обмена, пересылки, загрузки операндов.
реферат [560,5 K], добавлен 13.12.2010Построение базовой модели предметной области. Программное обеспечение видеонаблюдения. Сравнение характеристик существующих информационно-компьютерных систем. Определение требований к архитектуре системы и графическому интерфейсу. Выбор языка реализации.
дипломная работа [3,8 M], добавлен 01.04.2013Структурная схема устройства управления. Алгоритм работы микроконтроллера в его составе. Строение центрального процессорного элемента – микроконтроллера AVR семейства Classic. Принципиальная схема устройства, расчет временных параметров ее работы.
курсовая работа [636,5 K], добавлен 03.12.2013Исследование системы команд языка Assembler для микроконтроллера MSC-51. Выполнение каждого шага программы и фиксирование состояния регистров микроконтроллера с помощью скриншота экрана компьютера. Скриншоты работоспособности написанной программы.
лабораторная работа [1,6 M], добавлен 18.05.2014Практические примеры и их программная реализация на языке ассемблера для микроконтроллера семейства MCS-51 (МК51). Использование команд передачи данных. Арифметические и логические, битовые операции в MCS-51. Взаимодействие МК с объектом управления.
курсовая работа [75,0 K], добавлен 19.02.2011Понятие о микропроцессорах и микроконтроллерах. Блок управления и его функции. Структура разряда порта микроконтроллера. Структура внутренней памяти данных. Работа с внешней памятью данных и подключение внешней памяти. Принцип работы и настройка таймера.
презентация [665,8 K], добавлен 06.02.2012Работа приемно-контрольной панели на примере одношлейфного прибора. Стандарт последовательного интерфейса. Выбор контроллера, основные способы адресации. Инициализация и прекращение передачи данных. Описание электронной схемы и ее функционирования.
курсовая работа [1,6 M], добавлен 26.07.2013Разработка прибора "Термостат" на однокристальном микроконтроллере INTEL 8051. Работа с восьмью температурными датчиками, подключенными через многоканальный аналого-цифровой преобразователь, автоматическое поддерживание температуры в диапазоне 19°С-21°С.
курсовая работа [137,6 K], добавлен 29.07.2009