Лекции по «Проектированию и программированию микропроцессорных систем управления»

Автор работы: Пользователь скрыл имя, 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
Список использованных источников ……………………………………………………………

Прикрепленные файлы: 1 файл

Лекции по курсу МК.doc

— 4.57 Мб (Скачать документ)

1: Внешнее прерывание 0 вызывается  фронтом сигнала /INT0.

 

SFR-описание 17.2. TMOD: Регистр  режима Таймеров 0 и 1

SFR-адрес: 0x89

Бит 7: GATE1: Управление блокировкой  Таймера 1.

0: Таймер 1 включен, если TR1 = 1, независимо  от логического уровня на входе  /INT1.

1: Таймер 1 включен только тогда,  когда TR1 = 1 и на входе /INT1 активный логический

уровень, определяемый битом IN1PL в  регистре IT01CF (см. SFR-описание 10.7).

Бит 6: C/T1: Выбор режима таймера или  счетчика для Т/С1.

0: Т/С1 работает как таймер: Таймер 1 инкрементируется от внутреннего  сигнала

тактирования, который задается битом T1M (CKCON.4).

1: Т/С1 работает как счетчик:  Таймер 1 инкрементируется под воздействием  перехода из 

‘1’ в ‘0’ внешнего входного сигнала (T1).

Биты 5-4: T1M1-T1M0: Выбор режима работы Таймера 1. Эти биты определяют режим работы

таймера 1.

Бит 3: GATE0: Управление блокировкой  Таймера 0.

0: Таймер 0 включен, если TR0 = 1, независимо  от логического уровня на входе  /INT0.

1: Таймер 0 включен только тогда,  когда TR0 = 1 и на входе /INT0 активный  логический 

уровень, определяемый битом IN0PL в регистре IT01CF (см. SFR-описание 10.7).

Бит 2: C/T0: Выбор режима таймера или  счетчика для Т/С0.

0: Т/С0 работает как таймер: Таймер 0 инкрементируется от внутреннего  сигнала

тактирования, который задается битом T0M (CKCON.3).

1: Т/С0 работает как счетчик: Таймер 0 инкрементируется под воздействием перехода из

‘1’ в ‘0’ внешнего входного сигнала (T0).

Биты 1-0: T0M1-T0M0: Выбор режима работы Таймера 0.

Эти биты определяют режим работы Таймера 0.

 

SFR-описание 17.3. CKCON: Регистр управления тактированием

SFR-адрес: 0x8E

Бит 7: T3MH: Выбор источника тактирования для старшего байта Таймера 3.

Этот бит определяет, какой тактовый сигнал будет подаваться на старший  байт Таймера 3, если Таймер 3 функционирует  в раздельном 8-разрядном режиме. Бит Т3МH игнорируется, если Таймер 3 функционирует в любом другом режиме.

0: Для тактирования старшего  байта Таймера 3 используется  сигнал, определяемый битом 

T3XCLK в регистре TMR3CN.

1: Старший байт Таймера 3 тактируется  системным тактовым сигналом.

Бит 6: T3ML: Выбор источника тактирования для младшего байта Таймера 3.

Этот бит определяет, какой тактовый сигнал будет подаваться на Таймер 3. Если Таймер 3

функционирует в раздельном 8-разрядном  режиме, то бит Т3МL определяет, какой 

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

0: Для тактирования младшего  байта Таймера 3 используется  сигнал, определяемый битом 

T3XCLK в регистре TMR3CN.

1: Младший байт Таймера 3 тактируется  системным тактовым сигналом.

Бит 5: T2MH: Выбор источника тактирования для старшего байта Таймера 2.

Этот бит определяет, какой тактовый сигнал будет подаваться на старший  байт Таймера 2, если таймер 2 функционирует  в раздельном 8-разрядном режиме. Бит Т2МH игнорируется, если Таймер 2 функционирует в любом другом режиме.

0: Для тактирования старшего  байта Таймера 2 используется  сигнал, определяемый битом 

T2XCLK в регистре TMR2CN.

1: Старший байт Таймера 2 тактируется  системным тактовым сигналом.

Бит 4: T2ML: Выбор источника тактирования для младшего байта Таймера 2.

Этот бит определяет, какой тактовый сигнал будет подаваться на Таймер 2. Если Таймер 2

функционирует в раздельном 8-разрядном  режиме, то бит Т2МL определяет, какой 

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

0: Для тактирования младшего байта Таймера 2 используется сигнал, определяемый битом

T2XCLK в регистре TMR2CN.

1: Младший байт Таймера 2 тактируется  системным тактовым сигналом.

Бит 3: T1M: Выбор источника тактирования для Таймера 1.

Этот бит определяет, какой тактовый сигнал будет подаваться на Таймер 1. Бит Т1М

игнорируется, если С/Т1 = 1.

0: Для тактирования Таймера 1 используется сигнал, определяемый  битами настройки

предварительного делителя (SCA1 – SCA0).

1: Таймер 1 тактируется системным  тактовым сигналом.

Бит 2: T0M: Выбор источника тактирования для Таймера 0.

Этот бит определяет, какой тактовый сигнал будет подаваться на Таймер 0. Бит Т0М игнорируется, если С/Т0 = 1.

0: Для тактирования Таймера 0 используется сигнал, определяемый  битами настройки

предварительного делителя (SCA1 – SCA0).

1: Таймер 0 тактируется системным  тактовым сигналом.

Биты 1-0: SCA1–SCA0: Биты выбора коэффициента деления для частоты тактирования Таймеров 0 и 1.

Эти биты управляют делением частоты  сигнала тактирования, подаваемого  на Таймер 0 и/или

Таймер 1, если они настроены на использование предварительного делителя.

Примечание: Сигнал EXTCLK/8 синхронизирован  с SYSCLK.

 

SFR-описание 17.4. TL0: Младший  байт Таймера 0

SFR-адрес: 0x8A

Биты 7-0: TL0: Младший байт Таймера 0.

Регистр TL0 является младшим байтом 16-разрядного Таймера 0.

 

SFR-описание 17.5. TL1: Младший  байт Таймера 1

SFR-адрес: 0x8B

Биты 7-0: TL1: Младший байт Таймера 1.

Регистр TL1 является младшим байтом 16-разрядного Таймера 1.

 

SFR-описание 17.6. TH0: Старший  байт Таймера 0

SFR-адрес: 0x8C

Биты 7-0: TH0: Старший байт Таймера 0.

Регистр TH0 является старшим байтом 16-разрядного Таймера 0.

 

SFR-описание 17.7. TH1: Старший  байт Таймера 1

SFR-адрес: 0x8D

Биты 7-0: TH1: Старший байт Таймера 1.

Регистр TH1 является старшим байтом 16-разрядного Таймера 1.

 

 

17.2. Таймер 2

Таймер 2 представляет собой 16-разрядный  таймер/счетчик, образованный двумя 8-разрядными SFR регистрами: TMR2L (младший байт) и TMR2H (старший байт). Таймер 2 может работать в 16-разрядном режиме с автоперезагрузкой или в раздельном режиме (8-разрядный режим с автоперезагрузкой). Режим работы Таймера 2 определяется битом T2SPLIT (TMR2CN.3).

Таймер 2 может тактироваться либо системным тактовым сигналом, либо системным тактовым сигналом, деленным по частоте на 12, либо выходным сигналом внешнего генератора, деленным по частоте на 8. Режим работы с тактированием от внешнего генератора идеально подходит для реализации функции RTC (Real-Time Clock – часы реального времени), когда внутренний генератор генерирует системный тактовый сигнал, а Таймер 2 (и/или ПМС) тактируется внешним прецизионным генератором. Следует иметь ввиду, что сигнал внешнего генератора, деленный по частоте на 8, синхронизируется с системным тактовым сигналом.

17.2.1. 16-разрядный таймер  с автоперезагрузкой

Если T2SPLIT (TMR2CN.3) = 0, то Таймер 2 функционирует  как 16-разрядный таймер с автоперезагрузкой. Для тактирования Таймера 2 можно  использовать сигналы SYSCLK, SYSCLK/12 или EXTCLK/8. При переполнении Таймера 2 из состояния 0xFFFF в состояние 0x0000 16-разрядное значение регистров перезагрузки Таймера 2 (TMR2RLH:TMR2RLL) загружается в регистр Таймера 2, как показано на рисунке 17.4, и устанавливается в 1 флаг переполнения старшего байта Таймера 2 (TMR2CN.7).

Если прерывания от Таймера 2 разрешены  (если IE.5 = 1), то прерывание будет генерироваться при каждом переполнении Таймера 2. Кроме того, если прерывания от Таймера 2 разрешены и бит TF2LEN (TMR2CN.5) установлен в 1, то прерывание будет генерироваться каждый раз при переполнении младших 8 бит (регистр TMR2L) из состояния 0xFF в состояние 0x00.

Рисунок 17.4. Структурная  схема Таймера 2 в 16-разрядном режиме

17.2.2. 8-разрядные таймеры  с автоперезагрузкой

Если T2SPLIT = 1, то Таймер 2 функционирует  как два 8-разрядных таймера (TMR2H и TMR2L). Оба 8-разрядных таймера функционируют в режиме с автоперезагрузкой, как показано на рисунке 17.5. TMR2RLL содержит значение перезагрузки для TMR2L; TMR2RLH содержит значение перезагрузки для TMR2H. Бит TR2 в регистре TMR2CN управляет запуском TMR2H; TMR2L, работающий в 8-разрядном режиме, запущен всегда. Для тактирования каждого 8-разрядного таймера можно использовать сигналы SYSCLK, SYSCLK/12 или EXTCLK/8. Биты выбора источника тактирования Таймера 2 (T2MH и T2ML в регистре CKCON) выбирают либо SYSCLK, либо сигнал тактирования, определяемый битом выбора внешнего источника тактирования Таймера 2 (T2XCLK в регистре TMR2CN), следующим образом:

Если TMR2H переполняется из 0xFF в 0x00, то бит TF2H устанавливается в 1; если TMR2L переполняется из 0xFF в 0x00, то бит TF2L устанавливается в 1. Если прерывания от Таймера 2 разрешены (IE.5), то прерывание будет генерироваться при каждом переполнении TMR2H. Если прерывания от Таймера 2 разрешены и бит TF2LEN (TMR2CN.5) установлен в 1, то прерывание будет генерироваться каждый раз при переполнении либо TMR2L, либо TMR2H. Если TF2LEN = 1, то программа должна проверять флаги TF2H и TF2L, чтобы определить источник прерывания от Таймера 2. Флаги прерывания TF2H и TF2L не сбрасываются аппаратно и должны сбрасываться программно.

Рисунок 17.5. Структурная  схема Таймера 2 в 8-разрядном режиме

SFR-описание 17.8. TMR2CN: Регистр  управления Таймера 2

SFR-адрес: 0xC8 (доступен в битовом режиме адресации)

Бит 7: TF2H: Флаг переполнения старшего байта Таймера 2.

Этот бит аппаратно устанавливается в 1 при переполнении старшего байта Таймера 2 из состояния 0xFF в состояние 0x00. В 16-разрядном режиме это будет происходить при переполнении Таймера 2 из состояния 0xFFFF в состояние 0x0000. Если прерывание от Таймера 2 разрешено, то установка этого бита приведет к переходу на процедуру обслуживания прерывания от Таймера 2. Этот бит не сбрасывается аппаратно, он должен быть сброшен программно.

Бит 6: TF2L: Флаг переполнения младшего байта Таймера 2.

Этот бит аппаратно устанавливается  в 1 при переполнении младшего байта Таймера 2 из

состояния 0xFF в состояние 0x00. При  установке этого бита прерывание будет 

генерироваться в том случае, если TF2LEN = 1 и прерывания от Таймера 2 разрешены. Бит TF2L устанавливается  в 1 при переполнении младшего байта независимо от режима работы Таймера 2. Этот бит не сбрасывается аппаратно.

Бит 5: TF2LEN: Флаг разрешения прерывания от переполнения младшего байта Таймера 2.

Этот бит разрешает/запрещает  прерывания от переполнения младшего байта Таймера 2.

Если TF2LEN = 1 и прерывания от Таймера 2 разрешены, то при переполнении младшего

байта Таймера 2 будет генерироваться прерывание.

0: Прерывания от переполнения  младшего байта Таймера 2 запрещены.

1: Прерывания от переполнения  младшего байта Таймера 2 разрешены.

Бит 4: TF2CEN: Включение режима захвата  частоты НЧ-генератора для Таймера 2.

Этот бит включает/отключает  режим захвата частоты НЧ-генератора для Таймера 2. Если TF2CEN = 1 и прерывания от Таймера 2 разрешены, то прерывание будет генерироваться по спадающему фронту выходного сигнала НЧ-генератора, а текущее значение 16-разрядного таймера (в TMR2H:TMR2L) будет скопировано в регистровую пару TMR2RLH:TMR2RLL. См. более подробную информацию в разделе «16. Генераторы» на стр. 175.

0: Режим захвата частоты НЧ-генератора для Таймера 2 отключен.

1: Режим захвата частоты НЧ-генератора  для Таймера 2 включен.

Бит 3: T2SPLIT: Выбор раздельного режима работы для Таймера 2.

Если этот бит установлен в 1, то Таймер 2 функционирует как два 8-разрядных  таймера с

автоперезагрузкой.

0: Таймер 2 функционирует в 16-разрядном  режиме с автоперезагрузкой.

1: Таймер 2 функционирует как два  8-разрядных таймера с автоперезагрузкой.

Бит 2: TR2: Бит управления запуском Таймера 2.

Этот бит включает/отключает  Таймер 2. В 8-разрядном режиме этот бит

включает/отключает только TMR2H; TMR2L в этом режиме включен всегда.

0: Таймер 2 отключен.

1: Таймер 2 включен.

Бит 1: Не используется. Читается как 0b. Запись не оказывает никакого влияния.

Бит 0: T2XCLK: Выбор внешнего источника  тактирования для Таймера 2.

Этот бит выбирает внешний источник тактирования для Таймера 2. Если Таймер 2 работает в 8- разрядном режиме, то этот бит выбирает внешний источник тактирования для обоих байтов таймера. Однако все равно можно использовать биты выбора источника тактирования Таймера 2 (TM2H и TM2L в регистре CKCON) для выбора между внешним источником тактирования и системным тактовым сигналом (для любого таймера).

0: В качестве внешнего источника  тактирования для Таймера 2 выбран  системный 

тактовый сигнал, деленный по частоте на 12.

1: В качестве внешнего источника  тактирования для Таймера 2 выбран  сигнал внешнего 

генератора, деленный по частоте на 8. Следует иметь ввиду, что сигнал EXTCLK/8

синхронизируется с системным  тактовым сигналом SYSCLK.

 

SFR-описание 17.9. TMR2RLL: Младший байт регистра перезагрузки Таймера 2

SFR-адрес: 0xCA

Биты 7-0: TMR2RLL: Младший байт регистра перезагрузки Таймера 2.

TMR2RLL содержит младший байт перезагружаемого  значения Таймера 2.

 

SFR-описание 17.10. TMR2RLH: Старший  байт регистра перезагрузки Таймера 2

SFR-адрес: 0xCB

Биты 7-0: TMR2RLH: Старший байт регистра перезагрузки Таймера 2.

TMR2RLH содержит старший байт перезагружаемого  значения Таймера 2.

 

SFR-описание 17.11. TMR2L: Младший  байт Таймера 2

SFR-адрес: 0xCC

Биты 7-0: TMR2L: Младший байт Таймера 2.

В 16-разрядном режиме регистр TMR2L содержит младший байт 16-разрядного Таймера 2.

В 8-разрядном режиме регистр TMR2L содержит 8-разрядное значение младшего байта 

таймера.

 

SFR-описание 17.12. TMR2H: Старший  байт Таймера 2

SFR-адрес: 0xCD

Биты 7-0: TMR2H: Старший байт Таймера 2.

В 16-разрядном режиме регистр TMR2H содержит старший байт 16-разрядного Таймера 2.

В 8-разрядном режиме регистр TMR2H содержит 8-разрядное значение старшего байта

таймера.

 

17.3. Таймер 3

Таймер 3 представляет собой 16-разрядный  таймер/счетчик, образованный двумя 8-разрядными SFR регистрами: TMR3L (младший байт) и TMR3H (старший байт). Таймер 3 может работать в 16-разрядном режиме с автоперезагрузкой или в раздельном режиме (8-разрядный режим с автоперезагрузкой). Режим работы Таймера 3 определяется битом T3SPLIT (TMR3CN.3). Таймер 3 может тактироваться либо системным тактовым сигналом, либо системным тактовым сигналом, деленным по частоте на 12, либо выходным сигналом внешнего генератора, деленным по частоте на 8. Режим работы с тактированием от внешнего генератора идеально подходит для реализации функции RTC (Real-Time Clock – часы реального времени), когда внутренний генератор генерирует системный тактовый сигнал, а Таймер 3 (и/или ПМС) тактируется внешним прецизионным генератором. Следует иметь ввиду, что сигнал внешнего генератора, деленный по частоте на 8, синхронизируется с системным тактовым сигналом.

Информация о работе Лекции по «Проектированию и программированию микропроцессорных систем управления»