- •Министерство образования украины
- •«Однокристальный микроконтроллер 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 ; Вывод следующего знакоместа
- •Задания.
- •Контрольные вопросы.
2. Формирование импульсных сигналов
Импульс можно получить последовательной выдачей сигналов включить и отключить с промежуточным вызовом подпрограммы временной задержки:
PULS: ;выдача импульса в линию 4 порта 3
ON: ANL P3, #11101111B ;включение
CALL DELAY ;временная задержка
OFF: ORL P3, #00010000B ;отключение
...
Генерация меандра. В этом случае можно воспользоваться процедурой выдачи импульса PULS и подпрограммой задержки, равной половине периода сигнала DLYX:
MEANDR:
Xcor: cpl p3.4
ACALL DLYX
SJMP XCOR
Бесконечный периодический сигнал формируется в линии 4 порта 3. На остальных линиях сигналы остаются неизменными.
3. Измерение длительности импульса
Простейшим способом измерения длительности импульса является программный. Для обнаружения событий (фронт и спад импульсного сигнала) в этом случае используются типовые процедуры WAIT, а отсчёт времени ведется программным способом. Для "положительного" импульсного сигнала, поступающего на вход Т0, программа измерения его длительности будет иметь вид:
MSCONT: MOV R7, #0 ;сброс счётчика
WAIT0: JNT0 WAIT0 ;ожидание фронта сигнала
COUNT: INC R7 ;инкремент счётчика
JT0 COUNT ;ожидание спада сигнала
EXIT: ... ;выход из процедуры
После выхода из процедуры содержимое счетчика R7 пропорционально длительности импульса.
Для нормальной работы этой программы необходимо, чтобы обращение к ней производилось в моменты, когда на входе Т0 присутствует сигнал нулевого уровня. Верхний предел измеряемой длительности “положительного” импульса составит 255(1 + 2) мкс = 765 мкс. Этот предел может быть увеличен включением в цикл COUNT дополнительных команд NOP. Максимальная погрешность измерений 3 мкс.
Инициализация последовательного порта для 8-разрядного режима универсального асинхронного приемопередатчика (УАПП) и установка флага готовности передачи.
SPINIT: MOV SCON,#01010010B
5. Передача символьной строки через последовательный порт.
При передаче символов через последовательный порт в устройство вывода (например, принтер с форматом ASCII) может возникнуть необходимость в выводе служебных сообщений, включающих сообщения об ошибках, диагностику или инструкции для оператора. Эти символьные строки просто описываются при помощи директивы DB.
CR EQU 0DH ; Код возврата каретки (ASCII)
LF EQU 0AH ; Код перевода строки
ESC EQU 1BH ; Код операции ESC
T1 EQU P3.5
TI EQU SCON.1
CALL STRING
DB CR,LF ; Установка новой строки
DB ‘HALLO!’ ; Сообщение
DB ESC ; Завершение
;..............
STRING: POP DPH ;Загрузка первого символа
POP DPL
STR1: CLR А
MOVC A,@A+DPTR ;Выборка первого символа
STR2: JNB Т1,$ ; Ожидание готовности
CLR TI
MOV SBUF,А ; Выдача символа
INC DPTR ; Сдвиг указателя
CLR A
MOVC A,@A+DPTR ; Выборка следующего символа
CJNE A,#ESC,STR2 ; Цикл чтения
MOV А,#1
JMP @A+DPTR ; Возврат к программе после чтения
6. Ввод данных с тумблеров, подключенных к линиям 3 и 4 порта 1 и выдача их на светодиоды, подключенные к линиям 4 и 5 порта 3.
MOV A,P1 ; Ввод данных с линий порта 1
ANL A,00011000B ; Маскирование для выделения бит 3 и 4
RL A ; Сдвиг аккумулятора влево
ANL P3,11001111B ; Сброс линий 4 и 5 порта 3
ORL Р3,А ; Вывод данных в порт. При этом все линии, кроме 4 и 5 не
; меняют своего состояния