- •Министерство образования украины
- •«Однокристальный микроконтроллер i8051»
- •Практическая часть
- •Лабораторная работа №1 изучение программных и аппаратных средств разработки и отладки систем на базе i8051 Практическая часть.
- •Порядок выполнения работы
- •Name sample
- •Задания.
- •Лабораторная работа №2.
- •III. Работа с внешней памятью данных (впд).
- •1. Запомнить в впд содержимое регистров банка 0.
- •IV.Операции со стеком.
- •Индивидуальное задание на лабораторную работу
- •Задания 2
- •Контрольные вопросы.
- •Лабораторная работа №3.
- •Задания 1.
- •Задания 2
- •Контрольные вопросы.
- •Лабораторная работа №4
- •X equ p1.2
- •V equ p1.1
- •Задания 1.
- •Задания 2.
- •Задания 3.
- •Контрольные вопросы.
- •Лабораторная работа №5 команды передачи управления. Практическая часть.
- •3. Временная задержка длительностью 1с:
- •4. Передать управление одной из восьми программ rout0 - rout7 при появлении нулевого уровня на соответствующем входе порта 0. Наивысшим приоритетом обладает вход р1.0:
- •5. Множественное ветвление программы:
- •6. Последовательная передача параметров
- •Задания 1.
- •Индивидуальные задания 2
- •Контрольные вопросы.
- •Лабораторная работа №6 изучение системы прерываний Практическая часть.
- •1. Сохранение состояния центрального процессора во время прерываний
- •End Задания 1.
- •Контрольные вопросы.
- •Устранение дребезга контактов
- •2. Формирование импульсных сигналов
- •Xcor: cpl p3.4
- •3. Измерение длительности импульса
- •5. Передача символьной строки через последовательный порт.
- •6. Ввод данных с тумблеров, подключенных к линиям 3 и 4 порта 1 и выдача их на светодиоды, подключенные к линиям 4 и 5 порта 3.
- •7. Воспроизведение звука через динамик, подключенный к p3.5.
- •Задание 1
- •Задание 2
- •Контрольные вопросы.
- •3. Считывание текущего состояния таймера без нарушения процесса синхронизации.
- •4. Измерение длительности сигнала.
- •Задания.
- •Контрольные вопросы.
- •Лабораторная работа №9 организация Динамической индикации Практическая часть.
- •Задания.
- •Контрольные вопросы.
- •Лабораторная работа №10 вВод информации с Клавиатуры
- •Mov numb,#8
- •Movx @dptr,a ; Вывод следующего знакоместа
- •Задания.
- •Контрольные вопросы.
Задания 1.
Составить два варианта программы без подпрограмм и с подпрограммой.
Разработайте программу сортировки массива по возрастанию.
Разработайте программу сортировки массива по убыванию.
Реализуйте на ассемблере BASIC-программу:
10 LET A=7
20 FOR B=2 TO 9
30 IF B<4 THEN GO SUB 60
40 NEXT B
50 GO TO 80
60 LET A=A+B
70 RETURN
80 STOP
Разработайте программу подсчета количества ячеек памяти со значениями, отличными от 38h.
Напишите программу подсчета количества ячеек памяти, значения которых меньше или равны A3h.
Разработайте программу подсчета количества отрицательных и положительных чисел, при этом считать, что ноль – положительное число.
Напишите подпрограмму вычисления чисел Фибоначчи.
Алгоритм:
А1=1
А2=1
Аi =Ai-2+Ai-1.
Пусть в памяти находится строка, оканчивающаяся нулем. Разработайте подпрограмму подсчета длины строки.
Индивидуальные задания 2
1. Написать программу, вычисляющую 20 значений массива А по формуле А[i]=7*i + 5; i = 0...19.
Полученный массив записать в РПД, начиная с адреса 40Н.
2. Написать подпрограмму, копирующую в цикле 10 байт из РПД, наложенных на маску 1001100lb, начиная с адреса 50Н, во внешнюю память данных (ВПД), начиная с адреса С200Н. В программе осуществить вызов этой процедуры и возврат из нее.
3. Написать подпрограмму, сканирующую в цикле состояние регистров R0-R7 текущего регистрового банка. Если значение регистра равно нулю - соответствующий номеру регистра бит аккумулятор тоже сбрасывается. Если регистр не равен нулю - в бит аккумулятора записывается единица.
4. Написать подпрограмму, определяющую четность числа единиц в аккумуляторе без использования флага паритета Р.
6. Написать программу, вычисляющую 12 значений массива А по формуле А[i]=(3 * (i + 4)) and 0FEH; i = 1...12.
Полученный массив записать в ВПД, начиная с адреса С200Н.
Контрольные вопросы.
В чем заключается отличие команд JB и JNB ?
В чем состоит отличие команд JMP и AJMP ?
В чем состоит отличие команд JC и JNC ?
Какие команды перехода влияют на флаги?
Какая команда проверяет флаг Z на равенство "0"?
Какие команды взаимодействуют с флагом Z?
Какие действия выполняет команда CJNE ?
Какие действия выполняет команда DJNZ ? Можно ли командой перехода изменить флаг Z?
Существует ли разница между командами ACALL и LCALL ?
Каково значение над стеком, если Вы находитесь в подпрограмме?
Какие команды взаимодействуют с флагом С ?
12. Какие виды переходов в МК51 вы знаете в зависимости от разрядности указываемого в команде адреса перехода или вызова. В чем отличия этих видов переходов и вызовов.
13. По каким условиям возможно организовать ветвящиеся вычислительные процессы в МК51.
14. В чем отличие команд возврата из подпрограмм RET и RETI.
15. Какие процессы и источники могут вызвать ситуации прерываний в МК51.
16. Какие условия могут вызвать блокировку прерывания и его необслуживание.
17. Каков порядок опроса флагов прерываний (приоритет обслуживания) установлен по умолчанию в МК51. Каким образом можно изменить эти приоритеты.