cbi 0x18,1 вывести значение 3-го бита данных в 1-й разряд порта В;
sbi 0x18,0 установить в 1 уровень тактирующего сигнала;
cbi 0x18,0 сбросить в 0 уровень тактирующего сигнала;
sbi 0x18,1 вывести значение 2-го бита данных в 1-й разряд порта В;
sbi 0x18,0 установить в 1 уровень тактирующего сигнала;
cbi 0x18,0 сбросить в 0 уровень тактирующего сигнала;
sbi 0x18,1 вывести значение 1-го бита данных в 1-й разряд порта В;
sbi 0x18,0 установить в 1 уровень тактирующего сигнала;
cbi 0x18,0 сбросить в 0 уровень тактирующего сигнала;
cbi 0x18,1 вывести значение 0-го бита данных в 1-й разряд порта В;
sbi 0x18,0 установить в 1 уровень тактирующего сигнала;
cbi 0x18,0 сбросить в 0 уровень тактирующего сигнала;
#endasm
...
Приведенный фрагмент программы показывает, что при выводе символа на экран цифрового индикатора необходимо выполнить передачу битов данных по линии, подключенной к 1-му разряду порта В, при подаче тактирузщих сигналов по линии, подключенной к 0-му разряду порта В. Так, как тактовая частота микроконтроллера ATMEGA 128, входящего в состав лабораторного макета, равна 11 МГц, то длительность цикла команды, выполняемой за один такт, равна 90 нс, что позволяет выполнять передачу данных без введения дополнительных задержек.
|
|
3.2 Описание лабораторной установки
Лабораторная работа выполняется в индивидуальном порядке. На каждом рабочем месте должны быть установлены: многофункциональный лабораторный макет на базе микроконтроллера AVR ATMEGA 128, ПЭВМ типа IBM PC/AT c инсталлированным программным обеспечением: операционной системой MS–WINDOWS v. 9x, 2000, XP и программатором на основе кросс-компилятора языка программирования C CodeVision AVR. Задания выполняются на лабораторном макете на базе 8-ми разрядного микроконтроллера AVR ATMEGA 128. Подробное описание лабораторного макета приведено в пункте 1.2 лабораторной работы № 1.
В данной работе основным используемым периферийным оборудованием лабораторного макета будут матричная клавиатура 3´4 (см. рисунок 2.4), подключаемая к микроконтроллеру через порт Е, и цифровой 10-ти позиционный жидкокристаллический индикатор (см рисунок 3.4), управляющая часть которого выполнена на основе контроллера Holtek НТ1613. Индикатор подключается к лабораторному макету с помощью 4-х проводного кабеля с разъемом DB-25. Тактовый SK и информационный DI входы индикатора подключены к 0-му и 1-му выходам порта ввода/вывода B микроконтроллера соответственно; две остальные линии подключаются к источнику питания +5 В и общему проводу.
Рисунок 3.4 – Общий вид панели цифрового индикатора
и интерфейсного разъема
3.3 Порядок проведения работы и указания по ее выполнению
Перед началом выполнения практической части лабораторной работы проводится экспресс–контроль знаний по принципам функционирования микроконтроллера AVR ATMEGA 128, системе команд и возможностям организации программного управления выводом символов на экран цифрового индикатора.
|
|
При подготовке к лабораторной работе необходимо составить предварительный вариант листинга программы, в соответствие с индивидуальным заданием (см. таблицу 3.2).
Задание. Разработать в среде программирования Code Vision AVR программу для микроконтроллера AVR ATMEGA 128, которая выполняет опрос клавиатуры лабораторного макета и выводит информацию о нажатых клавишах (или комбинациях клавиш) на экран цифрового индикатора. Обозначения клавиш приведены на рисунке 2.4. Варианты индивидуальных заданий представлены в таблице 2.1.
Порядок выполнения задания:
1. Включить лабораторный макет (установить выключатель электропитания в положение I, и убедиться в свечении индикатора электропитания красным цветом).
2. Запустить компилятор Code Vision AVR.
3. Создать пустой проект.
4. Создать файл ресурса для кода программы и подключить его к проекту.
5. Ввести код исходного модуля программы вывода информации на экран цифрового индикатора в соответствие с кодом нажатой клавишисогласно варианту задания, указанному в таблице 3.2.
6. Выполнить компиляцию (нажав клавишу F9) исходного модуля программы и устранить ошибки, полученные на данном этапе.
7. Настроить параметры программатора.
8. Создать загрузочный модуль программы (нажав комбинацию клавиш Shift+F9) и выполнить программирование микроконтроллера.
9. Проверить работоспособность загруженной в микроконтроллер программы и показать результаты работы преподавателю.
10. В случае некорректной работы разработанной программы, выполнить аппаратный сброс микроконтроллера, провести отладку исходного модуля программы и заново проверить функционирование программы, повторив выполнение пункта 9.
Пример выполнения задания. Разработать программу, выводящую на экран цифрового индикатора символ 1 при нажатии на клавишу 1, и символ 2 при нажатии комбинации клавиш 1+2. Нумерация клавиш матричной клавиатуры 3´4 приведена на рисунке 2.4.
Решение: в лабораторном макете матричная клавиатура 3´4 подключена к порту E микроконтроллера. Линии старшей тетрады порта Е настраиваются на вывод данных, а линии младшей тетрады – на ввод. Входы цифрового индикатора подключены к выходам порта B микроконтроллера в соответствие со схемой на рисунке 3.2. Порт В настраивается на вывод данных. Основная часть программы в соответствие с алгоритмом, изображенным на рисунке 3.5, содержит цикл опроса клавиатуры, проверку нажатия клавиши 1 или комбинации клавиш 1+2 и процедуры вывода символов 1 и 2 на индикатор.
Рисунок 3.5 – Алгоритм программы вывода символа на экран цифрового
индикатора в зависимости от данных, принятых с клавиатуры
Для того, чтобы символы каждый раз заносились в крайнюю правую позицию экрана индикатора, а введенные ранее символы не отображались, необходимо непосредственно перед выводом информационного символа выполнить вывод девяти символов табуляции. Полный текст исходного модуля программы с подробными комментариями приводится ниже:
#include <mega128.h> Подключить заголовочный файл mega128.h;
main() { основная часть программы;
#asm начало кода ассемблерной вставки;
ldi R18,0b11100000 запись маскирующих констант в регистры;