ЗНАЕТЕ ЛИ ВЫ?

Описание тестовой программы и некоторых функций драйвера



Обработчик прерывания вызывается после завершения очередной операции преобразования. Значения регистров данных АЦП (ADCDATAL и ADCDATAH) записываются в буфер драйвера. Сначала записывается старший байт, потом сдвигается на 8 разрядов и переписывается младший байт.

InitADC() – инициализация АЦП. Для простоты инициализации производится жесткая настройка АЦП без возможности изменения настроек пользователем. Устанавливается циклическое преобразование 9 канала (термодатчик) – ADCCON2=0x28. Делитель частоты – 8, число тактов задержки – 4, тактирование от Таймера 2 – ADCCONl=0x3F. Устанавливается процедура обработки прерывания и АЦП переключается в нормальный рабочий режим.

ConvertToTemp() – преобразует передаваемое значение кода в температуру в строковом формате. Вначале передаваемое значение избавляется от старшей тетрады, которая содержит идентификатор канала. После этого код преобразуется в соответствующее ему значение напряжения (61*значение_кода=напряжение в 0.01 милливольтах). Напряжение вычитается из 675мВ (напряжения 0 Сº ) и делится на 300. Теперь переменная Temperature содержит значение температуры в градусах. Если знак переменной отрицательный, то температура положительна, поэтому значение умножается на -1 и в начало строки заносится знак температуры «+». В противном случае в начало строки заносится «-».В переменную Grad заносится 1/6 доли градуса. После всего этого полученные переменные преобразуются в строку.

 


Приложение 1. Краткое описание симулятора AVSIM85.

+-------------------+

¦ Командное меню ¦

+-------------------+

Большинство команд вызываются по нажатию первой буквы этой команды

+------------+

¦ УПРАВЛЕНИЕ ¦

+------------+

Ctl-C прерывает выполнение команды и вызывает переход к пункту меню более высокого уровня

SIMULATION Function (управление процессом симуляции) клавиши и MODE toggle (Esc)(клавиша переключения режимов) продолжают работать в любое время.

+------------------+

¦ Ввод выражений ¦

+------------------+

Используемые операторы: Операнды определяются следующим образом:

+ - @ CPU symbols – см. файл AVSIM51.REG

() до 4 уровней symbols - таблица символов пользователя

$ Текущее сост. прогр. счетчика

Указатели на систему счисления: . результат предыдущего выраж.

Binary: %111 or 111B 'x' or "x" Символьные константы

Octal: @377 or 377Q digits число в соответствующей системе

Hex: $FF or FFH

+----------------+

¦ ENTER MNEMONIC ¦

+----------------+

Мнемоника вводится так же как в ассемблере.

Операнды вводятся по правилам описанным в предыдущем разделе.

Формат строки: {метка:} операция {операнды} {; коментарий}

 

+--------------+

¦ клав. редакт ¦

+--------------+

← курсор влево Esc переключение окон

→ курсор вправо ctl-C выход в основное меню

<- backspace INS вставка

enter ввод DEL стереть символ

+-------------+

¦Точки останова¦

+-------------+

On Breakpoints, a delay can be specified by typing digits BEFORE selecting

the Breakpoint TYPE.

On sticky breakpoints, this delay is restored after each activation.

+---------------------------+ +-------------------+

¦Клавиши управления режимами¦ ¦ Быстрые клавиши ¦

+---------------------------+ +-------------------+

ESC: реключатель режима. ctl-A/B Аккумулятор / B

Командное меню/окно отображения

F7: Режим курсора: Hex, ASCII, ctl-P Программный Binary счетчик

Ctl-PgUp: Переключатель прокрутки ctl-S Указатель стека

ctl-R Банк регистров

+---------------------+ alt-0/7 Регистр:0/7

¦ управление курсором ¦ ctl-D DPTR

+---------------------+ ctl-CXFO Флаги: C/AC/F0/OV

← влево ctl-I Разрешение прерываний

→ вправо ctl-T Таймер 0

↑ вверх alt-AB DUMP окно

↓ вниз alt-PQ Порты: 0/2

HOME к первому символу в окне alt-SC Последов.порт BUF/CON

END к последнему символу в окне alt-Y Счетчик циклов

PgUp на одно окно вверх +-------------------------------+

PgDn на одно окно вниз ¦ клав. Редактирования объектов ¦

+-------------------------------+

-----между окнами----- +/- inc/dec byte/word/flag

Return Вернуться к предыдущему INS Переключатель byte/nibble/bit

ctl-→ на одно окно вправо ctl-END очистка до конца

ctl-← на одно окно влево ctl-HOME очистка оставшейся части

+-----------------------+

¦ Управление симуляцией ¦

+-----------------------+

Запуск: --> F1 Переключатель вкл./выкл. – включение симуляции до конца программы (точки останова) или повторного нажатия

--> F10 Пошаговое выполнение - выполнение одной команды

--> F9 Undo – Отмена одной команды

Точки останова: --> F2 Передвинуть курсор точек останова вверх

--> F4 Передвинуть курсор точек останова вниз

--> F3 Установка точки останова – уст. Точку останова в текущее положение курсора точек останова

F5 скорость – установка скорости симуляции

+----------------+

¦ TOGGLE CONTROL ¦

+----------------+

ALT-F5 LABEL Toggle - "LABEL": Addresses & operands are displayed symbolically

"ADDR" (top left of screen): No symbols in disassembly

F6 DISPLAY Toggle - ON: Screen is updated after each instruction during GO

OFF: Only TRACED windows are updated until trap occurs

ALT-F6 TRACE Toggle - ON: Window is updated even when display OFF

OFF: Window is updated only when display ON

F7 CURSOR TYPE - Hex / Ascii / Binary

Cursor will move to preferred screen object

type, if displayed as several types

F8 SKIP Toggle - SKIP ON will Single Step across call opcodes

(by setting a bkpt at the next instruction

and GOing with display OFF)

 

Команды меню

 

Dump

Select DUMP Area: 1 2

DUMP: Absolute Indirect

Задает область резидентной памяти, отображаемой в 1-м и 2-м окнах

Обозначения адресов: D:адрес – резидентная память данных (можно не указывать)

X:адрес – внешняя память данных

C:адрес – память программ

B:адрес – область прямо адресуемых битов

Absolute – абсолютный адрес

Indirect – косвенный адрес

 

Expression

Enter Expression:

Expression will be stored at __

Задает выражение, которое будет вычислено и записано в указанный регистр

commandFile

Load/Save keypressed sequences

COMMAND FILE: Load SAVE: Open Close Restart

Задает файл с последовательностью нажатия клавиш

Help

Commands Display Simulation Avocet

Вызов справки по указанным разделам

IO

IO FILE: Open Close

Задает файл ввода-вывода данных

Load

LOAD: Avocet Data Program Symbol-table rOm

Загрузка в память программы или данных из внешнего файла

Memory

MEMORY: Clear Fill Move Search searchNext

LOWER Address

UPPER Address

Установка или поиск данных в резидентной памяти данных

Patch

PATCH: Patch code Open output file Close file

Заполнение резидентной памяти программ

Quit

QUIT: Exit

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

Reset

RESET: Cpu Disptrace cYcles

Сброс процессора, трассировки или счечика циклов

Set

SET: Memory-map Passpoint opTions cYcles V-drive

Установка карты памяти, точек останова, счетчика циклов

SET BREAKPOINT: Conditional Dynamic Opcode Sticky

Установка точек останова

setUp

SETUP: Undo

Задание числа шагов отмены

View

VIEW: Bkpts IO-files Memory-map Opc-traps Passpts Symbols

Просмотр параметров отладки

eXecute

Execute Instruction

Ввести и выполнить команду


Приложение 2. Язык ассемблера avsim85. Основные сведения.

Языки ассемблера

Основные общие особенности языка ассемблера (чаще не совсем точно называемого просто ассемблером; строго ассемблером называется программа, которая переводит последовательность команд с языка ассемблера на язык машинных кодов процессора) микропроцессоров совпадают с особенностями всех языков подобного типа.

Языки ассемблера являются машинно-ориентированными языками и, следовательно, для каждого типа процессоров существует свой язык. Почти каждая команда ассемблера эквивалентна команде на машинном языке процессора. Однако программирование на ассемблере, по сравнению с программированием на машинном языке (на уровне машинных кодов), существенно облегчается за счет возможности использования символического обозначения всех элементов программы (кодов операций, адресов ячеек памяти, программ и данных, переменных и констант, операндов и т.д.). Используемые символические обозначения элементов обычно отражают их содержательный смысл. При программировании на языке ассемблера программист может не заботиться о распределении памяти, о назначении конкретных адресов операндам. В ассемблере допускается оформление повторяющейся последовательности команд как одной макрокоманды. Соответствующие версии языка, допускающие использование макрокоманд, называют макроассемблерами. Кроме того, ассемблеры позволяют в той или иной форме использовать при программировании стандартные структуры типа цикл, разветвление.

При программировании на ассемблере доступны все ресурсы системы и конкретного процессора (регистры, стек, память и т.д.). Это позволяет получать эффективные программы с точки зрения времени их выполнения и объема памяти, необходимого для размещения программы. Проблемы, связанные с конкретной аппаратурой и периферийными устройствами процессора лучше и удобнее решать на языке ассемблера. Однако программирование на ассемблере предполагает знание архитектуры и свойств процессора, т.е. всего того, что входит в понятие программная модель процессора.

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

Ниже рассмотрены основные сведения о языке ассемблера пакета AVSIM85 v2.02 для МП Intel 8080/8085 (КР580/КР1821).





Последнее изменение этой страницы: 2017-01-25; Нарушение авторского права страницы

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