
Режим 6
В этом режиме соответствующий таймер может быть использован в качестве широтно-импульсного модулятора с полным периодом в 256 тактов. Структура таймера в этом режиме напоминает структуру в режиме 2, с некоторыми поправками:
TFn (n=0 и 1 для таймера 0 и таймера 1 соответственно) устанавливается и сбрасывается аппаратно;
Длительность низкого уровня за полный период задается в THn, и должна иметь значение от 1 до 254;
Длительность высокого уровня за полный период составляет всегда
256 – THn;
Загрузка в THn значения 00h приведет к появлению на выводе Tx высокого уровня, загрузка в THn значения FFh приведет к появлению на выводе Tx низкого уровня.
При этом прерывание может быть разрешено по фронту TFn, и флаг TFn можно сбросить программно такж, как и в любом другом режиме.
Задания
Вывод результата эксперимента осуществляется через порт P2 контроллера.
Разработать программу аппаратно-программной задержки, обеспечивающую наблюдение эффекта "Бегущего огня" на индикаторных светодиодах. Вид и частота "бегущего огня" определены вариантом задания (номер бригады).
Совместно с таймером/счетчиком при выполнении лабораторной работы необходимо использовать подпрограмму задержки. Сигнал прерывания TF0 из С/Т0 вызывает модуль программной задержки, реализуемой с использованием соответствующего кода, загружаемого в регистр МК и декрементируемого после очередного сигнала прерывания из Т/С.
В режиме реального времени реализация задержки только посредством таймера при частоте тактирования микроконтроллера 6Mгц для 16-битного Т/С составляет около 130 мс, что недостаточно для визуального наблюдения за "бегущим огнем", используемым в качестве индикатора результатов эксперимента.
В режиме моделирования процессы в ОМК идут медленнее в сотни раз. Поэтому настройка C/T0 иная, чем в режиме реального времени
В соответствии с заданием определить длительность и количество вызовов подпрограммы задержки для режимов реального времени и моделирования.
Возврат из подпрограммы программной задержки обеспечивается командой RETI, восстанавливающей содержимое программного счетчика РС из стека. В стек РС загружается автоматически по аппаратно сформированному коду команды LCALL. В РС при прерывании от Т/С0 загружается код адреса 000BH, в котором находится команда перехода к подпрограмме обработки соответствующего прерывания.
А. Разрешение счета обеспечивается битом GATE, устанавливаемым в регистре TMOD.
В. Разрешение счета обеспечивается внешним сигналом, поступающим на вход прерывания INT0.
Вариант задания |
Вид бегущего огня |
Время свечения светодиода/СИД/ /в секундах/ |
1 |
Слева-направо; горит 1 СИД |
0,5 |
2 |
Слева-направо; горят 2 СИД |
1,0 |
3 |
Справо-налево; горит 1 СИД |
1,5 |
4 |
Справо-налево; горят 2 СИД |
2,0 |
5 |
Слева-направо; горят 4 СИД |
0,5 |
6 |
Справо-налево; горят 4 СИД |
1,0 |
7 |
Сходящийся к центру; горят 2 СИД |
1,5 |
8 |
Расходящийся от центра; горят 2 СИД |
2,0 |
Разработать программу подсчета числа внешних сигналов /событий/. Источником сигналов является внешний сигнал, поступающий на вход Т0, режим работы Т/С0 - режим 1.
Результатом выполнения программы является код числа сигналов, выведенный на СИД.
3.Построить программу подсчета внешних сигналов для Т/С0 в режиме 2. Для наблюдения выполнения программы загрузить в TL0 и TH0 одинаковые коды, например 0F8H.
Содержимое TL0 выводить на индикацию.
Изучить особенность работы Т/С0 в режиме 2.
Управление прерыванием (разрешить/запретить) от Т/С0 можно осуществить сбросом бита IE.7 или бита IE.1 в регистре масок прерывания IE.