Автор работы: Пользователь скрыл имя, 17 Апреля 2013 в 10:57, курсовая работа
Семейство 8-разрядных микроконтроллеров 68НМ08/908, выпуск которых начался в 1995г., является дальнейшим развитием семейства 68НС05/705. В этом семействе реализованы концепции, которые обеспечивают существенное увеличение производительности микроконтроллеров и расширение их функциональных возможностей. Микроконтроллеры этого семейства предназначены для замены семейства 68НС05/705 в новых разработках. Сохраняя архитектуру семейства 68НС05/705, микроконтроллеры 68НС08/908 позволяют обеспечить более высокие технико-экономические характеристики устройств, реализуемых на их основе.
ВВЕДЕНИЕ 4
1. Теоретическая часть
1.1. Структура микроконтроллера MC68HC908GP32 5
1.2. Организация памяти и портов ввода/вывода микроконтроллера 8
1.3. Организация прерываний в микроконтроллере 12
1.4. Цифровая индикация 15
2. Разработка аппаратной части МКУ
2.1. Постановка задачи 19
2.2. Разработка функциональной схемы 20
2.3. Описание принципиальной электрической схемы МКУ 21
3. Разработка программного обеспечения МКУ
3.1. Описание интегрированной среды разработки WinIDE 25
3.2. Описание программы 29
ЗАКЛЮЧЕНИЕ 34
Список используемой литературы 35
Схема рис.1.3. реализует описанный
принцип на примере индикации четырехразрядного
десятич-
ного числа. Четыре выхода счетчика IV, содержащего четвертый разряд числа, соединяются в входами D0 четырех мультиплексоров (по два мультиплексора на каждом корпусе). Четыре выхода счетчика III, содержащего третий разряд числа, соединяются с входами D1 мультиплексоров и т.д. (на рис. 3 это отражено цифрами IV, III, II, I на соответствующих входах мультиплексоров). За счет общих адресных линий на выходы мультиплексоров одновременно будет поступать информация с одноименных входов: с четырех входов D0 (со счетчика IV разряда), с четырех входов D1 (со счетчика III разряда) и т.д.
В каждый момент времени на дешифраторы в структурах мультиплексоров и на дешифратор DC1 поступает один и тот же код с выходов счетчика СТ1. Поэтому поступление на дешифратор DC2 кода старшего разряда числа с входов D0 (при А0=0, А1=0) будет сочетаться с возбуждением выхода 0 дешифратора DC1, соединенного с анодом левого по схеме индикатора (на котором и должен высвечиваться этот разряд), т.е. с вводом его в работу.
При непрерывной работе генератора G код на выходах счетчика СТ1 будет циклически изменяться: возрастать, принимать нулевое значение, вновь увеличиваться и т.д. Поэтому аналогично описанному будет функционировать каждый индикатор, включаемый при поступлении на анод напряжения логической 1 с соответствующего выхода дешифратора DC1. При частоте возбуждения индикатора порядка 100Гц его мелькания не ощущаются.
Легко заметить, что число входов каждого мультиплексора должно быть равно числу индикаторов, фиксирующих десятичное число, т.е. числу его разрядов.
Динамическую индикацию
2. Разработка аппаратной части МКУ
2.1 Постановка задачи
На базе МК семейства MOTOROLA МС68НС908GР32 разработать микроконтроллерное устройство для выполнения опроса сигнала на входе с интервалом 20 мкс, после трехкратного обнаружения сигнала «логического нуля» отобразить на семисегментном индикаторе информацию количества опроса сигнала и выдать звуковой сигнал. Разработать и отладить программное обеспечение микроконтроллерного устройства в интегрированной среде программирования ICS08GPGTZ (WinIDE).
Функциональная схема включает в себя 8-миразрядный микроконтроллер МС68НС908GР32, генератор тактовых импульсов, дешифратор, управляющие ключи, пьезодинамик (для подачи звукового сигнала)., три семисегментных индикатора (для отображения информации количества опроса сигнала), схему внешней синхронизации, схему внешнего фильтра.
Схема представлена в Приложении.
2.2. Разработка функциональной схемы
Структура микроконтроллерного устройства
Рисунок 2.1. Структура микроконтроллерного устройства
Информация от источника сигнала поступает на микроконтроллер МК. МК по определённому алгоритму выдает информацию на дешифратор. Дешифратор преобразует двоичный код в код семисегментного индикатора. Одновременно контроллер с помощью ключей активирует один из трёх индикаторов. Таким образом, на индикаторах высвечивается трёхзначное значение интервала времени. На первый индикатор выводится целое число секунд, на второй и третий сотые доли секунд. Также по определенному алгоритму микроконтроллер выдает звуковой сигнал.
2.3 Описание принципиальной электрической схемы
Микроконтроллер МС68НС908GР32 сделан в корпусе QFP с 44 выводами. Выводы VDD, VDDA и VDDAD подключаются к источнику постоянного тока 5В, на «землю» подключаются выводы VSS, VSSA и VSSAD.
Обозначение выводов микроконтроллера изображено на рис. 2.2.
Рисунок 2.2. Обозначение выводов микроконтроллера MC68HC908GP32
Схема внешнего фильтра представлена на рисунке 2.3.
Рисунок 2.3. Схема внешнего фильтра
Рисунок 2.4. Схема внешней синхронизации
На рисунке 2.4. представлена схема внешней синхронизации. Резонатор, задающий таковую частоту, подключается к выводам JSC1 и JSC2 МК. Конденсаторы С3 – конденсатор постоянной емкости, С4 – переменный конденсатор, используемый для адаптации кварцевого резонатора к генератору после определения оптимальной емкости. Номиналы эти конденсаторов лежат в диапазоне 6 – 40 пФ. Резистор R3 = 10-22 МОМ, R4 = 350 кОм, Х1 – кварцевый резонатор с QZ – 32 кГц.
Схема внешнего фильтра значительно влияет на стабильность работы МК. Подключается внешний фильтр к выводу GMMXFC МК. Здесь R2 = 10 кОм, С1 = 33пФ, С2 = 10 пФ.
В микроконтроллерах серии GP используется вариант модуля CGM08, который обеспечивает умножение частоты в сотни раз, что позволяет подключать в качестве частотно-задающего элемента дешевые и стабильные кварцевые кристаллы с резонансной частотой Fq=32,768 кГц, широко применяемые в часовой промышленности («часовые» кварцы). В паре с этим резонатором работают конденсаторы С1 и С2 ёмкостью 3 пФ.
Звуковой сигнал выдаётся пьезодинамиком LS1, который подключен к линии РТD4 порта D посредством токоограничивающего резистора R5 номиналом 250 Ом. Генерация необходимой частоты (4000 Гц) осуществляется программно.
Информация выводится на три семисегментных индикатора. На рисунке 2.5.: Обозначение (а) и конструкция (б) семисегментного индикатора. Как видно из рисунка сегменты соединены по схеме с общим катодом.
Рисунок 2.5. Обозначение (а) и конструкция (б) семисегментного индикатора
Управление семисегментными индикаторами осуществляется с помощью дешифратора К514ИД1 (рис. 2.6.). Характеристики дешифратора:
Рисунок 2.6. Дешифратор К514ИД1
К выводу 16 подключается источник питания, а к выводу 8 – ноль. На входы 7, 1, 2, 6 подаётся двоичный код числа, который преобразуется дешифратором в код семисегментного индикатора. Индикатор подключается к выводам 13, 12, 11, 10, 9, 15, 14. При подаче высокого уровня на вход 4 происходит гашение индикатора.
3.1. Описание интегрированной
Интегрированная среда ICS08GPZ компании Р&E Microcomputer Systems содержит набор средств для отладки программного обеспечения систем, реализуемых на базе микроконтроллеров MK68HC908GP32 и MK68HC908GP20 фирмы Motorola. В состав среды ICS08GPZ входят:
- ассемблер;
- симулятор;
- программатор;
- внутрисхемный отладчик.
Программатор, внутрисхемный симулятор и отладчик работают совместно с соответствующими аппаратными средствами (лабораторный макет или плата развития). Все программы могут быть вызваны из входящей в состав пакета интегрированной среды WinIDE.
Рассмотрим основные режимы и операции, реализуемые в среде. Режим File обеспечивает выполнение набора следующих операций (в скобках указаны комбинации клавиш, вызывающих выполнение этих операций):
New File (Ctrl + N)
Open File (Ctrl + O)
Save File (Ctrl + S)
Save File As…
Close File (Ctrl +D)
------------------------------
Print…
Print Setup…
------------------------------
Exit (Alt + F4)
Операция New File открывает новое окно редактора для создания текста, который затем может быть сохранен в новом файле. Операция Open
File загружает в новое окно редактора исходный текст требуемого файла. Сохранение файла активного окна редактора со старым именем реализуется с помощью Save File. Сохранение с присвоением нового имени выполняется операцией Save File As…, Close File закрывает текущий файл. Операция Print Setup обеспечивает настройку печати, Print выдает документ на печать. Операция Exit завершает текущий сеанс работы со средой. В режиме Edit система выполняет стандартные операции редактирования текста:
Undo (Ctrl + Z)
Redo (Shift + Ctrl + Z)
------------------------------
Cut (Ctrl +X)
Copy (Ctrl + C)
Paste (Ctrl +V)
Delete (Del)
------------------------------
Select All
Операция Undo и Redo, соответственно, отменяют и повторяют последнее действие над текстом. Следующие операции обеспечивают перемещение выделенного блока текста в буфер (Cut), копирование в буфер (Copy), выставку из буфера (Paste) и удаление выделенного текста (Delete). Команда Select All позволяет выделить все содержимое окна редактора. В режиме Environment обеспечивается выполнение следующего набора операций:
Open Project
Save Project
Save Project Ass…
Close / New Project
------------------------------
Setup Environment
Setup Font
Операция Open Project открывает требуемый проект. Операция Save Project и Save Project Ass… соответственно реализуют сохранение текущего проекта со старым именем и с присвоением нового имени. Операция Close / New Project закрывает текущий проект и создает новый, присваивая ему имя. Операция Setup Environment и Setup Font осуществляют, соответственно, настройку среды и шрифта. В режиме Search для поиска фрагмента текста служат следующие операции:
Find… (Ctrl + F)
Replace (Ctrl + R)
Find next (F3)
------------------------------
Go to line
С помощью этих операций в активном окне выполняется поиск по шаблону (Find), контекстная замена (Replace), поиск следующего выражения в тексте (Find next) и перемещение курсора на заданную строку текста (Go to line). В режиме Window обеспечивается многооконный режим работы системы отладки. Пользователь имеет возможность указать порядок расположения открытых окон
(Cascade – расположить каскадом, Tile – выстроить окна рядом, Arrange icons – упорядочить пиктограммы), изменить размеры окна, сделать активным следующее или предыдущее окно, закрыть активное окно, или свернуть все окна (Minimize All). Для выполнения этих операций используются следующие операции меню:
Cascade
Tile
Arrange icons
Minimize All
------------------------------
Split – отображается текущий файл
Режим Help обеспечивает выдачу справочной информации по различным вопросам практического применения системы отладки, а также информацию о текущей версии программы. Меню содержит следующие пункты:
Contents (F1)
About
Операция Contents выдает содержание файла справки и облегчает дальнейший поиск, а операция About содержит информацию текущей версии программ и его разработках.
3.2. Описание программы
По заданию необходимо каждые 20 мкс считывать сигнал со входа микроконтроллера, и при трехкратном обнаружении сигнала логического нуля высветить на семисегментных индикаторах информацию количества опроса сигналов с порта. Количество сигналов не более 255, поэтому применяем три сегментных индикатора.
В начале программы присваиваем константам (адресам ячеек памяти) символьные имена для простоты работы. Затем вводим начальные данные в счетчики. Всего счетчиков 2 – счетчик трех сигналов и счетчик количества опроса сигналов с порта микроконтроллера. В счетчик трех сигналов изначально записываем 3. Затем при каждом обнаружении логического нуля на входе МК уменьшаем на 1 и проводим проверку на ноль в счетчике. Если на счетчике трех сигналов при проверке оказывается 0, то это значит, что логический ноль на входе микроконтроллера фиксируется в третий раз. В этом случае производим перевод числа считываний сигналов в десятичную систему счисления и выводим это число на индикацию.
В счетчик числа считываний сигналов со входа МК изначально записываем #$01, это необходимо в связи с тем, что программа устроена таким образом, что при обнаружении 3-его нуля на входе МК счетчик считываний не увеличивается, а программа сразу переходит к переводу числа и его индикации. Счетчик считывания сигналов увеличивается после каждого считывания с порта не в зависимости от того какой сигнал присутствует на входе МК (кроме третьего обнаружения нуля, как отмечалось ранее).
Отсчет временного интервала в 20 мкс производится с помощью таймерного модуля TIM08. Рассчитаем число, которое необходимо записать в регистор периода модуля TIM08. Коэффициент деления частоты использовать не будем, так как в этом нет необходимости. При коэффициенте частоты равного 1 такт процессор будет длится 0,125мкс. Рассчитаем число тактов в 20 мкс:
Переведем в шестнадцатеричную систему исчисления. Именно это число и заносим в регистр T1MOD модуля TIM08. При переполнении счетчика модуль вызовет прерывание по переполнению и начнет выполнятся программа обработки прерывания.
Перевод числа считываний сигнала со входа МК производится таким путем, что конечный результат записывается в 3 различные ячейки памяти для сотен, десятков и единиц. В начале программы необходимо записать в эти ячейки нули, дабы избежать ошибки, если при переводе не будет сотен, десятков и/или единиц.
При индикации в старших разрядах ячеек памяти с числом сотен, десятков и единиц заносится лог. в тот бит, какой индикатор необходимо засветить: для сотен – 4 бит, для десятков – 5 бит, для единиц – 6 бит. Седьмой бит используется для гашения индикаторов.