Состав семейства MCS-51

Автор работы: Пользователь скрыл имя, 11 Апреля 2011 в 12:22, реферат

Краткое описание

В настоящее время среди всех 8-разрядных микроконтроллеров - семейство MCS-51 является несомненным чемпионом по количеству разновидностей и количеству компаний, выпускающих его модификации. Оно получило свое название от первого представителя этого семейства - микроконтроллера 8051, выпущенного в 1980 году на базе технологии n-МОП.

Содержимое работы - 1 файл

MSC51.doc

— 589.00 Кб (Скачать файл)

Биты включения таймеров TR0 и TR1 размещены в регистре TCON (control - управлять), а биты GATE и C/T в регистре TMOD. Формат регистра TCON приведён на следующем рисунке:

 

Рисунок 7. Формат регистра управления режимами работы таймеров TCON.Символ Позиция Имя и назначение

TF1 TCON.7 

Флаг переполнения таймера 1. Устанавливается аппаратно  при переполнении таймера/счетчика. Сбрасывается при обслуживании прерывания аппаратно

TR1 TCON.6 

Бит управления таймера 1. Устанавливается/сбрасывается программой для пуска/останова

TF0 TCON.5 

Флаг переполнения таймера 0. Устанавливается аппаратурно. Сбрасывается при обслуживании прерывания

TR0 TCON.4 

Бит управления таймера 0. Устанавливается / сбрасывается программой для пуска/останова таймера/счетчика

IE1 TCON.3 

Флаг фронта прерывания 1. Устанавливается аппаратно, когда детектируется срез внешнего сигнала INT1. Сбрасывается при обслуживании прерывания

IT1 TCON.2 

Бит управления типом прерывания 1. Устанавливается / сбрасывается программно для определения  типа запроса прерывания INT1 (срезу/низким уровнем).

IE0 TCON.1 

Флаг фронта прерывания 0. Устанавливается по срезу  сигнала INT0. Сбрасывается при обслуживании прерывания

IT1 TCON .0 

Бит управления типом прерывания 0. Устанавливается / сбрасывается программно для определения  типа запроса прерывания INT0 (срез/низкий уровень) 
 

Кроме того, схема  управления таймерами интересна  тем, что позволяет использовать таймеры в качестве измерительных  приборов. Рассмотрим эту возможность  подробнее. 

Использование таймера в качестве измерителя ширины импульсов.  

Известно, что  измерение длительности импульса можно  произвести, подсчитав импульсы эталонной  частоты. Принцип измерения длительности импульсов иллюстрируется рисунком 8. 

Для измерения  длительности импульса измеряемый сигнал подаётся на вывод микроконтроллера INTx и в бит управления GATE записывается разрешающий сигнал логической единицы. Таймер/счётчик настраивается в режим таймера записью в бит C/Tx логического нуля. Содержимое таймера обнуляется. 

Пример программы  измерения длительности импульса приведён на рисунке 9. 

 

Рисунок 10. Принцип  измерения частоты 

Для измерения  частоты измеряемый сигнал подаётся на вывод микроконтроллера Tx. Таймер/счётчик  настраивается в режим счётчика записью в бит C/Tx логической единицы. Содержимое таймера обнуляется. Таймер включается на строго определённый интервал времени. Этот интервал задаётся оставшимся таймером. 

Пример программы  измерения частоты сигнала на ножке микроконтроллера T0 приведён на рисунке 11.

     mov TMOD,#00010101b

              ;||||||||

              ;||||||++-------Перевести таймер T0 в шестнадцатиразрядный  режим 

              ;|||||+---------Работать от сигнала  на ножке T0

              ;||||+----------Запретить управление таймером  от ножки INT0

              ;||++-----------Перевести таймер T1 в шестнадцатиразрядный режим

              ;|+-------------Синхронизироваться от  внутреннего генератора

              ;+--------------Запретить управление таймером  от ножки INT1 
 

     mov TH0, #0          ;Обнулить  старший байт счётчика

     mov TL0, #0          ;Обнулить  младший байт счётчика

;---измерение  вести 1 мс---------------------------------------------------------

     mov TH1, #HIGH(-1000) ;Загрузить старший байт  таймера

     mov TL1, #LOW(-1000)  ;Загрузить младший  байт таймера 

     mov TCON,#01010000b ;Включить частотомер

              ;||||||||

              ;|||||||+-------Прерывание от ножки  INT1возникает по фронту

              ;||||||+--------Сбросить запрос прерывания  от ножки INT1

              ;|||||+---------Прерывание от ножки INT1возникает по фронту

              ;||||+----------Сбросить запрос прерывания  от ножки INT1

              ;|||+-----------Включить таймер T0

              ;||+------------Обнулить флаг таймера  T0

              ;|+-------------Включить таймер T1

              ;+--------------Обнулить флаг таймера  T1 

TstTimeOut:

     jnb TF1, TstTimeOut     ;Если 1 мс прошла

          mov TCON, #00000000b    ;то отключить  частотомер

                    ;||||||||

                    ;|||||||+-------Прерывание от ножки INT1 возникает по фронту

                    ;||||||+--------Сбросить запрос прерывания  от ножки INT1

                    ;|||||+---------Прерывание от ножки  INT1возникает по фронту

                    ;||||+----------Сбросить запрос прерывания  от ножки INT1

                    ;|||+-----------Отключить таймер T0

                    ;||+------------Обнулить флаг таймера  T0

                    ;|+-------------Отключить таймер T1

                    ;+--------------Обнулить флаг таймера  T1 

Рисунок 11. Программа измерения частоты  

Если теперь на вход микроконтроллера T0 подать сигнал с неизвестной частотой, то в регистрах TH0 и TL0 будет записана его частота  в килогерцах. 

Последовательный  порт микроконтроллера 8051 

Через универсальный  последовательный порт осуществляются прием и передача информации, представленной в последовательном коде (младшими битами вперед). Наличие буферного регистра приемника позволяет совмещать операцию чтения ранее принятого байта с приемом очередного. Но если к моменту окончания приема байта предыдущий не был считан из SBUF, то он будет потерян. Работой последовательного порта управляют три регистра:

Регистр управления/статуса  приемопередатчика SCON

Бит SMOD регистра управления мощностью PCON

Буферный регистр  приемопередатчика SBUF 

Последовательный  порт может работать в четырех  различных режимах.

Режим 0. Синхронный режим . Информация передается, и принимается  через вывод входа приемника RxD. Принимаются или передается 8 бит  данных. Через вывод TxD выдаются импульсы синхронизации, которые сопровождают каждый бит. Скорость передачи фиксирована и составляет 1/12 Fген.

Режим 1. Асинхронный 8-ми битовый режим . Передаются (через TXD) или принимаются (через RXD) 10 бит: старт-бит (логический 0), 8 бит данных (младшим разрядом вперед) и стоп-бит (логическая 1). При приеме, стоп-бит поступает в бит RB8 регистра SCON. Скорость передачи в режиме 1 переменная: для управления скоростью передачи вы можете использовать таймер Т1 и/или Т2.

Режим 2. Асинхронный 9-ти битовый режим с фиксированной скоростью передачи. Передаются (через TXD) или принимаются (через RXD) 11 бит: старт-бит. 8 бит данных (младшим разрядом вперед), программируемый 9-й бит данных и стоп-бит. При передаче, в 9-й бит данных (бит ТВ8 регистра SCON) может быть записан логический 0 или 1, например, значение бита четности (бит Р регистра PSW). При приеме, 9-й бит данных поступает в бит RB8 регистра SCON. Присутствие стоп-бита контролируется схемой обнаружения ошибки кадра. Скорость передачи программируется и может быть равна либо 1/32, либо 1/64 частоты резонатора в зависимости от управляющего бита SMOD.

Режим 3. Асинхронный 9-ти битовый режим. совпадает с  режимом 2 во всех деталях, за исключением  частоты приема/передачи, которая  задается таймером. 

Во всех четырех  режимах передача начинается любой командой, которая использует SBUF как регистр-приемник. Прием в режиме 0 начинается при условии RI = 0, REN = 1. Прием в других режимах начинается с приходом старт-бита, если бит REN установлен.

Регистр управления/статуса  приемопередатчика SCON 

Управление режимом  работы приемопередатчика осуществляется через специальный регистр с  символическим именем SCON. Этот регистр  содержит не только управляющие биты, определяющие режим работы последовательного  порта, но и девятый бит принимаемых или передаваемых данных (RB8 и ТВ8) и биты прерывания приемопередатчика (R1 и Т1). 
 

Функциональное  назначение бит регистра управления/статуса  приемопередатчика SCON.Символ Позиция Имя и назначение

SM0 SCON.7 Биты управления режимом работы приемопередатчика. Устанавливаются/сбрасываются программно см. примечание 1  SM0 SM1 Режим работы приемопередатчика

0  0  Сдвигающий регистр расширения ввода/вывода

0 1 8 битовый приемопередатчик, изменяемая скорость передачи

1 0 9 битовый приемопередатчик. Фиксированная скорость передачи

1 1 9 битовый приемопередатчик, изменяемая скорость передачи 

SM1 SCON.6

SM2 SCON.5 Бит управления режимом приемопередатчика. Устанавливается программно для запрета приема сообщения, в котором девятьй бит имеет значение 0

REN SCON.4 Бит разрешения приема. Устанавливается/сбрасывается программно для разрешения/запрета приема последовательных данных

TB8 SCON. 3 Передача бита 8. Устанавливается/сбрасывается программно для задания девятого передаваемого бита в режиме 9-битового передатчика

RB8 SCON.2 Прием бита 8. Устанавливается/сбрасывается аппаратно для фиксации девятого принимаемого бита в режиме 9-битового приемника

TI SCON. 1 Флаг прерывания передатчика. Устанавливается аппаратно при окончании передачи байта. Сбрасывается программно после обслуживания прерывания

RI SCON.0 Флаг прерывания приемника. Устанавливается аппаратно при приеме байта. Сбрасывается программно после обслуживания прерывания 
 

Прикладная программа  путем загрузки в старшие биты регистра SCON двухбитного кода определяет режим работы приемопередатчика. Во всех четырех режимах работы передача инициализируется любой командой, в которой буферный регистр SBUF указан как получатель байта. Как уже отмечалось, прием в режиме 0 осуществляется при условии, что R1 = 0 и REN = 1, в остальных режимах - при условии, что REN = 1. 

В бите ТВ8 программно устанавливается значение девятого бита данных, который будет передан 8 режиме 2 или 3. В бите RB8 в этих режимах  фиксируется девятый принимаемый  бит данных. В режиме 1 в бит RB8 заносится стоп-бит. В режиме 0 бит RB8 не используется. 
 

Флаг прерывания передатчика ТI устанавливается  аппаратно в конце периода  передачи стоп-бита во всех режимах. Соответствующая  подпрограмма обслуживания прерывания должна сбрасывать бит TL. 

Флаг прерывания приемника RI устанавливается аппаратно в конце периода приема восьмого бита данных в режиме 0 и в середине периода приема стоп-бита в режимах 1, 2 и 3. Подпрограмма обслуживания прерывания должна сбрасывать бит RI.

Скорость приема/передачи информации через последовательный порт 

Скорость приема/передачи, т.е. частота работы приемопередатчика  в различных режимах, определяется различными способами. 

В режиме 0 частота  передачи зависит только от резонансной  частоты кварцевого резонатора f РЕЗ: 

f=fРЕЗ/12. 

За машинный цикл последовательный порт передает один бит информации. В режимах 1, 2 и 3 скорость приема/передачи зависит от значения управляющего бита SMOD в регистре специальных функций PCON. 

Регистр управления мощностью PCONСимвол Позиция Наименование и функция

SMOD PCON.7 Удвоенная скорость передачи. Если бит установлен в 1, то скорость передачи вдвое больше, чем при SMOD = 0. По сбросу SMOD = 0.

  PCON.6 Не используется

Информация о работе Состав семейства MCS-51