Автор: Пользователь скрыл имя, 20 Марта 2012 в 11:08, курсовая работа
Необходимо разработать систему управления на базе микроконтроллера, реализующего заданный алгоритм. Система должна содержать микроконтроллер, устройство ввода для ввода информации, устройство вывода информации, для отображения промежуточных и конечных результатов.
Постановка задачи
Описание разработанной структуры
Описание функциональной схемы
Описание принципиальной схемы
Описание блочного алгоритма
Описание базовых элементов
Спецификация
Программа
Заключение
Список использованной литературы
Приложение
11.1: Схема разработанной структуры
11.1: Функциональная схема разработанной структуры
11.2: Принципиальная электрическая схема разработанной структуры
11.3: Блочный алгоритм разработанной структуры
Содержание:
11.1: Схема разработанной структуры
11.1: Функциональная схема разработанной структуры
11.2: Принципиальная электрическая схема разработанной структуры
11.3: Блочный алгоритм
Постановка задачи
Необходимо разработать систему управления на базе микроконтроллера, реализующего заданный алгоритм. Система должна содержать микроконтроллер, устройство ввода для ввода информации, устройство вывода информации, для отображения промежуточных и конечных результатов.
В соответствии с алгоритмом и вариантом (вариант 6) определены следующие начальные условия:
1.Описание разработанной структуры
Структура, показанная на схеме (в приложении 1) состоит из 3-х блоков:
Блок клавиатуры.
Блок клавиатуры состоит из 17 кнопок. Он предназначен для ввода значения параметра PAROU и сброса системы в первоначальное состояние. Параметр PAROU является двузначным шестнадцатеричным числом. Соответственно, блок клавиатуры для ввода параметра включает 16 символов для ввода.
Переменная PAROU состоит из двух символов, поэтому ввод осуществляется последовательным нажатием кнопок клавиатуры. После нажатия двух кнопок параметр PAROU будет зафиксирован в программе.
Кнопка «Сброс» предназначена для перевода системы в первоначальное состояние. Случаи применения:
Блок индикации.
Блок индикации состоит из 3 блоков:
Блок отображения состоит из двух семисегментных индикаторов для отображения вводимых значений и промежуточных результатов. Первый семисегментный индикатор отвечает за отображение старшего разряда числа, 2 индикатор – за отображение младшего.
Для декодирования сигналов с микроконтроллера применяется дешифратор. На дешифратор подается 4-х разрядное двоичное число, которое он преобразует в сигналы для индикаторов.
Блок, информирующий об окончании работы алгоритма, состоит из светодиода. Если система авершила работу – светодиод зажигается.
Блок микроконтроллера.
Блок микроконтроллера является управляющим и состоит из микроконтроллера AVR AT90S22313
2.Описание функциональной схемы.
В приложении 2 представлена функциональная схема разработанной системы.
Функциональные блоки семисегментных индикаторов и светодиодов.
Семисегментные индикаторы соединены с дешифратором, который, в свою очередь, соединен с выводами порта D. Выходные буферы порта D обеспечивают ток до 20 мА. Как входы, установленные в низкое состояние, выводы порта D являются источниками тока, если задействованы подтягивающие резисторы.
Для вывода данных на индикатор необходимо настроить порт D на вывод данных. Выводы PD0-PD3 , подключенные к дешифратору, отвечают за то, какое число будет отображаться на индикаторе. Так как в схеме 2 светодиода, то используется динамическая индикация. Идея динамической индикации такова. Так как человеческий глаз достаточно инерционен можно зажигать не все индикаторы сразу, а попеременно. Что бы избежать мерцания необходимо обеспечивать свечение каждой цифры как минимум 50 раз в секунду. За включение первого индикатора отвечает вывод PD5, второго – PD4. На индикатор засветится при подаче соответствующего кода на дешифратор и сигнала низкого уровня на нужный вывод.
Вывод PD6 отвечает за сигнал об окончании работы. Для этого необходимо подать сигнал низкого уровня.
Функциональный блок матричной клавиатуры.
В разработанной системе используется 16-ти кнопочная клавиатура, подключенная к выводам порта B. Клавиатура имеет вид матрицы 4х4, кнопки обозначены с S1-S16. Для контроля состояния кнопки в строке необходимо подать сигнал низкого уровня на один из выводов PB0-PB3 микроконтроллера. В этом случае на выводе PD4-PD7 , подключенном к нажатой кнопке, установится логический 0.
Для определения состояния клавиатуры микроконтроллер должен периодически подавать сигналы низкого уровня на выводы PB0-PB3 и считывать информацию с выводов PB4-PB7.
Для того, чтобы начать работу алгоритма необходимо ввести число, состоящее из двух цифр. Первым вводится старший разряд числа, затем младший.
3.Описание принципиальной схемы.
В приложении 3 представлена принципиальная электрическая схема разработанной системы.
Подключение индикаторов и светодиодов.
Выводы порта D соединены с дешифратором, индикаторами и светодиодом. PD0-PD3 с дешифратором, PD4-PD5 с индикаторами, PD6 со светодиодом. Максимальный ток, который, может поступать на входы дешифратора, не превышает 4-7 мА. Iвыход=5 mA. Диоды используются для управления током индикатора. Тип подключения индикатора – общий анод. Ток с вывода микроконтроллера (PD5-PD6) подается на общий вывод одного из индикаторов. Одновременно на дешифратор поступает код с выводов PD0-PD3, который он преобразует и подает на выводы a-g. В результате один из индикаторов отображает цифру.
Подключение внешнего кварцевого резонатора.
В микроконтроллер встроен внутренний тактовый генератор. Для его работы необходим начальный внешний тактовый импульс для запуска и выполнения критичных ко времени участков прикладных программ. Для этого используется внешний кварцевый резонатор.
На схеме кварцевый резонатор подключен к выводам XTAL1, XTAL2 микроконтроллера.
XTAL1- вход инвертирующего усилителя генератора и вход внешнего тактового сигнала.
XTAL2- выход инвертирующего усилителя генератора.
Подключение кнопки «Сброс».
Кнопка сброс обозначена на схеме S17 и предназначена для установки микроконтроллера в начальное состояние. Для этого необходимо поддерживать низкий уровень сигнала в течении определенного времени(2 машинных такта). Сигнал запуска имеет низкий уровень, и процессор начинает выполнение программы только после установления высокого уровня на этом входе. Задержка необходима для стабилизации работы генератора. Для этого в схеме предусмотрен конденсатор С1 , емкостью 1мкФ, для того, чтобы микроконтроллер начал свою работу после того, как стабилизируется работа генератора. Резистор R12 является токоограничивающим.
Подключение матричной клавиатуры.
В разработанной системе предусмотрена 16-кнопочная клавиатура. Она подключена к выводам порта B(PB0-PB7). Клавиатура имеет вид матрицы 4х4. Кнопки обозначены на схеме S1-S16. Для контроля нажатия кнопки в строке необходимо подать сигнал низкого уровня на один из выводов PB0-PB3. В этом случае на одном из выводов PB4-PB7 установится сигнал низкого уровня.
Для определения нажатия клавиши микроконтроллер должен периодически считывать состояния выводов PB4-PB7, последовательно устанавливая на выводах PB0-PB3 логический «0».
4.Описание блочного алгоритма.
В приложении 4 представлен блочный алгоритм разработанной системы.
Блок 1.
В данном блоке мы определяем, была ли нажата клавиша. Для этого проверяем состояния линий в каждой строке. В каждой строке считываем состояния входов PB4-PB7 и записываем в регистр R21. Затем выполняется операция логического «и» над содержимым регистра. После чего результат сравнивается с шаблоном не нажатых клавиш. Если не равно - переходим по метке Hit, где производится повторное чтение для устранения дребезга контактов. Если клавиша была нажата, то заносим ее код в R19 и устанавливаем флаг С.
Блок 2.
Блок вывода числа на светодиоды. В регистрах R16 и R17 хранится старший и младший разряд вводимого числа. Перед началом программы значения в этих регистрах равны 0. Поэтому на индикаторах в первом цикле программы отображается 00. В последующих циклах отображается значение параметра PARIN.
Блок 3.
Проверяется установлен флаг С или нет. Если да – идем к следующему блоку, нет- возвращаемся к блоку 1.
Блок 4.
В этом блоке определяется старший разряд параметра PAROU. Содержимое регистра R19 последовательно сравнивается с кодами клавиш. Затем в регистр R16 загружается код нажатой кнопки. Например, если была нажата клавиша 5, то в регистр загружается число 05. После этого содержимое регистра складывается с числом D0. Это нужно для того, чтобы зажегся только первый индикатор.
Блок 5.
Устанавливаем флаг С равным 0 для того, чтобы его можно было использовать при дальнейших проверках.
Блок 6.
Выводим получившееся число на светодиоды. Используется порт D.
Блок 7.
Аналогичен блоку 1.
Блок 8.
Проверяется установлен флаг С или нет. Если да – идем к следующему блоку, нет- возвращаемся к блоку 6.
Блок 9.
В этом блоке определяется младший разряд параметра PAROU. Содержимое регистра R19 последовательно сравнивается с кодами клавиш. Затем в регистр R17 загружается код нажатой кнопки. Например, если была нажата клавиша 5, то в регистр загружается число 05. После этого содержимое регистра складывается с числом Е0. Это нужно для того, чтобы зажегся только второй индикатор.
Блок 10.
Аналогичен блоку 5.
Блок 11.
Выполняется основная работа программы. В регистре R23 мы получаем значение параметра PAROU. Затем сравниваем его с параметром DOP(по условию DOP=05). Если PAROU равен DOP, то устанавливаем флаг С и завершаем работу подпрограммы. Если нет- переходим по метке men.
После метки men сравниваем PARIN c DOP. Если больше – переходим на метку bol. Если нет – загружаем в регистр R23 значение параметра PARIN, хранящегося по адресу $82. Затем складываем его со значением $05 и записываем по адресу $82. Помещаем в регистр R16 старший разряд получившегося параметра PARIN, в R17- младший разряд. Устанавливаем в этих регистрах биты для правильного отображение на светодиодах и завершаем подпрограмму.
После метки bol загружаем в регистр R23 значение параметра PARIN, хранящегося по адресу $82. Затем вычитаем из него значение $04 и записываем по адресу $82. Помещаем в регистр R16 старший разряд получившегося параметра PARIN, в R17- младший разряд. Устанавливаем в этих регистрах биты для правильного отображение на светодиодах и завершаем подпрограмму.
Блок 12.
Проверяется установлен флаг С или нет. Если да – идем к следующему блоку, нет- возвращаемся к блоку 1.
Блок 13.
Выводим параметр PARIN.
Блок 14.
Зажигаем светодиод сигнала окончания работы алгоритма. Для этого в регистр R24 загружается число В0, оно выводится через порт D. Затем возвращаемся к блоку 13.
5.Описание базовых элементов.
Индикаторная база
В качестве индикаторной базы выбран светодиод B3135P фирмы JiannWa.
Технические характеристики:
Тип светодиода – Круглые 5 мм
Материал линзы – Диффузионный
Цвет линзы – зеленый
Цвет излучения – Зеленый
Min яркость – 60мКд
Номинальный ток – 20 мА
Типовое напряжение – 3 В
В качестве базы для отображения параметров POROU и PARIN выбран индикатор SA08-21 фирмы Kingbright.
Технические
характеристики:
Макс. прямое напряж. (при токе 20 мА):........
2.5 В
Макс. прямой ток: ..............................
Макс. обратное напряжение:...................
Обратный ток (при напряжении 5 В): ...........10
мкА
Мощность рассеивания:..................
Макс. импульсный прямой ток: ........... 140-160
мА
Диапазон рабочих температур: ............ -40…+85°С
Микроконтроллер AT90S2313
AT90S2313 – современный восьмибитовый КМОП-микроконтроллер(Рис.1). Имеет производительность около 1 MIPS на мегагерц за счет того, что почти все команды он выполняет за 1 период тактового генератора.
Построен на основе расширенной RISK-архитектуры, объединяющий развитый набор команд и 32 регистра общего назначения. Все 32 регистра непосредственно подключены к АЛУ, что дает доступ к любым двум регистрам в течение одного машинного такта. Подобная архитектура обеспечивает почти 10 выигрыш в производительности по сравнению с традиционными микроконтроллерами.