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

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

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

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

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

MSC51.doc

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

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

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

GF1

GF0 PCON.3 PCON.2 Флаги, специфицируемые пользователем (флаги общего назначения)

PD PCON.1 Бит пониженной мощности. При установке бита в 1 микро-ЭВМ переходит в режим пониженной потребляемой мощности

IDL PCON.0 Бит холостого хода. Если бит установлен в 1, то микро-ЭВМ переходит в режим холостого хода 
 

Примечание. При  одновременной записи 1 в PD и IDL бит PD имеет преимущество. Сброс содержимого PCON выполняется путем загрузки в  него кода 0XXX0000. 

В режиме 2 частота  передачи определяется выражением 

f =2SMODfРЕЗ/64. 

Иными словами, при SMOD = 0 частота передачи равна 1/64 частоты fРЕЗ, а при SMOD = 1 - 1/32 частоты fРЕЗ. 

В режимах 1 и 3 в  формировании частоты передачи, кроме  управляющего бита SMOD, принимает участие  таймер 1. При этом частота передачи f зависит от частоты переполнения f OVLT и определяется следующим образом: 

f=2SMODfOVTL1/32 

При использовании  таймера 1 для тактирования последовательного  порта прерывания от этого таймера  должны быть запрещены. Таймер может  быть использован как в режиме шестнадцатиразрядного таймера, так  и в режиме таймера с автозагрузкой. Обычно используется режим таймера с автозагрузкой (старшая тетрада регистра TMOD = 0010В). При этом скорость передачи последовательного порта определяется выражением: 

f = 2SMODfРЕЗ/(32х12х(256 -ТН1)). 

Предельно низких скоростей приема и передачи по последовательному порту можно достичь при использовании таймера в режиме 1 (старший полубайт TMOD = 0001В). Перезагрузка 16-битного таймера должна осуществляться программным путем. При этом для того, чтобы можно было независимо от передачи выполнять дополнительные задачи, необходимо использовать механизм обработки прерываний и для этого разрешить прерывания от таймера 1. 

Настройка таймера 1 для управления скоростью работы последовательного порта.Частота  приема/передачи (BAUD RATE) Частота резонатора МГц Таймер/счетчик 1

SMOD С/Т Режим (MODE) Перезагружаемое число

Режим 0, макс: 1 МГц 12 X X X X

Режим 2, макс: 375 КГц 12 1 X X X

Режим 1, 3: 62,2 Кгц 12 1 0 2 0FFH

19,2 Кгц 11,059 1 0 2 0FDH

9,6 Кгц 11,059 0 0 2 0FDH

4,8 Кгц 11,059 0 0 2 0FAH

2,4 Кгц 11,059 0 0 2 0F4H

1,2 Кгц 11,059 0 0 2 0F4H

137,5 Гц 11,059 0 0 2 1DH

110 Гц 6 0 0 2 72H

110 Гц 12 0 0 1 0FЕЕВН 
 

Отметим, что  для старших моделей семейства MCS-51 при использовании для синхронизации  последовательного порта таймеров 1 и 2 скорости приема и передачи информации по последовательному порту могут различаться. 

Режим 0. Синхронный последовательный порт. 

В нулевом режиме последовательный порт работает как  обыкновенный сдвиговый регистр. Это  позволяет использовать последовательный порт для увеличения количества внешних ножек микросхемы. Использование сдвиговых регистров для этой цели показано на рисунке 1 и 3. Передача по последовательному порту начинается после записи байта в регистр данных SBUF. Временная диаграмма сигнала, вырабатываемого последовательным портом микроконтроллера при передаче восьми бит данных приведена на рисунке 2. Приём байта по последовательному порту начинается после обнуления флага готовности приёмника RI. Временная диаграмма приёма входной информации последовательным портом в нулевом режиме приведена на рисунке 4. 

 

Рисунок 1. Использование  нулевого режима работы последовательного  порта в качестве расширителя  портов.

 

Рисунок 2. Временная  диаграмма работы последовательного  порта в нулевом режиме после  записи передаваемого байта в регистр данных SBUF.  

Нулевой режим  работы задаётся записью комбинации 00 в биты SM0 и SM1 регистра SCON. В синхронном режиме работы информация передается, и принимается через вывод  входа приемника RxD, то есть в этом режиме работы последовательный порт работаем в симплексном режиме. Через вывод TxD выдаются импульсы синхронизации, которые сопровождают каждый информационный бит. Скорость передачи в этом режиме фиксирована и составляет 1/12*Fген. Это означает, что при частоте задающего генератора 24 МГц обмен данными осуществляется на скорости 2 мегабита в секунду. 

Для осуществления  передачи байта данных достаточно занести  его в буфер данных SBUF, как это  показано в примере:

MOV SCON, #0          ;Настроить последовательный порт  на передачу в синхронном режиме

MOV SBUF, A           ;Передать содержимое аккумулятора  по последовательному порту

  JNB TI, $             ;Подождать окончания передачи

MOV SBUF, #56H        ;Передать  по последовательному  порту число 56h

  JNB TI, $             ;Подождать окончания передачи 

 

Рисунок 3. Использование  нулевого режима работы последовательного  порта для ввода информации. 

 
 

Рисунок 4. Временная  диаграмма приёма входной информации последовательным портом в нулевом  режиме после обнуления флага  готовности приёмника RI.  

Для осуществления  приёма байта данных достаточно настроить  порт на приём в синхронном режиме работы и обнулить флаг приёма RI, как  это показано в примере, приведённом  на рисунке 5.

;Настроить режим  работы последовательного порта-----------------------------------------------------------------------------------

mov SCON,#00010000b                    ;настроить последовательный порт  на нулевой режим работы

          ;||||||||

          ;|||||||+-------Обнулить флаг приёмника  RI

          ;||||||+--------Обнулить флаг передатчика TI

          ;|||||+---------Обнулить девятый бит  приёмника RB8

          ;||||+----------Обнулить  девятый бит  передатчика TB8

          ;|||+-----------Разрешить работу приёмника

          ;||+------------В синхронном режиме не имеет значения

          ;++-------------Включить синхронный режим  работы последовательного порта

;Так как предыдущая  команда обнуляет флаг RI то с  этого момента начинается приём  байта--------------------------------------------

  JNB RI, $             ;Подождать окончания приёма байта по последовательному порту

  MOV A, SBUF           ;и скопировать его в аккумулятор 

Рисунок 5. Программа  считывания одного байта из внешнего регистра по последовательному порту. 

В настоящее  время разработано огромное количество микросхем таких как, например, синтезаторы частоты, микросхемы приёмников, блоков цветности телевизоров, микросхем памяти данных, управление которыми осуществляется по последовательному протоколу. При этом микросхемы обычно реализуют синхронные протоколы обмена SPI или I2C. Последовательный порт микроконтроллеров семейства MCS-51, работающий в нулевом режиме позволяет осуществлять обмен с такими микросхемами при минимальных программно-аппаратных затратах. 

Справедливости  ради необходимо отметить, что в современных микросхемах семейства MCS-51 присутствуют отдельные последовательные порты, работающие по протоколу SPI или I2C. В качестве примера такой микросхемы можно назвать ADuC834 фирмы Analog Devices. В микросхемах с отдельными SPI или I2C портами последовательный порт используется исключительно для связи с универсальным компьютером. 

Режим 1. Асинхронный  восьмиразрядный последовательный порт. 

В первом режиме работы последовательный порт работает в асинхронном режиме. Временная  диаграмма передаваемых сигналов через последовательный порт в асинхронном режиме работы показана на рисунке 6. Первый режим работы задаётся записью комбинации 01 в биты SM0 и SM1 регистра SCON. В асинхронном режиме работы информация передается через ножку передатчика последовательного порта микроконтроллера TxD, а принимается через вывод входа приемника RxD, то есть в этом режиме работы последовательный порт работает в дуплексном режиме. Это означает, что передача и приём информации может вестись независимо друг от друга. Скорость передачи в этом режиме настраивается при помощи таймера T1. 

 

Рисунок 6. Временная  диаграмма приёма или передачи информации последовательным портом в первом режиме работы.  

При работе в  асинхронном режиме работы два микроконтроллера могут обмениваться информацией между собой. Такой способ обмена позволяет сократить до минимума количество соединительных проводов между блоками или даже отдельными устройствами. Единственное условие: в отличие от синхронного режима работы, скорости работы последовательных портов должны быть одинаковыми. Обычно используются стандартные скорости передачи, такие как 1200бит/с, 2400 бит/с и т.д. Для таких скоростей передачи обычно используется кварцевый резонатор с частотой 11.0592 МГц. Скорости передачи и коэффициенты, загружаемые в таймер 1, для этих скоростей передачи приведены в таблице 1. 

В отличие от нулевого режима работы в первом режиме работы возможен обмен информацией  между двумя микроконтроллерами, а не только между микроконтроллером  и исполнительными микросхемами. Схема соединения двух микроконтроллеров между собой для обмена информацией приведена на рисунке 7. Таким образом может быть построена простейшая многопроцессорная система. 

 

Рисунок 7. Схема  обмена информацией между двумя  микроконтроллерами по последовательному порту.  

В первом режиме работы, также как и в нулевом  для передачи байта через последовательный порт достаточно скопировать его  в буфер данных SBUF. Единственное отличие заключается в том, что, кроме настройки регистра SCON, необходимо настроить таймер для задания скорости передачи информации по последовательному порту. При приёме байта по последовательному порту приём начинается только после обнаружения стартового бита. 

В качестве примера  работы с последовательным портом приведём подпрограмму инициализации последовательного порта для работы в асинхронном режиме на скорости 9600 бит/с. Настройка режима работы последовательного порта в этой программе производится записью двоичной константы в регистр управления SCON. Выбор конкретных значений бит двоичной константы подробно приводится в комментариях к программе. 

Так как для  последовательного порта требуется  таймер, то, кроме настройки последовательного  порта, при помощи регистра выбора режима работы таймеров TMOD настраивается таймер T1. Эта настройка тоже производится при помощи записи двоичной константы. 

Скорость работы последовательного порта настраивается  записью константы 0FDh в старший  байт таймера T1.

;*********************************************************************************************************************************

;НАСТРОЙКА ПОСЛЕДОВАТЕЛЬНОГО  ПОРТА

;*********************************************************************************************************************************

;Настроить режим  работы последовательного порта-----------------------------------------------------------------------------------

mov SCON,#01110000b                    ;настроить последовательный порт  на первый режим работы

          ;||||||||

          ;|||||||+-------Обнулить флаг приёмника RI

          ;||||||+--------Обнулить флаг передатчика  TI

          ;|||||+---------Обнулить девятый бит  приёмника RB8

          ;||||+----------Обнулить  девятый бит  передатчика TB8

          ;|||+-----------Разрешить работу приёмника

          ;||+------------Проверять ошибку кадра (приём нулевого бита на месте стоп-бита)

          ;++-------------Включить асинхронный режим  работы последовательного порта 

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