Лекция 36 Программирование микроконтроллеров в Proteus 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Лекция 36 Программирование микроконтроллеров в Proteus



Цели лекции: Изучение проектирования схем электрических принципиальных с использованием микроконтроллеров в программной среде Proteus.

Проектирование схем электрических принципиальных с использованием микроконтроллеров в программной среде Proteus 8.1.

В Proteus реализовано большое количество функций для профессионального проектирования микроэлектронных устройств, ориентированных на самые современные средства моделирования. Одной из таких функций является имитация работы микроконтроллеров.

Процесс моделирования схем рассматривается на примере микроконтроллера 80С51.

Моделирование схемы включающей микроконтроллер и трансляция программного кода.

Для наглядной демонстрации работы программы инициализации микроконтроллера можно воспользоваться цветными пробниками логических уровней 0 и 1.

Для того, чтобы добавить пробник в рабочее поле проекта, необходимо вызвать окно Pick Devices, изображенное на рисунке 36.1.

В поле Category выбрать из списка библиотеку Debugging Tools.

В поле Sub-category выбрать строку Logic Probes.

В поле Results – строку LOGICPROBE.

Затем нажать кнопку ОК.

 

Рисунок 36.1 - Выбор пробника логических уровней в окне Pick Devices

 

В результате чего окно Pick Devices будет закрыто, а символ пробника будет прикреплен к курсору мыши, при помощи которого необходимо поместить символ в нужное место на схеме - щелкнуть в нужном месте схемы левой кнопкой мыши столько раз, сколько пробников необходимо разместить.

Добавить в рабочее поле проекта микроконтроллер 80С51 и подсоединить пробники к исследуемым линиям портов микроконтроллера. В результате чего, при появлении на выходе линии порта значения логической единицы, пробник будет подсвечен красным цветом, при появлении же значения логического нуля пробник будет подсвечен синим цветом. Так же на пробниках визуально отображаются значения 0 и 1.

После того как в рабочей области проекта собрана схема, показанная на рисунке 36.2, а на вкладке Source Code введен код программы, показанный на рисунке 36.3, можно запускать моделирование.

 

Рисунок 36.2 - Демонстрационная схема с использованием микроконтроллера и цветных пробников логических уровней

Рисунок 36.3 - Программа инициализации микроконтроллера

 

Процесс моделирования запускается при помощи кнопки Run the simulation, которая находится в левом нижнем углу окна программы. Для того, что бы временно приостановить процесс симуляции, используйте кнопку Pause the simulation, or start up at time 0 if stopped (кнопка находится в левом нижнем углу окна программы). Остановить моделирование можно при помощи кнопки Stop the simulation.

В результате, в том случае, если компилятор в примере программы не обнаружит ошибок, на диске компьютера в рабочей папке проекта будут созданы следующие файлы:

*.hex – файл машинного кода (рисунок 36.4);

*.asm – файл с ассемблерным кодом программы (рисунок 36.5);

*.sdi – файл отладки программы инициализации, содержимое которого можно также просмотреть на вкладке 8051 CPU Source Code (рисунок 36.6).

Рисунок 36.4 -Нex файл машинного кода

 

Рисунок 36.5 - Файл с ассемблерным кодом программы.

Рисунок 36.6 - Вкладка 8051 CPU Source Code

Программа инициализации микроконтроллера пишется на языке программирования asm51. Это язык ассемблера, который предназначен специально для написания программ для микроконтроллеров семейства х51. В том случае, если в ходе компиляции кода программы инициализации микроконтроллера были обнаружены ошибки, они будут отмечены компилятором в файле *.lst. При этом hex файл не будет сгенерирован до тех пор, пока ошибки не будут устранены. В файле примера для каждой обнаруженной ошибки компилятор указывает причину ошибки и номер строки, в которой она была обнаружена. На рисунке 36.7 представлен фрагмент файла *.lst, в котором отладчик сообщает об ошибке номер 2 (Неопределенный идентификатор), которая состоит в том что в коде программы неверно указано название порта ввода/вывода данных (в используемом микроконтроллере нет порта с названием Р6).

Рисунок 36.7 - Фрагмент файла примера *.lst.

Отладка программы инициализации выполняется на вкладке 8051 CPU Source Code, которая отображается после приостановки процесса симуляции. Для того, чтобы временно приостановить симуляцию схемы, использовать кнопку Pause the simulation, or start up at time 0 if stopped (кнопка находится в левом нижнем углу окна программы). Отчет об ошибках полученных в результате трансляции программного кода отображается в нижней части вкладки Source Code на панели VSM Studio Output (рисунок 36.8).

 

Рисунок 36.8 - Отчет об ошибках полученных в результате трансляции программного кода

 

Состояние памяти и регистров микроконтроллера можно просмотреть при помощи следующих команд основного меню программы:

- Debug/8051 CPU Registers (рисунок 36.9а);

- Debug/8051 CPU SFR Memory (рисунок 36.9б);

- Debug/8051 CPU Internal (IDATA) Memory (рисунок 36.9в).

 

Рисунок 36.9 - Состояние: (а) регистров, (б) памяти SFR

Рисунок 36.9 -Состояние:  (в) внутренней памяти микроконтроллера

 

Меню Debug (рисунок 36.10) доступно для вызова во время приостановки симуляции схемы.

Рисунок 36.10 - Меню Debug

 

Анализ работы демонстрационной схемы, представленной на рисунке 36.2.

На вкладке main.asm (рисунок 36.3) при помощи команды mov были даны указания программе инициализации микроконтроллера записать в порт Р2 следующие значения линий порта Р2.семиР2.0 – «00001111», а в порт Р1 – значения линий порта Р1.семиР1.0 – «01010101». После запуска моделирования при помощи цветных пробников мы можем проверить правильность работы программы. Как видно из рисунка 36.2 на выводах портов микроконтроллера Р1 и Р2 действительно та комбинация которую мы указали в коде программы.

Сопряжение микроконтроллера х51 с микросхемами семи-сегментных индикаторов в Proteus.

Система, в которой используется микроконтроллер, может не только чем-то управлять, но и что-то отображать. Чаще всего в качестве узла отображения в схеме используют знакосинтезирующие индикаторы. Каких-либо стандартных правил сопряжения микроконтроллера с индикаторами не существует, и в каждом конкретном случае сопряжение может выполняться по-разному.

На рисунке 36.11 представлен пример соединения микросхемы семи-сегментнного индикатора с микроконтроллером. Принцип соединения микроконтроллера с элементами схемы такой же, как и для других компонентов схемы.

Рисунок 36.11 - Сопряжение микросхемы семисегментного индикатора с микроконтроллером

 

Для того, чтобы отобразить цифру, нужно «зажечь» определенные сегменты индикатора. При использовании в схеме микроконтроллера сделать это можно программным способом. Разные комбинации светящихся элементов индикатора, обеспечиваемые внешней коммутацией, позволяют отображать цифры от 0 до 9 и децимальную точку. В представленном примере у индикатора элементы имеют общий катод.

Для управления семисегментным индикатором в схеме используется двоично-десятичный дешифратор 74HC4511 (отечественный аналог 1564ИД23). Микросхема дешифратора выполняет преобразование двоичного кода полученного с микроконтроллера в код цифры для дальнейшего отображения на микросхеме семисегментного индикатора. Микросхема 74HC4511 – это специальный дешифратор, предназначенный для преобразования двоичного кода в семисегментный код и управления семисегментными и жидкокристаллическими индикаторами. Входы А, B, C, D – информационные входы. Выходы QA-QG – выходы на семисегментный индикатор. Двоичные коды и соответствующие им десятичные цифры представлены в таблице 36.1.

 

Таблица 36.1 - Двоичные коды и соответствующие им десятичные цифры

Двоичный код Десятичная цифра
0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 8
1001 9

 

Для того, чтобы добавить микросхему дешифратора в рабочее поле проекта, необходимо открыть окно Pick Devices (рисунок 36.12 а) и в его левой верхней части в поле Category выбрать из списка библиотеку TTL 74HC series. Ниже поля Category находится поле Sub-category, в котором необходимо выбрать пункт Decoders. В поле Results выберите микросхему 74HC4511 и нажмите на кнопку ОК. Для того, что бы добавить микросхему семисегментного индикатора с общим катодом, выберите в окне Pick Devices (рисунок 36.12 б) в поле Category библиотеку Optoelectronics, в поле Sub-category пункт семиSegment Displays, а в поле Results – 7SEG-MPX1-CC.

 

В представленном на рисунке 36.11 примере индикатор отображает цифру 3. Для этого на вкладке main.asm (рисунок 36.13) при помощи команды mov были даны указания программе инициализации микроконтроллера записать в порт Р2 следующие значения линий порта Р2.семиР2.0 – «00000011».

 

Рисунок 36.12 - Выбор компонентов схемы в окне Pick Devices:

(а) дешифратора, (б) семисегментного индикатора.

 

Рисунок 36.13 - Запись двоичного кода цифры 3 в порт Р2 микроконтроллера

 

После запуска моделирования можно проверить правильность работы программы. Как видно из рисунка 36.11 на выводах порта микроконтроллера Р2 действительно та комбинация которая указана в коде программы, а индикатор отображает цифру 3.

 



Поделиться:


Последнее изменение этой страницы: 2021-02-07; просмотров: 444; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.144.93.73 (0.019 с.)