Рябов В.Т. - Устройство и программирование однокристальных микроконтроллеров (1041592), страница 7
Текст из файла (страница 7)
Работа нулевого таймера в режиме 2.передатчика в асинхронном режиме.В режиме 3 (рис. 3.11) может работать только С/Т0. Если в этот режим перевестиС/Т1, он просто блокируется и содержимое регистров TL1 и TH1 остается неизменным. Эффект такой же, как при установке TR1=0. Т/С0 в режиме 3 представляет собой два независимых устройства на основе восьмиразрядных регистров TL0 и TH0. Устройство на основе регистра TL0 может работать в режиме таймера и в режиме счетчика.
За ним сохраняются все битыуправления Т/С0, оно реагируетна воздействия по входам Т0,INT0. При переполнении TL0 устанавливается флаг TF0. Устройство на основе регистра ТН0 может работать только в режиметаймера. Оно использует битРис. 3.11. Работа нулевого таймера в режиме 3.включения TR1, при переполнении TH0 выставляет флаг TF1. Других битов управления устройство на основе TH0 в этомрежиме не имеет.Режим 3 для Т/С0 удобно применять тогда, когда требуется работа приемопередатчика в асинхронном режиме и двух таймеров или приемопередатчика в асинхронном режиме,таймера и счетчика.
Когда Т/С0 переведен в режим 3, Т/С1 можно выключить, переведя еготакже в режим 3, использовать в режиме 2 для выработки импульсов тактирования приемопередатчика или в любых других приложениях, не требующих прерывания.Приемо-передатчикМикроконтроллер имеет встроенный универсальный синхронно-асинхронный приемопередатчик. В англоязычной технической литературе такое устройство определяют обычно аббревиатурой USART. Он способен работать в четырех режимах в дуплексном режиме иимеет в пространстве SFR два связанных с ним регистра, регистр управления приемопередатчиком SCON и буферный режим SBUF.
Также с работой приемопередатчика существенно связан регистр управления мощностью PCON. МК имеет два вывода RxD (P3.0) и TxD(P3.1), которые специализированы для обмена по последовательному каналу и выполняютэти функции, если в защелки этих битов порта предварительно записаны единицы. Кстати,запись единиц во все защелки портов осуществляется автоматически при сбросе МК.22Буфер последовательного порта SBUF представляет собой два отдельных регистра:буфер передатчика и буфер приемника.
Если команда МК использует SBUF как регистр назначения, то обращение происходит к буферу передатчика, данные записываются в SBUF иавтоматически инициируется их передача через последовательный порт. Содержимое SBUFпобитно автоматически выдается на линию в соответствии с протоколом выбранного режима. Буфер приемника также автоматически заполняется в соответствии с выбранным режимом.По завершении заполнения буфера приемника наступает прерывание, при обработке которогоследует организовать чтение SBUF.
Хотя логическое имя и адрес регистра (99Н) при чтении изаписи одинаковы, физически это два разных регистра. Если команда использует SBUF как регистр источника, то обращение происходит к буферу приемника.Прием и выдача байта начинается с младшего разряда и заканчивается старшим.Регистр управления мощностью PCON (табл. 3.5) предназначен для реализации специальных режимов пониженного энергопотребления и холостого хода, которые мы здесь рассматривать не будем.
Но один 7-ой бит этого регистра – бит SMOD существенно влияет на скоростьприемо-передатчика и позволяет удваивать ее значение при программной установке этого бита вединицу.Таблица 3.5. Назначение битов регистра PCON.Биты76, 5, 43, 210НаименованиеSMOD—GF1, GF0РDIDLНазначение битовБит удвоения скоростиРезервныйФлаг общего назначенияБит режима микропотребленияБит холостого ходаПримечаниеДля приемо-передатчикаБиты PCON c номерами 4-6 зарезервированы для дальнейшего расширения семейства.При чтении значение этих разрядов не определено. Программист не должен записывать «1» вэти биты, т. к.
они могут использоваться в будущих разработках семейства МК51 для задания новых функций. В этом случае пассивное значение битов 4 - 6 будет "0", а активное - "1"Бит SMOD определяет частоту приемо-передатчика и при установке из нуля в единицу удваивает ее. Далее при описании режимов приведены формулы для задания частоты.Регистр управления приемо-передатчиком SCON задает правила и управляет обменом по последовательному каналу. Обозначение битов регистра приведено в таблице 3.6. Всеони программно доступны для записи и чтения.Таблица 3.6.БитыОбозначение7SM06SM15SM24REN3TB82RB81T10R1Разряды SM0, SM1 определяют режим работы ПИП, как указано в табл.
3.7.Таблица 3.7SM000SM1011101Режим Наименование0Сдвиговый регистр18-битовый универсальный асинхронныйприемник/передатчик (УАПП)29-битовый (УАПП)39-битовый (УАПП)Скорость передачиfBQ/12переменная,задается Т/С1fBQ/32 или fBQ/64переменная,задается Т/С1Режим 0. Синхронный режим. Здесь буферы приемника и передатчика работают каксдвиговые регистры, тактируемые машинными циклами. Информация передается и принимается через вход приемника RxD (вывод Р3.0 МК).
Через выход передатчика TxD (вывод23Р3.1) выдаются импульсы синхронизации, стробирующие каждый передаваемый или принимаемый бит информации. Формат посылки — 8 бит. Частота приема и передачи — fBQ /12,где fBQ — тактовая частота МК.Режим 1. Асинхронный байтовый обмен с регулируемой частотой. Информацияпередается через выход передатчика TxD, а принимается через вход приемника RxD. Форматпосылки — 10 бит: старт-бит (ноль), восемь бит данных и стоп-бит (единица).
Частота приема и передачи задается первым таймером-счетчиком Т/С1:2 SMOD ⋅ f BQ2 SMODF=f OV =,3232 ⋅ 12 ⋅ (256 − (TH 1))где - fOV — частота переполнений Т/С1, (ТН1) — десятичный код содержимого ТН1.Для использования Т/С1 в качестве источника для задания частоты необходимо:1) запретить прерывания от Т/С1;2) запрограммировать работу Т/С1 в качестве таймера или в качестве счетчика, установив при этом для него режим 2;3) запустить Т/С1 на счет.Режим 2.
Асинхронный 9-и битовый обмен с дискретной частотой. Информацияпередается через выход передатчика TxD, а принимается через вход приемника RxD. Форматпосылки — 11 бит: старт-бит (ноль), восемь бит данных, программируемый девятый бит истоп-бит (единица). Передаваемый девятый бит данных принимает значение бита ТВ8 из регистра специальных функций SCON. Бит ТВ8 в регистре SCON может быть программно установлен в "О" или в "1", или в него, например, можно поместить значение бита четности Риз регистра PSW для повышения достоверности принимаемой информации (контроль по паритету). При приеме девятый бит данных принятой посылки поступает в бит RB8 регистраSCON. Частота приема и передачи в режиме 2 задается программно и может быть равнаfBQ/32 или fBQ/64.Режим 3.
Асинхронный 9-и битовый обмен с регулируемой частотой. Режим 3полностью идентичен режиму 2 за исключением частоты приема и передачи, которая в режиме 3 задается таймером-счетчиком Т/С1.Перейдем к описанию других битов SCON, нарушив их очередность в регистре. БитSM2 мы рассмотрим последним.Бит REN - разрешение приема последовательных данных. Устанавливается и сбрасывается программно соответственно для разрешения и запрета приема.Бит ТВ8 — девятый бит передаваемых данных в режимах 2 и 3. Устанавливается исбрасывается программным обеспечением.Бит RB8 — девятый бит принятых данных в режимах 2 и 3.
В режиме 1, еслиSM2=0, RB8 является принятым стоп-битом. В режиме 0 бит RB8 не используется.TI — флаг прерывания передатчика. Устанавливается аппаратно в конце времени выдачи 8-го бита в режиме 0 или в начале стоп-бита в других режимах. Сбрасывается программно.Бит RI — флаг прерывания приемника.
Устанавливается аппаратно в конце времениприема 8-го бита в режиме 0 или через половину интервала стоп-бита в режимах 1, 2, 3 приSM2=0. При SM2=1 см. описание бита SM2.Бит SM2 — разрешение многопроцессорной работы. В режимах 2 и 3 (9-и битовыйобмен асинхронный обмен) при SM2=1 флаг RI не активизируется, если девятый принятыйбит данных равен "0".
В режиме 1 при SM2=1 флаг RI не активизируется, если не принятстоп-бит, равный "1". В режиме 0 бит SM2 должен быть установлен в "0".Режимы 2 и 3 последовательного порта с использованием бита SM2 позволяют организовать работу МК в многопроцессорных системах, использующих для обмена информацией между собой разделяемый моноканал (коаксиальный кабель, витая пара, оптоволокно),т.е. при магистральной архитектуре сети. В этих режимах принимается 9 бит данных и 9-йпринятый бит записывается в RB8 регистра SCON. При этом, если бит SM2 регистра SCON24установлен в 1, то после приема посылки флаг прерывания приемника RI будет установлентолько в том случае, если RB8=1.Когда ведущий сети хочет передать блок данных одной из ведомых МК, он выдает вмоноканал посылку с адресом ведомого, которому будет передан блок данных. Адресная посылка отличается от посылки с данными тем, что в адресной посылке 9-й бит данных равен"1", а в посылках с данными "0".Таким образом, при SM2=1 ни одна ведомый МК не будет реагировать на посылку сданными, но все ведомые среагируют на адресную посылку.
Проанализировав полученныйадрес, адресуемый МК сбрасывает свой бит SM2, а остальные оставляют его без изменения ивновь переходят к выполнению прерванной программы. После этого ведущий МК может начинать выдачу в моноканал блока данных, на посылки которого будет реагировать толькоМК, у которой SM2=0.Система прерываний микроконтроллераМикроконтроллер имеет автовекторную систему прерываний с двумя внешними итремя внутренними источниками.
Регистры специальных функций, связанные с прерываниями и таблица векторов приведены на рис. 3.12.Рис. 3.12. Регистры управления прерываниями.Регистр разрешения прерываний IE (Interrupt Enable) предназначен для разрешенияили запрещения прерываний от соответствующих источников. Обозначение разрядов регистра IE показано в таблице на рис. 3.12, а их назначение указано ниже.Бит ЕА - управление всеми источниками прерываний одновременно. Если ЕА=0, топрерывания запрещены. Если ЕА=1, то прерывания могут быть разрешены индивидуальными разрешениями EX0, ET0, EX1, ЕТ1, ES (см. далее).Биты 6, 5 - резервные разряды.Бит ES - управление прерыванием от последовательного порта (ES = 1 - разрешение.ES=0 – запрещение).Бит ЕТ1 - управление прерыванием от Т/С1 (ЕТ1 = 1 - разрешение.
ЕТ1 = 0 – запрещение).Бит ЕХ1 - управление прерыванием от внешнего источника INT. (ЕХ1 = 1 - разрешение. ЕХ1=0 - запрещение.)Бит ET0 - управление прерыванием от Т/С0 (ЕТ0=1 - разрешение. ЕТ0 = 0 - запрещение).Бит EX0 - управление прерыванием от внешнего источника INT0 (ЕХ0 = 1 - разрешение. ЕХ0 = 0 – запрещение).При чтении резервных разрядов соответствующие линии магистрали не определены.Пользователь не должен записывать "1" в резервные разряды, т.
к. они зарезервированы поддальнейшее расширение семейства МК51.Регистр приоритетов прерываний IР управляет приоритетами прерываний. При одновременном появлении нескольких прерываний начинается обслуживание источника с наивысшим приоритетом. Или, если МК уже обслуживал какое либо прерывание, новое будетобслуживаться только если его приоритет выше, чем у текущего. По умолчанию, чем меньшеадрес вектора прерывания, тем выше его приоритет.Регистр приоритетов прерываний (IP) предназначен для установки уровня приоритета25прерывания для каждого из пяти источников прерываний.