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

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

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

Генерируем код (рис. 2.73).

Рис. 2.73. Генерация нового кода

Генерация проходит успешно (рис. 2.74).

Рис. 2.74. Завершение генерации нового кода

71

Открываем проект, заходим в uVision IDE (рис. 2.75).

Рис. 2.75. Окно uVision IDE

Записываем программу (рис. 2.76).

Рис. 2.76. Запись программы в uVision IDE

72

Нажимаем на кнопку Build (рис. 2.77).

Рис. 2.77. Старт компиляции программы в uVision IDE

Компиляция завершается успешно (рис. 2.78).

Рис. 2.78. Успешное завершение компиляции программы в uVision IDE

73

Открываем Proteus, сохраняем предыдущий проект под новым именем, добавляем еще один ключ и светодиод (рис. 2.79).

Рис. 2.79. Новый проект

Загружаем новую программу (рис. 2.80).

Рис. 2.80. Выбор новой программы в новом проекте

74

Начинаем моделирование (рис. 2.81).

Рис. 2.81. Начало моделирования в новом проекте

Изменяем положение ключей (рис. 2.82–2.84).

Рис. 2.82. Моделирование в новом проекте: ввод с РА1, вывод на РС1

75

Рис. 2.83. Моделирование в новом проекте: ввод с РА1,РА0 вывод на РС1, РС0

Рис. 2.84. Моделирование в новом проекте: ввод с РА0 вывод на РС0

Все работает верно!

76

3.ПРОГРАММИРОВАНИЕ МИКРОКОНТРОЛЛЕРА

ВСОСТАВЕ ПЛАТЫ NUCLEO-F401RE

Для программирования вышеописанного микроконтроллера в составе платы NUCLEO-F401RE, которая может быть куплена в магазине, используем специальный ресурс https://www.mbed.com/en/ встро-

енных систем Mbed (отembedded systems) (рис. 3.1).

Рис. 3.1. «Облачный» ресурс для программирования микроконтроллеров встроенных систем Mbed

Плата NUCLEO-F401RE изображена на рис. 3.2.

Рис. 3.2 NUCLEO-F401RE с микроконтроллером

STM32F401RET6 in LQFP64 package

77

На плате, помимо собственно микроконтроллера, имеется USBзагрузчик для программирования его флеш-памяти. Рассмотрим программирование такой платы.

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

Программа разработана с участием О.В. Гончаровского. На плате уже установлены led1(LED1) и button1(USER_BUTTON). Пусть вход-

ные сигналы a, b поступают с двух переключателей, которых нет на плате (button2,3), третий (button4) используем для последующих модификаций, например для приёма трёхбитного сигнала. Эти переключатели устанавливаем дополнительно. Для индикации выходных сигналов z1, z2 также подключаем два дополнительных индикатора (светодиода) led2, led3. Настройка заключается в задании входов и выходов, режима опроса тумблеровсантидребезгомконтактов (рис. 3.3).

Рис. 3.3. Блок настроек платы

78

Массив масок-констант представлен на рис. 3.4.

Рис. 3.4. Блок задания масок-констант

Блок вычисления логических функций и перевод в новое состояние показан на рис. 3.5.

Входной вектор автомата представляет собой конкатенацию значений двух переключателей с текущего внутреннего состояния. Перевод в новое состояние производится путем выделения из выходного вектора z двух старших разрядов:

y=z&0xc; (3.2)

79

Рис. 3.5. Блок вычисления логических функций и перевод в новое состояние

Выдача полного вектора из платы в компьютер имеет вид printf("x=0x %x\n",x); (3.3)

printf("z( %d)=0x %x\n",idx,z); (3.4)

Выдача выходного сигнала на led2, led3 реализована следующим образом:

led2 = z&1; (3.5)

led3 = (z>>1)&1; (3.8)

80

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