Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа SDK11.doc
Скачиваний:
96
Добавлен:
01.05.2015
Размер:
1.24 Mб
Скачать

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

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

  • Описание архитектуры стенда

  • Аппаратные блоки стенда

  • Распределение памяти

  • Описание инструментария

  • Описание опций компилятора

  • Описание команд Т167Ь и Т2

  • Описание возможностей симулятора

  • Исходный текст программы с комментариями

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

  1. Нарисуйте структуру стенда SDK-1.1.

  2. Каковы функции ПЛИС в SDK-1.1?

  3. Как изменить адрес загрузки исполняемой программы?

  4. Зачем ставить while(l); в конце программы?

  5. Каково назначение STARTUP.A51 ?

  6. Что такое XDATA?

  7. Что такое SBUF?

  8. Зачем нужны флаги TI и RI?

  9. Зачем нужно запрещать прерывания?

  10. Какова разрядность ADuC812?

  11. Сколько ОЗУ доступно программе в нулевой странице памяти?

  12. Какие функции исполняет программа Т167Ь?

  13. Каково назначение загрузчика/компоновщика BL51?

  14. Зачем нужна программа ОН51?

  15. Что такое HEX?

  16. Что такое RTC?

  17. Зачем нужен EEPROM?

  18. Что такое I2C?

  19. Какие переменные окружения нужно установить для обеспечения нормальной работы пакета Keil Software?

  20. Какие функции есть у симулятора dScopeDebugger?

Лабораторная работа 9 Управление светодиодами и последовательным интерфейсом в лабораторном стенде sdk 1.1

Цель работы: Изучить архитектуру блока последовательного канала лабораторного стенда SDK-1.1 схему включения светодиодов, разработать программы управления последовательным интерфейсом и светодиодами, просимулировать программы в отладчике-симуляторе, загрузить и выполнить программы на лабораторном стенде.

1. Методические указания к работе.

1.1. Управление светодиодными индикаторами.

Управление светодиодным индикатором осуществляется с использованием программируемой логической интегральной схемы (ПЛИС) MAX3064A, входящей в состав лабораторного макета. Управление осуществляется путем помещения нужной информации в регистры ПЛИС. За светодиоды отвечает регистр SV ПЛИС. Он находится по адресу 080007Н, значение регистра после сброса 00000000В. Каждый бит регистра управляет соответствующим светодиодом (0 разряд светодиодом 0, 7 разряд светодиодом 7).

Для доступа к регистрам ПЛИС нужно переключить страничный регистр DPP на 8 страницу памяти. Адреса регистров внутри страницы находятся в диапазоне от 0 до 7. Доступ к регистрам возможен через указатель: unsigned char xdata *regnum

Ниже приведен пример функций для доступа к регистрам ПЛИС.

#define MAXBASE 8 // Страница памяти, в которую /отображаются регистры ПЛИС

/***************************************************

WriteMAX - Запись байта в регистр ПЛИС regnum - адрес регистра ПЛИС val - записываемое значение

результат - нет

***************************************************/

void WriteMax(unsigned char xdata *regnum, unsigned char val)

{

unsigned char oldDPP = DPP;

DPP = MAXBASE;

*regnum = val;

DPP = oldDPP;

}

/***************************************************

ReadMAX - Чтение байта из регистра ПЛИС

regnum - адрес регистра ПЛИС

результат - прочитанное значение

***************************************************/

unsigned char ReadMax(unsigned char xdata *regnum)

{

unsigned char oldDPP = DPP;

unsigned char val = 0;

DPP = MAXBASE;

val = *regnum;

DPP = oldDPP;

return val;

}

Необходимо помнить, что при переключении страниц становятся недоступными все данные, размещенные в странице 0.

Для того чтобы избежать проблем со страничным регистром DPP, нужно использовать специальные функции для доступа к ПЛИС, которые перед началом работы с регистрами ПЛИС будут запоминать старое значение страничного регистра, а по окончании работы возвращать его обратно.

Нужно следить, чтобы передаваемые в регистры ПЛИС значения хранились во внутренней памяти микроконтроллера (DATA, IDATА). Убедиться, что передаваемая информация не содержится во внешней памяти контроллера (XDATA), достаточно легко, так как для доступа к внешней памяти в микроконтроллерах семейства MСS51 используется регистр DPTR, нужно просто просмотреть листинг программы и убедиться в том, что для доступа к переменным компилятор не использует DPTR.