Организация часов реального времени на базе микроконтроллера AT90S8515
Автор: pugach • Декабрь 9, 2018 • Курсовая работа • 2,042 Слов (9 Страниц) • 595 Просмотры
ВВЕДЕНИЕ
Появление интегральных схем значительно упростило разработку технических схем для различных задач, так как любая интегральная схема обладает гораздо меньшим размером в сравнении с аналогами, выполненными на базе простых транзисторов. Дальнейшее развитие они получили в виде микропроцессоров, сочетающих в себе возможности множества различных интегральных схем внутри одного небольшого корпуса. Их появление ознаменовало массовое развитие цифровой техники и автоматизации на ее основе. Следующим шагом стало изготовление микроконтроллеров, которые являются еще более сложным устройством, которое представляет собой мини-компьютер со своей собственной внутренней памятью и некоторыми периферийными устройствами, при сохранении столь же малых размеров, простоты использования и увеличении функциональности в сравнении с микропроцессорами. Обладая таким сочетанием и сравнительно невысокой стоимостью, микроконтроллеры быстро приобрели большую популярность в области автоматики: практически все современные бытовые или промышленные устройства сконструированы на их основе.
Задача данного курсового проекта состоит в организации часов реального времени на базе микроконтроллера AT90S8515 и в закреплении навыков программирования и отладки программного обеспечения в среде разработки AlgorithmBuilder.
1 ОПИСАНИЕ ПРИНЦИПИАЛЬНОЙ ЭЛЕКТРИЧЕСКОЙ СХЕМЫ ЛАБОРАТОРНОГО СТЕНДА
Принципиальная электрическая схема часов представлена на рис. 1. Микроконтроллер является основной и единственной микросхемой, используемой в данной разработке. Для задания тактовой частоты контроллера используется кварцевый резонатор на 8 МГц. В качестве устройства отображения использованы четыре индикатора красного цвета свечения с общим анодом, каждый индикатор содержит 8 сегментов.
[pic 1]
Рисунок 1.1 - Принципиальная электрическая схема блока клавиатуры и индикации.
Индикация текущего времени осуществляется динамически, в любой конкретный момент времени отображается лишь одна цифра, что позволяет значительно снизить аппаратные затраты. Аноды каждой из четырех цифр являются раздельными, что позволяет в данный момент времени подключить к источнику питания только один анод и отобразить одну цифру. Для этого часы имеют четыре транзисторных ключа. Ключи управляются микроконтроллером, причем соответствующий ключ открыт, если на выводе контроллера присутствует логический ноль. Одноименные сегменты всех четырех цифр соединены вместе и через токоограничивающие резисторы подключены к выводам порта "А" (выводы РА.0 ... РА.7). Управляющая программа один за другим подключает разряды индикатора к источнику питания и одновременно на соответствующие выводы порта "А" выставляется код отображаемого числа. Поскольку сканирование индикатора происходит очень быстро, мерцание цифр становится незаметным. Как видно из схемы, линии сканирования клавиатуры и индикации общие, что позволяет уменьшить число используемых выводов. Питаются часы от стабилизированного источника питания напряжением 5В.
2 ОПИСАНИЕ БАЗОВЫХ ПРИНЦИПОВ РАБОТЫ ПРОГРАММЫ
Программа организована с использованием прерываний по таймеру 0, который тактируется системной частотой, разделенной на 256. Таймер предварительно загружается числом 100, что задает период генерации прерываний по переполнению таймера каждые 5 мс, обеспечивая высокую точность хода часов, при условии использования качественного кварцевого резонатора. При использовании кварцевого резонатора 8 Мгц длительность цикла инструкции равна 0.125 мкс. С учетом этого, при записи числа n в регистр таймера 0 TCNT0 период его переполнения определяется выражением:
[pic 2]
Таким образом, запись числа 100 обеспечит период переполнения 5мс с высокой для счета реального времени точностью:
[pic 3]
Вся программа разбита на несколько частей - это основная программа и подпрограммы прерывания по переполнению таймера/счетчика, счета времени, вывода на индикацию, сканирования клавиатуры и анализа нажатой клавиши. В основной программе настраивается МК и ожидается прерывание по переполнению таймера-счетчика, где наращивается счетчик срабатываний (когда его значение станет равным 200, то это значит, что прошла 1сек и вызывается подпрограмма счета времени), а также реализуется переход в подпрограмму ожидания нажатия клавиши либо в подпрограмму задания времени.
...