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

книги / Программирование микроконтроллеров с использованием IDE

..pdf
Скачиваний:
13
Добавлен:
12.11.2023
Размер:
13.22 Mб
Скачать

Рис. 1.21. Проверка работы программы: вводим 1 и выводим 1

Вводим 0 (нажимаем на ключ мышкой) и выводится 0 (рис. 1.22).

Рис. 1.22. Проверка работы программы: вводим 0 и выводим 0

Программа работает! Не забываем выключить моделирование после проведения эксперимента.

1.4.Программная реализация автомата-распознавателя

спомощью универсальной программы

Используем метод ПЛМ (PLA) [2, 3]. Пусть необходим автомат 0,1,3,2 с двумя бинарными входами ab. Выход правильной последо-

21

вательности z1. Выход нарушения последовательности z2. Таблица переходов-выходов представлена на рис. 1.23.

Рис. 1.23. Таблица переходов-выходов автомата 0,1,3,2

Логические функции в символической форме имеют вид

y2

(t 1)y

y ab

4,7,12,13,15,14[0,1,2,5],

 

 

 

2

1

 

 

(t 1)y2 y1ab

1,4,5,7,12,13,15,14[0,2],

 

y1

(1.1)

 

 

 

 

 

z2 y2 y1ab

2,4,12,13[0,1,5,7,15,14],

 

z

 

14[0,1,2,4,5,7,12,13,15].

 

1y2 y1ab

 

 

 

 

Массив троек шестнадцатеричных констант [2,3]: FH,01H,04H,0FH,02H,02H,0FH,04H,06H,0FH,05H,04H,0FH,07H,

0CH,0FH,0DH,0EH,0FH,0FH,0CH,0FH,0EH,0DH,00H.

Например: первая из первой тройки FH =1111b означает, что все 4 бита существенны (это полное входное слово) y2 y1ab , это

константа (маска) существенных переменных в данной конъюнкции. Поскольку мы берем СДНФ, то все переменные существенны. Вторая маска 01H=0001b – это номер клетки, это маска (константа) неинверсных переменных,

а третья 04H=0100b это соединение (конкатенация) числителя и знаменателя в этой клетке, это маска (константа) функций, соответствующих (возбуждаемых) данной конъюнкции, в нашем случае – конституент единицы.

22

Аналогичны остальные константы для ненулевых клеток таблицы переходов-выходов. Однако минимизация (1.1) позволяет получить систему

y2 (t 1)y2 y1ab

y1 (t 1)y2 y1ab

z1y2 y1ab y1ab,

z2 y2 y1ab y2 a

y2 y1a y1b,

y1

b,

 

(1.2)

y1 ab y2ab.

Но суммарное количество неповторяющихся конъюнкций

в(1.2) 9, в то время как в (1.1) без нулевой клетки их 8. То есть

вСДНФ меньше, чем в ДНФ, вот такой парадокс.

Готовая универсальная программа с исходными данными на Ассемблере-51, настроенная на распознавание последовательности 0132, вводимой с порта Р1, выходные сигналы выводятся на порт Р2, представлена на рис. 1.24.

Рис. 1.24. Разработанная программа

23

Изменим ранее полученную схему: порт Р1 будет для ввода, порт Р2 для вывода, добавим еще один ключ, триггеры «антидребезга» ключей и светодиоды (рис. 1.25).

Рис. 1.25. Набор схемы для программной реализации автомата

Копируем программу в шаблон (рис. 1.26).

Рис. 1.26. Программа реализации автомата 0132

24

Компилируем (рис. 1.27).

Рис. 1.27. Успешная компиляция программы реализации автомата 0132

Проверка работы программы ПЛМ 0132. Включаем моделирование. На входе 0 (рис. 1.28).

Рис. 1.28. Проверка работы программы реализации автомата 0132. На входе 0

25

Подаём 1 (рис. 1.29).

Рис. 1.29. Проверка работы программы реализации автомата 0132. Подаём 1

Подаём 3 (рис. 1.30).

Рис. 1.30. Проверка работы программы реализации автомата 0132. Подаём 3

26

Подаём 2. После набора правильной последовательности загорается светодиод z1 (рис. 1.31).

Рис. 1.31. Проверка работы программы реализации автомата 0132. Подаём 2, загорается светодиод z1

После набора неправильной последовательности 02 загорается светодиод z2 (рис. 1.32).

Рис. 1.32. Проверкаработыпрограммыреализацииавтомата0132

27

Надо остановить программу и снова стартовать. Проверим нарушение последовательности 02.

Теперь остается только изменить данные и/или саму программу по своему варианту, и оценка «отлично» по Цифровой схемотехнике вам обеспечена! Для этого, возможно, следует почитать другие учебные пособия, например, «Руководство к лабораторным работам в системе Proteus» [2, 3].

28

2.ИССЛЕДОВАНИЕ МИКРОКОНТРОЛЛЕРА STM32F401RE

2.1.Создание проекта в Proteus Design Suite

для исследования микроконтроллера STM32F401RE

Исследуем более сложный, современный, 32-разрядный микроконтроллер STM32F401RE, который будем программировать не на Ассемблере, а на языке СИ [6, 7, 13] (рис. 2.1).

Создание проекта, схемы и программирование здесь гораздо более сложное, чем для 8051. Необходимо набраться терпения и выдержки. Используется специальное средство STM32CubeMX [14]:

а

Рис. 2.1. Микроконтроллер STM32F401RE: а – входы-выходы («распиновка») микросхемы; б – характеристики STM32F401RE

29

б

Рис. 2.1. Окончание

Рис. 2.2. Значок средства

STM32CubeMX

STM32CubeMX – это специ-

альная программа предварительной настройки микроконтроллера и инициализации начального кода для различных сред разработки (рис. 2.2). Исходный код генерируется в STM32CubeMX, после чего редактируется и компилируется, получается бинар-

ный файл в µVision IDE.

2.1.1. Загрузка и установка Java

Для STM32CubeMX необходима Java Runtime Environment (версия jre-8u-271-windows-x64) [15]. Переходим по ссылке на сайт https://www.java.com/ru/download/ (рис. 2.3).

30

Соседние файлы в папке книги