Лабораторные работы 1-5-Драгунов (Методические указания к лабораторным работам 1, 2, 3, 4, 5)
Описание файла
Документ из архива "Методические указания к лабораторным работам 1, 2, 3, 4, 5", который расположен в категории "". Всё это находится в предмете "программно-логическое управление" из 6 семестр, которые можно найти в файловом архиве МПУ. Не смотря на прямую связь этого архива с МПУ, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "программно-логическое управление" в общих файлах.
Онлайн просмотр документа "Лабораторные работы 1-5-Драгунов"
Текст из документа "Лабораторные работы 1-5-Драгунов"
Федеральное агентство по образованию
Московский государственный технический университет “МАМИ”
Кафедра “ Автоматика и микропроцессоры”
Одобрено методической
С.С. Драгунов комиссией факультета
“Автоматизация и управление”
МЕТОДИЧЕСКИЕ УКАЗАНИЯ
ПО ВЫПОЛНЕНИЮ ЛАБОРАТОРНЫХ РАБОТ
По дисциплине “Программно – логическое управление”
для студентов, обучающихся по направлению 22020062(550200)
и по специальностям 22020165(210100), 23030165(210200) .
Под редакцией профессора,
к.т.н. Харитонова В.И.
Москва -2005
Драгунов С.С. ,ст . препод.
Методические указания по дисциплине “Программно – логическое управление”
для студентов, обучающихся по направлению 22020062(550200) и по специальностям 22020165(210100), 23030165(210200) .
стр.40, рис . 3, прил., библ. . 6 ,2005 г.
В методических указаниях представлена информация, необходимая для организации и выполнения студентами лабораторных работ. Тематика лабораторных работ включает: Вывод имени на LCD дисплей, исследование команды вычитания, определения среднего значения из n-чисел, изучение программы перевода чисел из шестнадцатеричной системы счисления в десятичную, программно-логическое управление физической моделью шагового двигателя в системе круиз контроль.
© Московский государственный технический университет “МАМИ” 2005 г.
Общие положения
Целью проведения лабораторных работ является закрепление основных теоретических положений, изложенных в лекциях по дисциплине “Программно – логическое управление ”, и отработка навыков по программированию на языке Ассемблер для микроконтроллера фирмы Microchip 18 серии
В данном приложении рассмотрены лабораторные работы по следующим темам:
-
Вывод имени на LCD дисплей.
-
Исследование команды вычитания.
-
Определения среднего значения из n-чисел.
-
Изучение программы перевода чисел из шестнадцатеричной системы счисления в десятичную.
-
Изучение программы бегущая строка
В результате выполнения лабораторных работ студент должен освоить:
-
Основы разработки приложений на языке Assembler.
-
Основные функции языка, а также их применение и синтаксис.
-
Основы управления физическими моделями с использованием программных средств(Assembler).
Для успешного выполнения лабораторного практикума студенту следует иметь персональный компьютер с операционной системой Windows 98 и выше, микроконтроллер PIC18F452)
Значительная часть каждой лабораторной работы рассчитана на выполнение на персональном компьютере в часы, отводимые на самостоятельную работу.
Отчёт по лабораторной работе распечатывается на принтере. Титульная страница выполняется в соответствии с приложением А.
Отчёты по лабораторным работам принимаются к защите равномерно в течение семестра.
Общие правила выполнения лабораторных работ и работы с компилятором и загрузчиком.
-
За основу студент принимает текст программы, данный в методическом пособии в качестве примера, и вносит изменения в соответствии со своим вариантом задания.
-
На каждом компьютере создаётся папка с именем группы в папке stend (которая находится на рабочем столе), далее студент в папке с именем своей группы создаёт папку со своей фамилией. Далее все рабочие файлы заносятся строго в свою папку.
-
Создаем текстовый файл (файл с расширением *.txt) и набираем текст программы, соответствующий текущей лабораторной работе, либо по усмотрению преподавателя берём готовый
-
Вносим в текст программы изменения , соответствующие заданию по вариантам на данную лабораторную работу и сохраняем файл Запускаем компилятор Mpasmwin ( рис .1)
Рис .1 Рабочее окно компилятора.
-
Нажимаем Browse и указываем сохранённый текстовый файл.
-
Нажимаем кнопку Assemble и компилируем исходный текстовый файл. В случае если исходный текст программы написан с ошибками, то компилятор укажет количество ошибок, который необходимо исправить в исходном тексте программы. В случае, если текст написан без ошибок, то в папке с исходным файлом появится файл с таким же именем, но с расширением *.hex.
-
Запускаем рабочее окно загрузчика (Рис. 2)
Рис .2 Рабочее окно загрузчика микроконтроллера.
-
Нажимаем кнопку , и выбираем файл с расширением *.hex
-
Выбираем COM порт персонального компьютера, к которому подключен микроконтроллер и нажимаем кнопку старт, затем нужно быстро нажать красную кнопку RESER на микроконтроллере
-
На LCD экране должна появиться индикация, в зависимости от выполняемой лабораторной работы
Лабораторная работа №1
Вывод имени на LCD дисплей
В данной лабораторной работе от учащегося требуется вывести на LCD дисплей микроконтроллера своего имени.
При вводе букв (элементов имени) разрешается ввод только символами английского алфавита, в противном случае программа не откомпилируется, и соответственно не будет работать.
Исходный текст программы
LIST P=18F452, F=INHX32
#include <P18F452S.INC>
org 100h
reg1 equ 081h
reg2 equ 082h
start
movlw 0
call LCD_SET
movlw '1'
call LCD_DATA ; Выводим на дисплее 1 символ
movlw '2'
call LCD_DATA ; Выводим на дисплей 2 символ
movlw '3'
call LCD_DATA ; Выводим на дисплей 3 символ
movlw '4'
call LCD_DATA ; Выводим на дисплей 4 символ
movlw 40
call LCD_SET
movlw 11 ;ввод первого числа
movwf reg1,1 ;сохранение в reg1
movlw 4 ;ввод второго числа
movwf reg2,1 ;сохранение в reg2
addwf reg1,w ;сложить WREG и reg1 сумму сохранить в WREG
call LCD_HEX
movf reg2
addwf reg1,w
call LCD_HEX
main_loop
call RX_KEY
call LCD_DATA
goto main_loop
goto start
end
Пример выполнения лабораторной работы
Для примера возьмём имя Саша. Для того чтобы исходный файл откомпилировался и программа работала без ошибок имя нужно написать транслитом (русские буквы записываем английскими буквами, схожими по звучанию).
В итоге имя примет вид Sasha.
Теперь произведём необходимые изменения в исходном файле, необходимые для выполнения данной лабораторной работы:
LIST P=18F452, F=INHX32
#include <P18F452S.INC>
org 100h
reg1 equ 081h
reg2 equ 082h
start
movlw 0
call LCD_SET
movlw 'S'
call LCD_DATA ; Выводим на дисплее символ “S”
movlw 'A'
call LCD_DATA ; Выводим на дисплей символ “A”
movlw 'S'
call LCD_DATA ; Выводим на дисплей символ “S”
movlw 'H'
call LCD_DATA ; Выводим на дисплей символ H
movlw 'A'
call LCD_DATA ; Выводим на дисплей символ A
movlw 40
call LCD_SET
movlw 11 ;ввод первого числа
movwf reg1,1 ;сохранение в reg1
movlw 4 ;ввод второго числа
movwf reg2,1 ;сохранение в reg2
addwf reg1,w ;сложить WREG и reg1 сумму сохранить в WREG
call LCD_HEX
movf reg2
addwf reg1,w
call LCD_HEX
main_loop
call RX_KEY
call LCD_DATA
goto main_loop
goto start
end
В итоге на LCD дисплее микроконтроллера появится SASHA.
В отчёт по данной лабораторной работе включается:
-
Краткая теоретическая часть
-
Исходный текст программы (с изменениями, соответствующими каждому варианту)
Контрольные вопросы:
-
Объясните назначение первых двух строк программы.
-
Объясните назначение строк типа reg1 equ 081h и объясните какой банк данных используется.
-
Объясните назначение строк типа org 100h и объясните какой банк данных используется.
-
Объясните назначение строки START и поясните можно ли вместо START написать NACHALO , если да, то какие изменения в тексте программы необходимо произвести.
-
Объясните, где находится подпрограмма LCD_DATA
Варианты заданий
Вариантом задания в данной лабораторной работе является собственное имя студента, т. е необходимо взять своё имя и далее работать с ним.
Лабораторная работа №2
Исследование команды вычитания
Цель работы: Изучение команды SUBFWB,синтаксис и условия применения данной команды.
Теоретическая часть
Во всех арифметических командах первый операнд помещается в специальный регистр, называемый WREG ,а второй операнд помещается во вторую часть команды
Описание основных команд ,использующихся в программе:
SUBFWB – Вычитание f из WREG
Синтаксис: SUBFWB
Операнды: 0≤f≤255
Операция: (W) – (f) – (-C) → dest
Изменяемые флаги: N,C, DC, Z
0101 | 01da | ffff | ffff |
Описание: Из регистра W вычитается значение регистра “f” вместе с флагом переноса. Если d=0 ,то результат сохраняется в регистре W, если d = 1 ,то результат сохраняется в регистре “f”(по умолчанию). Если a =0 , то выбран банк быстрого доступа (BSR игнорируется). Если, а =1 ,то используется BSR ,для выбора банка памяти данных.
Выполнение команды Q1 Q2 Q3 Q4
Декодирование команды | Чтение регистра f | Выполнение | Запись результата |
Исходный текст программы
LIST P=18F452, F=INHX32 ;ПАРАМЕТРЫ ОБЯЗАТЕЛЬНЫЕ ДЛЯ
#include <P18F452S.INC> ; КАЖДОГО ПРОГРАМНОГО МОДУЛЯ
org 100h
reg0 equ 180h ; Регистр временного хранения данных представленной программы
reg1 equ 181h
reg2 equ 182h
reg3 equ 183h
start movlw 0 ;Установить положение курсора
call LCD_SET ;в нач. первой строки
call RX_KEY ; чтение кода 1 клавиши
movwf reg0 ;/ и сохранение в reg0
call LCD_HEX ;/
movlw '-'
call LCD_DATA
call RX_KEY ; чтение кода 2 клавиши
movwf reg1 ;/ и сохранение в reg1
call LCD_HEX ;/
movlw '='
call LCD_DATA
movf reg1,w
sublw 0x30
movwf reg2 ; сумму поместить в 83h
movf STATUS,w,0 ; вызвать флаги в W
movwf reg3 ; флаги поместить в 84h
movf reg2,w,1 ; вызвать код
call LCD_HEX ;/
movlw 40 ;Установить положение курсора
call LCD_SET ;в нач. второй строки
movlw 'F'