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

№ 7’2015
PDF версия
В Proteus реализовано большое количество функций для профессионального проектирования микроэлектронных устройств, ориентированных на самые современные средства моделирования. Одной из таких функций является имитация работы микроконтроллеров. В статье рассматриваются общие аспекты моделирования схем микроэлектронных устройств на базе микроконтроллеров семейства х51. Представлено несколько примеров работы с микроконтроллерами этого семейства в программе Proteus.

Введение

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

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

Система Proteus объединяет две основные программы: ISIS — средство разработки и отладки в режиме реального времени электронных схем и ARES — средство разработки печатных плат.

Основное отличие от аналогичных по назначению пакетов программ, например Multisim, заключается в развитой системе симуляции (интерактивной отладки в режиме реального времени и пошаговой) для различных семейств микроконтроллеров: 8051, ARM7, AVR, Cortex-M3, MSP430, PIC10/12/16/18/24, PICCOLO, dsPIC33.

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

Как известно, отладка микроконтроллерных устройств традиционными средствами, с помощью только вольтметра и осциллографа, затруднительна. Сравнительно легко удается лишь установить, что в программе есть ошибка. Но среди множества одинаково правдоподобных объяснений «неадекватного» поведения микроконтроллера практически невозможно найти единственное истинное. Поэтому отладку ведут, как правило, методом проб и ошибок, внося в программу более или менее обоснованные изменения. Симулятор дает возможность «заглянуть внутрь» микроконтроллера, сопоставив форму и характер сигналов на его выводах с ходом исполнения программы и изменениями состояния внутренних регистров. К этим регистрам модели (в отличие от реальной микросхемы) всегда имеется доступ. Возможность проверять работу микроконтроллеров всех популярных семейств (табл. 1) в реальном масштабе времени и во взаимодействии с моделями реальных источников сигнала и нагрузок выгодно отличает ISIS от простейших симуляторов, имеющихся в системах разработки программ и зачастую позволяющих лишь следить за ходом пошагового исполнения программы. Следует предостеречь разработчиков от слепого доверия к результатам компьютерного моделирования и отладки. Они верны лишь в той мере, в какой свойства использованных моделей компонентов совпадают с реальностью. Нередко учтены только главные свойства прототипа, например емкость конденсатора или сопротивление резистора. А существенными для проверяемой конструкции, но неучтенными зачастую оказываются второстепенные характеристики: нелинейная зависимость того или иного параметра от напряжения и тока, поведение элемента за пределами области допустимых режимов. Поэтому компьютерное моделирование вовсе не отменяет необходимости знания принципов и особенностей работы тех или иных узлов и проверки полученных результатов на реальном устройстве, однако значительно облегчает разработку электронного устройства.

Таблица 1. Семейства и модели микроконтроллеров библиотеки компонентов Proteus

Семейство

Модели семейства

8051

80C31/32/51/52/54

ARM7

LPC2101-LPC2106, LPC2114, LPC2124, LPC2131, LPC2132

AVR

AT90USB1286, AT90USB646, ATmega128, ATmega16/162/164P/165

Cortex-M3

LM3S300/301/308/310/315/316/317/328, LPC1311FHN33, LPC1313FBD48

MSP430

MSP430C1101/1111/1121,
MSP430F1101/1111/1121/2001/2011/2101/2111

PIC10

PIC10F200/202/204/206/220/222/320/322, PIC10LF320/322

PIC12

PIC12C508A, PIC12C509A, PIC12C671/672, PIC12CE518/519/673/674, PIC12F1501, PIC12F1822

PIC16

PIC16C62B/63A/64A/65B/66/67/72A/73B/74B/76

PIC18

PIC18F1220/1230/1320/1330/13K22/13K50/
14K22/14K50/2220/2221

PIC24

PIC24F04KA200/201, PIC24F08KA101/102, PIC24F16KA101/102, PIC24FJ128GA006/008/010/306

PICCOLO

TMS320F280200DA/200PT/20DA/20PT/21DA/21PT/
22DA/22PT/23DA/23PT

dsPIC33

dsPIC33FJ12GP201/202, dsPIC33FJ12MC201/202, dsPIC33FJ16GP304, dsPIC33FJ16MC304, dsPIC33FJ32GP202/204, dsPIC33FJ32MC202/204

Микроконтроллерная техника является одной из наиболее динамично развивающихся областей современной вычислительной техники. Без микроконтроллеров сегодня немыслим ни один современный прибор. Микроконтроллеры широко используются в различных изделиях вычислительной, измерительной, лабораторной и научной техники; в системах управления промышленным оборудованием, транспорта и связи; в бытовой технике и других областях. Следовательно, навыки применения инструмента компьютерного моделирования микроконтроллерных устройств весьма актуальны для разработчиков электронной аппаратуры. В этой статье процесс компьютерного моделирования схем с использованием микроконтроллеров будет рассмотрен на примере микроконтроллера семейства х51.

 

Микроконтроллеры семейства х51. Общие сведения

На сегодня существует более 200 модификаций микроконтроллеров семейства х51, выпускаемых почти 20 компаниями. Все микроконтроллеры данного семейства имеют общую систему команд. Наличие дополнительного оборудования влияет только на количество регистров специального назначения. х51‑совместимые микроконтроллеры выпускаются практически всеми известными мировыми производителями: Intel, Atmel, Dallas, Philips, Siemens, Winbond, Cypress, Texas Instruments, STM, TDK, Cygnal и многими другими, и имеют следующие аппаратные особенности:

  • наличие 128 байт внутреннего ОЗУ;
  • наличие четырех двунаправленных, побитно настраиваемых восьмиразрядных портов ввода/вывода данных;
  • наличие двух 16‑разрядных таймеров‑счетчиков;
  • встроенный тактовый генератор;
  • адресация 64 кбайт памяти программ и 64 кбайт памяти данных;
  • две линии запросов на прерывание от внешних устройств;
  • интерфейс для последовательного обмена данными с другими устройствами.

Выводы микроконтроллера х51 имеют следующее назначение (рис. 1):

  • Vss — общий;
  • Vcc — питание;
  • XTAL1, XTAL2 — входы для подключения кварцевого резонатора;
  • RЕSЕT — вход общего сброса микроконтроллера;
  • P—SE—N — разрешение внешней памяти программ, выдается только при обращении к внешнему ПЗУ;
  • ALE — строб адреса внешней памяти;
  • E—A— отключение внутренней программной памяти;
  • Р0–Р3 — порты ввода/вывода данных, линии портов Р0.0–Р3.7 двунаправленные, то есть могут работать как на ввод, так и на вывод информации независимо друг от друга.
Назначение выводов микроконтроллера х51

Рис. 1. Назначение выводов микроконтроллера х51

Внутренняя память программ микроконтроллера может быть расширена за счет подключения микросхем внешней памяти программ. Необходимо отметить, что в разных модификациях микроконтроллеров х51 количество портов ввода/вывода и цоколевка могут отличаться от представленной на рис. 1. К примеру, фирма Winbond выпускает микроконтроллеры, которые имеют пять портов ввода/вывода данных.

Микроконтроллеры семейства х51 постоянно развиваются, предлагая разработчику новые возможности. Сегодня на основе базового кристалла 8051 созданы и успешно применяются устройства с развитой периферией и большими объемами памяти.

 

Разработка электрических схем с использованием микроконтроллеров в программной среде Proteus

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

Первый этап проектирования узла печатной платы в системе Proteus — разработка схемы электрической принципиальной, которая выполняется в редакторе ISIS. На этой стадии проектирования производится выбор необходимых компонентов, их размещение в рабочем поле чертежа, связь компонентов при помощи цепей и шин. При необходимости можно модифицировать свойства компонентов, добавлять текстовые надписи.

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

После создания пустого листа схемы его нужно заполнить символами необходимых компонентов из библиотеки. В Proteus создать новый проект схемы можно при помощи команды File/New Project. Необходимо отметить, что по умолчанию при формировании нового проекта запускается мастер New Project Wizard.

Проектирование схемы, включающей микроконтроллер, при помощи мастера New Project Wizard

Работа мастера состоит из нескольких этапов, на которых указываются название проекта и его месторасположение на диске компьютера (можно создать проект с чистого листа или на основе имеющихся разработок, поставляемых с системой), задается необходимость создания разработки ISIS (при этом указывается формат чертежа) и/или ARES, необходимость включения в проект определенного микроконтроллера. По окончании работы мастера в проект будет добавлено несколько вкладок, в рабочей области которых и будет проводиться дальнейшее проектирование схемы.

Рассмотрим более подробно работу с мастером New Project Wizard. Для этого запустим его при помощи команды File/New Project основного меню Proteus. Количество шагов мастера зависит от выбора переключателя в окне New Project Wizard: Start. В том случае если выбрана позиция From Development Board (рис. 2), работа мастера состоит всего из одного шага, на котором для создания нового проекта предлагается использовать одну из имеющихся разработок, поставляемых вместе с Proteus. Выбор разработки производится в поле Development Board из одноименного списка путем выделения ее названия левой кнопкой мыши. В выпадающем списке Micro-controller Family можно задать семейство микроконтроллера. В таком случае в списке Development Board будут показаны разработки, в которых используется микроконтроллер указанного семейства. При этом описание выбранной разработки отображается в поле Details. Также необходимо указать название нового проекта (поле Name) и его месторасположение на диске компьютера (поле Path). А затем нажать кнопку Finish в нижней части окна New Project Wizard: Start. В результате будет открыт новый проект, содержащий схему (рис. 3а) и исходный код программы микроконтроллера (рис. 3б), которые можно модифицировать на свое усмотрение.

Окно New Project Wizard: Start, установка переключателя в позицию From Development Board

Рис. 2. Окно New Project Wizard: Start, установка переключателя в позицию From Development Board

Новый проект, созданный на основе уже имеющейся разработки

Рис. 3. Новый проект, созданный на основе уже имеющейся разработки:
а) схема электрическая принципиальная;
б) исходный код программы микроконтроллера

Окно New Project Wizard: Start, установка переключателя в позицию New Project

Рис. 4. Окно New Project Wizard: Start, установка переключателя в позицию New Project

В случае если в окне New Project Wizard: Start переключатель установлен в позицию New Project, работа мастера будет состоять из шести шагов, на первом из которых (рис. 4) пользователю предлагается указать название нового проекта (поле Name) и его месторасположение на диске компьютера (поле Path). После того как соответствующие поля заполнены, необходимо нажать кнопку Next, в результате будет открыто следующее окно мастера — New Project Wizard: Schematic Design (рис. 5). На втором шаге мастер предложит указать необходимость создания разработки ISIS посредством установки переключателя в одну из двух позиций:

  • Do not create a schematic— не создавать проект ISIS;
  • Create a schematic from the selected template— создать проект ISIS (при этом в поле Design Templates задается формат чертежа).
Окно New Project Wizard: Schematic Design

Рис. 5. Окно New Project Wizard: Schematic Design

После установки всех параметров следует нажать кнопку Next, в результате чего будет открыто третье окно мастера — New Project Wizard: PCB Layout (рис. 6). В нем посредством установки переключателя в нужную позицию необходимо произвести выбор одного из параметров:

  • Do not create a PCB layout— не создавать проект PCB;
  • Create a PCB layout from the selected template— создать проект PCB (при этом в поле Layout Templates производится выбор шаблона проекта).
Окно New Project Wizard: PCB Layout

Рис. 6. Окно New Project Wizard: PCB Layout

А затем нажать кнопку Next для перехода к следующему шагу мастера — New Project Wizard: PCB Layer Usage (рис. 7), на котором выполняется настройка слоев платы.

Окно New Project Wizard: PCB Layer Usage

Рис. 7. Окно New Project Wizard: PCB Layer Usage

Пятый шаг работы мастера New Project Wizard: Firmware (рис. 8) — выбор микроконтроллера. На этом этапе путем установки переключателя в нужную позицию задается необходимость использования микроконтроллера в проекте схемы:

  • No Firmware Project— микроконтроллер не используется;
  • Create Firmware Project— создать проект с использованием микроконтроллера.
Окно New Project Wizard: Firmware

Рис. 8. Окно New Project Wizard: Firmware

В случае выбора второго параметра доступны следующие поля:

  • Family— семейство микроконтроллера;
  • Controller— модель микроконтроллера;
  • Compiler— инструменты ассемблера/компилятора;
  • Create Quick Start Files— автоматическое создание заготовки программного кода для микроконтроллера.

Используйте кнопку Compilers в поле Compiler для добавления компилятора (рис. 9).

Окно Compilers

Рис. 9. Окно Compilers

Шестой шаг работы мастера — подведение итогов. В окне New Project Wizard: Summary (рис. 10) выводится вся информация о создаваемом проекте. Просмотрите внимательно настройки проекта и, если вас все устраивает, нажмите кнопку Finish для окончания работы с мастером. В противном случае вернитесь при помощи кнопки Back к предыдущим шагам мастера для внесения изменений в настройки проекта.

Окно New Project Wizard: Summary

Рис. 10. Окно New Project Wizard: Summary

По окончании работы мастера система на основе заданных установок создаст новый проект, который может содержать:

Результаты работы мастера New Project Wizard

Рис. 11. Результаты работы мастера New Project Wizard:
а) рабочее поле чертежа;
б) контур печатной платы;
в) заготовка программного кода для микроконтроллера

  • рабочее поле чертежа (рис. 11а) — вкладка Schematic Capture. При этом на чертеже уже будет размещено условное графическое обозначение микроконтроллера выбранного семейства;
  • контур печатной платы (рис. 11б) — вкладка PCB Layout;
  • заготовку программного кода для микроконтроллера (рис. 11в) — вкладка Source Code.

Проектирование схемы, включающей микроконтроллер без помощи мастера

Проект схемы электрической принципиальной, в котором присутствует микроконтроллер, можно создать и без использования мастера — при помощи кнопки ISIS верхней панели инструментов Proteus. В результате откроется новая вкладка Schematic Capture, в рабочем поле которой и будет выполняться разработка схемы.

Выбор компонентов из базы данных для последующего их размещения в рабочей области программы производится в окне Pick Devices (рис. 12). Данное окно можно открыть командой контекстного меню Place/Component/From Libraries или посредством нажатия на кнопку P на панели DEVICES (по умолчанию данная панель расположена в левой части программы и содержит список имеющихся в проекте компонентов). Открыть панель можно нажатием кнопки Component Mode на левой панели инструментов редактора ISIS.

Библиотека микроконтроллеров семейства 8051 программы Proteus

Рис. 12. Библиотека микроконтроллеров семейства 8051 программы Proteus

Для того чтобы добавить микросхему микроконтроллера в рабочее поле проекта, необходимо в левой верхней части окна Pick Devices в поле Category выбрать из списка библиотеку Microprocessor ICs. Пакет Microprocessor ICs позволяет включать в эмуляцию смешанной схемы определенные микроконтроллеры с возможностью написания и отладки программного кода. Выбор библиотеки из списка производится посредством щелчка левой кнопки мыши по строке с ее названием. Ниже поля Category находится поле Sub-category, в котором таким же способом задается семейство микроконтроллеров выбранной библиотеки. В поле Results отображаются все компоненты выбранного семейства. Выбор компонента производится посредством выделения при помощи левой кнопки мыши строки с его названием в поле Results. В поле Manufacturer можно выбрать производителя микроконтроллера. Если производитель не имеет значения — укажите значение All Manufacturers в этом поле. Для ускорения поиска компонентов можно воспользоваться строкой фильтра Keywords, расположенной в верхнем левом углу окна Pick Devices. После того как выбор микроконтроллера сделан, его условное графическое обозначение отобразится в поле предварительного просмотра Preview. Посадочное место компонента будет показано в поле PCB Preview. Если для выбранного микроконтроллера предусмотрено несколько посадочных мест, то все возможные варианты будут доступны для выбора из выпадающего меню, расположенного под полем PCB Preview. Для того чтобы разместить выбранный микроконтроллер на схеме, необходимо в окне Pick Devices нажать кнопку ОК. После чего данное окно будет закрыто, а символ компонента будет прикреплен к курсору мыши, при помощи которого необходимо поместить символ в нужное место на схеме (щелкнуть в нужном месте схемы левой кнопкой мыши).

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

Параметры размещенного на схеме символа микроконтроллера при необходимости редактируются в окне Edit Component (рис. 13). Данное окно можно открыть путем двойного щелчка левой кнопки мыши по уже размещенному в рабочем поле программы символу компонента.

Окно Edit Component

Рис. 13. Окно Edit Component

Открыть вкладку, на которой в процессе проектирования будет вноситься код программы инициализации микроконтроллера, можно следующим образом. Выделите при помощи левой кнопки мыши символ микроконтроллера в рабочем поле проекта, при помощи правой кнопки мыши вызовите контекстное меню и выберите в нем пункт Edit Source Code. В результате в проект будет добавлена вкладка Source Code и открыто окно выбора микроконтроллера New Firmware Project (рис. 14), в котором устанавливаются следующие параметры:

  • Family— семейство микроконтроллера;
  • Controller— модель микроконтроллера;
  • Compiler— инструменты ассемблера/компилятора;
  • Create Quick Start Files— автоматическое создание заготовки программного кода для микроконтроллера.
Окно New Firmware Project

Рис. 14. Окно New Firmware Project

В проект можно также добавить и уже подготовленный ранее .asm-файл. Для этого на панели дерева проектов Projects выберите при помощи левой кнопки мыши проект, к которому необходимо добавить .asm-файл, при помощи правой кнопки мыши вызовите контекстное меню и выберите в нем пункт Add Files. В результате выполненных действий будет открыто окно проводника Windows, где необходимо выбрать на диске компьютера нужный .asm-файл, а затем нажать на кнопку «Открыть».

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

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

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

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

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

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

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

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

Программа инициализации микроконтроллера

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

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

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

  • *.hex— файл машинного кода (рис. 18);
    hex-файл машинного кода

    Рис. 18. hex-файл машинного кода

  • *.asm— файл с ассемблерным кодом программы (рис. 19);
    Файл с ассемблерным кодом программы

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

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

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

Программа инициализации микроконтроллера пишется на языке программирования asm51. Это язык ассемблера, специально предназначенный для написания программ для микроконтроллеров семейства х51. Написанная программа транслируется с помощью ассемблера asm51, в результате чего будут получены hex-файл для загрузки в память программ и листинговый файл с кодами команд и адресами расположения этих кодов. Файл листинга формируется ассемблером в процессе трансляции и представляет собой начальный ассемблерный файл, дополненный следующей информацией. Перед каждой командой размещен номер ее строки в ассемблерном тексте, адрес ячейки памяти программ, в которой размещен код операции команды, а после этого адреса — один, два или три байта самой команды. Также в файле листинга находится таблица имен и меток.

Если в ходе компиляции кода программы инициализации микроконтроллера обнаружены ошибки, они будут отмечены компилятором в файле *.lst. При этом hex-файл не будет сгенерирован до тех пор, пока ошибки не устранены. В файле листинга для каждой обнаруженной ошибки компилятор указывает причину ошибки и номер строки, в которой она обнаружена. На рис. 21 представлен фрагмент файла *.lst, в котором отладчик сообщает об ошибке номер 2 (неопределенный идентификатор), состоящей в том, что в коде программы неверно указано название порта ввода/вывода данных (в используемом микроконтроллере нет порта с названием Р6). Отладка программы инициализации выполняется на вкладке 8051 CPU Source Code, которая отображается после приостановки процесса симуляции. Для того чтобы временно приостановить симуляцию схемы, используйте кнопку Pause the simulation, or start up at time 0 if stopped (кнопка находится в левом нижнем углу окна программы). Отчет об ошибках, полученных в результате трансляции программного кода, отображается в нижней части вкладки Source Code на панели VSM Studio Output (рис. 22).

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

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

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

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

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

  • Debug/8051 CPU Registers (рис. 23а);
  • Debug/8051 CPU SFR Memory (рис. 23б);
  • Debug/8051 CPU Internal (IDATA) Memory (рис. 23в).
Состояние

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

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

Меню Debug

Рис. 24. Меню Debug

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

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

Система, в которой используется микроконтроллер, может не только чем-то управлять, но и что-то отображать. Чаще всего в качестве узла отображения в схеме используют знакосинтезирующие индикаторы. По способу формирования символов индикаторы бывают 7‑сегментными или матричными. Для отображения цифр удобнее использовать 7‑сегментный индикатор. Такие индикаторы широко применяются в самых разных устройствах цифровой техники, от калькулятора до электронных часов. Матричные индикаторы обычно используют для отображения букв. Каких-либо стандартных правил сопряжения микроконтроллера с индикаторами не существует, и в каждом конкретном случае сопряжение может выполняться по-разному.

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

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

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

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

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

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

Двоичный код

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

0000

0

0001

1

0010

2

0011

3

0100

4

0101

5

0110

6

0111

7

1000

8

1001

9

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

Выбор компонентов схемы в окне Pick Devices

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

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

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

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

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

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

  • команды передачи данных;
  • арифметических операций;
  • логических операций;
  • команды передачи управления;
  • команды операций с битами.

Наиболее часто используемые команды asm51 представлены в таблице 3.

Таблица 3. Система команд микроконтроллера х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

Далее представим описание наиболее распространенных ошибок трансляции ассемблерного кода в программной среде Proteus:

  • Ошибка #1. Illegal character (Недопустимый символ) — данная ошибка возникает в том случае, когда ассемблер встречает символ, который не описан в синтаксисе компилятора.
  • Ошибка #2. Symbol not defined (Неопределенный идентификатор) — ошибка возникает в том случае, когда пользователь в коде программы использует идентификатор, который не был определен ассемблером. Наиболее частая причина данной ошибки — опечатка пользователя.
  • Ошибка #3. Duplicate symbol (Повторяю-щийся идентификатор) — данная ошибка возникает при попытке определить заново уже ранее определенный или зарезервированный идентификатор.
  • Ошибка #5. Number too large (Слишком большое число) — заданное число или значение результата работы программы превышает допустимую величину.
  • Ошибка #6. Missing END directive (Отсутствует директива END) — данная директива является обязательной и должна быть указана в конце кода программы.
  • Ошибка #12. Unbalanced parentheses (Незакрытые скобки);
  • Ошибка #16. Division by zero (Деление на ноль).
  • Ошибка #38. Unable to open file (Не удается открыть файл) — ошибка может возникнуть в том случае, если в программном коде указано название несуществующего файла.
  • Ошибка #41. Insufficient memory (Недостаточно памяти).
  • Ошибка #43. ENDIF without IF (ENDIF без IF) — в цикле отсутствует парный оператор IF.
  • Ошибка #44. Missing ENDIF (Отсутствует ENDIF) — в цикле отсутствует парный оператор ENDIF.
  • Ошибка #50. Line exceeds 255 characters (Строка превышает 255 символов) — слишком длинная строка, при этом лишние символы будут игнорироваться.
Литература
  1. ISIS Help. Labcenter Electronics, 2014.
  2. Пашкевич А. П., Чумаков О. А. Микро-процессорные системы управления. Часть БГУИР, 2006.
  3. 8051 CROSS ASSEMBLER USER’S MANUAL, MetaLink Corporation Chandler, Arizona, USA.
  4. Максимов А. Моделирование устройств на микроконтроллерах с помощью программы ISIS из пакета PROTEUS VSM // Радио. 2005. № 4.
  5. Довгун В. П. Компьютерное моделирование электронных цепей и устройств. Курс лекций. Лекция 1. Общая характеристика программ компьютерного моделирования электронных цепей. Красноярск, СФУ Институт космических и информационных технологий, 2008.
  6. Магда Ю. С. Микроконтроллеры серии 8051: практический подход. М.: ДМК Пресс, 2008.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *