- •Министерство образования украины
- •«Однокристальный микроконтроллер 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 ; Вывод следующего знакоместа
- •Задания.
- •Контрольные вопросы.
III. Работа с внешней памятью данных (впд).
1. Запомнить в впд содержимое регистров банка 0.
Начальный адрес ВПД – 0D000h
MOV PSW,#01000B ; Выбор банка регистров 1
MOV R0,#8 ; Счетчик = 8
MOV DPTR,#0D000H ; Определение начального адреса ВПД
MOV R1,#0 ; Определение начального адреса РПД
L: MOV A,@R1 ; (А) = (регистр)
MOVX @DPTR,A ; Передача из аккумулятора в ВПД
INC R1 ; Переход к следующему регистру
INC DPTR ; Приращение указателя адреса
DJNZ R0,L ; R0=R0-1, если R0>0, то повторить
IV.Операции со стеком.
1. Перед загрузкой в стек содержимое регистра-указателя стека (SP) инкрементируется, а после извлечения из стека – декрементируется.
По сигналу системного сброса в SP заносится значение 07h. Для переопределения SP можно воспользоваться командой MOV SP,#D
Пример:
ORG 0h
MOV SP,#BUFSTEK ; Инициализация стека
… ; Программа
…
…
ORG 40h
BUFSTEK DS 10 ; Резервирование памяти для стека
2. Классический пример работы со стеком – подпрограмма обработки прерывания должна сохранить в стеке содержимое тех регистров, которые она сама будет использовать, а перед возвратом в прерванную программу должна восстановить их значения.
ORG 0C003H ; Задание адреса вектора прерывания
LJMP SUB ; Переход на подпрограмму обработки
ORG 0C100H
SUB: PUSH PSW ; Сохранение в стеке PSW
PUSH A ; Сохранение аккумулятора
PUSH B ; Сохранение B
PUSH DPL ; Сохранение DPTR
PUSH DPH
MOV PSW,#1000B ; Выбор банка регистров 1
… ; Обработка прерывания
…
…
POP DPH ; Восстановление сохраненного
POP DPL
POP B
POP A
POP PSW ; Восстановление PSW и номера регистрового банка
RETI ; Возврат
Индивидуальное задание на лабораторную работу
1 Программу, заполнение участка РПД, начиная с определенного адреса 20Н, и длиной 5 байт произвольной константой.
2. Сохранить содержимое текущего банка регистров в резидентной памяти данных, начиная с адреса 12Н.
3. Сохранить содержимое текущего банка регистров в ВПД, начиная с адреса С200Н.
4. Сохранить в стеке участок памяти, начиная с адреса 20Н, и длиной 3 байта, а затем восстановить его по прежнему адресу.
5. Обменять содержимое регистров R1,R2 и R3 регистровых банков 1 и 2 между собой.
6. Выполнить задание варианта 5, используя в качестве временного хранилища данных область в ВПД по адресу С200Н.
7. Переслать содержимое участка памяти длиной 4 байта из РПД по адресу 16Н в ВПД по адресу С200Н.
8. Организовать стек по адресу 12Н и сохранить в нем содержимое регистров банка 3.
Задания 2
Переслать массив из одной области памяти в другую, причем четные и нечетные байты поменять местами.
Поменять местами два массива в памяти, используя стек.
Поменять местами между собой половинки массива.
Сформировать новый массив из каждого четвертого байта заданного массива.
Записать в каждый пятый элемент массива значение предыдущего байта.
Поменять местами каждый второй и каждый третий элемент (байт) массива.
В массиве поменять местами байты, равноотстоящие от начала и от конца массива(зеркально отобразить массив относительно середины).
Из заданного массива сформировать новый массив, изменив порядок следования элементов на противоположный, и переслать его на место исходного.