Создание, компиляция и отладка программ
Цель работы Получить навыки создания и компиляции программ на языке Assembler для микроконтроллеров серии МК51, отладки программы в эмуляторе и проверки работоспособности на макете ЛМ51А. Подготовка к работе Для допуска к лабораторной работе необходимо иметь представление о двоичной, десятичной и шестнадцатеричной системах счисления и уметь выполнять перевод чисел из одной системы в другую. Различать понятия бит, байт и тетрада. Знать структуру микроконтроллера серии МК51, его ресурсы и организацию адресного пространства. Иметь представление о машинном цикле микроконтроллера и уметь определять время выполнения операций. При подготовке к лабораторной работе необходимо рассчитать количество периодов тактовой частоты, количество машинных циклов и время выполнения одного цикла рабочей программы (время увеличения на единицу значения порта Р1), приведенной в методических указаниях к данной работе. Проработать три главы методических указаний: раздел «Центральный процессорный модуль ЛМ51А» из главы «Лабораторный макет ЛМ51», «Порядок работы с макетом», «Работа с программным эмулятором». Лабораторное оборудование и программное обеспечение Для выполнения работы необходим лабораторный макет ЛМ51А, программатор, осциллограф С1-77, персональный компьютер со следующим программным обеспечением: табличный компилятор ассемблера «TASM», эмулятор микроконтроллера «E8031», драйвер программатора «ATPROG». Задание на работу Создать файл с программным обеспечением для генерации внешних сигналов на выводах порта Р1.0, добиться безошибочной компиляции файла, проверить работу программы в программном эмуляторе, выполнить программирование микроконтроллера и убедиться в работоспособности с помощью лабораторного макета ЛМ51А.
Порядок выполнения 1. Для написания и отладки первой программы необходимо создать рабочую директорию под вашим именем, и в ней — каталог Lab‑01. Для этого необходимо запустить Dos Navigator (DN.com), на одной из панелей открыть корневой каталог диска D и, нажав клавишу F7, ввести имя рабочей директории. Из каталога LAB51 скопировать в созданную директорию файлы: TASM.EXE, TASM51.TAB, SYSADRES.LIB, эмулятор микроконтроллера Е8031.EXE. 2. Создать в рабочей директории текстовый файл с именем Lab1.asm. Для этого нажмите комбинацию клавиш Shift+F4 и введите имя файла. После нажатия ENTER созданный файл откроется для редактирования. 3. Теперь Вам необходимо набрать листинг вашей первой программы. Ее алгоритм приведен на рис.1.1. Он включает в себя процедуры обнуления оперативной памяти микроконтроллера и инкремента порта Р1. Рис. 1.1. Алгоритм программы При входе в программу управление передается на метку М00 и выполняется загрузка в регистр R0 максимального адреса ОЗУ — 07Fh, затем обнуляется аккумулятор. Далее циклически выполняется обнуление одной ячейки ОЗУ путем записи содержимого аккумулятора в ячейку с адресом, хранящимся в регистре R0 (косвенная адресация).
Во время выполнения этой операции значение регистра R0 уменьшается на единицу, а затем процедура повторяется (переход на метку М01), пока R0 не станет равным нулю. После очистки всех ячеек ОЗУ управление передается на процедуру инкремента содержимого порта Р1 (метка М02). Исходное значение аккумулятора равно нулю после выполнения предыдущей процедуры. Далее оно увеличивается на единицу и загружается в порт Р1. Затем управление снова передается на метку М02, и в этом цикле программа остается до выключения питания. Далее приведен листинг программы, который Вам нужно набрать в текстовом редакторе программы DN (или FAR).
#INCLUDE SYSADRES.LIB;подключение библиотеки базовых ;адресов
M00: MOV R0, #07FH;загрузка старшего адреса ОЗУ CLR A;обнуление аккумулятора M01: MOV @R0, A;обнуление текущего адреса ОЗУ DJNZ R0, M01;R0=R0-1 повторять пока R0>0 M02: INC A;А=А+1 инкремент аккумулятора MOV P1, A;загрузить аккумулятор в порт Р1 LJMP M02;переход на метку М02
.END;конец программы ;------------------------------------------------------------------------- 4. Завершив набор текста программы, Вам необходимо ее откомпилировать. Для этого в командной строке DN нужно набрать команду «Tasm.exe -51 -b lab1.asm» и выполнить ее, нажав клавишу ENTER. Последним параметром командной строки является имя файла, поэтому если ваш файл носит другое имя, то в командной строке вместо lab1.asm введите имя вашего файла. После того как компиляция будет выполнена, необходимо посмотреть результат ее выполнения. Для этого необходимо закрыть обе панели DN по нажатию клавиши ESC. При успешной компиляции программа выдаст три сообщения: Tasm: pass 1 complete Tasm: pass 2 complete Tasm: Number of errors = 0 А если при наборе программы были допущены ошибки, то компилятор выведет список сообщений с указанием номеров строк, в которых они были обнаружены. Для их устранения откройте файл с вашей программой для редактирования — наведите на него курсор и нажмите клавишу F4. После исправления ошибок сохраните файл (нажав клавишу F2) и откомпилируйте его снова. При успешной компиляции в рабочей директории будут созданы файлы с расширением *.lst и *.obj. Первый из них мы будем использовать для работы с программным эмулятором, а второй U для программирования микроконтроллера. 5. Теперь загрузите программу в эмулятор, выберите команду пункта меню «Step» и по нажатию клавиши ENTER проследите, как происходит выполнение программы.
Сначала будет выполняться процедура обнуления памяти данных, после ее окончания программа перейдет на метку М02 и начнет выполнять инкремент порта Р1. Изменение значений, записанных в этот порт, вы можете проследить в поле «Внутренние ресурсы ОЭВМ». Для определения периода инкремента порта Р1 сделайте следующее. 5.1. Пошагово выполняя программу, добейтесь очередного изменения значения младшего разряда порта Р1 и остановите дальнейшее выполнение программы.
5.2. Запишите показания счетчиков тактов и машинных циклов. 5.3. Продолжив пошаговое выполнение программы, добейтесь следующего изменения младшего разряда порта Р1 и запишите новое значение счетчиков. 5.4. По разности зарегистрированных значений счетчиков определите количество периодов тактовой частоты и машинных циклов, необходимых для выполнения одного цикла программы. 5.5. Сравните полученное значение с результатами Ваших расчетов. 6. С помощью полученного при компиляции файла Lab1.obj запрограммируйте микроконтроллер. Для этого необходимо переименовать Lab1.obj в Lab1.bin и, следуя указаниям главы «Порядок работы с макетом», выполнить программирование. 7. Установите микроконтроллер в панель лабораторного макета ЛМ51А и с помощью осциллографа определите период изменения младшего разряда порта Р1. Сравните полученные результаты с расчетными. Зарисуйте осциллограммы сигналов на выходах порта Р1.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|