- •ТехничЕские требования
- •Содержание пояснительной записки
- •Анализ задания
- •1.1 Формирование кодовой таблицы и набора дискретных сигналов
- •1.2 Общая характеристика микроконтроллера ххххх
- •1.2.1 Организация памяти и программная модель
- •1.2.3 Таймеры/ счетчики
- •1.2.4 Система прерываний
- •1.3 Размещение кодовой таблицы сигналов в памяти
- •1.4 Порт вывода дискретных сигналов
- •1.5. Порядок работы генератора сигналов
- •Кодовая таблица символов
- •2 Разработка структурной схемы генератора сигналов
- •3 РазработкА функциональной схемы генератора сигналов
- •4 РазработкА принципиальной схемы генератора сигналов
- •Общие рекомендации
- •5 Разработка алгоритма работы и управляющей программы генератора
- •Загрузочный файл программы
- •Общие сведения
1.2.1 Организация памяти и программная модель
Нарисуйте и опишите структуру памяти программ и памяти данных микроконтроллера, укажите управляющие сигналы и способы адресации.
Приведите описание программной модели и регистров специальных функций (РСФ) микроконтроллера. Сведения о РСФ запишите в таблицу, указав имя, адрес, назначение и начальное состояние каждого регистра при сбросе микроконтроллера (см. лаб. раб. №4).
1.2.2. Параллельные порты ввода/вывода
Дайте общую характеристику параллельных портов ввода/вывода. Приведите описание их альтернативных функций. Укажите РСФ, обслуживающие порты.
Определите и перечислите, какие функции будут выполняться портами ввода/вывода для обеспечения работы генератора сигналов.
1.2.3 Таймеры/ счетчики
Дайте общую характеристику таймеров/счетчиков микроконтроллера, укажите их количество, перечислите режимы работы. Приведите форматы обслуживающих РСФ.
Выберите один из таймеров микроконтроллера, который будет определять необходимую длительность формирования кодовых комбинаций. Выберите режим его работы, сделайте необходимые расчеты.
Пример. Пусть длительность формирования каждой кодовой комбинации tk определяется таймером/счетчиком T0 микроконтроллера. При работе в качестве таймера содержимое регистров Т0 инкрементируется в каждом машинном цикле. При переполнении таймера формируется запрос прерывания, в процессе обслуживания которого микроконтроллер читает из памяти и выводит в порт следующую кодовую комбинацию и начинает отсчет длительности следующего такта.
Режим 1 соответствует работе шестнадцатиразрядного таймера, в котором регистры TH0 и TL0 включены последовательно. В этом режиме за один период работы таймера до прерывания можно отсчитать до 65 536 машинных циклов.
В Режиме 2 таймер работает как восьмиразрядный таймер с автоперезагрузкой. Каждый раз при переполнении регистра TL0 в него загружается значение, записанное в регистр TH0. В этом режиме за один период можно отсчитать до 256 машинных циклов.
Определим количество машинных циклов, соответствующих временному интервалу tk при заданной рабочей частоте Fosc микроконтроллера.
Один машинный цикл tмц микроконтроллера Intel 80С31 включает 12 периодов работы тактового генератора. Длительность одного машинного цикла при рабочей частоте 24 МГц составит:
tмц = 12/Fosc,
tмц = 12/24 МГц = 0,5 мкс
Определим количество машинных циклов M, необходимое для формирования временного интервала 100 мкс:
M = tk / tмц,
M = 100 мкс / 0,5 мкс = 200
Следовательно, наиболее удобным режимом работы таймера T0 является Режим 2, обеспечивающий автоматическую перезагрузку регистра TL0 при переполнении.
Перед включением таймера в регистр TH0 необходимо записать число Х, с которого начинает счет регистр TL0 (начальную уставку таймера). Так как счет производится по возрастанию, значение числа Х, соответствующее отсчету 200 машинных циклов до переполнения таймера, определяется выражением:
Х = 256 – M,
Х = 256 –200 = 56 = 38h
Таким образом, перед первым включением таймера Т0 необходимо определить его режим работы, установив значения соответствующих битов в регистре TMOD, и записать в регистры TL0 и TH0 начальную уставку 38h.