
- •Росжелдор
- •Лабораторная работа. Исследование функциональных узлов миус. Цифро-аналоговые преобразователи
- •Цель работы Изучить принцип формирования аналоговых сигналов в микропроцессорных системах, познакомиться с работой цап.
- •Общие сведения
- •Подготовка к работе
- •Выполнение работы
- •Содержание отчета
- •Предварительные расчеты и результаты дискретизации заданных сигналов.
- •1. Цель работы
- •2. Общие сведения
- •2.1. Память программ
- •2.2. Память данных
- •2.3. Программная модель микроконтроллеров семейства Intel 8051
- •2.4 Система команд микроконтроллеров семейства Intel 8051
- •2.4.1. Правила записи программ на языке ассемблера
- •2.4.2. Режимы адресации данных
- •2.4.3. Общая характеристика системы команд
- •2.4.4. Директивы ассемблера
- •3. Подготовка к работе
- •4. Выполнение работы
- •5. Содержание отчета
- •Формат регистра рsw
- •Формат регистра pcon
- •Формат регистра tcon
- •Формат регистра ie
- •Формат регистра ip
- •Лабораторная работа. ИнтЕгрированная среда разработки
- •1. Цель работы
- •2. Общие сведения
- •2.1. Этапы подготовки программного обеспечения микропроцессорных систем
- •2.2. Общая характеристика программы Keil mVision ide
- •2.3 Интерфейс пользователя и общие правила работы
- •3. Подготовка к работе
- •4. Выполнение работы
- •4.1. Создание нового проекта
- •4.2. Создание исходного текстового файла
- •Добавление файла в рабочую группу и настройка проекта
- •Компиляция и компоновка проекта
- •Отладка проекта
- •5. Содержание отчета
- •Инструменты отладчика
- •Лабораторная работа Последовательный порт однокристальных микроконтроллеров семейства Intel 8051
- •1. Цель работы
- •2. Общие сведения
- •3. Подготовка к работе
- •Выполнение работы
- •5.Содержание отчета
- •Лабораторная работа Этапы Подготовки программного обеспечения для микропроцессорных систем. Программаторы
- •1. Цель работы
- •2. Общие сведения
- •Подготовка к работе
- •Выполнение работы
- •Сейчас будет выполнено полное тестирование аппаратуры программатора. Убедитесь, что в колодке программатора нет микросхемы
- •Содержание отчета
- •1. Цель работы
- •2. Общие сведения
- •3. Подготовка к работе
- •4. Выполнение работы
- •Проверка работоспособности устройств платы контроллера-конструктора kit-552-p
- •Проверка работы программы циклической передачи данных в последовательный порт
- •5. Содержание отчета
Лабораторная работа Последовательный порт однокристальных микроконтроллеров семейства Intel 8051
1. Цель работы
Изучить особенности и режимы работы последовательного порта однокристальных микроконтроллеров семейства Intel 8051.
2. Общие сведения
Очень часто микроконтроллеры работают не обособленно, а в составе сложной МП-системы. Они занимаются сбором и предварительной обработкой информации, которая затем передается на более высокий уровень (например, в технологическую микро-ЭВМ).
Производить параллельный обмен в такой ситуации неудобно – требуется использование множества линий связи. Поэтому большинство ЭВМ имеют в своем составе средство обмена по последовательному интерфейсу – последовательный порт.
Микроконтроллеры семейства Intel 8051 имеют в своем составе универсальный асинхронный приёмопередатчик - UART (Universal Asynchronous Receiver-Transmitter). Передача информации производится последовательным кодом (младшим битом вперед), в дуплексном режиме обмена. В резидентной памяти программ для последовательного порта зарезервирован адрес вектора прерывания - 23H. Работой UART управляют два регистра специальных функций. Регистр управления/статуса SCON и специальный буферный регистр SBUF.
Регистр SBUF представляет собой два независимых регистра: буфер приёмника и буфер передатчика. Загрузка байта в SBUF немедленно вызывает начало процесса передачи через последовательный порт (используется внешний вывод TхD). Когда байт считывается из SBUF, это значит, что его источником является буфер приёмника последовательного порта (используется вход приемника RхD). Данные передаются/принимаются младшим битом вперед. Последовательный порт может работать в четырех различных режимах.
Регистр SCON предназначен для управления и контроля состояния UART. Регистр содержит управляющие биты выбора режима работы, девятый бит передаваемых данных, а также биты прерывания.
Таблица 1 – Формат регистра управления SCON
Символ |
Разряд |
Имя и назначение |
SM0 |
SCON.7 |
Биты 0 и 1 управления режимом работы UART. Устанавливаются/сбрасываются программно. |
SM1 |
SCON.6 |
|
SM2 |
SCON.5 |
Бит управления режимом UART. Устанавливается программно для запрета приёма сообщения, в котором девятый бит равен 0 |
REN |
SCON.4 |
Бит разрешения приёма. Устанавливается/сбрасывается программно для разрешения/запрета приёма последовательных данных. |
TB8 |
SCON.3 |
Передача бита 8. Устанавливается/сбрасывается программно для задания девятого передаваемого бита |
RB8 |
SCON.2 |
Приём бита 8. Устанавливается/сбрасывается аппаратно для фиксации девятого принимаемого бита |
TI |
SCON.1 |
Флаг прерывания передатчика. Устанавливается аппаратно при окончании передачи. Сбрасывается программно после обслуживания прерывания |
RI |
SCON.0 |
Флаг прерывания приёмника. Устанавливается аппаратно по окончании приема. Сбрасывается программно после обслуживания прерывания |
Таблица 2 – Выбор режима работы UART
SM0 |
SM1 |
Режим работы |
0 |
0 |
Режим 0. Сдвигающий регистр ввода/вывода. Фиксированная скорость передачи |
0 |
1 |
Режим 1. Режим UART - 8 бит. Изменяемая скорость передачи |
1 |
0 |
Режим 2. Режим UART - 9 бит. Фиксированная скорость передачи |
1 |
1 |
Режим 3. Режим UART - 9 бит. Изменяемая скорость передачи |
Режим 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, но частота приёма/передачи задаётся таймером.
Пример. Произвести циклический вывод через последовательный порт кода символа "*" при рабочей частоте микроконтроллера 11,059 МГц и скорости передачи данных 1200 Бод. Каждый цикл должен сопровождаться стробирующим сигналом на линии Р1.1 микроконтроллера длительностью 200 мкс.
Для циклической передачи данных с произвольной скоростью наиболее часто используется Режим 1. Учитывая особенности архитектуры и системы команд микроконтроллера алгоритм работы программы можно реализовать несколькими способами. Но в любом случае необходимо выполнить следующие действия по настройке и организации работы последовательного порта.
Выбрать для последовательного порта Режим 1, установив соответствующие биты регистра SCON. Для этого необходимо записать в регистр SCON число 0100 0000В – 40h.
Выбрать для таймера режим 2 с автоперезагрузкой при помощи соответствующих битов в регистре TMOD, записав число 0010 0000В – 20h.
Запрограммировать таймер Т1 на заданную скорость передачи данных, загрузив в старший регистр таймера TH1 соответствующее число.
Частота передачи данных последовательного порта задается таймером T1 в режиме с автоперезагрузкой и определяется выражением:
F= 2SMODFРЕЗ/(32х12х(256 —ТН1)),
где SMOD – состояние управляющего бита SMOD в регистре PCON, для примера SMOD=0;
FРЕЗ – частота кварцевого резонатора, для примера FРЕЗ = 11,059 МГц;
ТН1 – содержимое регистра старшего байта таймера T1, для примера TH1= E8h=232.
F= 20 x 11,059х106/(32х 12(256-232))=11,059х106/(384х24)=1,119 кГц.
Таким образом, при скорости передачи данных 1200 Бод и частоте 11,059 МГц необходимо загрузить в регистр TH1 число 0Е8h (см. таблицу П1).
Включить таймер Т1, установив бит TR1.
Записать в буферный регистр последовательного порта SBUF код символа "*" – 2Ah (см. таблицу П2).
Для организации циклического вывода данных необходимо после каждой передачи выполнять сброс флага передатчика TI и записывать код символа в буфер.
Вариант программы 1 использует проверку состояния флага передатчика TI, который устанавливается аппаратно по окончании передачи. Формирование стробирующего сигнала на линии Р1.1 длительностью 200 мкс реализовано при помощи подпрограммы STROBE_200.
Счетчик в регистре R1 организован таким образом, чтобы при рабочей частоте 11,059 МГц обеспечить задержку 200 мкс, т.е. на время необходимое для выполнения 92 двухцикловых команд DJNZ (см. расчет в комментарии). Символ $ используется в программе для обозначения автоматического перехода на ту же командную строку. При другой частоте или длительности строб-сигнала число в счетчике R1 нужно изменить.
START: CLR P1.1 ;сброс сигнала на линии P1.1
MOV SCON,#40h ;выбор Режима 1 для последовательного порта
MOV TMOD,#20h ;выбор Режима 2 для таймера Т1
MOV TH1,#0E8h ;выбор скорости передачи данных 1200Бод при F=11,059МГц
SETB TR1 ;запуск таймера Т1
M1: MOV SBUF,#’*’ ;загрузка в буфер последовательного порта символа '*’
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
В варианте программы 2 по адресу вектора 23H размещена команда перехода к подпрограмме обслуживания прерывания последовательного порта Serial. Для организации обслуживания прерывания необходимо в регистр IE записать значение 1001 0000В – 90h, сняв блокировку прерываний битом ЕА, и разрешив прерывание последовательного порта битом ES.
JMP START
ORG 23h ;организация обслуживания прерывания
JMP SERIAL ;от последовательного порта
START: CLR P1.1 ;сброс сигнала на линии P1.1
MOV SCON,#40h ;выбор Режима 1 для последовательного порта
MOV TMOD,#20h ;выбор Режима 2 для таймера Т1
MOV TH1,#0E8h ;выбор скорости передачи данных 1200Бод при F=11,059МГц
MOV IE, #90H ;разрешение прерывания от последовательного порта
SETB TR1 ;запуск таймера Т1
MOV SBUF,#'*’ ;загрузка в буфер последовательного порта символа ‘*’
JMP $ ;цикл ожидания окончания передачи, проверка флага TI
SERIAL: CLR TI ;сброс флага прерывания передатчика
MOV SBUF,#'*' ;загрузка в буфер последовательного порта символа '*'
CALL STROBE_200 ;вызов подпрограммы формирования 200 мкс
RETI ;выход из прерывания
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