
- •Семейство микроконтроллеров mcs-51.
- •Отличительные особенности контроллеров семейства mcs-51.
- •Структурная организация микроконтроллеров семейства mcs-51.
- •Распределение памяти данных mcs-51.
- •Распределение памяти программ mcs-51.
- •Флаги mcs-51. Слово состояния процессора mcs-51.
- •Команды, модифицирующие флаги.
- •Арифметические команды:
- •Логические команды:
- •Сдвиговые команды:
- •Команды сравнения:
- •Система команд mcs-51. Типы команд.
- •Методы адресации mcs-51.
- •Команды пересылки обмена и загрузки mcs-51.
- •Арифметические команды mcs-51.
- •Команда сложения (add):
- •Команда вычитания (subb):
- •Логические команды mcs-51.
- •1. Команда логического и (anl):
- •2. Команда логического или (orl):
- •3. Команда логического исключающего или (xrl):
- •4. Команда логического не (cpl):
- •Команды, оперирующие с битами, в системе команд mcs-51.
- •Команды условных переходов mcs-51.
- •1. Команда перехода, если равно (jz, je):
- •2. Команда перехода, если не равно (jnz, jne):
- •3. Команда перехода, если больше (jnc, jnb, ja, jae):
- •4. Команда перехода, если меньше или равно (jb, jbc, jbe):
- •Команды безусловных переходов mcs-51.
- •Команды инкремента и декремента.
- •Таймеры/Счетчики mcs-51. Программирование таймеров/счетчиков.
- •Режимы работы 0 и 1 таймеров/счетчиков mcs-51.
- •1. Режим работы 0 (Mode 0):
- •2. Режим работы 1 (Mode 1):
- •Режимы работы 2 и 3 таймеров/счетчиков mcs-51.
- •1. Режим работы 2 (Mode 2):
- •2. Режим работы 3 (Mode 3):
- •Режимы прерываний mcs-51. Программирование режимов прерываний.
- •1. Прерывания по уровню (Level-Triggered Interrupts):
- •2. Прерывания по фронту (Edge-Triggered Interrupts):
- •3. Программные прерывания (Software Interrupts):
- •4. Внешние прерывания (External Interrupts):
- •Приоритеты прерываний mcs-51.
- •Последовательный Порт mcs-51. Программирование последовательного порта.
- •Режимы работы последовательного порта mcs-51.
- •1. Асинхронный режим (uart):
- •2. Синхронный режим:
- •3. Режим мастера spi:
- •Состав и назначение регистров специальных функций mcs-51.
- •Система команд mcs-51.
- •Универсальный асинхронный приемник-передатчик (уапп) и режимы его работы.
- •1. Асинхронный режим (uart):
- •2. Синхронный режим:
- •3. Многопроцессорный режим:
- •Таймер-счетчики mcs-51 и режимы их работы.
- •1. Режим 0 (13-битный таймер):
- •2. Режим 1 (16-битный таймер):
- •3. Режим 2 (8-битный таймер с автоперезагрузкой):
- •Организация прерываний в микроконтроллере mcs-51.
- •1. Источники прерываний:
- •Способы адресации mcs-51.
- •Система команд микроконтроллеров mcs-51.
- •Организация пошагового режима работы при отладке микроконтроллеров mcs-51.
- •6. Наблюдение за состоянием и переменными:
- •7. Анализ и исправление ошибок:
- •Таймер-счетчики микроконтроллеров mcs-51 и режимы их работы.
- •5. Другие режимы:
- •3. Обработка прерываний таймера 0 (опционально):
- •4. Главный цикл программы:
- •1. Настройка таймера 1 в режиме захвата/сравнения:
- •2. Включение прерываний для захвата значения:
- •3. Настройка обработчика прерывания:
- •4. Главный цикл программы:
- •Организация прерываний в микроконтроллере mcs-51.
- •1. Настройка регистров:
- •2. Написание обработчиков прерываний:
- •3. Настройка векторов прерываний:
- •4. Включение прерываний:
- •Режимы работы микроконтроллера mcs-51.
- •Обзор 8-разрядных микроконтроллеров mcs-51.
- •Структурная организация и назначение выводов микроконтроллера mcs-51.
- •Семейство микроконтроллеров msp430.
- •Мк msp430x1xx. Система тактирования.
- •Архитектура мк msp430. Адресное пространство.
- •Немаскируемые и маскированные прерывания мк msp430.
- •Обработка прерываний мк msp430. Векторы прерываний.
- •Регистры цп мк msp430.
- •Режимы адресации мк msp430.
- •Система команд мк msp430. Командные циклы и длина команд.
- •Принципы построения устройств с низким энергопотреблением. Подключение неиспользуемых выводов.
- •Цифровые входы / выходы мк msp430. Функционирование цифровых входов / выходов.
- •Прерывания портов р1 и р2 мк msp430. Регистры флагов прерывания р1ifg, р2ifg.
- •Функционирование сторожевого таймера мк msp430.
- •Сторожевой таймер мк msp430 в режиме интервального таймера.
- •Блоки захвата / сравнения Таймера а мк msp430.
- •Таймер в мк msp430. Отличия от таймера а. Работа таймера в.
- •Инициализация usart. Асинхронные коммуникационные форматы.
- •Задачи mcs-51 на языке Ассемблера
- •Вариант 4. Составить программу вычитания четырехбайтовых беззнаковых чисел. Первое число находится в рпд по адресу 30÷33h, второе – по адресу 38÷3Bh. Результат поместить на место первого операнда.
- •Вариант 8. В рпд, начиная с адреса 30h находится массив из 20 элементов. Подсчитать количество элементов массива, попавших в интервал от 50 до 100. Результат запомнить в регистре r5.
- •Вариант 9. В рпд, начиная с адреса 30н, находится массив из 16 чисел. Найти максимальный элемент массива и поместить в r2 его значение, а в r3 его адрес.
- •Вариант 10. В регистре r5 находится двоично-десятичный операнд. Перевести операнд в шестнадцатеричное значение и поместить в r5
- •Вариант 14. В рпд с адреса 20h находится массив из 16 чисел. Элементами массива являются числа 32, 64, 96 и 128. Подсчитать и сохранить в регистрах r4 ÷ r7 количество повторений каждого элемента.
- •Вариант 18. В впд, начиная с адреса 100h, находится массив из 10 элементов. Получить в регистре r3 число элементов, равных 55h. Счет прервать, если число элементов превысит 3.
- •Вариант 20. В впд с адреса 300h находится массив из 15 чисел. Элементами массива являются числа 10, 20, 30 и 180. Подсчитать и сохранить в регистрах r4 - r7 количество повторений каждого элемента.
- •Вариант 21. В порты микроконтроллера р0-р3 поступают двоично-десятичные данные. Перевести данные в шестнадцатеричный формат и разместить в рпд последовательно с адреса 30h.
- •Вариант 22. Выдать последовательно в порты р1 и р2 микроконтроллера содержимое младших байт счетчиков в двоично-десятичном формате (в р1 – сотни, в р2 – десятки и единицы).
- •Вариант 23. В порты р0÷р3 поступают шестнадцатеричные данные. Занести в рпд, начиная с адреса 40h количество единиц, поступивших в каждый порт.
- •Вариант 24. Для каждого из регистров r0, r3 и регистра-расширителя в последовательно выдать в порты информацию о содержимом регистров:
- •Вариант 25. В каждый из портов р0÷р2 поступают данные от двух четырехразрядных датчиков. Выдать в порт р3 сумму шести датчиков, подключенных к портам р0÷р2.
- •Вариант 26. Записать в регистры r3, r7 и регистр-расширитель в произведение их старшей и младшей тетрады соответственно.
- •Вариант 27. Выдать в порты р0÷р2 количество единиц, содержащихся в регистрах r0, r7 и регистре-расширителе в соответственно
Оглавление
Семейство микроконтроллеров MCS-51. 5
1. Отличительные особенности контроллеров семейства MCS-51. 5
2. Структурная организация микроконтроллеров семейства MCS-51. 6
3. Распределение памяти данных MCS-51. 7
4. Распределение памяти программ MCS-51. 8
5. Флаги MCS-51. Слово состояния процессора MCS-51. 9
6. Команды, модифицирующие флаги. 10
7. Система команд MCS-51. Типы команд. 12
8. Методы адресации MCS-51. 13
9. Команды пересылки обмена и загрузки MCS-51. 14
10. Арифметические команды MCS-51. 15
11. Логические команды MCS-51. 17
12. Команды, оперирующие с битами, в системе команд MCS-51. 18
13. Команды условных переходов MCS-51. 19
14. Команды безусловных переходов MCS-51. 20
15. Команды инкремента и декремента. 21
16. Таймеры/Счетчики MCS-51. Программирование таймеров/счетчиков. 22
17. Режимы работы 0 и 1 таймеров/счетчиков MCS-51. 24
18. Режимы работы 2 и 3 таймеров/счетчиков MCS-51. 25
19. Режимы прерываний MCS-51. Программирование режимов прерываний. 26
20. Приоритеты прерываний MCS-51. 27
21. Последовательный Порт MCS-51. Программирование последовательного порта. 28
22. Режимы работы последовательного порта MCS-51. 30
23. Состав и назначение регистров специальных функций MCS-51. 31
24. Система команд MCS-51. 32
25. Универсальный асинхронный приемник-передатчик (УАПП) и режимы его работы. 33
26. Таймер-счетчики MCS-51 и режимы их работы. 35
27. Организация прерываний в микроконтроллере MCS-51. 36
28. Способы адресации MCS-51. 38
29. Система команд микроконтроллеров MCS-51. 39
30. Организация пошагового режима работы при отладке микроконтроллеров MCS-51. 40
31. Таймер-счетчики микроконтроллеров MCS-51 и режимы их работы. 41
32. MCS-51. Таймер 0 сконфигурировать в виде 8-битового таймера (TL0) с автоматической перезагрузкой. 43
33. MCS-51. Измерение ширины импульсов с помощью таймера 1. 44
34. Организация прерываний в микроконтроллере MCS-51. 46
35. Режимы работы микроконтроллера MCS-51. 48
36. Обзор 8-разрядных микроконтроллеров MCS-51. 49
37. Структурная организация и назначение выводов микроконтроллера MCS-51. 50
Семейство микроконтроллеров MSP430. 52
38. МК MSP430x1xx. Система тактирования. 52
39. Архитектура МК MSP430. Адресное пространство. 53
40. Немаскируемые и маскированные прерывания МК MSP430. 54
41. Обработка прерываний МК MSP430. Векторы прерываний. 54
42. 16-разрядный RISC CPU МК MSP430x1xx. 56
43. Регистры ЦП МК MSP430. 57
44. Режимы адресации МК MSP430. 59
45. Система команд МК MSP430. Командные циклы и длина команд. 60
46. Принципы построения устройств с низким энергопотреблением. подключение неиспользуемых выводов. 61
47. Цифровые входы / выходы МК MSP430. Функционирование цифровых входов / выходов. 63
48. Прерывания портов Р1 и Р2 МК MSP430. Регистры флагов прерывания Р1IFG, Р2IFG. 64
49. Функционирование сторожевого таймера МК MSP430. 65
50. Сторожевой таймер МК MSP430 в режиме интервального таймера. 66
51. Блоки захвата / сравнения Таймера А МК MSP430. 67
52. Таймер В МК MSP430. Отличия от таймера А. Работа таймера В. 68
53. Инициализация USART. Асинхронные коммуникационные форматы. 69
ЗАДАЧИ MCS-51 на языке Ассемблера 71
Вариант 1. Рассчитать значение функции Y = 15х+10 ( х изменяется в интервале от 5 до 20 с шагом 1). Результат разместить в РПД с адреса 40h (в массив последовательно занести сначала младший, а затем старший байт результата). 71
Вариант 2. Рассчитать значение функции Y = 3Х+15 ( х изменяется в интервале от 10 до 100 с шагом 10). Результат разместить в РПД с адреса 30h (в массив последовательно занести сначала младший, а затем старший байт результата). 71
Вариант 3. Рассчитать значение функции Y = 5Х - 50 ( х изменяется в интервале от 0 до 20 с шагом 2). Результат разместить в РПД с адреса 30h. 72
Вариант 4. Составить программу вычитания четырехбайтовых беззнаковых чисел. Первое число находится в РПД по адресу 30÷33h, второе – по адресу 38÷3Bh. Результат поместить на место первого операнда. 73
Вариант 5. Массив чисел был архивирован и помещен в новый массив, в котором предыдущий элемент указывает число, а последующий – количество повторений этого числа в исходном массиве. В результирующем массиве описано 8 пар чисел. Найти сумму членов исходного массива. Результат разместить в регистрах R3, R4, R5. 74
Вариант 6. Рассчитать 16 значений функции Y=250/Х (для Х, начинающегося с 10 с шагом 8). Результаты округлить до целого значения и разместить в РПД с адреса 40h. 76
Вариант 7. Перевести однобайтовый шестнадцатеричный операнд в двоичнодесятичный упакованный формат. Исходный операнд находится в регистре R5. Результат разместить в регистрах R4 (число сотен) и R3 (десятки, единицы). 76
Вариант 8. В РПД, начиная с адреса 30h находится массив из 20 элементов. Подсчитать количество элементов массива, попавших в интервал от 50 до 100. Результат запомнить в регистре R5. 77
Вариант 9. В РПД, начиная с адреса 30Н, находится массив из 16 чисел. Найти максимальный элемент массива и поместить в R2 его значение, а в R3 его адрес. 78
Вариант 10. В регистре R5 находится двоично-десятичный операнд. Перевести операнд в шестнадцатеричное значение и поместить в R5 78
Вариант 11. В РПД, начиная с адреса 20h, находится массив из 16 элементов. Подсчитать и сохранить в регистрах: R2 – количество элементов массива, меньших значения 128; R3 – количество элементов массива, равных 128; R4 – количество элементов массива, больших 128. 80
Вариант 12. В РПД с адреса 20h находится массив, состоящий из 16 элементов. Суммировать элементы массива до тех пор, пока значение суммы не превысит 512. Выдать в R3 номер элемента, на котором произошло переполнение. Если сумма элементов не достигла значения 512, то выдать в регистре R3 значение 0. 82
Вариант 13. Для функции Y=20Х+45 выдать в R2 первое значение аргумента, при котором значение функции превысит 1024. Начальное значение аргумента Х=10. 84
Вариант 14. В РПД с адреса 20h находится массив из 16 чисел. Элементами массива являются числа 32, 64, 96 и 128. Подсчитать и сохранить в регистрах R4 ÷ R7 количество повторений каждого элемента. 87
Вариант 15. В РПД по адресам 20h÷2Fh находится массив. С адреса 30h создать массив, в который входят адреса элементов первого массива, равных 128. В регистре R2 сохранить число элементов, равных 128. Прервать выполнение программы, если будет найдено 5 элементов со значением 128. 90
Вариант 16. В РПД с адресов 20h и 30h находятся 2 массива, состоящие из 16 элементов каждый. Подсчитать количество элементов первого массива, которые имеют равные значения во 2 массиве. Результат занести в регистр R2. 93
Вариант 17. Для функции Y=40Х+10 получить первое значение, превышающее 512, начиная с Х=1. Значение аргумента записать в R4, функции - в R5, R6. 93
Вариант 18. В ВПД, начиная с адреса 100h, находится массив из 10 элементов. Получить в регистре R3 число элементов, равных 55h. Счет прервать, если число элементов превысит 3. 95
Вариант 19. Для функции 15Х+85 найти первое значение аргумента, при котором младший байт функции равен 155. 96
Вариант 20. В ВПД с адреса 300h находится массив из 15 чисел. Элементами массива являются числа 10, 20, 30 и 180. Подсчитать и сохранить в регистрах R4 - R7 количество повторений каждого элемента. 96
Вариант 21. В порты микроконтроллера Р0-Р3 поступают двоично-десятичные данные. Перевести данные в шестнадцатеричный формат и разместить в РПД последовательно с адреса 30h. 98
Вариант 22. Выдать последовательно в порты Р1 и Р2 микроконтроллера содержимое младших байт счетчиков в двоично-десятичном формате (в Р1 – сотни, в Р2 – десятки и единицы). 99
Вариант 23. В порты Р0÷Р3 поступают шестнадцатеричные данные. Занести в РПД, начиная с адреса 40h количество единиц, поступивших в каждый порт. 99
Вариант 24. Для каждого из регистров R0, R3 и регистра-расширителя В последовательно выдать в порты информацию о содержимом регистров: 100
Вариант 25. В каждый из портов Р0÷Р2 поступают данные от двух четырехразрядных датчиков. Выдать в порт Р3 сумму шести датчиков, подключенных к портам Р0÷Р2. 101
Вариант 26. Записать в регистры R3, R7 и регистр-расширитель В произведение их старшей и младшей тетрады соответственно. 102
Вариант 27. Выдать в порты Р0÷Р2 количество единиц, содержащихся в регистрах R0, R7 и регистре-расширителе В соответственно 103
Семейство микроконтроллеров mcs-51.
Отличительные особенности контроллеров семейства mcs-51.
Семейство MCS-51, также известное как архитектура Intel 8051, представляет собой популярную и широко используемую линейку 8-битных микроконтроллеров, которая была разработана компанией Intel в 1980-х годах. Вот некоторые отличительные особенности контроллеров семейства MCS-51:
Архитектура Harvard: Контроллеры MCS-51 имеют архитектуру Harvard, что означает, что они имеют отдельные шины для программной памяти (ROM) и данных (RAM). Это позволяет одновременно выполнять доступы к памяти кода и данным, улучшая производительность и эффективность работы контроллера.
Архитектура RISC: Микроконтроллеры MCS-51 основаны на архитектуре RISC (Reduced Instruction Set Computer), что означает, что они имеют ограниченный набор простых инструкций. Это способствует упрощению проектирования и реализации контроллеров, а также повышает их эффективность и быстродействие.
Встроенная периферия: Контроллеры MCS-51 имеют встроенные периферийные устройства, такие как порты ввода-вывода (GPIO), таймеры/счетчики, UART (универсальный асинхронный приемопередатчик), аналогово-цифровой преобразователь (ADC) и другие. Это обеспечивает возможность подключения и управления различными внешними устройствами и расширяет функциональность контроллера.
Низкое энергопотребление: Контроллеры MCS-51 обладают низким энергопотреблением, что делает их идеальным выбором для батарейных и портативных устройств. Они обеспечивают эффективное использование энергии благодаря своей оптимизированной архитектуре и возможности настройки режимов энергосбережения.
Простота программирования: Программирование контроллеров MCS-51 производится на ассемблере или высокоуровневых языках, таких как C. Существует широкий выбор интегрированных сред разработки (IDE) и компиляторов, которые упрощают разработку и отладку программ для контроллеров MCS-51.
Обширное сообщество и экосистема: За годы своего существования семейство MCS-51 накопило обширное сообщество разработчиков и энтузиастов. Существует множество ресурсов, форумов, библиотек и примеров кода, которые помогают новичкам и опытным разработчикам в работе с контроллерами MCS-51.
В целом, контроллеры семейства MCS-51 представляют собой надежные, гибкие и простые в использовании устройства, которые широко применяются во множестве различных областей, включая автоматизацию, электронику потребительских устройств, промышленность, медицину и другие.
Структурная организация микроконтроллеров семейства mcs-51.
Структурная организация микроконтроллеров семейства MCS-51, также известных как контроллеры Intel 8051, имеет несколько ключевых компонентов, которые совместно обеспечивают функциональность и производительность устройства. Вот основные элементы структурной организации микроконтроллеров MCS-51:
Центральный процессор (ЦП): Центральный процессор является главной частью микроконтроллера MCS-51. Он отвечает за выполнение всех вычислений и инструкций, управление периферийными устройствами и обработку данных. ЦП в контроллерах MCS-51 основан на архитектуре RISC и имеет ограниченный набор инструкций, что делает его простым и эффективным в использовании.
Память программ (ROM): В микроконтроллерах MCS-51 встроена память программ, которая содержит исполняемый код программы. Эта память является неперезаписываемой (ROM) или перезаписываемой (EPROM или Flash). Инструкции из памяти программ загружаются в ЦП для выполнения.
Память данных (RAM): Микроконтроллеры MCS-51 также содержат память данных, которая используется для хранения переменных, временных данных и стека. Память данных может быть реализована как встроенная SRAM или внешняя RAM, которая подключается к контроллеру.
Периферийные устройства: MCS-51 имеет встроенные периферийные устройства, которые позволяют контроллеру взаимодействовать с внешними устройствами. Это включает в себя порты ввода-вывода (GPIO) для подключения и управления внешними устройствами, такими как сенсоры, светодиоды, кнопки и дисплеи. Кроме того, контроллеры MCS-51 могут включать таймеры/счетчики, UART для обмена данными по серийному интерфейсу, аналогово-цифровой преобразователь (ADC) для измерения аналоговых сигналов и другие периферийные устройства.
Шины данных и адреса: Для обмена данными и адресами между различными компонентами микроконтроллера MCS-51 используются шины данных и адреса. Шина данных позволяет передавать информацию между ЦП, памятью данных и периферийными устройствами. Шина адреса используется для выбора адреса памяти или периферийного устройства, с которым нужно взаимодействовать.
Система тактирования: Для правильной синхронизации работы микроконтроллера MCS-51 используется система тактирования. Тактовый генератор или внешний источник тактирования обеспечивает основной тактовый сигнал, который синхронизирует операции ЦП и других компонентов микроконтроллера.
Эти основные компоненты взаимодействуют вместе, обеспечивая функциональность и возможности микроконтроллеров семейства MCS-51. Структурная организация позволяет разработчикам создавать программы и подключать внешние устройства для выполнения различных задач в различных областях применения.