Разработать часы реального времени в среде программирования Algorithm Builder

Автор: Пользователь скрыл имя, 25 Февраля 2013 в 11:15, контрольная работа

Описание работы

Задание: разработать часы реального времени на базе микроконтроллера AT90S8515. Время отображается с помощью четырех восьмисегментных индикаторов, управление осуществляется с помощью клавиатуры (3х4 – 12 кнопок). Программирование и прошивка МК осуществляется с помощью приложения Algorithm Builder.
Задачи устройства: при подаче питания на индикаторе отображается 00 часов 00 минут и часы начинают “идти”. При этом должна мигать точка второго разряда индикатора с периодом 1 сек (0.5с горит, 0.5с не горит). При нажатии кнопки “*” включается режим ввода времени, при котором последовательно задаются часы и минуты и после ввода последней цифры начинается ход часов. При вводе времени должна осуществляться проверка на некорректный ввод (например, при вводе первой цифры можно ввести только “0”, “1” или “2” остальные кнопки должны игнорироваться).

Содержание

1. Описание принципиальной схемы 3
2. Описание возможного варианта алгоритма программы 4
2.1. Использование ресурсов 5
2.2. Основная программа 5
2.3. Режимы работы устройства 6
2.4. Подпрограмма обработки прерывания таймера 6
2.5. Подпрограмма счета времени 7
2.6. Вывод времени на индикацию 8
2.7. Опрос клавиатуры 10

Работа содержит 1 файл

часы реального времени на базе микроконтроллера AT90S8515.doc

— 540.00 Кб (Скачать)

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

Т.к. сканирование клавиатуры и индикации выполняется с помощью одних линии, то опрос клавиатуры будет связан с индикацией. Например, если в данный момент на индикаторе отображается первый разряд (присутствует 0 на линии PORTD.4), то сейчас подается 0 на первую строку клавиатуры, и можно считать состояние только первых трех кнопок этой строки. Таким образом, номер разряда индикатора, который отображается в данный момент, будет номером строки клавиатуры, которую можно сканировать в данный момент. В подпрограмме INDIKATION уже была введена переменная, в которой хранился номер текущего разряда индикатора. Эту переменную и нужно использовать при опросе клавиатуры.   

Блок-схема подпрограммы SCAN представлена на рисунке 8.


Рисунок 8 – Блок-схема подпрограммы SCAN

 

Для борьбы с дребезгом  контактов устанавливать флаги  нажатия необходимо следующим образом: если два последних считывания показали, что кнопка нажата (считаны нули), а до этого кнопка была отжата, то выставляется флаг нажатия кнопки. Такая проверка делается для каждой кнопки.

 

 

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

 

 

 


Информация о работе Разработать часы реального времени в среде программирования Algorithm Builder