- •Министерство образования украины
- •«Однокристальный микроконтроллер 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 ; Вывод следующего знакоместа
- •Задания.
- •Контрольные вопросы.
End Задания 1.
Составить программу для вычисления выражения 2n с использованием прерывания. Для выполнения операции умножения использовать операцию логического сдвига.
Составить программу для вычисления выражения факториала n! без использования рекурсии.
Составить программу для вычисления выражения Xn с использованием прерывания и команды MUL.
Составить программу для вычисления выражения 2X2 + 4Х + 1 с использованием прерывания и команды MUL.
Составить программу для вычисления выражения 3X + 4Y + 2 с использованием программного прерывания и команды MUL.
Составить программу, выводящую значения, сохраненные в стеке при вызове программы обработки прерывания.
Написать программу, которая записывает в регистры А и R0 начальный адрес своего местоположения в памяти.
Программу суммирования элементов массива (20 элементов) ,лежащих в диапазоне от MIN до MAX.
Программу поиска заданной цепочки символов в текстовом массиве.Признак завершения-код 1Аh.
Программу суммирования элементов массива 20 байт, которая завершается также при переполнении.
Программу, которая переставляет наоборот буквы в словах заданой строки в ASCII формате.
Найти моду (наиболее часто встречающееся значение) в массиве 20 целых чисел со знаком.
Контрольные вопросы.
Какие источники прерываний имеются в i8051 ?
Какие действия выполняет процессор при возникновении прерывания ?
Опишите регистры, используемые при обслуживании прерывания.
Каковы условия возникновения прерывания ?
ЛАБОРАТОРНАЯ РАБОТА №7
ОРГАНИЗАЦИЯ ВВОДА-ВЫВОДА
Практическая часть.
1. Ввод информации с датчиков
Ожидание статического сигнала. Например, при подключении датчика к линии бита 4 порта 1 программа ожидания замыкания контакта будет иметь вид:
WAIT0: JNB P1.4, WAIT0 ;ожидание размыкания контакта датчика
Другим частным случаем является процедура ожидания размыкания контакта, которая может быть реализована следующим образом:
WAITC: JB P1.4, WAITC ;ожидание замыкания контакта датчика
Ожидание импульсного сигнала.
WAITC: JB P1.3, WAITC ;ожидание Р1.3=0
WAIT0: JNB P1.3, WAIT0 ;ожидание Р1.3=1
Устранение дребезга контактов
Наибольшее распространение получили два программных способа ожидания установившегося значения:
подсчет заданного числа совпадающих значений сигнала;
временная задержка.
Суть первого способа состоит в многократном считывании сигнала с контакта. Подсчет удачных опросов, обнаруживших, что контакт устойчиво замкнут, ведется программным счетчиком. Если после серии удачных опросов встречается неудачный, то подсчет начинается сначала. Контакт считается устойчиво замкнутым, если последовало N удачных опросов. Число N подбирается экспериментально для каждого типа используемых датчиков и лежит в пределах от 5 до 50. Пример программного подавления дребезга контакта приводится для случая, когда датчик импульсного сигнала подключен к входу Т0, счет удачных опросов ведется в регистре R3, N=20:
DBNC: MOV R3, #20 ;инициализация счетчика
DBNC1: JB P3.4, DBNC;если контакт разомкнут, то
;начать отсчёт опросов сначала
DJNZ R3, DBNC1 ;повторять, пока R3 не станет равным 0
Устранение дребезга контакта путем введения временной задержки.
Программа, обнаружив замыкание контакта, запрещает опрос его состояния на время, заведомо большее длительности переходного процесса. Программа написана для случая подключения датчика к входу T0 и программной реализации временной задержки:
DBNCDL: JTO DBNCDL ;ожидание нуля на входе T0
CALL DELAY ;вызов подпрограммы задержки
EXIT: ... ;выход из процедуры
Временная задержка в пределах 1-10 мс подбирается экспериментально для каждого типа датчиков и реализуется подпрограммой DELAY.
Подсчет числа импульсов между двумя событиями. Один из возможных вариантов процедуры подсчёта может быть реализован, если использовать вход T1 как вход счетчика событий. В аккумуляторе фиксируется число импульсов, представленное в двоичном коде (максимальное количество 255).
MOV TMOD, #0100000B;настройка счетчика 1
MOV TH1, #0 ;сброс счетчика импульсов
WAIT0: JB P3.4, WAIT0 ;ожидание включения счёта
SETB TCON.6 ;пуск счетчика 1
WAIT1: JNB P3.4, WAIT1 ;ожидание выключения счёта
CLR TCON.6 ;останов счетчика 1
MOV A, TH1 ;(аккумулятор) число импульсов
EXIT: ... ;выход из процедуры
Ожидание заданного кода на входах порта, например 0Аh на входах порта 1:
MOV A,#0AH ; Загрузка
WAIT: CJNE A,P1,WAIT ; Ожидание прихода кода