- •1. Однокристальные микро-эвм (омэвм) семейства mcs51. Обобщённая структурная схема микроЭвм. Основные характеристики омэвм.
- •2. Структурная схема микро-эвм семейства mcs51 (к1816ве51). Операционный узел. Формат регистра psw. Структурная схема микроконтроллера
- •Операционный узел
- •3. Структурная схема микро-эвм семейства mcs51 (к1816ве51). Узел внутренней памяти. Состав регистров специального назначения.
- •4. Организация адресного пространства микро-эвм семейства mcs51. Узел внутренней памяти
- •5. Порты микро-эвм семейства mcs51 (к1816ве51). Назначение портов. Функциональная схема порта р0. Узел управления и синхронизации
- •Узел сопряжения с внешними устройствами
- •6. Способы адресации микро-эвм семейства mcs51 (к1816ве51).
- •Cпособы адресации
- •7. Система команд микро-эвм семейства mcs51 (к1816ве51). Группа команд пересылки данных.
- •8. Система команд микро-эвм семейства mcs51 (к1816ве51). Группа команд обработки данных.
- •9. Система команд микро-эвм семейства mcs51 (к1816ве51). Группа команд управления.
- •11. Временная диаграмма типового машинного цикла. Примеры временных диаграмм для выполнения команд за один и за два машинных цикла.
- •А) Считывание команд из внутр. Памяти программ (сверху до пунктира).
- •Б) Ниже пунктира – внешняя память данных. Данные читаются во 2ом мц.
- •1. Если чтение из внутр. Пп, то psen не вырабатывается.
- •12. Таймеры/счётчики 0 и 1 микроконтроллера семейства mcs51 (омэвм51). Режимы работы, программирование таймера/счётчика.
- •13. Таймер/счётчик 2. Режимы работы.
- •14. Организация прерываний в омэвм51.
- •Обработка внутренних прерываний
- •15. Организация последовательного ввода/вывода микроконтроллера семейства mcs51 (омэвм51). Режимы работы uart. Расчет скорости передачи данных для асинхронного режима.
- •Формирование p для передатчика.
- •Примеры программирования последовательного ввода/вывода.
- •16. Последовательный интерфейс i2c.
- •Случай чтения байта из памяти:
- •Временная диаграмма
- •17. Последовательный интерфейс spi (Serial Periferial Interface).
- •18. Последовательный интерфейс can.
- •19. Последовательный интерфейс One wire (MicoLine).
- •Структурная схема шины usb
- •Хост контроллер – на шине только один. Функция – периферийное устройство. В хабе имеется порт (точка подключения). Корневой хаб входит в состав хоста.
- •21. Обзор современных микроконтроллеров семейства mcs51. Особенности микроконтроллеров фирм Philips, Atmel и др.
- •22. Микроконтроллеры mсs 251, 151. Микроконтроллер 251.
- •23. События. Примеры захвата событий. Массив программируемых счетчиков (pca). Режимы захвата, программируемого таймера, скоростного ввода вывода, генератора шим.
- •Краткий обзор pic 16c 6x/7x/8x
- •3. Управляющие команды
- •4. Команды пересылки данных
- •25. Микроконтроллеры с risc архитектурой (семейство avr). Организация памяти. Особенность портов ввода вывода. Обзор системы команд. Пример программы с использованием команд микроконтроллера avr.
- •26. Цифровая обработка сигналов (цос). Примеры задач цос. Сигнальные микроконтроллеры фирмы Texas Instruments (tms320). Сигнальные процессоры
- •Рассмотрим tms 320
- •Организация памяти
- •Инструментальные ср-ва разработки и отладки мпс
11. Временная диаграмма типового машинного цикла. Примеры временных диаграмм для выполнения команд за один и за два машинных цикла.
Считывание команд из внешней памяти программ.
P
CL
OUT
– выдача младшего байта счетчика команд
РС.
PCH OUT – выдача старшего байта счетчика команд РС.
INS IN – ввод байта инструкции из памяти программ.
С
читывание
данных из внешней памяти данных.
PCH – старший байт счетчика команд РС.
Р2 SFR – защелки порта Р2.
защелки порта Р2.
DPL, DPH – младший и старший байты регистра указателя данных DPTR.
RI – регистры R0 и R1.
PCL OUT – выдача младшего байта счетчика команд РС.
Команды выполняются по машинным циклам. Цикл = 12 тактов. Если частота 12 МГц, то время 1 мкс = 12 тактов. Все команды 1 - 2 МЦ.
А) Считывание команд из внутр. Памяти программ (сверху до пунктира).
MOV A,R MOV A, #data MOV A, @DPTR
Б) Ниже пунктира – внешняя память данных. Данные читаются во 2ом мц.
MOVX A,@DPTR
1. Если чтение из внутр. Пп, то psen не вырабатывается.
2. PSEN и ALE не вырабатываются, если во 2ом МЦ используется комнада MOVX A, @DPTR.
12. Таймеры/счётчики 0 и 1 микроконтроллера семейства mcs51 (омэвм51). Режимы работы, программирование таймера/счётчика.
Таймер – формирование временных интервалов.
Счетчик – счет внешних событий.
INT0 (INT1) – разрешение/запрещение счета.
При переполнении формируется сигнал TF0 (TF1).
Установка режима таймера/счетчика
TH0 и TL0 – регистры таймера/счетчика 0.
TH1 и TL1 – регистры таймера/счетчика 1.
Режим запуска (счета):
Запуск осуществляется битом TR. Есть возможность управлять TR либо аппаратно, либо программно.
GATE=0, то запуск осуществляется только сигналом TR.
GATЕ=1, на вход Р3.2 или Р3.3 необходимо подать 1 (она подается от внешнего устройства, аппаратное управление).
Выбор режимов осуществляется с помощью регистра TMOD.
Формат регистра TMOD.
GATE – разрешение запуска таймера/счетчика
T / C – определение работы в режиме таймера или счетчика
С помощью разрядов M1 и M0 задаются четыре варианта загрузки регистров TH и TL и управления ими. Каждый из вариантов называется режимом.
-
M1
M0
Режим
0
0
0
0
1
1
1
0
2
1
1
3
Режим 0 – таймер/счетчик с предварительным делением на 32 (используется только регистр ТН (8 разр.), а TL используется как предварительный делитель на 32, следовательно счет до 213).
Режим 1 – 16-разрядный таймер/счетчик. Это накапливающий тип счетчика. Чтобы посчитать 1 импульс, нужно изначально загружать FF, 2 импульса – FE. Это для 8 разр.
Режим 2 – 8-разрядный таймер/счетчик, автоматически перезагружаемый при каждом переполнении (из ТН загружается снова в TL).
Режим 3 – таймер/счетчик 0 работает как 8-разрядный таймер и как 8-разрядный счетчик.
Загрузка регистра TMOD: MOV TMOD, #...b
Управление таймером/счетчиком осуществляется с помощью регистра TCON.
Формат регистра TCON.
TR – запуск таймера/счетчика
SETB TR0 – установка TR0 в “1”
CLR TR0 – сброс TR0 в “0”
TF – переполнение (может быть обработано как программным способом, так и по прерыванию)
JNB TF1, M
JB TF1, M
Пример формирования интервалов времени
Интервал в 1 секунду
В 1 сек – 20 интервалов по 50 мс
Исходные данные:
50 мс, 12МГц, таймер 0, режим 1
; CLOCK
; выбираем регистры, в которых будем накапливать мсек, сек, мин, часы
; R2 – счетчик интервалов
; R3 – счетчик секунд
MOV R2, #0
MOV R3, #0
MOV TMOD, #01 ;таймер 0, режим 1
MOV TH0, #high(65536-50000) ;при частоте 12 МГц, период 1 мкс. Чтобы 50000 мкс, нужно 50000 импульсов. Вычитаем из максимум 65536, загрузка в ТН0 (8 разр) старшего байта.
MOV TL0, #low(65536-50000) ;младший байт
SETB TR0 ;запуск таймера 0
M1:
JNB TF0,M1 ; можно $
CLR TF0 ;сброс бита переполнения
MOV TH0, #high(65536-50000)
MOV TL0, #low(65536-50000)
INC R2
CJNE R2,#20,M1
MOV R2, #0
INC R3
…. ;счетчик секунд можно сравнить с 60, если 60, то 1 минута
Недостаток: в цикле JNB зря тратится процессорное время, лучше делать по прерыванию.
Пример: использование таймера 1 в режиме 2 для формирования импульса 10мкс на выводе P1.0 порта P1.
mov TMOD, #20h ; 00100000 – таймер 1, режим 2
mov TH1, #256-10 ; загрузка начального значения таймера
…………
setb TR1 ; запуск таймера
clr P1.0 ; сброс в “0” разряда 0 порта P1
jnb TF1, $ ; проверка переполнения регистра TF1
setb P1.0 ; установка в “1” разряда 0 порта P1
