
- •Элементы и устройства автоматики. Часть 1
- •Алматы 2006
- •Внимание! Далее во всех лабораторных работах создавайте окно наблюдения за всеми регистрами.
- •Программа 2.1
- •Фрагмент 4.1. Программирование клавиатуры.
- •Приложение г Описание некоторых команд микропроцессора pic
- •Перевод чисел из двоичной системы в шестнадцатеричную и обратно
Кафедра
инженерной
кибернетики
Элементы и устройства автоматики. Часть 1
Методические
указания к
выполнению лабораторных работ
для
студентов теплоэнергетических
специальностей
Алматы 2006
СОСТАВИТЕЛИ: А. А. Копесбаева, В. М. Тарасов. Элементы и устройства автоматики. Часть 1. Методические указания к выполнению лабораторных работ для студентов теплоэнергетических специальностей. – Алматы: АИЭС, 2006. – с.
Представлены методические указания к выполнению лабораторных работ по дисциплине «Элементы и средства автоматизации»
Рецензент: канд. техн. наук, доцент Шевяков Ю.В.
Печатается по плану издания Алматинского института энергетики и связи на 2006 год.
© Алматинский институт энергетики и связи 2006 г.
Введение
В набор работ в данных методических указаниях входят 4 лабораторные работы на учебном микропроцессорном комплекте УМК-7.
Таблица 1. Перечень лабораторных работ по ЭУА, выполняемых на УМК-7
Номер лабораторной работы |
Наименование |
1 |
Изучение среды MPLAB. Управление портами микропроцессора |
2 |
Сложение, вычитание. Логика. Операции сдвига |
3 |
Сравнение чисел. Маскирование. Организация переходов. Использование косвенной адресации. |
4 |
Программирование клавиатуры. Написание и обращения к подпрограммам |
До дня проведения работы студенты должны к ней подготовиться: во время внеаудиторных занятий прочитать описание лабораторной работы, составить программы для заданных вариантов заданий.
Отчет о лабораторной работе должен содержать тексты программ для микропроцессора с комментариями, и заполненную таблицу результатов для своего варианта.
Лабораторная работа 1. Изучение среды MPLAB. Освоение карты памяти PIC, некоторых команд, портов вывода
Цель работы: изучить среду MPLAB, изучить технику управления портами микропроцессора и командами установки и стирания отдельных бит в регистрах. Научиться применять символьные имена.
Оборудование и программное обеспечение: Windows98, среда MPLAB, комплекс УМК-7.
Задания для внеаудиторной подготовки:
познакомиться с описанием УМК-7 и MPLAB по приложению А;
познакомиться по приложению Б с битами RP0 и RP1 регистра status, определяющими номер банка;
познакомиться с картой памяти PIC по приложению В;
познакомиться по приложению Г с командами микропроцессора PIC, примененными в приведенных ниже программах;
познакомиться с регистрами PORTC и TRISC, и их размещением в банках. Помните, что регистры могут находиться в разных банках микропроцессора;
подготовьте тексты программ по заданиям 1.1 и 1.2 в таблицах 1.1 и 1.2 для ввода в микропроцессор при аудиторных занятиях. Используйте приведенные ниже образцы программ в качестве аналога.
Таблица 1.1 – Варианты к заданию 1.1
Вариант |
Заданные значения |
Вариант |
Заданные значения |
1 |
00001111 |
6 |
10101010 |
2 |
11110000 |
7 |
01010101 |
3 |
00111100 |
8 |
00110011 |
4 |
11001100 |
9 |
11100010 |
5 |
01001101 |
10 |
00011101 |
Примечание - Программа должна последовательно зажигать светодиоды, подключенные к порту С. Используйте символьные имена в программе. |
Таблица 1.2 - Варианты к заданию 1.2
Вариант |
Настройка ввод/вывод порта С |
Число, пересылаемое в порт С |
Вариант |
Настройка ввод/вывод порта С |
Число, пересылаемое в порт С |
1 |
00111100 |
00001111 |
6 |
11110000 |
10101010 |
2 |
01100111 |
11110000 |
7 |
11000011 |
01010101 |
3 |
00011110 |
00111100 |
8 |
11100001 |
00110011 |
4 |
00111011 |
11111111 |
9 |
11100111 |
00111111 |
5 |
00011101 |
10101010 |
10 |
01110011 |
11000111 |
Примечание - Напишите программу для настройки порта С на ввод/вывод и пересылки в него заданного числа. |
Образцы программ
Программа 1.1. Управление портом С, применение символьных имен. Символьные имена устраняют двусмысленность и облегчают чтение исходного текста. В качестве значения для символьных имен могут быть данные или адреса регистров. Ассемблер, когда встретит символьное имя, вместо него будет подставлять значение, присвоенное символьному имени.
После точки с запятой в программе напечатаны комментарии.
include<p16F877.inc>
R0 EQU B'00000001' ; R0 символьное имя, его значение 01h.
R1 EQU B'00000010' ; R1 символьное имя, его значение 02h.
; Начало исполняемой части программы.
org 0 ; Код, следующий за этим выражением, начинается с нулевого ; адреса электрически программируемого постоянного запоминающего ; устройства (ЭППЗУ).
nop ; Пустая команда используемая для работы отладчика.
nop ;
nop
org 05 ; Код, следующий за этим выражением, начинается с 5-го адреса ; ЭППЗУ (метка START).
START ; Метка начала программы.
CLRF STATUS ; Очистить регистр status и выбрать банк 0.
BSF STATUS, RP0 ; Выбрать первый банк.
CLRF TRISC ; Обнулить TRISC, и настроить PORTC на выход.
CLRF STATUS ; Выбрать нулевой банк.
LOOP ; Метка.
CLRF PORTC ; Потушить светодиоды.
MOVLW B'11000011' ; Переслать в регистр W число В’11000011’.
MOVWF PORTC ; Переслать число из W в PORTC ,зажечь ; те светодиоды, которые подключены к биту, содержащему «1».
MOVLW B’00000001’ ; Записать в регистр W двоичное число.
MOVWF PORTC ; Переслать это число в регистр PORTC.
MOVLW R0 ; Переслать в регистр W число B’00000001’.
MOVWF PORTC ; Зажечь светодиоды, переслав в порт С число из W.
MOVLW R1 ; Переслать в регистр W число B’00000010’.
MOVWF PORTC ; Зажечь светодиоды.
GOTO LOOP ; Перейти на метку LOOP.
END
Программа 1.2. В этой программе выполнена настройка четырех младших разрядов регистра PORTС на вывод, остальных на ввод.
include <p16F877.inc>
org 0x000 ; Выполнение программы начинается с нулевого адреса.
nop
nop
nop
org 05h ; Продолжить с адреса 5.
START ; Метка начала программы.
CLRF STATUS ; Очистка регистра.
BSF STATUS, RP0 ; Записать 1 в бит RP0 и выбирать банк 1.
MOVLW B’11110000’ ; Значение, используемое для настройки ; четырех младших разрядов порта на ввод, а четырех старших ; разрядов на вывод.
MOVWF TRISC ; Настройка четырех младших разрядов порта С ; на ввод, а четырех старших разрядов на вывод.
CLRF STATUS ; Выбрать нулевой банк.
LOOP ; Метка.
CLRF PORTС ; Очистить порт С.
MOVLW B’11111111’ ; Записать в W двоичное число.
MOVWF PORTС ; Записать в порт С восемь единиц.
MOVLW B’00111100’ ; Записать в W двоичное число.
MOVWF PORTС ; Записать его в порт С.
GOTO LOOP ; Вернуться на метку LOOP.
END
Задания к выполнению лабораторной работы на УМК-7
З
адание
1. Запустите MPLAB двойным щелчком мыши по
соответствующей иконке на рабочем
столе. Напечатайте подготовленную дома
программу по заданию 1. При наборе текста
программы применяйте регистр букв как
в образце. С первой позиции печатаются
метки, с шестой позиции печатаются
команды.
Сохраните программу, например с именем tut877.asm в папке program.
Ч
тобы
заставить работать вашу программу нужно
её скомпилировать, для этого необходимо:
закрыть открытый проект, если такой есть, командами Project – Close Project в основном меню MPLAB;
создать новый проект командами Project – New Project;
указать папку для размещения нового проекта, и затем ввести имя проекта tut877.pjt в поле File Name (см. рисунок 1.1). Нажать кнопку OK.
Д
Обратите внимание на строку Development Mode. Она показывает, что мы работаем с симулятором MPLAB-SIM и процессором PIC12C508. На вашем дисплее будут указаны тот Development Mode и тот процессор, с которым работали с последний раз в MPLAB-IDE. Возможно сейчас необходимо изменить этот параметр для этого нажмите кнопку Change. Откроется окно Development Mode, показанное на рисунке 1.3. Выберите строку MPLAB-ICD Debugger. Нажмите кнопки Apply и OK. Вы вернетесь в окно Edit Project.
Выделите строку tut877 [.hex] в области Project Files в диалоговом окне Edit Project, и затем нажмите кнопку Add Node. В диалоговом окне Add Node выберите файл tut877.asm, и затем нажмите кнопку OK. Вы вновь вернетесь в окно Edit Project.
Ассемблер MPASM всегда создает файл с расширением .hex, скомпилированный из asm-файла тем же названием, что и исходный asm-файл. Менеджер проекта (Project Manager) создаст файл tut877.hex, при формировании проекта (Built Project).
Нажмите OK, чтобы закрыть окно Edit Project.
Г
отовый
проект следует сохранить командами
Project - Save Project. Теперь выберите команды
Project - Make Project для компиляции приложения,
используя MPASM. Окно Build Results
покажет командную строку, посланную
ассемблеру. Если в последней строке
будет написана фраза “Build
completed successfully”, как показано на
рисунке 1.4, то компиляция проведена
успешно. В случае неудачи щелкните 2
раза в окне Build Results на строку с
ошибкой и вы вернетесь в текст ассемблера
на соответствующую строку. Исправьте
текст программы. Повторно выполните
команды Project - Save Project и Project - Make Project
для компиляции. Устраните таким образом
все ошибки.
У
странив
все ошибки запрограммируйте кристалл,
нажав в окне MPLAB-ICD кнопку Program
(рисунок 1.5). Если это окно отсутствует,
закройте и снова откройте созданный
вами проект. Если эти действия не помогут
исправьте установки Development Mode командами
Optiens -
Development Mode – MPLAB ICD Debugger.
Программирование может занять пару
минут, в течение этого времени поле
Status показывает процесс выполнения.
По завершении программирования в поле
Status отображается сообщение “Waiting
for user command” - “Ожидание команды
пользователя”.
Выполните программу в пошаговом режиме командами Debug – Run - STEP. Следите за результатами выполнения команд по светодиодам.
Если выполнение программы застряло на какой либо строке и не продолжается дальше, выполните команду Debug – Clear all points.
Остановите выполнение программы командами Run - Reset. (Команда Halt просто приостанавливает выполнение программы и после команд Debug – Run- Step выполнение программы продолжится с места останова).
Запустите её в обычном режиме командами Debug – Run – Run. Наблюдайте выполнение программы. Объясните почему светятся все светодиоды одновременно.
При необходимости исправьте домашнюю заготовку для включения ее в отчет по лабораторной работе. Можно скопировать текст в Блокнот.
Задание 2. Измените программу согласно подготовленной программе по заданию 1.2 настройки порта С на ввод/вывод и пересылке в него заданного числа.
Сохраните эту программу не изменяя имени файла и проекта. Используя команды Save Project и Make Project, создайте проект как описано ранее.
Внимание! В дальнейших лабораторных работах меняйте только текст программы, не меняя имени файла и проекта.
Запрограммируйте кристалл и запустите программу в пошаговом режиме командами Debug – Run - Step. Запишите результат работы программы в таблицу 1.3.
Таблица 1.3 – Таблица результатов
Число по настройке порта С на вход/выход |
Пересылаемое в порт С число |
Выходное число в порту С |
|
|
|
Задание 3. Исследуйте состояние регистров PORTC и W, для этого создайте окно наблюдения командами Window – Watch Window – New Watch Window. Напечатайте в поле редактирования символ “P” и из предложенного списка выберите строку PORTC. Нажмите кнопку Properties и выберите двоичный формат вывода чисел. Далее нажмите кнопку Add. В результате будет создано новое окно наблюдения с именем Watch1. Теперь напечатайте в поле редактирования ‘W’ и из предложенного списка выберете W, нажмите на кнопку ADD и затем CLOSE. Второй раз нажимать на кнопку Properties не требуется. Повторите программу из задания 1.2 в пошаговом режиме и наблюдайте за изменением состояния регистров PORTC и W в созданном вами окне Watch1.