- •История отрасли
- •Введение
- •1.1. Общие сведения
- •1. Меню File
- •2. Меню Edit
- •3. Меню Circuit
- •4. Меню Analysis
- •Simulation temperature (temp) – температура, при котором проводится моделирование;
- •Команда Transient … – расчет переходных процессов. Диалоговое окно содержит следующие основные данные:
- •Процент от включенной совокупности 68.0 95.0 95.5 99.0 99.7 99.9
- •Меню Window
- •Команда Circuit – вывод схемы на передний план;
- •Меню Help
- •1.2. Задание к самостоятельной работе
- •13. Провести моделирование формирователя импульсов (рис. 1.22). Зарисовать временные диаграммы и определить параметры импульсов.
- •1.3. Содержание отчета
- •1.4. Контрольные вопросы
- •Список рекомендуемой литературы
- •2.1. Общие сведения
- •2.2. Графическая среда разработки программного обеспечения
- •Элементы алгоритма:
- •2.3. Система команд
- •Операторы условных переходов
- •Представление констант
- •Распределение ресурсов мк и объявление имен
- •Форматы переменных
- •Секция объявления констант
- •Представление констант в виде алгебраических выражений
- •Метки обслуживания прерываний
- •Подключение к проекту алгоритмов из других файлов
- •2.4. Задание к самостоятельной работе
- •2.5. Содержание отчета
- •2.6. Контрольные вопросы
- •Список рекомендуемой литературы
- •Изображение базовых логических элементов по гост 2.708 – 81 и в программе моделирования
- •Схемотехническое моделирование электронных схем
- •Альбом схем
- •Примеры программ на языке графического ассемблера
- •Список задач по программированию
- •Содержание
- •1 Применение программы схемотехнического моделирования
- •2 Основы разработки программ на языке avr ассемблера
Секция объявления констант
При программировании можно пользоваться константами в непосредственном виде. Но когда одна и та же константа используется в нескольких местах алгоритма, то целесообразнее дать ей имя и использовать его в операторах. При этом если потребуется изменить эту константу во всем алгоритме, то будет достаточно изменить только в месте ее объявления. Кроме того, использование имен существенно облегчает восприятие алгоритма.
Заголовок секции: Constants
В этой секции предусмотрены следующие поля:
Name – объявляемое имя.
Value – алгебраическое выражение, определяющее величину;
Для выборки байта из константы к ее имени следует дописать «.#», где # – номер байта, начиная с 0. Например, оператор:
«InputCode.1 -> r16»
Загрузит в r16 константу $DC.
По умолчанию, в среде объявлены следующие системные константы:
«CPU_Clock_Frequency» – частота работы ядра в герцах;
«SRAM_Size» – размер SRAM в байтах;
«SRAM_Org» – начало области SRAM;
«EEPROM_Size» – размер EEPROM в байтах.
«Flash_Size» – размер Flash памяти программы в 16-разрядных словах.
Секция объявления имен рабочих регистров
Заголовок секции: Working registers:
В этой секции предусмотрены следующие поля:
Name – объявляемое имя.
Index – (необязательный параметр) константа, определяющая индекс регистра. По умолчанию принимается индекс, следующий за предыдущим, а в начале компиляции - равным нулю.
Format – (необязательный параметр) формат объявляемого регистра. По умолчанию принимается однобайтный формат. При объявлении многобайтного регистра автоматически назначаются имена составляющих их однобайтных регистров. При объявлении двухбайтного регистра к именам добавляются буквы «L» и «H», а для трех- и четырехбайтных – символы «0», «1» и т.д. в соответствии с порядковым номером. Например, при объявлении двухбайтного (формат «Word») регистра с именем «Counter», автоматически объявляются составляющие его два однобайтных регистра с именами «CounterL» и «CounterH». Многобайтные форматы рабочих регистров используются только в макрооператорах.
При объявлении допускается одному и тому же регистру давать несколько имен.
По умолчанию в среде действуют стандартные имена однобайтных регистров: «r0..r31» или «R0..R31», а также: «WL»=«r24», «WH»=«r25», «XL»=«r26», «XH»=«r27», «YL»=«r28», «YH»=«r29», «ZL»=«r30», «ZH»=«r31» и двухбайтных («Int16» или «Word»): «W»=(«r24,r25»), «X»=(«r26,r27»), «Y»=(«r28,r29») и «Z»=(«r30,r31»).
Секция объявления имен регистров ввода-вывода
Заголовок секции: I\O Registers:
В этой секции предусмотрены следующие поля:
Name – объявляемое имя.
I/O Register – стандартное или ранее объявленное имя регистра ввода-вывода.
При объявлении допускается одному и тому же регистру давать несколько имен.
По умолчанию в среде действуют стандартные имена «p0…p63», а так же определенные в оригинальном описании микроконтроллера, такие как: «SPL», «SPH», «TCNT0», «EEDR» и т.д. Кроме того, в макрооператорах возможно использование имен двойных регистров, например: «ADC», «TCNT1».
В большинстве случаев необходимости заполнения этой секции нет, т.к. все используемые регистры уже имеют имя по умолчанию.
Объявление имен битов рабочих и I/O регистров
Заголовок секции: Bits
В этой секции предусмотрены следующие поля:
Name – объявляемое имя;
Bit – уже существующее имя или запись, определяющая бит.
По умолчанию в среде действуют типовые имена битов регистров ввода-вывода определенные в оригинальном описании микроконтроллера, такие как: «DDA7», «ACIC», «ADEN», «ICNC1» и т.д.
Пример использования имен:
Секция объявления переменных SRAM
Заголовок секции: SRAM:
В этой секции предусмотрены следующие поля:
Name – объявляемое имя переменной (ячейки памяти);
Address – (необязательный параметр) константа, определяющая конкретное значение адреса. По умолчанию – следующий за предыдущим либо $60 в начале компиляции;
Format – (необязательный параметр) формат переменной. По умолчанию принимается однобайтный формат. Многобайтные форматы используются в макро-операторах.
Count – (необязательный параметр) – число резервируемых ячеек. По умолчанию принимается равное 1.
В операторах с непосредственной адресацией SRAM «[#]->R» и «R->[#]», имя переменной может быть использовано вместо «[#]».
Имя переменной с префиксом «@» является константой, содержащей ее физический адрес SRAM.
Приведенные ниже примеры будут откомпилированы с одинаковым результатом:
[$100] -> r0 , Phase -> r0 , [@Phase] -> r0
Если переменная объявлена как массив (Count>1, например, «LDC_Page»), то ее имя будет указывать на первый байт массива. Для непосредственно адресации произвольного элемента массива, используйте смещение адреса. Например, если необходимо копировать r0 в пятый элемент массива, то следует записать:
r0->[@LCD_Page+5]
Приведенный ниже пример очищает все элементы массива LCD_Page:
//
Если
не
равно
0 то
продолжить
Секция объявления переменных EEPROM
Заголовок секции: EEPROM:
В этой секции предусмотрены следующие поля:
Name – назначаемое имя переменной;
Address – (необязательный параметр) – константа, определяющая конкретное значение адреса. По умолчанию – следующий после предыдущего либо 0 в начале секции;
Format – (необязательный параметр) – формат ячейки. По умолчанию принимается однобайтный формат. При необходимости можно задать многобайтный формат.
Count – (необязательный параметр) – число резервируемых ячеек. По умолчанию принимается равным 1.
Value – (необязательный параметр) начальные значения, представленные в виде константы или массива констант через запятую (если Count>1).
Имя переменной с префиксом «@» является константой, содержащей ее физический адрес в EEPROM.
