2. Задание для домашней подготовки.
Повторить организацию системы прерываний и служб времени МК51;
Повторить команды МК51;
Изучить способы взаимодействия микроконтроллерного устройства с объектами управления;
Изучить пример программы к лабораторной работе;
Составить программу на языке ассемблера МК-51 согласно варианту.
3. Порядок выполнения работы.
Ознакомиться с заданием и проанализировать его;
Составить программу согласно заданию в кодах МК51;
Набрать текст составленной программы в текстовом редакторе отладчика;
Выполнить трансляцию программы (в случае возникновения ошибок исправить их);
Сделать пошаговое выполнение программы и убедиться в правильности ее работы (в случае неправильности внести исправления в текст программы и повторить п.4-5);
4. Задание по лабораторной работе.
Задание предполагает разработку микропроцессорного устройства на базе однокристального микроконтроллера МК‑51, считывающего показания от аналоговых датчиков, преобразующего эту информацию в цифровой код, обрабатывающего его и фиксирующего результат в некотором внешнем устройстве.
Индивидуальные варианты задания различаются следующими параметрами.
1. Микроконтроллер считывает информацию от одного или нескольких датчиков. В первом случае датчик должен подключаться непосредственно к входу АЦП, выходы которого подключаются к одному из портов МК. При этом цикл обработки включает несколько обращений к датчику, их количество указано в варианте задания. Во втором случае датчики подключаются к АЦП через аналоговый мультиплексор, что требует от микроконтроллера управления и этой схемой.
2. Обращение к датчикам производится либо постоянно по мере обработки предыдущей информации ( цикл ), либо через определенные промежутки времени ( Т ), величина которых (в машинных циклах) постоянна.
В первом случае микроконтроллер занят лишь данной задачей и, следовательно, структура программы должна просто обеспечивать безусловный переход на новый цикл обработки после завершения предыдущего.
Во втором случае в промежутках между очередными циклами обработки показаний датчиков микроконтроллер может решать некоторые другие задачи. Отсчет необходимого временного интервала при этом проводится таймером/счетчиком микроконтроллера, работающим в режиме 2, который в соответствующие моменты времени выдает сигнал прерывания. Вся обработка информации при этом располагается в обработчике данного прерывания.
3. Тип взаимодействия микроконтроллера и АЦП.
Правильный ввод информации при программно-управляемом механизме обмена ( прогр ) можно обеспечить, например, путем считывания данных с АЦП не ранее чем через 30 мкс после его запуска (для К1113ПВ1).
Ввод информации по готовности (готовн) в данном микропопроцессорном устройстве организуется программным опросом состояния выхода готовности данных АЦП. Для этой цели выход ГД АЦП может быть подан, например, на вход Р1.5 МК.
Ввод информации по прерыванию (прер) предполагает, что сигнал готовности данных поступает от АЦП на один из входов запроса внешнего прерывания (INT0 или INT1) асинхронно по отношению к выполняемой в микроконтроллере некоторой фоновой программе и вызывает переход на соответствующий обработчик прерывания.
4. Обработка, в зависимости от варианта задания, заключается в определении среднего, максимального либо минимального значения считанных показаний. Результат выводится по линиям 0…4 порта Р2 с выдачей синхронизирующего импульса 1-0-1 по линии Р2.5 микроконтроллера.
Считывание информации с датчика должно включать в себя запуск АЦП путем выдачи сигнала низкого уровня по линии Р1.6, ожидание конца преобразования и прием 5‑разрядного кода через порт Р0.4..Р0.0 (в работе предполагается, что для обеспечения необходимой точности представления данных достаточно использовать лишь 5-разрядный код с выхода АЦП). После считывания информации от АЦП на выход Р1.6 (гашение АЦП) необходимо выдать сигнал высокого уровня.
При использовании прерываний от таймера или от выхода готовности данных АЦП фоновую задачу можно имитировать зацикленной “на себя” командой безусловного перехода (JMP $ ).
Таблица 1. Таблица вариантов заданий
№ варианта |
Кол-во датчиков |
Кол-во считываемых показаний от каждого датчика |
Тип обмена |
Обращение к АЦП |
Период опроса |
Обработка |
1 |
1 |
8 |
прер |
цикл |
- |
мин |
2 |
4 |
1 |
прер |
цикл |
- |
макс |
3 |
1 |
7 |
прер |
цикл |
- |
сред |
4 |
5 |
1 |
готовн |
Т |
10 |
мин |
5 |
1 |
6 |
готовн |
T |
20 |
макс |
6 |
6 |
1 |
готовн |
T |
30 |
сред |
7 |
1 |
5 |
прогр |
Т |
15 |
мин |
8 |
7 |
1 |
прогр |
T |
25 |
макс |
9 |
1 |
4 |
прогр |
T |
35 |
сред |
10 |
8 |
1 |
прер |
цикл |
- |
мин |
11 |
1 |
8 |
прер |
цикл |
- |
макс |
12 |
4 |
1 |
прер |
цикл |
- |
сред |
13 |
1 |
7 |
готовн |
Т |
12 |
мин |
14 |
5 |
1 |
готовн |
T |
22 |
макс |
15 |
1 |
6 |
готовн |
T |
32 |
сред |
16 |
6 |
1 |
прогр |
Т |
17 |
мин |
17 |
1 |
5 |
прогр |
T |
27 |
макс |
18 |
7 |
1 |
прогр |
T |
37 |
сред |
19 |
1 |
4 |
прер |
цикл |
- |
мин |
20 |
8 |
1 |
прер |
цикл |
- |
макс |
21 |
1 |
8 |
прер |
цикл |
- |
сред |
22 |
4 |
1 |
готовн |
Т |
14 |
мин |
23 |
1 |
7 |
готовн |
T |
24 |
макс |
24 |
5 |
1 |
готовн |
T |
34 |
сред |
25 |
1 |
6 |
прогр |
Т |
18 |
мин |
26 |
6 |
1 |
прогр |
T |
28 |
макс |
27 |
1 |
6 |
прогр |
T |
38 |
сред |
28 |
4 |
1 |
прер |
цикл |
- |
мин |
