http://validcc-xyz.ru Описание работы в PIC Simulator. Описание работы в PIC Simulator Симуляторы для pic контроллеров

Описание работы в PIC Simulator. Описание работы в PIC Simulator Симуляторы для pic контроллеров

PIC Simulator Studio это многофункциональное и высокопроизводительное программное обеспечение, предназначенное в первую очередь для симуляции в реальном времени цифровых и аналого-цифровых схем, ядром которых выступает микроконтроллер PIC micro от компании Microchip Technology. Также главной отличительной чертой программы является наличие очень мощных средств отладки программ, написанных для этих микроконтроллеров. Кроме того, программа имеет в своем составе компилятор ассемблера и дизассемблер. На данный момент симулятор полностью поддерживает некоторые популярные микроконтроллеры, принадлежащие сериям PIC10F, PIC12F и PIC16F. Список поддерживаемых микроконтроллеров постоянно расширяется.

Программа PIC Simulator Studio позволяет пользователю непосредственно в отлаживаемом коде работать с виртуальной периферией. Имеется в виду, что специальные библиотеки эмулируют работу различных устройств: светодиодов, кнопок, 7-сегментных индикаторов, генератора сигнала, источника напряжения и пр. Ассортимент эмулируемых устройств также постоянно расширяется. Кроме того, в комплекте с программой идут исходные коды имитируемых устройств (написанные на языке Delphi), на основе которых пользователь может самостоятельно создавать свои собственные устройства.

Разделы главного меню включают в себя большое количество различных режимов работы, настроек и дополнительных функций, таких как экспорт готовой прошивки в формате Intel HEX или экспорт исходного кода в формат ASM. В главном окне приложения указано название рабочей программы и путь к ней. Настройки частоты кварцевого генератора, необходимая для отображения данных о времени выполнения команды или программы и влияющая на скорость отладки кода в PIC Simulator Studio находится в меню Опции. На панелях с лева в главном окне программы приведено состояние управляющих, специальных и общих регистров выбранного контроллера, которые можно менять в ходе выполнения программы. Приложение PIC Simulator Studio открывает и симулирует файлы программ, написанных на языке Assembler (расширение *.asm), файлами собственного формата проекта (расширение *.atcss) и файлами дампов памяти (расширение *.hex), подготовленными для прошивки в контроллер.

Таким образом, практически весь процесс создания программы для микроконтроллера (от идеи до экспорта готовой прошивки) можно выполнить в PIC Simulator Studio. Немаловажной особенностью программы является поддержка интерфейсом русского языка. Все эти возможности делают программу незаменимым инструментом как для начинающих разработчиков, так и для опытных программистов.

>>> Примечание переводчика:
Я не являюсь ни профессиональным переводчиком, ни большим специалистом с электронике и программировании.
Я старался максимально точно донести смысл описания иногда опуская дословный перевод исходного текста.
Прошу прошения у читателей за отсутствие литературной правки перевода - у меня нет такого количества времени!
Если Вы переведёте выше указанный текст более качественно я буду только рад и попрошу переслать этот перевод. Я выложу его на мою страничку: aleksandr-zh.narod.ru
Так как я не имею никакой финансовой прибыли от перевода и автор Vladimir Soso явно не противился переводу данного описания на русский язык я считаю, что его авторских прав я ни коем образом не нарушил.
С уважением ко всем Вам,
Александр [email protected] в теме письма добавьте слово "письмо"
Извините за странный E-Mail - спам достал

Описаны одиннадцать примеров для работы в PIC Simulator. Все они расположены в этой же папке. Написано очень просто, шаг за шагом, для новичков. Исследуют самые важные особенности работы в PIC Simulator

Пример 1: Работа с Timer0, прерывание TMR0
Пример 2: Обработка внешних прерываний RB0/INT
Пример 3: Работа с памятью данных EEPROM
Пример 4: Математика, подпрограмма умножение, демонстрация компилятора, ассемблера и отладчика
Пример 5: Работа модуля A/D
Пример 6: Работа модуля Компаратора
Пример 7: Работа модуля LCD
Пример 8: Работа интерфейса аппаратного (hardware) UART
Пример 9: Работа интерфейса программного (software) UART
Пример 10: Отображение данных на 7-сегментных дисплеях
Пример 11: Работа с генератором Сигнала и осциллографом

Просмотреть timer0.bas файл из используемой папки. Эта программа использует Timer0 прерывания, чтобы периодически изменить значение на PORTB выводах. Файл timer0.asm был сгенерирован, используя, встроенный компилятор Basic. Файл timer0.hex был сгенерирован, используя встроенный ассемблер.

TRISB = 0x00 "устанавливает все ножки PORTB как выходы
PORTB = %111111 "Переводит все ножки PORTB в высокое состояние
INTCON.T0IE = 1 "Включает прерыванию Timer0
INTCON.GIE = True "Включает все прерывания
OPTION_REG.T0CS = False "устанавливает Timer0, синхронизируют источник на внутренние часы
End


PORTB = PORTB - 1 "декремент значение на PORTB
INTCON.T0IF = 0 "Включает заново прерывание TMR0
Resume

Запустить PIC Simulator.

- Выбери timer0.hex файл и щелчок на Open. Программа загружена.


- Эта программа использует модуль прерывания Timer0, чтобы периодически изменить значение на выводах PORTB.
- Вид экрана: представление
*

Просмотреть rb0int.bas файл из используемой папки. Эта программа использует вывод RB0/INT для создания прерывания, чтобы изменить значение на PORTA. Файл rb0int.asm был сгенерирован, используя, встроенный компилятор Basic. Файл rb0int.hex был сгенерирован, используя встроенный ассемблер.

TRISA = 0x00 "устанавливают все ножки PORTA как выводы
PORTA = 0xff "Переводит все ножки PORTA в высокое состояние
INTCON.INTE = 1 "Включает прерывания RB0/INT
INTCON.GIE = 1 "Включает все прерывания
End

On Interrupt "подпрограмма прерывания
PORTA = PORTA - 1 "декремент значение на PORTA
INTCON.INTF = 0 "Включает заново прерывание RB0/INT
Resume

Запустить PIC Simulator.
- Нажать на OptionsSelect Microcontroller.
- Выбери "PIC16F84" и щелчок на кнопке Select.
- Нажать на FileLoad Program.
- Выбери rb0int.hex файл и щелчок на Open. Программа загружена.
- Нажать на ToolsMicrocontroller View. Это откроет окно Microcontroller View.
- Снова установить окна на экране, чтобы получить лучшее представление.
- Выбери RateExtremely Fast simulation rate.
- Нажать на SimulationStart. Начнется моделирование.
- Эта программа Basic использует вывод RB0/INT и прерывания, чтобы изменить значение на PORTA.
- Щелчок на кнопку "T", связанную с ножкой RB0/INT, переключит логическое состояние этого вывода. Прерывания будут вызваны на переднем фронте импульсов. Каждый раз значение на PORTA будет изменено.
- Вид экрана: представление
*

Просмотреть eeprom.bas файл из используемой папки. Этот пример заполняет всю память EEPROM и организует бесконечный цикл. Файл eeprom.asm был сгенерирован, используя встроенный компилятор Basic. Файл eeprom.hex был сгенерирован, используя встроенный ассемблер.

Dim a As Byte "адрес eeprom
Dim b As Byte "данные eeprom

For a = 0 To 63 "Цикл для всей памяти eeprom
b = 255 - a "установите значение данных для записи
Write a, b "Запишет значение переменной "а" в ячейку "b" eeprom
Next a

Запустить PIC Simulator.
- Нажать на OptionsSelect Microcontroller.
- Выбери "PIC16F84" и щелчок на кнопке Select.
- Нажать на FileLoad Program.
- Выбери eeprom.hex файл и щелчок на Open. Программа загружена.
- Нажать на ToolsEEPROM Редактора Памяти. Это откроет окно Memory Editor EEPROM.
- Снова установить окна на экране, чтобы получить лучшее представление.
- Нажать на OptionsChange Время записи EEPROM. Введите 100 для нового значения и щелчка на OK. Вы должны быть очень осторожны при выборе этого значения, потому что реалистическое значение - приблизительно 20000 тактовых циклов в 4 МГЦ. В этом простом примере мы будем использовать короткое значение, потому что это не может затронуть функциональные возможности программы, но может значительно уменьшить время выполнения моделирования.
- Выбери RateExtremely Fast simulation rate.
- Нажать на OptionsInfinite Loop Stops Simulation, чтобы выбрать ту опцию.
- Нажать на SimulationStart. Начнется моделирование.
- Этот пример заполняет данные, память EEPROM и вводит бесконечный цикл.
- После обнаружения бесконечного цикла PIC Simulator автоматически остановит моделирование.
- Вид экрана: представление
*

Просмотреть multiply.bas файл из используемой папки. Этот пример умножит два числа 123 (шестнадцатеричный 7B) и 234 (шестнадцатеричный EA) и получит результат 28782 (шестнадцатеричный 706E). Файл multiply.asm был сгенерирован, используя, встроенный компилятор Basic. Файл multiply.hex был сгенерирован, используя встроенный ассемблер.

Dim a As Word "первое число
Dim b As Word "второе число
Dim x As Word "результат

a = 123 "устанавливают первое значение
b = 234 "устанавливают второе значение
x = * b "вычисляют результат

Запустить PIC Simulator.
- Нажать на OptionsSelect Microcontroller.
- Выбери "PIC16F84" и щелчок на кнопке Select.
- Нажать на ToolsBASIC Compiler
- Нажать на FileOpen
- Выбери multiply.bas файл и щелчок на Open. Основная исходная программа будет отображена в редакторе.
- Нажать на ToolsCompile. Компилятор генерирует multiply.asm файл с исходным текстом на ассемблере.
- Закрой окно BASIC Compiler.
- Нажать на ToolsAssembler
- Нажать на FileOpen
- Выбери multiply.asm файл и щелчок на Open. Исходная программа ассемблера будет отображена в редакторе.
- Нажать на ToolsAssemble. После того, как операция закончена, ассемблер генерирует два файла: multiply.lst и multiply.hex. Выходной файл multiply.lst будет отображен.
- Закрой окно Assembler.
- Нажать на FileLoad Program.
- Выбери multiply.hex файл и щелчок на Open. Программа загружена.
- Нажать на ToolsBreakpoints Manager. Это откроет окно Breakpoints Manager.
- Нажать на Да, чтобы использовать существующий ассемблер, выдавший файл.
- Снова установить окна на экране, чтобы получить лучшее представление.
- Нажать на строку, соответствующую адресу 0018, чтобы определить контрольную точку на этой команде.
- Выбери Hold PC In Focus option
- Выбери RateExtremely Fast simulation rate.
- Нажать на SimulationStart. Начнется моделирование.
- Когда эта математическая подпрограмма закончена, программа вводит бесконечный цикл в адрес 0018, но из-за контрольной точки, PIC Simulator автоматически переключит к режиму моделирования Шаг за шагом (Step by step).
- Вы можете остановить моделирование теперь, нажимая на SimulationStop или продолжить выполнение, очищая определенную контрольную точку и нажимая на RateExtremely.
- Универсальная пара регистра (19-ый, 18-ый) будет держать первый параметр 007B.
- Пара регистра общего назначения (1BH-1AH) будет держать второй параметр 00EA.
- Результат 706E постоянно найдется в регистрирующую пару (1DH-1CH).
- Вид экрана: представление
*

Просмотреть adc.bas файл из используемой папки. Эта программа читает аналоговое значение на аналоговом вводе AN0 и отображает преобразованный результат как 8 битов на PORTB. Файл adc.asm был сгенерирован, используя, встроенный компилятор Basic. Файл adc.hex был сгенерирован, используя встроенный ассемблер.

Symbol ad_action = ADCON0.GO_DONE "установка новое название для бита начала A/D
Symbol display = PORTB "новое название для PORTB отображать результат

TRISB = %00000000 "установка ножек PORTB как выходы
TRISA = %111111 "установка ножек PORTA как входы
ADCON0 = 0xc0 "установка A/D, синхронизирует к внутреннему источнику
ADCON1 = 0 "установка ножек PORTA как аналоговые входы
High ADCON0.ADON "включите модуль конвертера A/D

main:
Gosub getadresult "идем в подпрограмму преобразования
display = ADRESH "отобразите результат преобразования
Goto main "бесконечное повторение
End

getadresult: "подпрограмма преобразования
High ad_action "запустите преобразование
While ad_action "ждите, пока преобразование не закончится
Wend
Return

Запустить PIC Simulator.
- Нажать на OptionsSelect Microcontroller.
- Нажать на FileLoad Program.
- Выбериadc.hex файл и щелчок на Open. Программа загружена.
- Нажать на ToolsMicrocontroller View. Это откроет окно Microcontroller View.
- Снова установить окна на экране, чтобы получить лучшее представление.
- Нажать на SimulationStart. Начнется моделирование.
- Использование "прокрутки" изменяет аналоговое значение на этом штырьке и щелчек на кнопке Accept.
- Ждите, как это изменение затрагивает состояние на выводах PORTB.
- Моделирование можно остановить в любое время, нажав на SimulationStop..
- Вид экрана: представление
*

Просмотреть comp.bas файл из используемой папки. Этот пример использует аналоговый модуль компаратора, чтобы обнаружить состояние AN0 и AN1 аналоговых вводов в отношении 2.5V напряжение, сгенерированное внутренним модулем. Файл comp.asm был сгенерирован, используя, встроенный компилятор Basic. Файл comp.hex был сгенерирован, используя встроенный ассемблер.

Symbol comp_change = PIR1.CMIF "флаг прерывания компаратора
CMCON = 0x06 "установленный режим с выводами компаратора на два общих компаратора
TRISA = 0x07 "установка RA0, RA1 и RA2 как вводы, другие ножки PORTA как выходы
VRCON = 0xec "включите, конфигурируйте модуль ссылки напряжения для 2.5V и подключите это с RA2
TRISB = 0x00 "установите ножки PORTB как выходы

loop1:
While Not comp_change "ждите изменения вывода компаратора
Wend
PORTB = CMCON "отобразите регистр CMCON на выводах PORTB, RB6 и RB7 - выводы компаратора
comp_change = 0 "сбросьте флаг прерывания компаратора
Goto loop1 "бесконечное повторение

Запустить PIC Simulator.
- Нажать на OptionsSelect Microcontroller.
- Выбери"PIC16F628" и щелчок на кнопке Select.
- Нажать на FileLoad Program.
- Выбери comp.hex файл и щелчок на Open. Программа загружена.
- Нажать на ToolsMicrocontroller View. Это откроет окно Microcontroller View.
- Снова установить окна на экране, чтобы получить лучшее представление.
- ВыбериRateExtremely Fast simulation rate.
- Нажать на SimulationStart. Начнется моделирование.
- Нажать на кнопку, связанную с AN0 или AN1 штырьком.
- Использование "прокрутки" изменяет аналоговое значение на том штырьке и щелчке на кнопке Accept.
- Ждите, как это изменение затрагивает состояние на выводах PORTA и PORTB.
- Последние три шага могут быть повторены.
- Моделирование можно остановить в любое время, нажав на SimulationStop..
- Вид экрана: представление
*

Просмотреть lcd.bas файл из используемой папки. Эта программа читает аналоговое значение на AN0 аналоговом вводе и отображает отформатированный вывод на модуле LCD 2x16. Файл lcd.asm был сгенерирован, используя встроенный компилятор Basic. Файл lcd.hex был сгенерирован, используя встроенный ассемблер.

Define ADC_CLOCK = 3 "значение по умолчанию - 3
Define ADC_SAMPLEUS = 10 "значение по умолчанию - 20
Define LCD_BITS = 8 "позволенны значения 4 и 8 - количество линий интерфейса данных
Define LCD_DREG = PORTB
Define LCD_DBIT = 0 "0 или 4 для интерфейса на 4 бита, игнорируется для интерфейса на 8 битов

Define LCD_RSREG = PORTD
Define LCD_RSBIT = 1
Define LCD_EREG = PORTD
Define LCD_EBIT = 3
Define LCD_RWREG = PORTD "установленный на 0, если не используемый, 0 задан по умолчанию
Define LCD_RWBIT = 2 "установленный на 0, если не используемый, 0 задан по умолчанию

Define LCD_COMMANDUS = 100 "задержка после LCDCMDOUT, значение по умолчанию - 5000
Define LCD_DATAUS = 10 "задержка после LCDOUT, значение по умолчанию - 50
Define LCD_INITMS = 1 "задержка, используемая LCDINIT, значение по умолчанию - 100
"последние три директивы Define устанавливают значения, подходящие для моделирования; они должны быть опущены для реального устройства

Dim an0 As Word

TRISA = 0xff "все ножки PORTA как входы
ADCON1 = 0 "все ножки PORTA как аналоговые входы
Lcdinit "инициализация модуля LCD; курсор выключен

loop:
Adcin 0, an0
Lcdcmdout LcdClear "очистите дисплей LCD
Lcdout "Analog input AN0" "текст для строки 1
Lcdcmdout LcdLine2Home "курсор в начале строки 2
Lcdout "Value: ", #an0 "форматированный текст для строки 2
WaitMs 1 "большее значение должно использоваться в реальном устройстве
Goto loop "бесконечный цикл

Запустить PIC Simulator.
- Нажать на OptionsSelect Microcontroller.
- Выбери "PIC16F877" и щелчок на кнопке Select.
- Нажать на FileLoad Program.
- Выбериlcd.hex файл и щелчок на Open. Программа загружена.
- Нажать на ToolsMicrocontroller View. Это откроет окно Microcontroller View.
- Нажать на ToolsLCD Модуль. Это откроет окно имитатора Модуля LCD.
- Снова установить окна на экране, чтобы получить лучшее представление.
- Нажать на кнопку Setup на окне Module LCD.
- Нажать на "поле Data Lines" и установить PORTB.
- Нажать на поле "Interface" и установить 8 битов.
- Нажать на поле "RS Line" и установить PORTD, 1.
- Нажать на поле "E Line" и установить PORTD, 3.
- Нажать на поле "R/W Line" и установить PORTD, 2.
- Нажать на, "Apply!", чтобы закрыть диалог установки LCD inteface.
- ВыбериRateExtremely Fast simulation rate.
- Нажать на SimulationStart. Начнется моделирование.
- Нажать на кнопку, связанную с RA0/AN0 штырьком.
- Использование "прокрутки" изменяет аналоговое значение на этом штырьке и щелчке на кнопке Accept.
- Ждите, как это изменение затрагивает Модуль LCD.
- Последние три шага могут быть повторены.
- Моделирование можно остановить в любое время, нажав на SimulationStop..
- Вид экрана: представление
*

Просмотреть uart.bas файл из используемой папки. Эта программа сначала посылает 6 строк отформатированного вывода hardware UART в serial порт и затем отвечает на байты, полученные на порт serial, посылая одну строку форматированного текста для каждого полученного байта. Файл uart.asm был сгенерирован, используя, встроенный компилятор Basic. Файл uart.hex был сгенерирован, используя встроенный ассемблер.


Hseropen 9600 "откройте порт hardware UART для скорости в 9600 бод
"WaitMs 1000 "эта задержка должна использоваться в быть устройстве

For i = 10 To 5 Step -1 "цикл с уменьшением

Next i

loop:
Hserin i "ждите, чтобы получить байт на serial порте
Hserout "Number: ", #i, CrLf "пошлите отформатированное значение serial порту
Goto loop "бесконечный цикл

Запустить PIC Simulator.
- Нажать на OptionsSelect Microcontroller.
- Выбери"PIC16F877" и щелчок на кнопке Select.

- Нажать на OptionsChange UART Transmit/Receive Time.
- Ввести "100" и щелчок на кнопке OK.
- Нажать на FileLoad Program.
- Выбериuart.hex файл и щелчок на Open. Программа загружена.
- Нажать на ToolsHardware UART Simulation Interface. Это откроет окно для того, чтобы связать с помощью интерфейса hardware UART в течение моделирования.
- Снова установить окна на экране, чтобы получить лучшее представление.
- ВыбериRateExtremely Fast simulation rate.
- Нажать на SimulationStart. Начнется моделирование.
- Ждать, пока программа не закончила посылать 6 строк форматированного текста к порту serial.
- Использование одной из трех доступных кнопок в секции Ввода UART интерфейса UART посылает байт порту serial.
- Ждите, как программа отвечает, посылая одну строку отформатированного вывода.
- Моделирование можно остановить в любое время, нажав на SimulationStop..
- Вид экрана: представление
*

Просмотреть softuart.bas файл из используемой папки. Эта программа сначала посылает 6 строк отформатированного вывода к software UART в порт serial (TX линия: PORTB.1) и затем отвечает на байты, полученные порт serial (RX линия: PORTB.2), посылая одну строку форматированного текста для каждого полученного байта. Файл softuart.asm был сгенерирован, используя, встроенный компилятор Basic. Файл softuart.hex был сгенерирован, используя встроенный ассемблер.

Define SEROUT_DELAYUS = 500
Dim i As Byte "объявите переменную
"WaitMs 1000 "эта задержка должна быть в реальном устройстве

For i = 10 To 5 Step -1 "цикл
Serout PORTB.1, 9600, "Number: ", #i, CrLf "пошлите отформатированное значение, вывод PORTB.1 (линия ТХ software UART)
"WaitMs 500 "эта задержка должна быть в реальном устройстве
Next i

loop:
Serin PORTB.2, 9600, i "пошлите значение, вывод PORTB.2 (линия ТХ software UART)
Serout PORTB.1, 9600, "Number: ", #i, CrLf "пошлите отформатированное значение на serial порт
Goto loop "бесконечный цикл

Запустить PIC Simulator.
- Нажать на OptionsSelect Microcontroller.
- Выбери"PIC16F84" и щелчок на кнопке Select.
- Нажать на OptionsChange Clock Frequency.
- Ввести "4" и щелчок на кнопке OK.
- Нажать на FileLoad Program.
- Выбериsoftuart.hex файл и щелчок на Open. Программа загружена.
- Нажать на ToolsSoftware UART Simulation Interface. Это откроет окно для того, чтобы связать с помощью интерфейса программное обеспечение UART в течение моделирования.
- Настройки по умолчанию должны быть установлены: RX Line---> PORTB.2, TX Line---> PORTB.1, Baud Rate---> 9600, Logic Levels---> Standard. В противном случае команды использования от меню Settings делают необходимые изменения.
- Нажать на ToolsMicrocontroller View. Это откроет окно Microcontroller View.
- Снова установить окна на экране, чтобы получить лучшее представление.
- Выбери скорость моделирования RateUltimate (No Refresh).
- Нажать на SimulationStart. Начнется моделирование.
- Ждать, пока программа не закончила посылать 6 строк форматированного текста к порту serial. Обратите внимание на состояние PORTB.1 вывода на окне Microcontroller View.
- Использование одной из трех доступных кнопок в секции Ввода UART интерфейса UART посылает байт порту serial. Обратите внимание на состояние PORTB.2 вывода на окне Microcontroller View.
- Ждите, программа отвечает, посылая одну строку отформатированного вывода.
- Последние два шага могут быть повторены.
- Моделирование можно остановить в любое время, нажав на SimulationStop..

Вид экрана: представление
*

ПРИМЕР 10

Просмотреть 7segment.bas файл из используемой папки. Эта программа отображает числа от 0 до 99 на двух 7-сегментных дисплеях с параллельным подключением, и двумя управляющими линиями, используя процедура мультиплексирования прерывания TMR0. Файл 7segment.asm был сгенерирован, используя, встроенный компилятор Basic. Файл 7segment.hex был сгенерирован, используя встроенный ассемблер.

Dim digit As Byte "входная переменная для подпрограммы GETMASK
Dim digit1 As Byte "текущая старшей цифры
Dim digit2 As Byte "текущая младшей цифры
Dim mask As Byte "выходная переменная от подпрограммы GETMASK
Dim mask1 As Byte "текущее значение старшейцифры
Dim mask2 As Byte "текущее значение младшей цифры
Dim i As Byte
Dim phase As Bit

Symbol d1enable = PORTC.0 "линия управления для старшего 7-сегментного дисплея
Symbol d2enable = PORTC.1 "линия управления для младшего 7-сегментного дисплея
TRISB = %00000000 "установите штырьки PORTB как выводы
TRISC.0 = 0 "установит штырьки RC0 как выходы
TRISC.1 = 0 "установит штырьки RC1 как выходы
d1enable = False
d2enable = False
mask1 = 0
mask2 = 0
phase = 0
INTCON.T0IE = 1 "Включит прерывание Timer0
INTCON.GIE = 1 "Включит все прерывание
OPTION_REG.T0CS = 0 "Установит частоту Timer0 на внутренний генератор

loop:
For i = 0 To 99
digit1 = i / 10 "получите текущую высокую цифру
digit2 = i Mod 10 "получите текущую низкую цифру
TMR0 = 0 "сбросит Timer0, чтобы предотвратить его прерывание прежде, чем оба значения определены
digit = digit1
Gosub getmask "получите значение для старшей цифры
mask1 = mask
digit = digit2
Gosub getmask "получите значение для младшей цифры
mask2 = mask
Gosub show1 "отобразите новое значение
Gosub show2 "отобразите новое значение
WaitUs 500 "задержка для моделирования
"используйте большую задержку для реального устройства, например WAITMS 500

Next i
Goto loop
End

On Interrupt "подпрограмма прерывания Timer0
"непрерывно переключает между высокими и низкими дисплеями

If phase = 0 Then
phase = 1
Gosub show1

Else
phase = 0
Gosub show2
Endif
INTCON.T0IF = 0 "Разрешает прерывание TMR0

getmask: "получите соответствующее значение 7-сегментного диспля для входной цифры
mask = LookUp(0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f), digit
Return

show1: "покажите старшую цифру на дисплее
d2enable = False
PORTB = mask1
d1enable = True
Return

show2: "покажите младшую цифру на дисплее
d1enable = False
PORTB = mask2
d2enable = True
Return

Запустить PIC Simulator.
- Нажать на OptionsSelect Microcontroller.
- Выбери"PIC16F877" и щелчок на кнопке Select.
- Нажать на OptionsChange Clock Frequency.
- Ввести "4" и щелчок на кнопке OK.
- Нажать на FileLoad Program.
- Выбери7segment.hex файл и щелчок на Open. Программа загружена.
- Нажать на Tools7-Segment LED Displays Panel. Это откроет окно с четырьмя дисплеями 7-segment.
- Нажать на кнопку Setup ниже дисплея номер 2.

- Ввести 0, чтобы выбрать вывод RC0 и затем нажать на OK.
- Нажать на кнопку Setup ниже дисплея номер 1.
- Нажать на оранжевое поле рядом с Дисплеем, дают возможность метке выбрать вывод, который будет использоваться, чтобы включить/отключить этот дисплей.
- Ввести 4, чтобы выбрать PORTC и затем нажать на OK.
- Ввести 1, чтобы выбрать вывод RC1 и затем нажать на OK.
- Нажать на кнопку Hide Setup, чтобы сохранить некоторое экранное пространство.
- Снова установить окна на экране, чтобы получить лучшее представление.
- Выберинорма моделирования RateUltimate (No Refresh).
- Нажать на SimulationStart. Начнется моделирование.
- Программа отобразит числа от 0 до 99 на двух 7-сегментных дисплеях, используя процедуру мультиплексирования прерывания TMR0.
- Эксперимент с опцией Keep Last Display.
- Моделирование можно остановить в любое время, нажав на SimulationStop.
- Вид экрана: представление
*

ПРИМЕР 11

Просмотреть i2c.bas файл из используемой папки. Эта подпрограмма программирует первые 32 ячейки во внешнем устройстве serial EEPROM, используя протокол связи I2C. В этом примере это используется, чтобы демонстрировать осциллограф и модули моделирования генератора сигнала. Файл i2c.asm был сгенерирован, используя, встроенный компилятор Basic. Файл i2c.hex был сгенерирован, используя встроенный ассемблер.

Dim addr As Word "переменная для хранения байта адреса EEPROM
Dim data As Byte "переменная для хранения байта данных EEPROM

Symbol sda = PORTC.2 "новое имя для вывода SDA
Symbol scl = PORTC.3 "новое имя для вывода SCL

For addr = 0 To 31 "будут записаны первые 32 байта
data = 255 - addr "значение байта данных для записи
I2CWrite sda, scl, 0xa0, addr, data "используем I2C для записи в serial EEPROM WaitMs 1 "маленькая задержка
Next addr

Запустить PIC Simulator.
- Нажать на OptionsSelect Microcontroller.
- Выбери"PIC16F877" и щелчок на кнопке Select.
- Нажать на OptionsChange Clock Frequency.
- Ввести "4" и щелчок на кнопке OK.
- Нажать на FileLoad Program.
- Выбериi2c.hex файл и щелчок на Open. Программа загружена.
- Нажать на ToolsOscilloscope. Это откроет четыре канала цифровое окно осциллографа.
- Нажать на Канал SettingsTurn On/Off Oscilloscope 1.
- Ввести 2, чтобы выбрать PORTC для канала 1 целевой порт вывода и затем нажать на OK.
- Ввести 2, чтобы выбрать вывод RC2 для канала 1 целевой вывод и затем нажать на OK.
- опция Pull-up Select для канала 1 вывод.
- Нажать на Канал SettingsTurn On/Off Oscilloscope 2.
- Ввести 2, чтобы выбрать PORTC для канала 2 целевых порта вывода и затем нажать на OK.
- Ввести 3, чтобы выбрать вывод RC3 для канала 2 целевых вывода и затем нажать на OK.
- опция Pull-up Select для канала 2 вывода.
- Нажать на Канал SettingsTurn On/Off Oscilloscope 3.
- Ввести 1, чтобы выбрать PORTB для канала 3 целевых порта вывода и затем нажать на OK.
- Ввести 0, чтобы выбрать вывод RB0 для канала 3 целевых вывода и затем нажать на OK.
- Нажать на Канал SettingsTurn On/Off Oscilloscope 4.
- Ввести 1, чтобы выбрать PORTB для канала 4 целевых порта вывода и затем нажать на OK.
- Ввести 1, чтобы выбрать вывод RB1 для канала 4 целевых вывода и затем нажать на OK.
- Нажать на ToolsSignal Generator. Это откроет четыре канала непрерывный генератор импульсов.
- Нажать на SettingsTurn On/Off Signal Generator 1.
- Ввести 1, чтобы выбрать PORTB для канала 1 целевой порт вывода и затем нажать на OK.
- Ввести 0, чтобы выбрать вывод RB0 для канала 1 целевой вывод и затем нажать на OK.
- Ввести 500, чтобы определить период для канала 1 импульс и затем нажать на OK.
- Ввести 25, чтобы определить цикл режима работы для канала 1 импульс и затем нажать на OK.
- Нажать на SettingsTurn On/Off Signal Generator 2.
- Ввести 1, чтобы выбрать PORTB для канала 2 целевых порта вывода и затем нажать на OK.
- Ввести 1, чтобы выбрать вывод RB1 для канала 2 целевых вывода и затем нажать на OK.
- Ввести 1000, чтобы определить период для канала 2 импульса и затем нажать на OK.
- Ввести 50, чтобы определить цикл режима работы для канала 2 импульса и затем нажать на OK.
- Нажать на ToolsMicrocontroller View. Это откроет окно Microcontroller View.
- Снова установить окна на экране, чтобы получить лучшее представление.
- ВыбериRateExtremely Fast simulation rate.
- Нажать на SimulationStart. Начнется моделирование.
- I2C связь может быть соблюден относительно модуля осциллографа так же как импульсов, сгенерированных генератором сигнала.
- Моделирование можно остановить в любое время, нажав на SimulationStop..
- Вид экрана: представление
*

PIC Simulator IDE Author: Vladimir Soso ALL RIGHTS RESERVED.
PIC Simulator IDE official web site is on the following address.

Программа, предназначенная для отладки кода контроллеров microPIC компании .

PIC Simulator IDE представляет собой мощное программное обеспечение, включающее в себя удобную графическую среду разработки, симулятор, Basic-компилятор, ассемблер, дизассемблер, отладчик. Программа подходит как для опытных разработчиков, так и для начинающих программистов. В настоящее время симулятор поддерживает около 80 моделей 8-битных микроконтроллеров от Microchip архитектуры Midrange, принадлежащих сериям PIC12F, PIC16F и PIC10F (ограниченная поддержка).

Ключевой особенностью программы PIC Simulator IDE являются широкие возможности по взаимодействию отлаживаемого кода с виртуальной периферией, что значительно уменьшает время, затрачиваемое на разработку программ, и делает ненужным использование отладочных плат с подключенными внешними устройствами. Программа включает в себя множество специальных модулей, имитирующих работу различных электронных устройств, например, терминала связи, символьного жидкокристаллического экрана, четырехканального генератора, трехфазного шагового двигателя, матрицы клавиатуры, семисегментных индикаторов, осциллографа, «аппаратного» UART, цифрового термометра и другого оборудования. Кроме того приложение дает возможность посмотреть распиновку выбранного микроконтроллера для моделирования цифровых и аналоговых входов, назначить точки останова, редактировать FLASH- и EEPROM-память чипа, изменять конфигурационные биты и т.д.

Основные разделы меню включают в себя большое количество различных режимов работы, настроек и дополнительных модулей, позволяя пользователям самостоятельно выбирать варианты использования данного софта. В главном окне приложения указано название рабочей программы и путь к ней, тип выбранного микроконтроллера и частота кварцевого генератора, необходимая для отображения данных о времени выполнения команды или программы, но не влияющая на скорость отладки кода в PIC Simulator IDE. Здесь же приведено состояние управляющих и специальных регистров выбранного контроллера, которые можно менять в ходе выполнения программы.

Приложение PIC Simulator IDE работает с файлами программ, написанных на языке Basic (расширение *.bas), файлами, откомпилированными на ассемблере (расширение *.asm), и файлами дампов памяти (расширение *.hex), подготовленными для загрузки в контроллер.

Автором ПО PIC Simulator IDE является Владимир Сосо – физик по образованию, много лет занимающийся разработкой приложений в области промышленной автоматизации и электроники. Он является владельцем интернет-ресурса Oshon Software Project, на котором представлены все работы программиста: Z80 Simulator IDE, AVR Simulator IDE, 8085 Simulator IDE и некоторые другие программы.

Программа PIC Simulator IDE является платной, стоимость колеблется от 39 евро (персональная лицензия для одного пользователя) до 750 евро (институтская лицензия, позволяющая использовать софт на всех компьютерах данного заведения, включая лэптопы работников и студентов). Также можно скачать актуальную ознакомительную версию данного приложения, имеющую ряд ограничений. В частности, количество запусков программы составляет не более 30 раз, а продолжительность каждой сессии не превышает 60 минут.

Программное обеспечение PIC Simulator IDE представлено на английском языке. Русификатора к нему нет. Установка PIC Simulator IDE проходит в автоматическом режиме. В комплект поставки входит ряд готовых примеров, файлы справки и стартовое руководство.

Приложение может работать в операционных системах Microsoft Windows (95, 98, Me, XP, Vista, 7, 8) и Linux (при помощи программы Wine).

Распространение программы: платная от 39 евро. Есть ознакомительная версия с ограничениями

Вверх