Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пояснительная записка.doc
Скачиваний:
80
Добавлен:
11.05.2015
Размер:
646.66 Кб
Скачать

6. Блок-схема алгоритма

При построении блок-схемы, мы руководствовались правилами, оговоренными вследующим документом «ГОСТ 19.701-90. Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения.»

Алгоритм представляет собой циклически выполняемую последовательность действий по опросу часов, считыванию, сравнению времени и выводу на экран текущего и заданного времени.

Таблица 6.1 – Назначение функциональных частей схемы алгоритма

Номер блока

Описание

1

Старт

2

Инициализация микроконтроллера для работы с периферийными устройствами: клавиатурой, светодиодными индикаторами и ЖК дисплеем, инициализация самих устройств.

3

Считывание времени

4

Сравнение текущего времени с заданным

5

Проверка условия совпадения

6

Зажигание светодиодного индикатора при совпадении

7

Сканирование строки клавиатуры

8

Проверка условия наличия сигнала с клавиатуры

9

Перевод указателя на следующую строку и возвращение к считыванию времени

10

Формирование кода нажатой клавиши при наличии сигнала с клавиатуры

11

Сохранение введённого символа с клавиатуры

12

Выполнение задержки для предотвращения многократного срабатывания клавиатуры при одиночном нажатии клавиши и возвращение на считывание времени

Блок-схема алгоритма представлена в Приложении Г

7. Программа

Программа разрабатывалась на языке AVRAssembler с помощью программы AVRStudio 4.Она позволяет управлять ресурсами микроконтроллера и реализовать поставленную задачу. Для этого в программе используется стандартный набор команд и директив микроконтроллеров семействаAVR. Используемые в программе команды и директивы, а также их назначение сведены в таблицу7.1.

Таблица 7.1 – Используемые команды и директивы

Команда

Описание

.include

Директива подключения стандартных файлов и библиотек;

.equ

Назначает имя переменной или константе;

.cseg

Директива начала сегмента кодов;

.org

Директива установки положения в сегменте;

.db

Определить байт данных в памяти;

jmp

Безусловный переход на метку;

ldi

Загрузка 8-разрядной константы в регистр;

out

Вывод данных в порт;

sbi

Установка указанного бита порта;

eor

«Исключающееили»между регистрами;

in

Ввод данных с порта;

call

Безусловный вызов процедуры;

brne

Перейти на метку, если значения не равны (Z=0);

breq

Перейти на метку, если значения равны (Z=1);

andi

Операция логического умножения на константу;

add

Сложение значений 2 регистров без учёта бита переноса C;

adc

Сложение значений 2 регистров cучётjbбита переносаC;

lpm

Загрузка данных из памяти программы;

sts

Запись значения регистра по указанному адресу;

cbi

Сброс указанного бита порта;

dec

Уменьшение значения регистра на 1;

pop

Извлечение данных из стека;

swap

Перестановка тетрад в байте;

mov

Запись из регистра в регистр;

lds

Непосредственное чтение из ОЗУ в регистр.

В программе используются регистры специальных функций и регистры общего назначения. Используемые в программе регистры, а также их назначение сведены в таблицу 7.2.

Таблица 7.2 – Используемые регистры и их назначение

Регистр

Описание

DDRC

Регистр направления данных порта Cмикроконтроллера;

DDRD

Регистр направления данных порта Dмикроконтроллера;

DDRF

Регистр направления данных порта Fмикроконтроллера;

DDRG

Регистр направления данных порта Gмикроконтроллера;

portC

Регистр данных порта Cмикроконтроллера;

portD

Регистр данных порта Dмикроконтроллера;

portF

Регистр данных порта Fмикроконтроллера;

portG

Регистр данных порта Gмикроконтроллера;

SREG

Регистр управления и статуса. Содержит бит разрешения/запрета всех прерываний;

R16...R25,R30,R31

РОН для временного хранения данных и их записи в регистры специальных функций;

R26, R27, R28,R29

Регистры для адреса ячеек памяти, где хранятсявводимые с клавиатуры данныеданных, отображаемых на дисплее;

SPL,SPH

Регистры, хранящие адрес стека

Программа состоит из четырёх основных блоков:

1.Блок инициализации. Включает в себя выделение областей памяти под стек, основную программу, данные и проч. Инициализацию ЖК дисплея, портов микроконтроллера на ввод\вывод, инициализацию шины I2C.

2. Основная часть. Включает в себя вывод текущего и заданного времени на дисплей, сканирование клавиатуры и сравнение текущего времени с заданным

3. Блок обработки сигналов клавиатуры. В нём происходит обработка поступившего сигнала с клавиатуры, формирование символа и сохранение его в память.

4. Блок подпрограмм и вспомогательных процедур. Состоит из набора подпрограмм для работы с часами и шиной I2C.

Листинг программы представлен в Приложении Д.