Разработка таймера прямого хода

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



Содержание

Введение

1. Описание принципиальной схемы

2. Описание и назначение переменных

3. Описание основной программы и подпрограм

3.1 Основная программа (Reset)

3.2 Подпрограмма начальной инициализации (INIT)

3.3 Подпрограмма обработки прерывания (TIMER_0_OVERFLOW)

3.4 Подпрограмма счёта времени (TIME_CONTROL)

3.5 Подпрограмма остановки таймера (TIMER)

3.6 Подпрограммы индикации (INDICATION, UPDATE)

3.7 Подпрограмма опроса клавиатуры (SCAN)

3.8 Подпрограмма антидребезга (ANTIDREBEZG)

3.9 Подпрограмма проверки корректности нажатия клавиши (GET_KEY)

Введение

Микроконтроллеры и микропроцессоры в данное время являются базовой основой для обработки сигналов, контроля управления аппаратной работы (обработка клавиатуры, индикация, управление цифровыми станциями, системами автоопределения).

Первый микроконтроллер был изобретён в 1971 году компанией INTEL (I8004).

Задачи, стоящие перед МК:

1.Контроль и управление аппаратурой (обработка клавиатуры, индикация, управление цифровыми станциями, системами автоопределения и т.д.). Данные операции не требуют сложных вычислений, и для их реализации используется универсальный МК.

2.Обработка сигналов. Современные средства передачи информации в большинстве случаев предполагают преобразование аналоговой информации в цифровую, цифровую обработку сигналов и обратное преобразование в аналоговый вид. Таким образом, традиционная аналоговая обработка информации заменяется цифровой. Она предполагает, в частности, расчёт и модификацию спектров сигналов, компрессию сигналов, кодирование и декодирование сигналов, шифрование информации и т.д. Данные задачи являются сложными. Универсальный микроконтроллер не в состоянии справиться с такими задачами, и для их реализации используются процессоры цифровой обработки сигналов.

3.Реализация различных телекоммуникационных протоколов.

В данном курсовом проекте для выполнения задачи по реализации таймера прямого хода будет запрограммирован микроконтроллер AT90S8515 с помощью приложения Algorithm Builder 4.42.

1. Описание принципиальной схемы

Рисунок 1.1 - Принципиальная электрическая схема блока клавиатуры и индикации

На рисунке 1.1 представлена принципиальная электрическая схема блока клавиатуры и индикации. Микроконтроллер является основной и единственной микросхемой, используемой в данной разработке. Для задания тактовой частоты контроллера используется кварцевый резонатор на 8 МГц. В качестве устройства отображения использованы четыре индикатора красного цвета свечения с общим анодом, каждый индикатор содержит 8 сегментов.

Индикация текущего времени осуществляется динамически, в данный конкретный момент времени отображается лишь одна цифра, что позволяет значительно снизить аппаратные затраты. Аноды каждой из четырех цифр являются раздельными, что позволяет в данный момент времени подключить к источнику питания только один анод и отобразить одну цифру. Для этого часы имеют четыре транзисторных ключа. Ключи управляются микроконтроллером, причем соответствующий ключ открыт, если на выводе контроллера присутствует логический ноль. Одноименные сегменты всех четырех цифр соединены вместе и через токоограничивающие резисторы подключены к выводам порта "А" (выводы PА.0 тАж PА.7). Управляющая программа один за другим подключает разряды индикатора к источнику питания и одновременно на соответствующих выводах порта "А" выставляет код отображаемой цифры.

Поскольку сканирование индикатора происходит очень быстро, мерцание цифр становится незаметным. Как видно из схемы, линии сканирования клавиатуры и индикации общие, что позволяет уменьшить число используемых выводов. Питается схема от стабилизированного источника питания напряжением 5В.

Сразу после включения часов программа разрешает прерывания, настраивает порты контроллера соответствующим образом и устанавливает указатель стека на старшие адреса внутренней памяти данных. Далее программа переводит устройство в режим часов и запускает цикл сканирования клавиатуры, индикатора и цикл счета времени. Основой программы является обработчик прерываний от таймера.

Часы реального времени организованы с использованием прерываний по таймеру 0, который тактируется системной частотой поделенной на 256.

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

При использовании кварцевого резонатора 8 МГц длительность цикла инструкции равна 0.125 мкс. С учетом этого, при записи числа n в регистр таймера 0 TCNT0 период его переполнения определяется по выражению:

(256-n) *256*0,125 мкс

Таким образом запись числа 100 обеспечит период переполнения 5мс с высокой для счета реального времени точностью:

(256-100) *256*0,125*=4,992мс.

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

В основной программе настраивается МК и ожидается нажатие клавиши, если клавиша нажата, то определяется ее код и происходит переход к одной из подпрограмм ввода, где анализируется, какая цифра вво