- •Вычислительная техника и информационные технологии
- •Содержание
- •Общие методические указания
- •Содержание курса
- •1. Введение
- •2. Информационно-логические основы вычислительной техники
- •3. Архитектура, принципы построения и организация управления в микропроцессорных системах
- •6. Программное обеспечение микропроцессорных систем
- •7. Информационные технологии
- •4. Системы на основе однокристальных микропроцессоров и микроконтроллеров
- •5. Микропроцессоры цифровой обработки сигналов
- •8. Заключение
- •Домашнее контрольное задание “устройства на основе микроконтроллеров”
- •Лабораторный практикум
- •Компакт-диск с учебно-методическим комплексом
- •Библиографический список Основной
- •Дополнительный
8. Заключение
Повышение степени интеграции элементов и быстродействия, развитие архитектурных решений, совершенствование средств программного обеспечения. Проблемы создания микропроцессорных систем обработки сигналов и управления. Основные тенденции развития вычислительной техники и ее применения в системах связи.
Домашнее контрольное задание “устройства на основе микроконтроллеров”
Рабочий план дисциплины для студентов заочной формы обучения предполагает выполнение домашнего контрольного задания.
Цель контрольной работы состоит в закреплении знаний, полученных при изучении теоретического курса. Применительно к микроконтроллеру семейства MCS-51 (К1816ВЕ51) представлены задачи, раскрывающие особенности построения устройств, разработки средств интерфейса и программирования.
Каждая задача включает в себя разработку схемы устройства, алгоритма и программирование на ассемблере.
Студент выполняет один вариант контрольной работы. Номер варианта соответствует последней цифре номера зачетной книжки.
Решение задачи должно содержать:
принципиальную схему,
необходимые для понимания схемы пояснения,
в случае необходимости временные диаграммы,
схему алгоритма,
текст программы на языке ассемблера и пояснения к ней.
Пример выполнения, и оформления варианта контрольного задания представлен ниже.
Рекомендуемая литература: [7–10]. Очень хорошую помощь при выполнении задания может оказать серия статей [11].
Варианты заданий
Вариант 0
Разработать схему подключения к микроконтроллеру К1816ВЕ51 дисплея, состоящего из восьми светодиодных семисегментных индикаторов. Написать программу вывода информации в режиме динамической индикации. Коды выводимых цифр находятся в восьми последовательно расположенных ячейках памяти.
Вариант 1
Разработать схему подключения к микроконтроллеру К1816ВЕ51 жидкокристаллического однострочного 16-символьного индикатора с внутренней памятью. Написать программу вывода на индикатор Вашего имени. Коды выводимых символов находятся в последовательно расположенных ячейках памяти.
Вариант 2
Разработать схему подключения к микроконтроллеру К1816ВЕ51 светодиодного 4-разрядного индикатора. Написать программу вывода на индикатор цифровой информации. Таблица знакогенератора размещается в резидентной памяти программ микроконтроллера.
Вариант 3
Разработать схему подключения к микроконтроллеру К1816ВЕ51 восьмиразрядного ЦАП. Написать программу, обеспечивающую формирование на выходе ЦАП сигнала, соответствующего 32-элементному массиву из RAM. Рассчитать быстродействие канала вывода.
Вариант 4
Разработать схему подключения к микроконтроллеру К1816ВЕ51 восьмиразрядного параллельного АЦП в асинхронном режиме ввода. Написать программу, обеспечивающую прием сигнала из АЦП и его запись в оперативную память в виде 64-элементного массива. Рассчитать быстродействие канала ввода.
Вариант 5
Разработать схему подключения к микроконтроллеру К1816ВЕ51 последовательного АЦП в асинхронном режиме ввода. Написать программу, обеспечивающую прием сигнала из АЦП и его запись в оперативную память в виде 16-элементного массива. Рассчитать быстродействие канала.
Вариант 6
Разработать схему подключения клавиатуры, организованной в виде матрицы 8х3, к микроконтроллеру К1816ВЕ51. Разработать алгоритм и написать программу для определения и дешифрации нажатой клавиши, которые основаны на сканировании клавиатуры. Код нажатой клавиши должен быть записан в аккумулятор микроконтроллера. Дешифрация нажатой клавиши осуществляется программно.
Вариант 7
Разработать схему подключения внешней RAM данных емкостью 16 Кбайт к микроконтроллеру К1816ВЕ51, написать программу упрощенного контроля исправности RAM. Контроль производится путем записи и считывания информации в каждой ячейке.
Вариант 8
Разработать схему подключения внешней ROM программ емкостью 8 Кбайт к микроконтроллеру К1816ВЕ51, написать программу упрощенного контроля исправности ROM. Контроль ROM производится по контрольной сумме, хранящейся в последней ячейке ROM.
Вариант 9
Разработать схему подключения внешней ROM данных емкостью 8 Кбайт к микроконтроллеру К1816ВЕ51, написать программу упрощенного контроля исправности ROM. Контроль ROM производится по контрольной сумме, хранящейся в первой ячейке ROM.
Пример выполнения варианта контрольного задания
Формулировка задания
Разработать схему 4-векторной системы внешних прерываний в микроконтроллере К1816ВЕ51. Написать подпрограмму обработки прерывания с селекцией источника прерывания.
Решение
Микроконтроллер К1816ВЕ51 имеет два входа для подключения внешних прерываний. Внешние прерывания INT0 и INT1 (рисунок 1) могут быть вызваны уровнем или переходом сигнала из 1 в 0 на входах микроконтроллера в зависимости от значений управляющих битов IT0 и IT1 в регистре TCON. От внешних прерываний устанавливаются флаги IE0 и IE1 в регистре TCON, которые инициируют вызов соответствующей подпрограммы обслуживания прерывания.
Рисунок 1 – Система прерываний микроконтроллера К1816ВЕ51
Для создания 4-векторной системы внешних прерываний можно подключить четыре источника прерываний параллельно на один вход микроконтроллера, например, INT1. Источники прерывания подключаем через логические инверторы (тип прерывания – “по срезу”).
Для того чтобы можно было программно определить, какой из четырех источников вызвал прерывание, подключим эти источники на свободные входы параллельных портов микроконтроллера. Для этого используем входы P0.4 – P0.7. В этом случае при вызове подпрограммы обработки прерывания можно опросить эти входы для селекции источника прерывания.
Принципиальная схема (рисунок 2) содержит:
микроконтроллер К1816ВЕ51 (SMC),
кварцевый резонатор с шунтирующими конденсаторами,
RC-цепочку формирования сигнала RESET,
инверторы сигналов прерывания на микросхеме К155ЛН3,
источники прерывания (Прибор 1- 4).
Рисунок 2 – Принципиальная схема
Флаги прерываний опрашиваются в каждом машинном цикле. Система прерываний формирует аппаратно вызов команды передачи управления LCALL подпрограмме обслуживания.
Принципиальной схеме соответствует схема алгоритма обработки прерываний, показанная на рисунке 3.
Рисунок 3 – Схема алгоритма
По аппаратно сформированному коду команды LCALL система прерываний помещает в стек содержимое программного счетчика микроконтроллера и загружает в этот счетчик адрес вектора прерывания 0013H (рисунок 1). По этому адресу располагается команда безусловного перехода JMP к начальному адресу подпрограммы обслуживания прерывания SUBIN1. Эта подпрограмма в случае необходимости должна начинаться командами записи в стек PUSH аккумулятора A, слова состояния программы PSW и возможно других регистров, которые подпрограмма использует для своих целей.
После ввода сигналов прерывания из порта P0 путем анализа отдельных разрядов определяется источник прерывания и выполняется обработка. При одновременном поступлении нескольких прерываний приоритет имеет прибор с меньшим номером. Это достигается порядком опроса разрядов.
Подпрограмма завершается командами восстановления из стека POP и заканчивается командой RETI, по которой в программный счетчик загружается сохраненный ранее в стеке адрес возврата в основную программу.
Текст подпрограммы на ассемблере имеет вид:
;************************************************************
; ПОДПРОГРАММА ОБРАБОТКИ ЧЕТЫРЕХ ВНЕШНИХ ПРЕРЫВАНИЙ УРОВНЯ 1
; автор – студент группы _____ _________(Ф.И.О.)
; дата - __.__.__
;************************************************************
ORG 13H ;следующую команду размещаем
;по адресу вектора прерывания INT1
SJMP SUBIN1 ;переход на подпрограмму обработки
ORG 30H ;размещаем обработчик с адреса 30H
SUBIN1: PUSH ACC ;сохранение в стеке аккумулятора и PSW
PUSH PSW
;селекция источника прерывания и обработка
MOV A, P0 ;ввод байта из порта
JNB ACC.7, PRIB2
;здесь размещается код обработки прерывания от Прибора 1
; . . .
PRIB2: JNB ACC.6, PRIB3
;здесь размещается код обработки прерывания от Прибора 2
; . . .
PRIB3: JNB ACC.5, PRIB4
;здесь размещается код обработки прерывания от Прибора 3
; . . .
PRIB4: JNB ACC.4, RETIN
;здесь размещается код обработки прерывания от Прибора 4
; . . .
RETIN: POP PSW ; восстановление PSW и аккумулятора
POP ACC
RETI ; возврат из подпрограммы
