Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

2731

.pdf
Скачиваний:
0
Добавлен:
15.11.2022
Размер:
2.16 Mб
Скачать

выводы модуля SMBus (SDA, SCL), вывод приемника УАПП0 (RX0, в режиме 0) и вывод приемника УАПП1 (RX1, в режиме 0), которые всегда настроены как выходы с открытым стоком независимо от настроек соответствующих бит регистров

PnMDOUT.

Вывод порта настраивается как цифровой вход переводом его выходного драйвера в режим выхода с открытым стоком и записью лог. ‘1’ в соответствующий бит регистра данных порта. Например, Р3.7 настраивается как цифровой вход сбросом в 0 бита P3MDOUT.7 и установкой в 1 бита Р3.7.

Если вывод порта назначен посредством матрицы цифровому периферийному модулю и этот вывод функционирует как вход (например, RX0, вывод приемника УАПП0), то выходной драйвер этого вывода автоматически отключается.

Каждый вывод порта имеет внутреннюю слаботоковую подтяжку, которая по умолчанию включена. Она обеспечивает соединение данного вывода с шиной питания VDD через резистор с высоким сопротивлением (около 100кОм). Слаботоковые подтяжки можно глобально отключить, установив в 1 бит отключения слаботоковых подтяжек WEAKPUD (XBR2.7). Слаботоковые подтяжки автоматически отключаются у любого вывода, на который выдается лог. ‘0’, т.е. выход вывода не будет конфликтовать с собственной слаботоковой подтяжкой. Кроме этого, слаботоковые подтяжки выводов Порта 1 можно отключить, настроив эти выводы как аналоговые входы.

21

1.5. Система прерываний

CIP-51 имеет развитую систему прерываний, поддерживающую в общей сложности 20 источников прерываний с двумя уровнями приоритета. Распределение источников прерываний между встроенными периферийными модулями и внешними входными выводами зависит от конкретного типа МК. Каждый источник прерываний имеет один или несколько связанных с ним флагов прерываний, размещенных в SFR. Когда периферийный модуль или внешний источник прерываний регистрирует событие, удовлетворяющее условию прерывания, соответствующий флаг прерывания устанавливается в 1.

Если прерывание от источника прерываний разрешено, то при установке флага прерывания генерируется запрос прерывания. Как только выполнение текущей команды завершится, будет сгенерирована команда LCALL перехода по предопределенному адресу, откуда начнется исполнение процедуры обслуживания прерывания (interrupt service routine - ISR). Каждая ISR должна заканчиваться командой RETI, которая возвращает управление прерванной программе и приводит к выполнению той команды, которая исполнилась бы, если бы запроса прерывания не было. Если прерывания не разрешены, флаг прерывания игнорируется и выполнение программы продолжается в нормальном режиме. (Флаг прерывания устанавливается в 1 независимо от того, разрешены прерывания или запрещены).

Прерывание от каждого источника прерываний может быть разрешено или запрещено с помощью соответствующих битов разрешения прерываний в регистрах SFR (IE, IE1 или EIE2). Однако, сначала прерывания необходимо разрешить глобально установкой в 1 бита EA (IE.7), только после этого состояние индивидуальных флагов разрешения прерываний будет иметь силу. Сброс в 0 бита ЕА запрещает прерывания от всех источников прерываний независимо от состояния индивидуальных флагов разрешения прерываний.

22

Некоторые флаги прерываний сбрасываются автоматически аппаратными средствами при переходе к процедуре ISR. Однако большинство флагов прерываний не сбрасываются аппаратно и должны быть сброшены программно до возвращения из процедуры ISR. Если флаг прерывания остается установленным после завершения выполнения команды возврата из прерывания (RETI), то сразу же будет сгенерирован новый запрос прерывания и после завершения выполнения следующей команды произойдет повторный переход к процедуре ISR.

Данное семейство МК поддерживает 20 источников прерываний. Программа может симулировать прерывание установкой в 1 любого флага прерывания. Если прерывание для этого флага разрешено, будут сгенерирован запрос прерывания и произойдет переход по адресу процедуры ISR, связанной с этим флагом прерывания. Источники прерываний МК, соответствующие им адреса прерываний. Подробная информация относительно условий возникновения прерываний от периферийных модулей и поведения их флагов прерываний приведена в разделах данного руководства, посвященных работе соответствующих периферийных модулей.

Два внешних источника прерываний (/INT0 и /INT1) настраиваются как входы с низким активным уровнем, чувствительные к уровню или к фронту сигнала, в зависимости от состояния битов IT0 (TCON.0) и IT1 (TCON.2). Биты IE0

(TCON.1) и IE1 (TCON.3) служат флагами прерываний для внешних прерываний /INT0 и /INT1 соответственно. Если вход /INT0 или /INT1 настроен как чувствительный к фронту, то соответствующий флаг прерывания автоматически сбрасывается аппаратными средствами при переходе к процедуре ISR. Если вход /INT0 или /INT1 настроен как чувствительный к уровню, то соответствующий флаг прерывания отслеживает (повторяет) состояние входного вывода внешнего прерывания. Внешний источник прерывания должен удерживать на этом входе активный уровень до тех пор, пока запрос прерывания не будет распознан. Затем

23

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

Каждому источнику прерываний можно программно присвоить один из двух уровней приоритета: низкий или высокий. Процедура ISR с низким приоритетом может быть прервана прерыванием с высоким приоритетом. Прерывание с высоким приоритетом не может быть прервано. Каждое прерывание имеет связанный с ним бит приоритета в регистрах SFR (IP-EIP2), используемый для настройки уровня приоритета. По умолчанию присваивается низкий приоритет. Если два прерывания происходят одновременно, прерывание с более высоким приоритетом обслуживается первым.

1.6. Аналого-цифровой преобразователь

Каждый МК имеет встроенный 12-разрядный или 10разрядный АЦП (АЦП0) последовательного приближения с 9- канальным входным мультиплексором и программируемым усилителем (рис. 1.8). При максимальной производительности 100 тыс. преобразований в секунду эти 12-разр. и 10-разр. АЦП обеспечивают 12-битную точность преобразования с нелинейностью на уровне ±1МЗР. В качестве опорного напряжения АЦП0 может использоваться напряжение с внешнего вывода VREF или (в МК C8051F12x) выходной сигнал ЦАП0. МК в корпусах типа 100TQFP имеют специальный (отдельный) вывод входа опорного напряжения для АЦП0; МК в корпусах типа 64TQFP имеют общий вывод входа опорного напряжения для АЦП0 и для 8-разрядного АЦП2 Встроенный источник опорного напряжения генерирует и выдает на вывод VREF опорное напряжение, которое может использоваться для встроенных АЦП или для других (внешних) компонентов системы.

Управление АЦП осуществляется при помощи регистров специального назначения. Один входной канал подключен к внутреннему датчику температуры, остальные

24

восемь каналов доступны извне. Каждая пара из восьми внешних входных каналов может быть настроена как два однофазных входа или как один дифференциальный вход. Имеется возможность отключения АЦП с целью уменьшения энергопотребления.

Рис. 1.8. Структурная схема 12-разрядного АЦП

К выходу аналогового мультиплексора подключен усилитель с программируемым коэффициентом усиления. Коэффициент усиления можно задать программно из следующего ряда значений: 0.5, 1, 2, 4, 8, 16. Усилитель может быть крайне полезен, когда сигналы на разных входных каналах АЦП сильно отличаются друг от друга, либо когда необходимо оценить сигнал с большим смещением постоянной составляющей (в дифференциальном режиме для формирования напряжения смещения постоянной составляющей может использоваться ЦАП).

Преобразование может быть запущено четырьмя способами: командой в программе, при переполнении таймера 2, при переполнении таймера 3 или внешним входным сигналом. Такая гибкость позволяет запускать преобразование при возникновении определенных программных событий, по сигналам от внешних устройств или периодически при переполнении таймера. По окончании преобразования

25

устанавливается специальный бит состояния и инициируется прерывание, если оно разрешено, после чего полученное 10разрядное или 12-разрядное слово данных записывается в два регистра специального назначения. Результат преобразования может быть выровнен вправо или влево (задается программно).

АЦП может быть настроен таким образом, чтобы генерировать прерывание лишь при попадании или непопадании результата преобразования в заданный диапазон значений (окно). АЦП может непрерывно отслеживать сигнал в фоновом режиме, но не прерывать МК до тех пор, пока преобразованные данные находятся в пределах заданного окна.

МК C8051F12х имеют встроенный 8-разрядный АЦП (АЦП2) последовательного приближения с 8-канальным входным мультиплексором и программируемым усилителем (рис. 1.9). Этот АЦП отличается максимальной производительностью 500 тыс. преобразований в секунду и 8- битной точностью преобразования с нелинейностью на уровне ±1МЗР. Все восемь входных выводов доступны для проведения измерений. Управление АЦП осуществляется при помощи регистров специального назначения. В качестве опорного напряжения АЦП2 может использоваться напряжение питания аналоговых цепей (AV+) и внешнее напряжение с вывода VREF. МК в корпусах типа 100TQFP имеют специальный (отдельный) вывод входа опорного напряжения для АЦП2; МК в корпусах типа 64TQFP имеют общий вывод входа опорного напряжения для АЦП2 и для АЦП0. Имеется возможность отключения АЦП2 с целью уменьшения энергопотребления.

К выходу аналогового мультиплексора подключен усилитель с программируемым коэффициентом усиления. Усилитель может быть крайне полезен, когда сигналы на разных входных каналах АЦП сильно отличаются друг от друга, либо когда необходимо оценить сигнал с большим смещением постоянной составляющей (в дифференциальном режиме для формирования напряжения смещения постоянной составляющей может использоваться ЦАП). Можно задать

26

программно следующие значения для коэффициента усиления: 0.5, 1, 2 или 4.

Рис. 1.9. Структурная схема 8-разрядного АЦП

Гибкая система управления преобразованиями позволяет инициировать преобразование АЦП2 командой из программы, внешним входным сигналом или по переполнению таймера. Кроме этого преобразования АЦП2 можно синхронизировать с программно-управляемыми преобразованиями АЦП0. По окончании преобразования устанавливается специальный бит состояния и инициируется прерывание, если оно разрешено, после чего полученное 8- разрядное слово данных АЦП записывается в регистр специального назначения.

27

1.7. Цифро-аналоговые преобразователи и компараторы

МК C8051F12х имеет два встроенных 12-разрядных ЦАП. Управление каждым ЦАП осуществляется через регистры специального назначения (рис. 1.10). Любой ЦАП может быть переведен в режим пониженного энергопотребления.

Выходным сигналом ЦАП является напряжение. ЦАП имеет гибкий механизм обновления выходного сигнала, который позволяет производить обновление сигнала на выходе ЦАП либо командой из программы, либо по переполнению таймеров 2, 3 или 4. Опорное напряжение ЦАП подается через специальный входной вывод VREFD (в МК в корпусах типа 100TQFP) или от внутреннего источника опорного напряжения (в МК в корпусах типа 64TQFP). ЦАП удобно использовать для формирования порогового напряжения компаратора или напряжения смещения дифференциальных входов АЦП.

Рис. 1.10. Структурная схема ЦАП

Каждый МК имеет два встроенных аналоговых компаратора с отдельными входными выводами (рис. 1.11). Компараторы допускают программирование гистерезиса и времени отклика. Каждый компаратор может генерировать прерывание по переднему или заднему фронту петли гистерезиса, либо по обоим фронтам. Эти прерывания могут

28

вывести МК из режима остановки, а прерывание от Компаратора 0 может также использоваться в качестве источника сброса. Состояние выходов компараторов можно опрашивать программно. Кроме этого, с помощью коммутирующей матрицы можно вывести сигналы с выходов компараторов на внешние порты ввода/вывода. Когда компараторы не используются, их можно перевести в режим пониженного энергопотребления.

Рис. 1.11. Структурная схема компаратора

29

ГЛАВА 2. СИСТЕМА КОМАНД МИКРОКОНТРОЛЛЕРОВ СЕМЕЙСТВА 8051 2.1. Общие сведения о системе команд 8051

Микроконтроллеры семейства 8051 являются микропроцессорными устройствами с архитектурой CISC со стандартным набором команд, характерных для данной архитектуры. Система команд 8051 совместимых устройств включает 111 основных команд размером от одного до трех байт, но большая часть этих команд – одно или двухбайтовая. Почти все команды выполняются за один или два машинных цикла, что по времени приблизительно равно 1–2 мкс при тактовой частоте 12 МГц, за исключением команд умножения и деления, которые требуют для выполнения четыре машинных цикла.

Команды микроконтроллеров 8051 используют прямую, непосредственную, косвенную и неявную адресацию данных. При этом в качестве операндов команд могут выступать отдельные биты, четырехбитовые комбинации (тетрады), байты и слова из двух байт.

В набор команд семейства 8051 входит ряд команд, обеспечивающих выполнение специфичных функций управления, например, манипуляции с отдельными битами. Особенностью системы команд 8051 является возможность адресации отдельных бит в памяти данных, а также отдельных бит регистров специальных функций.

По выполняемым функциям команды микроконтроллера 8051 можно разделить на несколько групп:

-пересылки данных;

-арифметических операций;

-логических операций;

-операций над битами;

-передачи управления.

30

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]