- •Содержание
- •Введение
- •1. Теоретические сведения и принципы функционирования отдельных узлов устройства
- •1.1 Структура микроконтроллера atMega128
- •1.1.2 Организация памяти и портов ввода/вывода микроконтроллера
- •1.2.Ds1307- Часы реального времени с последовательным интерфейсом и организацией памяти 64х8
- •1.3.Структура жидкокристаллического индикатора wm-c1602n
- •1.4.Клавиатура стенда нтц 3.100
- •2. Обоснование структуры
- •3.Функциональнаясхема
- •4. Электрическая принципиальная схема
- •4.1 Описание электрической принципиальной схемы
- •4.2 Выбор элементной базы
- •5. Печатная плата
- •Описание программы разработки печатной платы
- •Выбор материала печатной платы
- •6. Блок-схема алгоритма
- •7. Программа
- •Заключение
- •Список использованныхисточников
- •Приложения
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.
Листинг программы представлен в Приложении Д.