Соколов Ю.П. Микроконтроллеры семейства MCS-51 (2002) (1095895), страница 7
Текст из файла (страница 7)
При стоп-бите, равном 1, в режиме 1 необходимо установить SM2=1. Значение принятого стоп-бита в режимах 2 и 3 не влияетна содержимое SBUF, RB8 и RI1.31Режимы асинхронного обмена данными различаются форматомкадра и скоростью обмена (таблица 9).Режим 1 и 3. Тактовая частота обменаf M1 = f M3 = f OSC ·2 (SMOD)/f OV,где fOSC – частота тактового генератора микроконтроллера;(SMOD) – содержимое бита SMOD регистра PCON;f OV – частота переполнения таймера/счетчика TC1.При работе таймера/счетчика TC1 в режиме 2 (автозагрузка)f M1 = f M3 = f OSC ·2 (SMOD)/(32·12·(256-(TH1))),где (TH1) – содержимое байта TH1 таймера/счетчика TC1.Режим 2. Тактовая частота обменаf M2 = f OSC ·2 (SMOD)/64.2.4.3.
Обмен в многопроцессорных системахРежимы 2 и 3 позволяют организовать локальную сеть для обмена данными в многопроцессорной системе. Каждому микроконтроллерусети присваивается свой индивидуальный адрес. Выводы TxD и RxDкаждого микроконтроллера соединяются и подключаются к общему моноканалу.
Очевидно, что в этом случае возможен только симплексныйобмен: в каждый момент времени может работать только один передатчик. Обмен данными между микроконтроллерами многопроцессорной системы в режимах 2 и 3 основан на том, что флаг прерыванияприемника RI устанавливается лишь в случае, если содержимое разряда SM2 регистра SCON приемника совпадает с логическим уровнемпринятого девятого бита D8.Обмен производится кадрами, содержащими адрес приемника, иданные.
В каждой адресной части кадра устанавливается одно, заранееоговоренное значение девятого бита D8, а в области данных - его инверсия. В исходном состоянии разряд SM2 у всех микроконтроллеровсети устанавливается равным биту D8 адресной части посылки.Когда ведущий микроконтроллер передает данные ведомому, адресную часть принимают все микроконтроллеры и сравнивают принятый адрес с собственным. Лишь один из них, у кого принятый адрессовпадает с собственным, инвертирует содержимое разряда SM2,обеспечивая себе прием данных.
Остальные микроконтроллеры разрядSM2 не инвертируют и данные принять не могут. После окончанияприема значение разряда SM2 восстанавливается.2.5. Таймеры/счетчики.Базовая конфигурация микроконтроллеров содержит два 16разрядных суммирующих таймера/счетчика ТС0 и ТС1, предназначенных для подсчета внешних событий, получения программноуправляемых временных задержек и выполнения внутренних времязадающих функций. Таймеры/счетчики построены на программно-доступных регистровых парах (TH0, TL0) и (TH1, TL1), размещенныхв области регистров специальных функций SFR.
В управлении режи-32мом работы TC0 и TC1 участвует старшая тетрада регистра TCON(Timer/Counter Control) и регистр TMOD (Timer/Counter Mode). Младшаятетрада регистра TCON используется в работе системы прерываний.Оба регистра управления расположены в области SFR и программнодоступны, а регистр TCON, находящийся еще и в области BSEG, имеетпрограммно-доступные биты.Старшая тетрада регистра TCON, назначение разрядов которойприведено в таблице 10, содержит биты разрешения счета TRx (TimerТаблица 10. Регистр TCON (88H)7654TF1TR1TF0TR03IE12IT11IE00IT0Назначение разрядов регистра:____ ____TCON.0 IT0 Бит выбора типа активного сигнала по входу INT0 (INT1).TCON.2 IT1 При ITx=1 активным является переход из 1 в 0, при ITx=0- низкий уровень входного сигнала.Устанавливается и сбрасывается программно.____ ____TCON.1 IE0 Флаг запроса внешнего прерывания по входу INT0 (INT1).TCON.3 IE1 При подтверждении прерывания и ITx=1 сбрасываетсяаппаратно.TCON.4 TR0 Бит запуска TC0 (TC1).
При TRx=1 счет разрешен. УстаTCON.6 TR1 навливается и сбрасывается программно.TCON.5 TF0 Флаг переполнения TC0 (TC1) .При подтверждении преTCON.7 TF1 рывания сбрасывается аппаратно.Run) (x=0,1) и флаги переполнения TFx (Timer overflow Flag) таймеров/счетчиков ТС0 и ТС1.Регистр TMOD разбит на две тетрады, младшая из которыхуправляет таймером/счетчиком TC0, а старшая – TC1.
Обозначениеразрядов регистра TMOD приведено таблице 11.Каждый таймер/счетчик содержит счетный регистр (THx, TLx) сподключенным к нему флагом переполнения TFx и логику управления.Счетные регистры работают только в режиме суммирования и припереходе из состояния «все единицы» в состояние «все нули» устанавливают флаг переполнения TFx=1.
Если прерывание от соответствующего таймера/счетчика ТСх разрешено, то установка флага переполнения вызывает прерывание. Флаг переполнения TFx сбрасывается аппаратно при передаче управления прерывающей программе. Флаги TFxпрограммно доступны и могут быть установлены или сброшены программой.Логика управления устанавливает функцию таймера или счетчика,а также разрешает или останавливает счет программным (установкойбита TRx) или аппаратным (сигналом с вывода Tx микроконтроллера)способом.Функция таймера заключается в счете импульсов, следующих сфиксированной частотой f OSC /12 (при fOSC = 12 МГц период импульсов33Таблица 11. Регистр TMOD (89H)76__543GATE1 C/T1M1.1M0.1 GATE02__C/T01M1.00M0.0Назначение разрядов регистра:TMOD.0M0.0Младший бит управления режимом CT0.TMOD.1M1.0Старший бит управления режимомCT0.____TMOD.2C/T0Выбор__ функции таймера (C/T0=0) или счетчика(C/T0=1) для CT0.TMOD.3GATE0 Флажок разрешения (GATE=1)управления рабо____той CT0 с внешнего вывода INT0 при TR0=1.
ПриGATE=0 работа CT0 зависит от состояния битаTR0 регистра TCON.TMOD.4M0.1То же, но для CT1.TMOD.5M1.1То же, но для CT1.__TMOD.6То же, но для CT1.C/T1TMOD.7GATE1 То же, но для CT1.равен 1 мкс), а счетчика – в подсчете числаТаблица 12переходов из 1 в 0 на входах T0 и T1 микроРежим M1.x M0.xконтроллера.000Оба таймера/счетчика могут работать101в трех режимах (0, 1 и 2). Режим каждого210таймера/счетчика устанавливается битами311M1.х и M0.х. В режиме 3 работает толькотаймер/счетчик ТС0, используя часть битуправления ТС1.
В таблице 12 приведена комбинация бит M1.х и M0.хдля каждого режима работы таймера/счетчика.Режим 0 (рис. 24). В этом режиме счетный регистр имеет длину13 разрядов (8 разрядов регистра THx и 5 младших разрядов регистраTLx). Три старших разряда регистра TLx игнорируются. Сигнал переполнения счетчика фиксируется флажком TFx.Логика управления таймера/счетчика содержит: переключа-fosc:12Tx01INTxGATEx10C/TxTRxS1S2TLxTHx(5/8 БИТ)8 БИТDD2x = 0…1DD1 &1Рис. 24TFx34__тель S1 (мультиплексор,__ управляемый битом__C/Tx), устанавливающийрежим таймера (C/Tx=0) или счетчика (C/Tx=1); переключатель S2(мультиплексор, управляемый логикой разрешения счета).
Логика разрешения счета содержит ЛЭ DD1 и DD2. Она позволяет выполнить программное (GATEx=0) или аппаратное (GATEx=1) управление счетом.Программное управление выполняется битом____разрешения счетаTRx при установке GATEx=0, блокирующим вход INTx. Счет разрешается при TRx=1.Аппаратное управление разрешением счета производитсявнеш____ним управляющим сигналом, подаваемым____на вход INTx при установкеGATEx=1 и TRx=1.
Счет разрешается при INTx =1.Режим 0 введен для поддержки программного обеспечения микропроцессоров предыдуfoscS1щего семейства MCS-48.:12 0S2Режим 1 (рис. 24) отTx11личается от режима 0 исTFxTLx0пользованием 16 разрядC/Txного счетного регистра.D1DD2x = 0…1 Логика управления в реTRxS&DD1жимах 1 и 0 одинакова.Режим 2 отличаетсяGATEx1INTxTHxот режима 1 использованием автозагрузки счетного регистра (рис. 25). ВРис. 25этом режиме регистр TLxработает как 8-разрядный счетный регистр, а THx – как регистр хранения байта.
Сигнал переполнения счетного регистра TLx не только устанавливает бит переполнения TFx, но и перезагружает регистр TLx (открывает ключи D1) содержимым регистра THx, повторяя счет. Содержимое регистра THx при этом не изменяется. При выполнении функциитаймера прерывания следуют с периодом, определяемым содержимымрегистраTH0.Логикауправленияврежимах2иS3TR10 одинакова.1Режим 3 предназнаTF1TH0foscS1 0чен для работы только:12 0S2таймера/счетчика ТС0.
ВT011этом режиме он представTF0TL0ляетсобойдва0C/T08-разрядных счетных реDD2гистра TL0 и TH0, рабоTR0тающих независимо другDD1 &от друга (рис. 26). Логика1INT0 GATE0управления работой счетного регистра TL0 аналогична логике управления вРис. 2635режиме 0. При переполнении TL0 устанавливается флажок TF0.Счетный регистр TH0 работает только в режиме таймера. Дляуправления счетным регистром TH0 используются биты TR1 и TF1 таймера/счетчика ТС1. Сигнал переполнения фиксируется флажком TF1.Программное разрешение счета выполняется переключателем S3(мультиплексор, управляемый битом TR1). Счет разрешается приTR1=1. Аппаратное управление счетом отсутствует. Неиспользуемыерегистры TL1 и TH1 таймера/счетчика ТС1 можно использовать как регистры общего назначения.В режимах 0, 1 и 3 таймер/счетчик, после переполнения, продолжает работать, что может вызвать прерывания через максимальный интервал времени, определяемый используемым режимом.
Поэтому вначале прерывающей программы должен содержаться фрагмент перезагрузки таймера/счетчика, если он дальше нужен, или запрещения егоработы. Для перезагрузки необходимо приостановить работу таймера/счетчика, установив TRx=0, загрузить регистры TLx и THx и разрешить работу счетчика (TRx=1):CLRTRx;Остановить работу таймера/счетчикаMOVTLx, DataTLx;ЗагрузитьMOVTHx, DataTHx;счетный регистр,SETBTRx;Начать счет…………….;Прерывающая программаRETI;Выход из прерывающей программыДля запрещения его работы необходимо установить TRx=0:CLRTRx;Остановить работу таймера/счетчика…………….;Прерывающая программаRETI;Выход из прерывающей программы2.6.