Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методички по Микропроцессорам / ТЕХНИЧЕСКОЕ ОПИСАНИЕ(3-43).doc
Скачиваний:
29
Добавлен:
26.04.2015
Размер:
551.42 Кб
Скачать

1.5.3.1 Написание программы

Текст программы можно набирать в любом текстовом редакторе, такие как встроенный редактор Norton Commander, FAR, а также Microsoft Word, WordPad и других. Также можно использовать специально предназначенные для этого программы Wavrasm, AVR Studio

Для создания программы не обязательно использовать ассемблер, программное обеспечение AVR поддерживает также и язык C или С++. Но в лабораторном комплексе этот вариант не рассматривается.

Программа, написанная на ассемблере, должна иметь определенную структуру.

Предлагается следующий шаблон (для AT90S8535)

;*******************************************

; название программы,

; краткое описание, необходимые пояснения

:*******************************************

;******подключаемые дополнительные файлы

.include “8535def.inc” ; файл описания AT90S8535

.include «имя_файла1.расширение» ; включение дополнительных

.include «имя_файла2.расширение» ; файлов

;******глобальные константы

.equ имя1 = xxxx ;

.equ имя2 = nnnn

;******глобальные регистровые переменные

.def имя1= регистр

.def имя2= регистр

;*******сегмент данных

.dseg

.org xxxx ; адрес первого зарезервированного байта

label1:  .BYTE 1     ; резервировать 1 байт под переменную label1 label2:  .BYTE m    ; резервировать m байт под переменную label2 

;****** сегмент EEPROM (ЭСППЗУ)

.eseg  

.org xxxx ; адрес первого зарезервированного байта

.db выражение1,выражение2,… ; записать список байтов в EEPROM.

.dw выражение1,выражение2,… ; записать список слов в EEPROM.

;******сегмент кодов

.cseg

.org $0000 ; адрес начала программы в программной памяти

;****** вектора прерываний (если они используются)

rjmp reset ;прерывание по сбросу

.org $0002

rjmp INT0 ;обработчик прерывания IRQ0

.org $0004

rjmp INT1 ;обработчик прерывания IRQ1

.org adrINTx ;адрес следующего обработчика прерываний

rjmp INTx ;обработчик прерывания x

……. ;далее по порядку располагать обработчики остальных ;прерываний

;*******начало основной программы

main: <команда> xxxx

… …

;******* подпрограммы

;*******подпрограмма 1

subr1: <команда> xxxx

…… ………. ……

ret

;*******подпрограмма 2

subr2: <команда> xxxx

…… ………. ……

ret

…………….

;******* программы обработчиков прерываний

INT0: <команда> xxxx

…… ………. ……

reti

INT1: <команда> xxxx

…… ………. ……

reti

INTx: <команда> xxxx

…… ………. ……

reti

………………………

; конец программы никак не обозначается.

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

Как уже указывалось, программа простейшая: вычесть из числа 5 число 3. Если включен тумблер SA1 (рис. 1.2), то на индикацию выдать результат вычитания. Если тумблер SA1отключен – на индикацию вывести цифру ноль.

Алгоритм программы (рис. 1.5) соответствует программе №1, использующей директиву equ ассемблера.

Программа №2 отличается от программы №1 резервированием по одному байту оперативной памяти под семисегментные коды цифр от 0 до 9.

Программа №3 самая короткая. Она использует директиву .dw для определения слов в программной памяти. В программе используется команда LPM ассемблера. По этой команде загружается байт, адресуемый регистром Z в регистр R0. Команда обеспечивает доступ к любому байту памяти программы, организованной как 16 битное слово. Младший бит регистра Z определяет, осуществляется ли доступ к младшему байту слова (0) или к старшему (1).

Десятичное

число

Код

0

3f

1

06

2

5b

3

4f

4

66

5

6d

6

7d

7

07

8

7f

9

6f


Рис. 1.5 Алгоритм программы №1

;Программа №1.Использование директивы equ

.include "8535def.inc" ;включить файл – описание для AT90S8535

.dseg ;сегмент данных

.equ cod0=$64 ;присвоение имен ячейкам SRAM

.equ cod1=$65

.equ cod2=$66

.equ cod3=$67

.equ cod4=$68

.equ cod5=$69

.equ cod6=$6a

.equ cod7=$6b

.equ cod8=$6c

.equ cod9=$6d

.cseg

.org 0

rjmp reset

.org $30 ;начало программы

reset:

ldi r16,$00 ;определение стека с вершиной по адресу $00ff

out sph,r16

ldi r16,$ff

out spl,r16

ldi zl,$64 ;задание адреса начала зарезервированных ячеек

ldi zh,$00

ldi r16,$ff ;настроить порт С на выход

out ddrc,r16

ldi r16,00 ;настроить порт А на вход

out ddra,r16

ldi r16,$c ;настроить порт В: биты 2 и 3 на выход, остальные на вход

out ddrb,r16

ldi r16,$f0 ;настроить порт D: биты 0...4 на вход, остальные на выход

out ddrd,r16

sbi portB,3 ;выдать 1 на разряд 3 порта В

ldi r17,$3f ;задание семисегментных кодов

sts cod0,r17

ldi r17,$06

sts cod1,r17

ldi r17,$5b

sts cod2,r17

ldi r17,$4f

sts cod3,r17

ldi r17,$66

sts cod4,r17

ldi r17,$6d

sts cod5,r17

ldi r17,$7d

sts cod6,r17

ldi r17,$07

sts cod7,r17

ldi r17,$7f

sts cod8,r17

ldi r17,$6f

sts cod9,r17

ldi r17,5 ;задание уменьшаемого

ldi r18,3 ;задание вычитаемого

m1: sbis pina,4 ;если включен тумблер SA1,то пропустить

rjmp m2 ;следующую команду

mov r20,r17 ; в r20 поместить уменьшаемое

sub r20,r18 ; вычесть вычитаемое

rjmp vv

m2:

ldi r20,0

vv:

push zl ;сохранить zl в стеке

add zl,r20 ;сложить zl с результатом

ld r0,z ;семисегментный код результата переслать в r20

pop zl ;извлечь zl из стека

out portc,r0 ;выдать результат на индикацию

rjmp m1

;Программа №2. Использование оперативной памяти под переменные

.include "8535def.inc" ;подключение файла описания AT90S8535

.dseg ;сегмент данных

.org $64 ;адрес первого зарезервированного байта

cod0:.byte 1 ;резервирование по одному байту под переменные

cod1:.byte 1

cod2:.byte 1

cod3:.byte 1

cod4:.byte 1

cod5:.byte 1

cod6:.byte 1

cod7:.byte 1

cod8:.byte 1

cod9:.byte 1

.cseg ;сегмент кодов

.org $0 ;адрес начала программы в программной памяти

rjmp reset ;прерывание по сбросу при подаче питания

;или при нажатии на кнопку "Сброс"

reset:

ldi r16,$00 ;определение стека с вершиной по адресу $00ff

out sph,r16

ldi r16,$ff

out spl,r16

ldi zl,$64 ;задание адреса начала зарезервированных ячеек

ldi zh,$00

ldi r16,$ff ;настроить порт С на выход

out ddrc,r16

ldi r16,00 ;настроить порт А на вход

out ddra,r16

ldi r16,$c ;настроить порт В: биты 2 и 3 на выход, остальные на вход

out ddrb,r16

ldi r16,$f0 ;настроить порт D: биты 0...4 на вход, остальные на выход

out ddrd,r16

sbi portb,3 ;выдать 1 на разряд 3 порта В

ldi r17,$3f ;задание семисегментных кодов

sts cod0,r17

ldi r17,$06

sts cod1,r17

ldi r17,$5b

sts cod2,r17

ldi r17,$4f

sts cod3,r17

ldi r17,$66

sts cod4,r17

ldi r17,$6d

sts cod5,r17

ldi r17,$7d

sts cod6,r17

ldi r17,$07

sts cod7,r17

ldi r17,$7f

sts cod8,r17

ldi r17,$6f

sts cod9,r17

ldi r17,5 ;задание уменьшаемого

ldi r18,3 ;задание вычитаемого

m1: sbis pina,4 ;если включен тумблер SA1,то пропустить

rjmp m2 ;следующую команду

mov r20,r17 ; в r20 поместить уменьшаемое

sub r20,r18 ; вычесть вычитаемое

rjmp vv

m2:

ldi r20,0

vv: push zl ;сохранить zl в стеке

add zl,r20 ;сложить zl с результатом

ld r0,z ;семисегментный код результата переслать в r20

pop zl ;извлечь zl из стека

out portc,r0 ;выдать результат на индикацию

rjmp m1

;Программа №3. Использование директивы .dw

.include "8535def.inc" ;подключение файла описания AT90S8535

.cseg

.org 0

rjmp reset

.dw $063f,$4f5b,$6d66,$077d,$6f7f,$7c77,$5e39,$7179 ;семисегментные коды

reset:

ldi r16,$00 ;определение стека с вершиной по адресу $00ff

out sph,r16

ldi r16,$ff

out spl,r16

ldi r16,$ff

out ddrc,r16 ;настроить порт С на выход

ldi r16,00

out ddra,r16 ;настроить порт А на вход

ldi r16,$c

out ddrb,r16 ;настроить порт В: биты 2 и 3 на выход, остальные на вход

ldi r16,$f0

out ddrd,r16 ;настроить порт D: биты 0...4 на вход, остальные на выход

sbi portb,3 ;выдать 1 на разряд 3 порта В

ldi zl,02 ;установить адрес семисегментного кода нуля в регистр Z

ldi zh,00

ldi r17,5 ;задание уменьшаемого

ldi r18,3 ;задание вычитаемого

m1: sbis pina,4 ;если включен SA1, то пропустить следующую команду

rjmp m2

mov r20,r17 ;в r20 поместить уменьшаемое

sub r20,r18 ;вычесть вычитаемое

rjmp vv

m2:

ldi r20,0 ;присвоить результату значение нуль

vv: push zl ;сохранить zl в стеке

add zl,r20 ; сложить zl с результатом

lpm ;загружаем бит, адресуемый регистром Z, в регистр R0

pop zl ;извлечь zl из стека

out portc,r0 ;выдать результат на индикацию

rjmp m1

1.5.4 Ввод программы

Подготовленная программа вводится в ПЭВМ с рабочего места после включения комплекса в работу.

Включение комплекса, собранного по схеме рис.1, осуществляется включением составных частей ПЭВМ и нажатием кнопки включения на блоке питания комплекса БП. Номер рабочего места устанавливается переключателем внутри блока управления и должен совпадать с номером на блоке связи с ЭВМ.

Переключатель режима работы платы ЖКИ рабочего места необходимо поставить в положение “Программирование”. При нажатии на кнопку “Сброс” блока управления на ЖКИ появляется надпись “Место” с соответствующим номером. Этому номеру будет соответствовать окно на экране дисплея ПЭВМ.

Программное обеспечение располагается в каталоге STAND90, в котором есть два подкаталогаSERVERиPK&MK. Программное обеспечение работает в средеWINDOWS. ПрограммаSERVERзапускается файломserver.bat, программаPK&MK– файломPk&mk.exe.

Сразу после запуска программы-сервера на экран выводится меню из трех пунктов: 1 – удалить старые файлы (например, оставшиеся после предыдущей работы), 2 – загрузить старые файлы (для продолжения работы с ними), 3 – любая другая клавиша (например, пробел или Esc) – не удалять и не загружать. После нажатия соответствующей клавиши на экране появляется восемь окон.

Пример содержимого экрана ПЭВМ во время работы программы представлен на рис. 1.6.

Каждое окно имеет надпись “Место” с номером рабочего места и область размером 4х16 знакомест, в которой отображается информация, выводимая на ЖКИ соответствующего рабочего места. Внизу экрана имеется строка, в которой описаны “горячие” клавиши – клавиши и сочетания клавиш, нажатия на которые вызывают определенные действия.

Из “горячих” клавиш студенту доступна только клавиша F6 (просмотр ошибок). Назначение “горячих” клавиш представлено в табл. 1.3.

Узлы набора программ рабочих мест имеют встроенный микроконтроллер AT89C51 для управления ЖКИ и клавиатурой. Микроконтроллер передает клавиатурные коды с рабочих мест в ПЭВМ и отображает принятые от ПЭВМ данные на ЖКИ.

Рис. 1.6. Изображение на экране ПЭВМ

Таблица 1.3.

«Горячие» клавиши

Alt–X

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

Alt–номер

Выбор номера места, с которым работает преподаватель: “номер” – число от 1 до 8. Выбранное окно выделяется цветной рамкой

F2

Запись программы выбранного места из ОЗУ на винчестер

F4

Включение режима редактирования (и листания) преподавателем программы выбранного места; при этом запрещен ввод программы с соответствующего рабочего места

F5

“Распахивание” выбранного окна на половину экрана; при этом преподаватель может листать текст программы независимо от студента. Повторное нажатие F5 возвращает экран в исходное состояние

F6

Переключение на режим просмотра ошибок в программе выбранного места; это переключение возможно только из режима редактирования.

F8

Очистка текстового буфера выбранного места; для сохранения очистки нужно после этого нажать клавишу F2.

F9

Запуск процесса компиляции или печати

После появления восьмиоконного изображения на экране, студент нажимает кнопку «Сброс» блока управления и клавишу «Пробел» на клавиатуре рабочего места. Появляется на ЖКИ точно такое же изображение как в соответствующем окне монитора ПЭВМ. Теперь можно проводить на своем рабочем месте набор подготовленной дома программы.

Так как у ЖКИ в строке только 16 знакомест, в которые должна укладываться директива или команда, то возникают сложности с размещением «длинных» директив или команд. К «длинной» директиве, требующей более 16 знакомест, относится и необходимая в каждой программе в обязательном порядке директива .include “8535def.inc”. С клавиатуры ЖКИ ввести её в ПЭВМ невозможно. Поэтому в программном обеспечении комплекса предусмотрено ввод этой директивы в программу, которую набирает обучаемый, до компиляции. Таким образом, если эта директива не будет введена в программу, то она будет проставлена автоматически и ошибки не возникнет. Но необходимо отметить, что если эта директива будет введена с рабочего места не полностью, то это вызовет ошибку компиляции. Поэтому эту директиву с рабочего места вводить не нужно.

Об ограничениях на «длинные» команды и директивы следует помнить при использовании директивы .dw(см. программу №3). В одной строке можно разместить только саму директиву .dwи два шестнадцатиразрядных слова. Если нужно разместить слов больше двух, то нужно многократно использовать эту директиву.

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

После набора и просмотра программы студент подходит к преподавателю и сообщает о завершении набора программы. Преподаватель предупреждает студентов о временном прекращении их работы и выбирает окно на экране дисплея нажатием клавиш Alt+ цифра номера рабочего места. Нажимает клавишуF4 (редактирование), просматривает программу и при необходимости вводит соответствующие коррективы в программу. Затем нажимает клавишуF9 (компиляция программы).

После компиляции программы появляется на экране монитора сообщение о наличии и количестве ошибок в программе (если они есть), например, такого вида “Assemble complete with 1 error”. Или сообщение об их отсутствии “Assemble complete with no errors” и предложение выбора действия в виде сообщения:

Выберите:

ESC – продолжение редактирования;

1 – прошивка микроконтроллера;

2 – печать текста программы;

3 – печать листинга.

При наличии ошибок необходимо нажать клавишу ESC. Восстанавливается связь с рабочими местами. Студент идет на рабочее место для анализа и исправления ошибок. В его распоряжении «горячая» клавиша F6. При нажатии этой клавиши на экране ЖКИ появляется сообщение о первой ошибке, например, такого вида, если вместо .org $000 напечатано в программе .rg $000.

.rg $000

Ошибка #23

Неправильная

директива

Студент оценивает, как нужно исправить ошибку, нажимает вновь на клавишу F6 и возвращается в режим редактирования. Курсор стоит на строке с ошибкой. Студент исправляет ошибку и вновь нажимает клавишу F6. Опять высвечивается та же строка, но уже с исправлениями, однако сообщение об ошибке сохраняется. Это сообщение об ошибке будет устранено потом при компиляции исправленной программы, разумеется, если исправление сделано правильно. Для перехода к следующей ошибке нужно нажать клавишу курсора . Появляется очередная строка с ошибкой. Анализируется ошибка этой строки, принимается решение об её устранении, нажимается вновь клавиша F6. Курсор указывает строку с ошибкой. После устранения ошибки вновь нажимается клавиша F6 и клавиша курсора  для выявления очередной ошибки и т.д. После устранения последней ошибки нажатие клавиши курсора  не приводит к очередному переводу.

После исправления всех ошибок студент с помощью преподавателя осуществляет компиляцию программы. Если ошибки устранены неправильно и они есть в программе, нажимается клавиша ESCклавиатуры преподавателя и студент вновь на своем месте устраняет ошибки. Если же ошибок нет, то можно приступить к записи программы в микроконтроллер.

1.5.5 Запись программы в микроконтроллер

Для записи программы в микроконтроллер по «подсказке», появляющейся на экране монитора после завершения компиляции, нажимается клавиша 1. Появляется надпись «Прошивка контроллера. Нажмите любую клавишу.»

После этого необходимо выполнить следующие операции:

– переключатель «Выбор рабочего места» блока связи с ПЭВМ нужно поставить в положение рабочего места студента;

– переключатель «Запись – Работа» блока связи с ЭВМ поставить в положение «Запись»;

– нажать любую клавишу клавиатуры преподавателя;

– по светодиодам блока связи с ЭВМ, контролирующим работу последовательного порта SPI, убедиться в наличии записи;

– при появлении сообщения «Запись окончена!!! Нажмите любую клавишу» нажать любую клавишу;

– при появлении восьмиоконного режима работы монитора переключатель «Запись – Работа» поставить в положение «Работа».

Пока переключатель «Запись – Работа» находится в положении «Запись» связь остальных рабочих мест с ПЭВМ, так же как и при компиляции, прерывается.

1.5.6 Проверка функционирования программы

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

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

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

1.5.7 Вывод на печать программы и её листинга

Распечатки программы и её листинга являются частью отчетных материалов по работе. Для вывода программы и её листинга на печать необходимо выполнить следующее:

– одновременно нажать клавишу ALTи клавишу цифры номера рабочего места. На экране монитора выделяется необходимое окно;

– нажать клавишу F4. Вводится режим редактирования;

– нажать клавишу F9. Вводится режим компиляции;

– в появившемся после компиляции на экране монитора «меню», выбрать и нажать клавишу с цифрой 3 для печати программы или клавишу с цифрой 4 для печати листинга;

– далее, следуя подсказке на экране монитора, дать команду на работу принтера;

– для выхода после печати монитора в восьмиоконный режим работы нажать клавишу ESC.

Программа на языке ассемблера выводится на печать в том виде, в котором она хранится в ПЭВМ. При выводе на печать листинга программы следует учитывать следующее. Фирменная программа вывода листинга, даже для короткой программы выводит листинг на нескольких страницах формата А4. В нем отражается состояние портов, всех регистров и тому подобное. Вывод такого листинга «напрасный» перевод бумаги и времени при проведении лабораторных работ. Предусмотрена возможность вывода «укороченного» листинга, который выводится при наличии в программе ошибок. Этот листинг полезен для анализа ошибок и их последующего устранения.

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

Следует учесть, что при печати программы и её листинга ПЭВМ отключена от остальных рабочих мест. Это уже не те несколько десятков секунд, которые требуются для компиляции и записи программы в микроконтроллер. Время печати определяется объемом программы и используемым принтером. Поэтому решение, что и когда выводить на печать, принимает преподаватель.

Это является неизбежным недостатком комплекса, использующим одну ПЭВМ на несколько (до восьми) рабочих мест, по сравнению с идеальным случаем «Одна ПЭВМ – одно рабочее место».

1.5.8 Работа с виртуальным объектом автоматизации

Подготовленная дома программа управления виртуальным объектом вводится в ПЭВМ, компилируется и записывается в микроконтроллер рабочего места также, как описано в предыдущих пунктах.

Для демонстрации работы виртуального объекта при управлении от микроконтроллера по подготовленной программе необходимо проделать следующее:

– кабель рабочего места подключить к специальному разъему «Управление виртуальным объектом» БС;

– переключатель «Выбор режима работы» БС поставить в положение «Управление объектом». На блоках управления рабочих мест загорается светодиод «Запрет обмена»:

– переключатель «Режим» блока управления рабочего места поставить в положение «Управление объектом»;

– одновременным нажатием клавиш ALTиXклавиатуры преподавателя обеспечить выход из восьмиоконного режима монитора, в подкаталогSERVER;

– выйти из подкаталога SERVERи войти в подкаталогPK&MK;

– в подкаталоге PK&MKвыбрать и запустить файлpk&mk.exe. Появляется на экране заставкаMК&PC;

– нажать клавишу ESC. В верхнем левом углу экрана появится надпись «Тип процесса»;

– нажать клавишу «ENTER». На экран выводится меню виртуальных объектов;

– перемещением курсора отметить выбранный виртуальный объект;

– нажать клавишу «ENTER». Появится заставка названия виртуального объекта;

– вновь нажать клавишу «ENTER». На экране появится изображение виртуального объекта;

– убедится, что механизмы объекта находятся в исходном положении, предусмотренном в подготовленной программе. При наличии несоответствия положений механизмов требуемому, одновременным нажатием клавиш ALT и R выйти в режим ручного управления объектом с клавиатуры преподавателя. Нажимая на клавиши управления механизмами (нажатие клавиш указано под изображением объекта), установите механизмы в необходимые положения;

– нажатием клавиш Alt + K осуществить перевод на управление объектом с рабочего места комплекса. Нажать кнопку «Сброс» БУ. Наличие обмена информацией между ПЭВМ и микроконтроллером можно визуально наблюдать по светодиодам UART на лицевой панели БС. Желательно дополнительно в подпрограмме обмена информацией между ПЭВМ и микроконтроллером предусмотреть при входе в неё включение выбранного светодиода БУ и выключение его после завершения обмена. Мигание этого светодиода подтверждает наличие обмена;

– при отсутствии связи между микроконтроллером и ПЭВМ нужно вернуться в режим редактирования программы. Для этого необходимо одновременным нажатием клавиш Alt + X отключить изображение объекта, выйти из подкаталога РК&МК, войти в подкаталог SERVER, запустить файл server.bat и войти в восьмиоконный режим работы монитора. Переключатель «Выбор режима работа» БС поставить в положение «Программирование» и в положение «Набор программы» – переключить «Режим» БУ. Восстанавливается связь всех рабочих мест с ПЭВМ. Кабель рабочего места вставить в гнездо рабочих мест. Найдите в программе причину отсутствия обмена между микроконтроллером и ПЭВМ. После компиляции программы и записи ее в микроконтроллер вновь приступайте к процедурам управления виртуальным объектом;

– при наличии обмена информацией между микроконтроллером и ПЭВМ, подавая с кнопок (тумблеров) необходимые команды, наблюдайте работу механизмов объекта;

– при несоответствии работы механизмов объекта заданию вновь нужно вернуться в режим редактирования (описано выше) и внести коррективы в программу;

– работа завершена, если механизмы объекта работают в полном соответствии с заданием.

Программное обеспечение управления виртуальными объектами обеспечивает вывод на экран монитора циклограмм работы систем автоматизации для следующих виртуальных объектов:

– участок транспортировки изделий в методическую печь для их нагрева перед прокаткой (методическая печь);

– механизмы управления крышкой нагревательных колодцев обжимного прокатного стана (нагревательный колодец);

– участок сортировки и пакетирования годных и бракованных листов металла (сортировка листов);

  • участок сортировки труб большого диаметра (транспортировка труб);

  • станок для сверления глубоких отверстий (станок).

Для вывода циклограмм работы системы автоматизации на экран следует

нажать клавиши Alt + С, при этом на экране появляются циклограммы работы системы;

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

Выход из программы осуществляется нажатием клавиш Alt + X.

Как уже указывалось выше, при управлении виртуальным объектом и работе принтера связь рабочих мест с ПЭВМ прерывается. Поэтому выполнение этой завершающей работы одновременно с 8-ми рабочих мест невозможно. Реально одновременно могут работать два рабочих места. Это следует учитывать при организации проведения лабораторных работ.

1.6 Работа комплекса в режиме «Одна ПЭВМ – одно рабочее место»

Лабораторный комплекс может использоваться не только для проведения лабораторных работ со студентами. Можно его использовать для решения реальных задач (производственных), требующих подготовки и записи программы в микроконтроллеры AT90S8535 илиAT90S4434, используемые в качестве встраиваемых контроллеров.

В этом случае необходимо использование одного рабочего места. Можно отказаться от работы монитора ПЭВМ в восьмиоконном режиме и от ввода программы с клавиатуры рабочего места. Тогда ввод программы в ПЭВМ и её редактирование осуществляется с клавиатуры преподавателя. Исчезают затруднения с «длинными» директивами и командами, комментарии можно писать и на русском языке, более удобно работать с экраном монитора, чем с экраном ЖКИ.

В рассматриваемом режиме работы комплекса, который условно назван режимом «Одна ПЭВМ – одно рабочее место», БУ рабочего места используется для записи программы в микроконтроллер. Поэтому в схеме подключения комплекса ПЭВМ никаких изменений, по сравнению с режимом работы со студентами, нет. Из восьми рабочих мест используется только одно (остальные рабочие места могут быть отключены от БС).

В режиме «Одна ПЭВМ – одно рабочее место» изменяется использование программного обеспечения комплекса.

Для ввода программы используется программа AvrStudio.

Для запуска программы запустите файл AvrStudio.exe. Появится основное диалоговое окно программы.

В верхней части программы находится меню, в нем надо выбрать Project–>New. В появившемся окне выберите имя проекта (Project name), место на диске, куда сохранять проект (Location), а также тип проекта(Project type), щелкнув мышью на AVR assembler, затем щелкнув на кнопке OK.

Появится окно проектов (Project :), в котором находится дерево файлов. В него входят файлы, которые будут компилироваться, с расширением .asm (Assembler Files), а также дополнительные файлы библиотек (Other Files). На ветви Assembler Files необходимо щелкнуть правой кнопкой мыши появится меню, в нем необходимо выбрать пункт Create New File.

В появившемся окне выбрать имя файла (Name), обязательно с расширением .asm и нажать кнопку OK.

В открывшемся окне проектов появится в дереве файлов отдельной ветвью имя файла. Его нужно перетащить, удерживая на нем правую кнопку мыши на ветвь Assembler Files. После этого щелкнув правой клавишей мыши снова вызвать меню и выбрать пункт параметры проекта (Project Settings). В появившемся окне AVR Assembler Options в пункте формат выходного файла (Output file format:) выбрать Intel Intellec 8/ MDS (Intel Hex), нажать OK.

Затем снова вернуться в окно проектов, и щелкнув правой кнопкой мыши на ветви другие файлы (Other Files) вызвать меню и выбрать пункт добавить файл (Add File), найти файл 8535def.inc и подключить его к проекту. Необходимо отметить, что этот файл должен находится в той же папке, что и asm файл, который создается, поэтому его лучше скопировать заранее, иначе это вызовет ошибку компиляции. Если все сделано правильно, то окно проектов должно выглядеть следующим образом:

Теперь щелкаем два раза на asm файле и в открывшемся окне набираем программу. После того как программа набрана, нажимаем F7 и производим её компиляцию, при этом создается файл с расширением hex, который затем надо будет записать в микроконтроллер. После компиляции появится окно Project Output, в котором указано, какой файл ассемблируется, используемый файл библиотеки, количество слов в программе и сообщение об отсутствии ошибок Assembly complete with no errors. Если есть ошибки, то в этом окне указывается тип ошибки, номер строки с ошибкой и в конце общее число ошибок. Для их исправления необходимо вернутся к редактируемому файлу и их исправить, а затем снова откомпилировать программу.

AvrStudio позволяет не только компилировать программы но и отлаживать их на этапе разработки. При этом AvrStudio эмулирует работу микроконтроллера, всех портов ввода/вывода, счетчиков/таймеров, прерываний, ШИМ и АЦП. Эмуляция работы программы позволяет рассмотреть её работу, как если бы она была записана в микроконтроллер.

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

Для отладки программы, после того как она написана, нужно в меню Project выбрать пункт Build and run или нажать Ctrl + F7. Появится окно опции эмулятора (Simulation Options). В пункте устройство (Device) нужно выбрать микроконтроллер AT90S8535, в пункте частота (Frequency), частоту 8 МГц, нажать кнопку OK.

После этого появится окно, в котором набиралась программа, но начало программы будет отмечено желтой стрелкой – это начало программы, выше идут директивы компилятора. При эмуляции работы программы необходимо видеть состояния регистров, портов ввода/вывода, процессора. В главном меню программы выбираем пункт просмотр (View), затем пункт регистры (Registers), далее пункты процессор(Processor), просмотр ввода/вывода (New IO View). В меню View имеются и другие пункты, которые можно использовать, но в данном руководстве не рассматриваются. Для наблюдения работы микроконтроллера в большинстве случаев достаточно только этих окон. Таким образом после всех этих действий получится окно примерно такого вида:

Теперь можно приступить к запуску программы. AvrStudio позволяет запустить программу в реальном времени, в пошаговом режиме, до указателя. В главном меню в пункте отладка (Debug), находятся все варианты запуска программы.Reset – сброс на начало программы (желтая стрелка указателя показывает на начало),Go – запуск в реальном времени (программа будет выполнятся до тех пор пока не будет выбран пункт Break), Step over – пошаговый режим (программа выполняется построчно, при этом останавливается после каждой команды, стрелка указывает на текущую команду), Run to cursor – выполнять до курсора (программа выполняется до места отмеченного курсором в окне с редактируемой программой). Во время выполнения программы можно наблюдать за состоянием регистров после каждой команды, тем самым проверяется правильность операций, производимых микроконтроллером. Наиболее удобный режим для этого – пошаговый.

Содержание окон для наблюдения процессов в микроконтроллере в основном понятно, необходимо пояснить содержание окна IO, в котором показаны все устройства микроконтроллера. Напротив каждого устройства стоит знак «+», щелкнув на нем мышкой, получаем содержимое этого устройства, т.е. состояние управляющих регистров, регистров данных и т.д. Два раза щелкнув на содержание, какого-нибудь регистра можно изменить его состояние в процессе выполнения программы. В регистре портов ввода/вывода можно задать входные сигналы, отмечая галочкой в нужном бите состояния логической единицы, тем самым эмулируется воздействие внешних сигналов.

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

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

Для записи программы в микроконтроллер используется программа New_SP. Для запуска программы запустите new_sp.exe.

В нижней части окна программы установить номер порта COM2, нажать кнопку Start. Если порт установлен, нижняя часть окна станет зеленой. Затем в окнах с полосами прокрутки выбрать диск, каталог, и имя записываемого файла с расширением .hех. Для записи программы нажать кнопку Write Flash. Программа записывается в микроконтроллер и в верхнем окне выводится тип микроконтроллера и имя записываемого файла. Если запись невозможна, не выбран hex файл или нет соединения с микроконтроллером, программа выводит сообщение Nothing to do for sp.