Гл3_06 (1031649), страница 8
Текст из файла (страница 8)
Доступны по чтению.Биты сбрасываются и устанавливаются аппаратно и программно. Доступны по чтению.Биты устанавливаются и сбрасываются программно. Доступны по чтению.Биты сбрасываются и устанавливаются аппаратно и программно. Доступны по чтению.Режимы работы таймеров-счетчиков устанавливаются битами М0 и М1 регистра TMOD и пояснены далее функциональными схемами, на которых прямоугольной рамкой обозначен какой-либо аппаратный ресурс (устройство) микроконтроллера, рамкой соРябов Владимир Тимофеевич.
Кафедра «Электронные технологии в машиностроении»МГТУ им. Н. Э. Баумана, V_Ryabov@mail.ru123скругленными краями – бит какого либо управляющего регистра. Я думаю, по очертаниямВы узнаете на этих схемах и внешние выводы МК. Всего возможно четыре режима, от нуля до трех. Нулевой, первый и второй режимы одинаковы для обоих ТС. В этих режимахтаймеры-счетчики независимы в своей работе, каждому счетчику может быть определенсвой режим. Последний, третий режим предназначен только для работы нулевого таймерасчетчика. Установка ТС1 в третий режим просто блокирует его работу.Режим 0 (рис. 3.15) устанавливается сбросом битов М0 и М1 соответствующегоТС (см.
первую строку табл. 3.8). Этот режим достался микроконтроллеру 51-ой серии внаследство от предыдущей 48-ой. Это были МК, выпущенные фирмой Intel впервые в мире. Семейство MCS-48 имело восьмиразрядные таймеры-счетчики, считавшие не машинные циклы, а порции по 32 цикC/T0ла, иначе счетчик слишком быOSC/12TL0 TH0стро бы переполнялся. Для имиTF05бит 8биттации этого режима в случае заT0мены МК на 51-ю серию и был1&TR0Gate0введен нулевой режим.Импульсыосциллятора1OSC делятся на 12, т.е. формиINT0Рис. 3.15. Работа нулевого таймера в режиме 0.руется последовательность машинных циклов. Переключатель, управляемый битом С/Т0`, подключает счетные регистры TL и TH либо к делителю тактов осциллятора на 12, либо к внешнему выводу Т.Чтобы импульс, поступающий с вывода ТО, был гарантированно зафиксирован, состояние вывода должно оставаться неизменным в течение минимум одного машинногоцикла, т.е.
длительность выступов и впадин внешних импульсов должна превышать однумикросекунду. Это относится ко всем четырем режимам работы счетчиков.Далее в цепочке, передающей импульсы на счетные регистры стоит переключатель, управляемый логической комбинацией битов Gate, TR и состоянием вывода INT. Установка бита разрешения TR в ноль запрещает счет независимо от состояния других элементов цепочки. Если бит TR установлен в единицу, то бит Gate может разрешать(Gate=1) или запрещать (Gate=0) управление счетом от вывода INT.
При Gate=1, TR=1 иINT=1 счет разрешен, при Gate=1, TR=1 и INT=0 – запрещен. Пример практического использования комбинации битов Gate, TR и состояния вывода INT будет показан при описании первого режима ТС.При переполнении регистра ТН устанавливается соответствующий бит (флаг) ТF врегистре TCON и будет вызвано прерывание по вектору 000Bh для нулевого таймерасчетчика и 001Bh для первого.Режим 1 (рис. 3.16) отличается от нулевого тем, что счет идет в двух восьмиразрядных регистрах и переполнение будет наступать в 8 раз реже.
Длительность отсчетатаймера от переполнения до пеC/T0реполнения составит уже 65536OSC/12TL0 TH0мкс, а не 8192мкс, как в нулевомTF08бит 8битрежиме. Это соответствует 15.26T0или 122 «тикам» в секунду. Все1&Gate0TR0остальное аналогично.Оба регистра TR и TH1доступны для записи, возможноINT0также «чтение на лету», т.е. безРис. 3.16. Работа нулевого таймера в режиме 1.приостановки счета.
Посколькуинкрементирование регистра ТН в режиме таймера происходит раз в микросекунду, первый режим удобно использовать для определения длительности положительных импульсов. Для этого нужно разрешить управление от вывода INT (Gate=1, TR=1) и подать исследуемый сигнал на этот вывод. Ниже приведен текст программы на ассемблере, наРябов Владимир Тимофеевич. Кафедра «Электронные технологии в машиностроении»МГТУ им. Н. Э. Баумана, V_Ryabov@mail.ru124страивающей таймер 0 микроконтроллера на эту операцию. К выводу INT0 присоединенисследуемый сигнал, кнопка, присоединенная к нулевому биту первого порта, запускаетизмерение.0B:LJMP OVER;по адресу вектора прерываний Т/С0 записан переход……………….;к п/п обработки переполнения таймераTMR: ORL TMOD,#00001001B ;установить бит Gate0 и первый режим Т/С0SET TMOD.2;сбросить бит T/C0, перевести в состояние таймерORL TCON,#00010000B ;установить бит TR0 не изменяя остальныхMOV TH0, #0;обнулить старший байт Т/С0MOV TL0, #0;обнулить младший байт Т/С0ORL IE,#10000010B ;разрешить прерывания от Т/С0MOV TICK, #0;обнулить счетчик переполнений таймераWAIT: JBР1.0, WAIT ;ждать, пока 1 на выводе Р1.0, это кнопка «СТАРТ»………………………………;здесь нужна подпрограмма вывода результата из ячеек;TICK, TH0 и TL0 и возврата на TMROVER: INC TICK;увеличить число переполненийRTI;возврат из прерыванияРежим 2 иллюстрирован рис.
3.17. Это режим с автоперезагрузкой и доступен он,также, как и два предыдущие любому из двух таймеров МК. Здесь TL и TH выступают, какдва автономных регистра, счетC/T0идет в TL, причем, как только онOSC/12обнуляется, содержимое ТН пеTL0TF08битреписывается в него.T0Режим удобен для непрерывногоотсчета временных ин1TH0Gate0&TR08биттервалов, период которых определяетсяТН. При необходимо1сти, сигнал соответствующийINT0этим временным интерваламРис. 3.17. Работа нулевого таймера в режиме 2.можно подать на какой-либо вывод порта МК.
Попробуйте написать соответствующую программу. Этот режим часто используют для Т/С1, задавая частоту приема и передачи встроенного приемо-передатчика васинхронном режиме. В лабораторных работах этот режим используется в диспетчерепроцессов для запуска синхроквантов.В режиме 3 может работать только С/Т0. Если в этот режим перевести С/Т1, онпросто блокируется и содержимое регистров TL1 и TH1 остается неизменным.
Эффект такой же, как при установкеC/T0TR1TR1=0. Т/С0 в режиме 3TH0OSCTF1/12представляет собой два неза8битвисимых устройства на осноTL0TF0T0ве восьмиразрядных регист8битров TL0 и TH0. Устройство1Gate0TR0&на основе регистра TL0 может работать в режиме тай1мера и в режиме счетчика. ЗаINT0ним сохраняются все битыРис. 3.18. Работа нулевого таймера в режиме 3.управления Т/С0, оно реагирует на воздействия по входам Т0, INT0.
При переполнении TL0 устанавливается флагTF0. Устройство на основе регистра ТН0 может работать только в режиме таймера. Оноиспользует бит включения TR1, при переполнении TH0 выставляет флаг TF1. Других битов управления устройство на основе TH0 в этом режиме не имеет. Логика работы Т/С0 вРябов Владимир Тимофеевич. Кафедра «Электронные технологии в машиностроении»МГТУ им. Н. Э. Баумана, V_Ryabov@mail.ru125режиме 3 показана на рис.
3.18.Режим 3 для Т/С0 удобно применять тогда, когда требуется работа приемопередатчика в асинхронном режиме и двух таймеров или приемопередатчика в асинхронном режиме, таймера и счетчика. Когда Т/С0 переведен в режим 3, Т/С1 можно выключить, переведя его также в ре-жим 3, использовать в режиме 2 для выработки импульсов тактировки приемопередатчика или в любых других приложениях, не требующих прерывания.Г. Приемо-передатчикМикроконтроллер имеет встроенный универсальный синхронно-асинхронный приемопередатчик.
В англоязычной технической литературе такое устройство определяют обычноаббревиатурой USART. Он способен работать в четырех режимах в дуплексном режиме иимеет в пространстве SFR два связанных с ним регистра, регистр управления приемопередатчиком SCON и буферный режим SBUF.
Также с работой приемопередатчика существенно связан регистр управления мощностью PCON. МК имеет два вывода RxD (P3.0) и TxD(P3.1), которые специализированы для обмена по последовательному каналу и выполняют этифункции, если в защелки этих битов порта предварительно записаны единицы.
Кстати, записьединиц во все защелки портов осуществляется автоматически при сбросе МК.Буфер последовательного порта SBUF представляет собой два отдельных регистра: буфер передатчика и буфер приемника. Если команда МК использует SBUF как регистр назначения, то обращение происходит к буферу передатчика, данные записываютсяв SBUF и автоматически инициируется их передача через последовательный порт. Содержимое SBUF побитно автоматически выдается на линию в соответствии с протоколом выбранного режима.