Главная » Компьютерная электроника
Призовой фонд
на октябрь 2017 г.
1. Термометр Relsib WT51
Рэлсиб
2. 1000 руб
PCBWay
3. Регулируемый паяльник 60 Вт
Паяльник
4. 100 руб.
От пользователей

Похожие статьи:


Проектирование электронных устройств в Proteus 8.1. Часть 12

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

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

В этой статье процесс моделирования схем с использованием микроконтроллеров рассмотрен на примере микроконтроллера 80С51.

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

Для наглядной демонстрации работы программы инициализации микроконтроллера воспользуемся цветными пробниками логических уровней 0 и 1. Для того, что бы добавить пробник в рабочее поле проекта, необходимо вызвать окно Pick Devices (рис. 1) и в поле Category выбрать из списка библиотеку Debugging Tools, в поле Sub-category выбрать строку Logic Probes, а в поле Results – строку LOGICPROBE, затем нажать кнопку ОК.

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

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

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

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

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

Рис. 3. Программа инициализации микроконтроллера.

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

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

  • *.hex – файл машинного кода (рис. 4);
  • *.asm – файл с ассемблерным кодом программы (рис. 5);
  • *.sdi – файл отладки программы инициализации, содержимое которого можно также просмотреть на вкладке 8051 CPU Source Code (рис. 6).

Рис. 4. Нex файл машинного кода.

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

Рис. 6. Вкладка 8051 CPU Source Code.

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

Рис. 7. Фрагмент файла листинга *.lst.

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

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

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

  • Debug/8051 CPU Registers (рис. 9а);
  • Debug/8051 CPU SFR Memory (рис. 9б);
  • Debug/8051 CPU Internal (IDATA) Memory (рис. 9в).

Рис. 9. Состояние: (а) регистров, (б) памяти SFR, (в) внутренней памяти микроконтроллера.

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

Рис. 10. Меню Debug.

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

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

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

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

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

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

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

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

 Двоичный код 

 Десятичная цифра 

 0000

 0

 0001

 1

 0010

 2

 0011

 3

 0100

 4

 0101

 5

 0110

 6

 0111

 7

 1000

 8 

 1001

 9

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

Рис. 12. Выбор компонентов схемы в окне Pick Devices: (а) дешифратора, (б) семисегментного индикатора.

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

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

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

Программирование микроконтроллеров х51.

При написании кода программы для микроконтроллера х51 необходимо владеть синтаксисом языка программирования asm51. Наиболее часто используемые команды asm51 представлены в таблице 2.

Таблица 2. Система команд микроконтроллера х51.

 Название команды

 Мнемокод 

 Пересылка в аккумулятор из регистра

 MOV A, R

 Пересылка в регистр из аккумулятора

 MOV R, A

 Загрузка константы в регистр

 MOV R, #d 

 Обмен аккумулятора с регистром

 XCH A, R

 Сложение аккумулятора с регистром

 ADD A, R

 Сложение аккумулятора с константой

 ADD A, #d

 Инкремент аккумулятора

 INC A

 Инкремент регистра

 INC R

 Декремент аккумулятора

 DEC A

 Декремент регистра

 DEC R

 Логическое И аккумулятора и регистра

 ANL A, R

 Логическое ИЛИ аккумулятора и регистра

 ORL A, R

 Сброс аккумулятора

 CLR A

 Инверсия аккумулятора

 CPL A

 Переход, если аккумулятор равен нулю (mt – метка в коде программы)

 JZ mt

 Переход, если аккумулятор не равен нулю (mt – метка в коде программы)

 JNZ mt

 Пустая операция, которая может быть использована в качестве задержки на 1мкс 

 NOP

 Выход из подпрограммы

 RET

Теги:

Опубликована: 0 0
Я собрал 0 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (0) | Я собрал (0) | Подписаться

Статью еще никто не комментировал. Вы можете стать первым.
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется напряжение?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

USB-реле (2 канала)
USB-реле (2 канала)
Тестер ESR, полупроводников, резисторов, индуктивностей Лазерный модуль 650нм 5мВт
вверх