Дата последнего обновления файла 30.03.2014

Лабораторная работа 5. Работа с последовательным портом микроконтроллера ADuC842

Лабораторная работа выполняется с помощью учебного лабораторного стенда LESO1.

Цель работы: Научиться осуществлять вывод текстовой информации на экран компьютера при помощи последовательного порта микроконтроллеров семейства MCS-51.

Подготовка к лабораторной работе

1. По конспекту лекций изучить работу последовательного порта микроконтроллеров семейства MCS-51. По DataSheet ADuC842 ознакомиться с особенностями работы последовательного порта в данном микроконтроллере. К сожалению информация доступна только на английском языке. В русском переводе она отсутствует. По таблице регистров специальных функций (SFR) определить адреса регистров управления и настройки последовательного порта. Рассчитать коэффициенты, влияющие на скорость работы последовательного порта и определить значение регистров настройки последовательного порта и таймера, используемого для синхронизации.

Реализация программы передачи байта по последовательному порту

Применение в микроконтроллерных устройствах в качестве устройства отображения информации персонального компьютера позволяет значительно снизить цену и габариты данного устройства. То, что в современных компьютерах и ноутбуках часто отсутствует COM-порт сути вопроса не изменяет. Достаточно поставить на плату разрабатываемого микроконтроллерного устройства микросхему моста USB-UART, подобную FT232 фирмы FTDI.

Работа с последовательным портом производится в два этапа. На первом этапе требуется настроить порт на необходимый режим работы. В данном случае при работе с COM-портом компьютера нужно перевести последовательный порт микроконтроллера в асинхронный 8-ми битовый режим с настраиваемой скоростью работы (режим 1). Так как скорость работы задается при помощи одного из таймеров, то необходимо настроить его на заданную скорость работы. Так как этот участок программы требуется только один раз в течение выполнения программы, то его называют инициализацией.

Листинг 1. Исходный текст функции настройки последовательного порта микроконтроллера ADuC842

void InitUART(void)
{SCON=(1<<6)|      //Настроить последовательный порт на первый режим работы
      (1<<4);      //Разрешить прием по последовательному порту
 T3CON=(1<<7)|     //Настроить синхронизацию последовательного порта от таймера 3
       (3);        //Делитель таймера 3 DIV = 3
 T3FD=0xFD;        //Настроить скорость передачи 9600 бит/с
 PLLCON=3;         //Настроить частоту ядра процессора 9600 МГц
}

Для вывода символа через последовательный порт достаточно записать этот символ в регистр данных передатчика последовательного порта SBUF. Его адрес можно определить в документации на микроконтроллер ADuC842. Перед началом передачи следует убедиться в том, что передача предыдущего байта закончена. Это можно определить по содержимому флага TI регистра SCON. В языке программирования C вывод одного байта производится функцией putchar. В keil-c приведен исходный текст этой функции. Ее исходный текст приведен в листинге 2.

Листинг 2. Исходный текст функции передачи одного байта через последовательный порт микроконтроллера

char putchar(char smv)
{while(!TI);        //Если передатчик закончил передачу предыдущего символа,
  {TI=0;              //то сбросить флаг передатчика
   return(SBUF=smv);  //и начать передачу нового символа
  }
}

Для отображения текста на экране компьютера применяются таблицы ASCII для DOS и ANSI для WINDOWS. При передаче текста на экран дисплея персонального компьютера можно воспользоваться этими таблицами и передавать цифровые коды, соответствующие нужным символам, но намного эффективнее воспользоваться символьными константами, которые записываются в апострофах:

  putchar('Б');

Отображение принимаемой информации на экране компьютера

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

Настройка терминала nwFlash осуществляется в пункте главного меню «Опции терминала». Опции терминала nwFlash позволяют:

  1. выбрать режим отображения данных: текстовый или шестнадцатеричный, при этом изменяется также тип посылаемых данных;
  2. выбрать кодировку ANSI (Windows-1251) или ASCII (DOS-866);
  3. включать и выключать режим автоматической прокрутки текста;
  4. очистить окно терминала;
  5. сохранять принятую от микроконтроллера информацию в файл:
    • в том виде, как она пришла — пункт меню "Сохранить";
    • в том виде, как она отображается в терминале — пункт меню "Сохранить как текст".

Скрин-шот меню настройки режимов работы программы-терминала nwFlash показан на рисунке 1.

Настройка терминала nwFlash
Рисунок 1. Настройка терминала nwFlash

В нашем случае необходимо установить текстовый режим работы и кодировку ANSI.

При выполнении лабораторной работы необходимо настраивать скорость работы виртуального COM-порта компьютера. Выбрать необходимую скорость обмена с микроконтроллером можно при помощи меню "Подключение". Внешний вид программы nwFlash при настройке скорости работы COM-порта приведен на рисунке 2.

Настройка скорости работы COM-порта в программе nwFlash
Рисунок 2. Настройка скорости работы COM-порта

Задание к работе

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

Таблица вариантов задания
Номер
варианта
Скорость UARTИсточник синхронизации UART
1 300 бит/с Таймер 3
2 600 бит/с Таймер 3
3 1200 бит/с Таймер 3
4 1800 бит/с Таймер 3
5 2400 бит/с Таймер 3
6 4800 бит/с Таймер 3
7 7200 бит/с Таймер 3
8 9600 бит/с Таймер 3
9 600 бит/с Таймер 1
10 1200 бит/с Таймер 1
11 1800 бит/с Таймер 1
12 2400 бит/с Таймер 1
13 4800 бит/с Таймер 1
14 7200 бит/с Таймер 1
15 9600 бит/с Таймер 1

Порядок выполнения работы

Вывод информации через последовательный порт
  1. Войдите в интегрированную среду программирования Keil-C. Создайте и настройте должным образом проект.
  2. Разработайте и введите текст программы в соответствии с созданным алгоритмом.
  3. Оттранслируйте программу, и исправьте синтаксические ошибки.
  4. Настройте скорость UART терминала программы nwFlash соответственно заданию.
  5. Загрузите полученный *.hex файл в лабораторный стенд LESO1.
  6. Убедитесь, что в окне терминала вывелась фамилия студента.
Ввод информации через последовательный порт
  1. Измените программу таким образом, чтобы данные из микроконтроллера отсылались только по текстовой команде 'Кто?', переданной с компьютера. Передача команды осуществляется через терминал nwFlash.
  2. Загрузите полученный *.hex файл в лабораторный стенд LESO1.
  3. Введите в окне терминала nwFlash строку 'Кто?'.
  4. Убедитесь, что в окне терминала на этот вопрос вывелась фамилия студента.

Содержание отчета

  1. Цель работы;
  2. Принципиальная схема подключения микроконтроллера к компьютеру;
  3. Временная диаграмма передачи данных по UART;
  4. Структурная схема временной синхронизации последовательного порта микроконтроллера ADuC842;
  5. Расчет коэффициентов, загружаемых в управляющие регистры микроконтроллера;
  6. Графическую схему алгоритма работы программы вывода информации на экран компьютера;
  7. Содержимое файла листинга программы вывода информации на экран компьютера;
  8. Выыводы по выполненной лабораторной работе

Контрольные вопросы

  1. Назначение последовательного порта?
  2. Назначение порта UART?
  3. Особенности реализации схемы передачи данных из микроконтроллера в компьютер?
  4. Виды режимов работы последовательного порта?
  5. Особенности работы последовательного порта в нулевом режиме?
  6. Особенности работы последовательного порта в первом режиме?
  7. Особенности работы последовательного порта во втором режиме?
  8. Особенности работы последовательного порта в третьем режиме?
  9. Особенности настройки таймера для последовательного порта?
  10. Особенности настройки частоты работы ядра микроконтроллера?

Литература:

  1. М. Рафикумазан. Микропроцессоры и машинное проектирование микропроцессорных систем 1988
  2. В.В. Сташин А.В. Урусов О.Ф. Мологонцева Проектирование цифровых устройств на однокристальных микроконтроллерах 1990
  3. В.Я. Нерода В.Э. Торбинский Е.Л.. Шлыков Однокристальные микроЭВМ MCS-51 Архитектура 1995
  4. В.И. Сединин, А.В. Микушин. Однокристальный микроконтроллер семейства MCS-51 фирмы INTEL 8xC51GB 2001
  5. В.И. Сединин, А.В. Микушин. Программирование микропроцессорных систем на языке C-51 Москва, "Горячая линия – Телеком", 2009. — 216с.
  6. Изучение последовательного порта UART

Вместе с лабораторной работой "Работа с последовательным портом микроконтроллера ADuC842" выполняют:

Лабораторная работа 1. Знакомство с интегрированной средой программирования keil-C
http://digteh.ru/MCS51/lab/1/

Лабораторная работа 2. Ввод и вывод информации через параллельные порты микроконтроллера
http://digteh.ru/MCS51/lab/2/

Лабораторная работа 3. Ввод информации в микроконтроллер с клавиатуры
http://digteh.ru/MCS51/lab/3/

Лабораторная работа 4. Исследование работы таймеров микроконтроллеров MCS-51
http://digteh.ru/MCS51/lab/4/

Лабораторная работа 6. Вывод информации на жидкокристаллический дисплей
http://digteh.ru/MCS51/lab/6/


Автор Микушин А. В. All rights reserved. 2001 ... 2017

Предыдущие версии сайта:
http://neic.nsk.su/~mavr
http://digital.sibsutis.ru/

Поиск по сайту сервисом Яндекс

Поиск по сайту сервисом ГУГЛ

пЕИРХМЦ@Mail.ru


Яндекс.Метрика
Rambler's Top100