Автор работы: Пользователь скрыл имя, 24 Декабря 2012 в 22:23, курс лекций
К началу 70-х годов были созданы сложные системы. Возникла потребность в передаче части функций управления периферийным устройствам, расположенным рядом с объектом управления. К концу 60-х годов в технике стала проявляться тенденция к децентрализации управления. Для этого требовались недорогие, малогабаритные и надежные вычислители. С другой стороны электрическая промышленность к этому времени способна была производить интегральные микросхемы (ИМС) до 3-го уровня интеграции.
1. Введение, цели и задачи курса ……………………………………………………………… 3
2. Историческая справка …………………………………………………………………………. 4
3. Структурная организация типового микроконтроллера МК51 …………………………….. 7
4. Методология проектирования систем на основе МП и МЭВМ ……………………………. 8
Описание микроконтроллера C8051F310/311 ……………………………………………… 12
1. Краткий обзор ……………………………………………………………………………… 12
2. Предельно допустимые параметры ……………………………………………………… 24
3. Основные электрические параметры …………………………………………………… . 25
4. Описание корпусов и выводов …………………………………………………………… 26
5. 10-разрядный АЦП ………………………………………………………………………… 30
6. Источник опорного напряжения ………………………………………………………… 44
7. Компараторы …………………….………………………………………………………… 46
8.4. Режимы управления электропитанием ……………………………………………… 53
9. Источники сброса ………………………….……………………………………………… 55
10. Flash-память ……………………………………………………………………………… 60
11. Встроенная память XRAM ……………………………………………………………… 70
12. Генераторы …………………………………………………………….………………… 72
13. Порты ввода/вывода ……………………..……………………………………………… 76
14. SMBus ……………………………………..……………………………………………… 87
15. UART0 ……………………………………..……………………………………………… 103
16. Модуль расширенного SPI (SPI0) ……..……………………………………………… 111
17. Таймеры ……………………………………………………………………………………… 122
18. Программируемый массив счетчиков ……………………………………………………… 137
Список использованных источников ……………………………………………………………
17.3.1. 16-разрядный таймер с автоперезагрузкой
Если T3SPLIT (TMR3CN.3) = 0, то Таймер 3 функционирует как 16-разрядный таймер с автоперезагрузкой. Для тактирования Таймера 3 можно использовать сигналы SYSCLK, SYSCLK/12 или EXTCLK/8. При переполнении Таймера 3 из состояния 0xFFFF в состояние 0x0000 16-разрядное значение регистров перезагрузки Таймера 3 (TMR3RLH:TMR3RLL) загружается в регистр Таймера 3, как показано на рисунке 17.6, и устанавливается в 1 флаг переполнения старшего байта Таймера 3 (TMR3CN.7).
Если прерывания от Таймера 3 разрешены (если EIE1.7 = 1), то прерывание будет генерироваться при каждом переполнении Таймера 3. Кроме того, если прерывания от Таймера 3 разрешены и бит TF3LEN (TMR3CN.5) установлен в 1, то прерывание будет генерироваться каждый раз при переполнении младших 8 бит (регистр TMR3L) из состояния 0xFF в состояние 0x00.
Рисунок 17.6. Структурная схема Таймера 3 в 16-разрядном режиме
17.3.2. 8-разрядные таймеры с автоперезагрузкой
Если T3SPLIT = 1, то Таймер 3 функционирует как два 8-разрядных таймера (TMR3H и TMR3L). Оба 8-разрядных таймера функционируют в режиме с автоперезагрузкой, как показано на рисунке 17.7. TMR3RLL содержит значение перезагрузки для TMR3L; TMR3RLH содержит значение перезагрузки для TMR3H. Бит TR3 в регистре TMR3CN управляет запуском TMR3H; TMR3L, работающий в 8-разрядном режиме, запущен всегда. Для тактирования каждого 8-разрядного таймера можно использовать сигналы SYSCLK, SYSCLK/12 или EXTCLK/8. Биты выбора источника тактирования Таймера 3 (T3MH и T3ML в регистре CKCON) выбирают либо SYSCLK, либо сигнал тактирования, определяемый битом выбора внешнего источника тактирования Таймера 3 (T3XCLK в регистре TMR3CN), следующим образом:
Если TMR3H переполняется из 0xFF в 0x00, то бит TF3H устанавливается в 1; если TMR3L переполняется из 0xFF в 0x00, то бит TF3L устанавливается в 1. Если прерывания от Таймера 3 разрешены (EIE1.7), то прерывание будет генерироваться при каждом переполнении TMR3H.
Если прерывания от Таймера 3 разрешены и бит TF3LEN (TMR3CN.5) установлен в 1, то прерывание будет генерироваться каждый раз при переполнении либо TMR3L, либо TMR3H.
Если TF3LEN = 1, то программа должна проверять флаги TF3H и TF3L, чтобы определить источник прерывания от Таймера 3. Флаги прерывания TF3H и TF3L не сбрасываются аппаратно и должны сбрасываться программно.
SFR-описание 17.13. TMR3CN: Регистр управления Таймера 3
SFR-адрес: 0x91
Бит 7: TF3H: Флаг переполнения старшего байта Таймера 3.
Этот бит аппаратно
состояния 0xFF в состояние 0x00. В 16-разрядном режиме это будет происходить при
переполнении Таймера 3 из состояния 0xFFFF в состояние 0x0000. Если прерывание от
Таймера 3 разрешено, то установка этого бита приведет к переходу на процедуру
обслуживания прерывания от Таймера 3. Этот бит не сбрасывается аппаратно, он должен
быть сброшен программно.
Бит 6: TF3L: Флаг переполнения младшего байта Таймера 3. Этот бит аппаратно устанавливается
в 1 при переполнении младшего байта Таймера 3 из состояния 0xFF в состояние 0x00. При
установке этого бита прерывание будет генерироваться в том случае, если TF3LEN = 1 и
прерывания от Таймера 3 разрешены. Бит TF3L устанавливается в 1 при переполнении
младшего байта независимо от режима работы Таймера 3. Этот бит не сбрасывается
аппаратно.
Бит 5: TF3LEN: Флаг разрешения прерывания от переполнения младшего байта Таймера 3. Этот
бит разрешает/запрещает прерывания от переполнения младшего байта Таймера 3. Если
TF3LEN = 1 и прерывания от Таймера 3 разрешены, то при переполнении младшего байта
Таймера 3 будет генерироваться прерывание.
0: Прерывания от переполнения младшего байта Таймера 3 запрещены.
1: Прерывания от переполнения младшего байта Таймера 3 разрешены.
Бит 4: TF3CEN: Включение режима захвата частоты НЧ-генератора для Таймера 3.
Этот бит включает/отключает
режим захвата частоты НЧ-
0: Режим захвата частоты НЧ-
1: Режим захвата частоты НЧ-
Бит 3: T3SPLIT: Выбор раздельного режима работы для Таймера 3.
Если этот бит установлен в 1, то Таймер 3 функционирует как два 8-разрядных таймера с
автоперезагрузкой.
0: Таймер 3 функционирует в 16-разрядном режиме с автоперезагрузкой.
1: Таймер 3 функционирует как два
8-разрядных таймера с
Бит 2: TR3: Бит управления запуском Таймера 3.
Этот бит включает/отключает Таймер 3. В 8-разрядном режиме этот бит
включает/отключает только TMR3H; TMR3L в этом режиме включен всегда.
0: Таймер 3 отключен.
1: Таймер 3 включен.
Бит 1: Не используется. Читается как 0b. Запись не оказывает никакого влияния.
Бит 0: T3XCLK: Выбор внешнего источника тактирования для Таймера 3. Этот бит выбирает
внешний источник тактирования для Таймера 3. Если Таймер 3 работает в 8-
разрядном режиме, то этот бит выбирает внешний источник тактирования для обоих
байтов таймера.
Однако все равно можно
0: В качестве внешнего источника тактирования для Таймера 3 выбран системный
тактовый сигнал, деленный по частоте на 12.
1: В качестве внешнего источника тактирования для Таймера 3 выбран сигнал внешнего
генератора, деленный по частоте на 8. Следует иметь ввиду, что сигнал EXTCLK/8 синхронизируется с системным тактовым сигналом SYSCLK.
SFR-описание 17.14. TMR3RLL: Младший байт регистра перезагрузки Таймера 3
SFR-адрес: 0x92
Биты 7-0: TMR3RLL: Младший байт регистра перезагрузки Таймера 3.
TMR3RLL содержит младший байт
SFR-описание 17.15. TMR3RLH: Старший байт регистра перезагрузки Таймера 3
SFR-адрес: 0x93
Биты 7-0: TMR3RLH: Старший байт регистра перезагрузки Таймера 3.
TMR3RLH содержит старший байт
SFR-описание 17.16. TMR3L: Младший байт Таймера 3
SFR-адрес: 0x94
Биты 7-0: TMR3L: Младший байт Таймера 3.
В 16-разрядном режиме регистр TMR3L содержит младший байт 16-разрядного Таймера 3.
В 8-разрядном режиме регистр TMR3L содержит 8-разрядное значение младшего байта
таймера.
SFR-описание 17.17. TMR3H: Старший байт Таймера 3
SFR-адрес: 0x95
Биты 7-0: TMR3H: Старший байт Таймера 3.
В 16-разрядном режиме регистр TMR3H содержит старший байт 16-разрядного Таймера 3.
В 8-разрядном режиме регистр TMR3H содержит 8-разрядное значение старшего байта
таймера.
18. Программируемый массив счетчиков
Программируемый массив счетчиков (ПМС)
реализует расширенные
- внутренний сигнал с частотой,
равной системной тактовой
- внутренний сигнал с частотой, равной 1/4 системной тактовой частоты;
- внутренний сигнал с частотой, равной 1/12 системной тактовой частоты;
- сигнал от внешнего генератора, деленный по частоте на 8;
- переполнение Таймера 0;
- входной сигнал на внешнем выводе ECI.
Каждый модуль захвата/сравнения можно независимо настроить для работы в одном из шести режимов: инициируемый по фронту сигнала захват, программный таймер, высокоскоростной выход, выход заданной частоты, 8-разрядный широтно-импульсный модулятор и 16-разрядный широтно-импульсный модулятор (описание каждого режима приведено в разделе «18.2. Модули захвата/сравнения»). Для управления модулем ПМС и для его настройки используются связанные с ним SFR-регистры. Структурная схема модуля ПМС показана на рисунке 18.1.
Важное примечание: Модуль 4 захвата/сравнения можно использовать как сторожевой таймер WDT (этот режим включается после системного сброса). Если режим WDT включен, то доступ к некоторым регистрам ПМС ограничен. Подробная информация приведена в разделе 18.3.
Рисунок 18.1. Структурная схема ПМС
18.1. Таймер/счетчик модуля ПМС
16-разрядный таймер/счетчик
Установка в 1 бита ECF в регистре PCA0MD разрешает генерацию запроса прерываний при установке флага CF. Бит CF не сбрасывается аппаратно при переходе к процедуре обслуживания прерывания и должен быть сброшен программно. Следует иметь ввиду, что прерывания от флага CF распознаются только в том случае, если прерывания от модуля ПМС разрешены глобально. Прерывания от ПМС разрешаются глобально установкой в 1 битов EA (IE.7) и EPCA0 (EIE1.4). Сброс в 0 бита CIDL регистра PCA0MD позволяет ПМС продолжать нормальное функционирование в то время, когда МК переведен в режим ожидания (Idle).
Таблица 18.1. Выбор тактового сигнала для ПМС
* Примечание: Сигнал от внешнего генератора, деленный по частоте на 8, синхронизируется
с системным тактовым сигналом.
Рисунок 18.2. Структурная схема таймера/счетчика модуля ПМС
18.2. Модули захвата/сравнения
Каждый модуль можно независимо настроить для работы в одном из шести режимов: инициируемый по фронту сигнала захват, программный таймер, высокоскоростной выход, выход заданной частоты, 8 - разрядный широтно-импульсный модулятор и 16-разрядный широтно-импульсный модулятор. Каждый модуль имеет связанные с ним регистры специального назначения, которые используются для обмена данными с модулем и для настройки режимов его работы.
В таблице 18.2 приведены комбинации бит в регистрах PCA0CPMn, используемые для перевода модулей захвата/сравнения в различные режимы работы. Установка в 1 битов ECCFn в регистрах PCA0CPMn разрешает генерацию прерываний при установке в 1 флагов CCFn. Следует иметь ввиду, что индивидуальные прерывания от флагов CCFn распознаются только в том случае, если прерывания от модуля ПМС разрешены глобально. Прерывания от ПМС разрешаются глобально установкой в 1 битов EA (IE.7) и EPCA0 (EIE1.4).
Схема формирования прерываний от модуля ПМС приведена на рисунке 18.3.
Рисунок 18.3. Схема формирования прерывания от ПМС
Таблица 18.2. Настройка
модулей захват/сравнение в
18.2.1. Режим захвата по фронту сигнала
В этом режиме активный фронт сигнала на внешнем выводе CEXn приведет к захвату значения таймера/счетчика ПМС и загрузке его в 16-разрядный регистр захвата/сравнения (PCA0CPLn и PCA0CPHn) соответствующего модуля. Биты CAPPn и CAPNn регистра PCA0CPMn определяют, по какому фронту будет осуществляться захват: по положительному (переход из 0 в 1), по отрицательному (переход из 1 в 0) или по любому фронту. Когда происходит захват, флаг захвата/сравнения (CCFn) в регистре PCA0CN устанавливается в 1 и, если прерывание от флага CCFn разрешено, генерируется запрос прерывания. Бит CCFn не сбрасывается аппаратно при переходе к процедуре обслуживания прерывания и должен быть сброшен программно.
Если оба бита CAPPn и CAPNn установлены
в 1, то состояние вывода порта, связанного
с CEXn, можно прочитать непосредственн
Рисунок 18.4. Структурная схема ПМС в режиме захвата
Примечание: Минимальная длительность удержания высокого или низкого уровней сигнала на входе CEXn должна быть не менее двух системных тактовых циклов, что необходимо для обеспечения его корректного распознавания модулем ПМС.
18.2.2. Режим программного таймера (сравнения)
В режиме программного таймера значение таймера/счетчика ПМС сравнивается со значением 16- разрядного регистра захвата/сравнения (PCA0CPHn и PCA0CPLn) соответствующего модуля. Когда происходит совпадение, флаг захвата/сравнения (CCFn) в регистре PCA0CN устанавливается в 1 и, если прерывание от флага CCFn разрешено, генерируется запрос прерывания. Бит CCFn не сбрасывается аппаратно при переходе к процедуре обслуживания прерывания и должен быть сброшен программно. Режим программного таймера включается установкой в 1 битов ECOMn и MATn регистра PCA0CPMn.