Курсовая

Курсовая на тему Устройство контроля за уровнем аналоговых сигналов

Работа добавлена на сайт bukvasha.net: 2014-11-28

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 23.11.2024


МІНІСТЕРСТВО ОСВІТИ I НАУКИ УКРАЇНИ

Національний технічний університет “Харківський політехнічний інститут”

Кафедра обчислювальної техніки та програмування

УДК 681.3

Інв №

ПРИСТРІЙ КОНТРОЛЮ ЗА РІВНЯМИ АНАЛОГОВИХ СИГНАЛІВ
Альбом документів курсового проекту по дисципліні
Проектування мікроконтролерних пристроїв

XXXXXXXXXXXXX.421.012. ДКП

ІЗЮМ 2006





Формат
Зона
Поз.
Обозначение

Наименование

Кол. листов

Примечание

Документация
Общая
А4
XXXXXXXXX.421.012 ТЗ
Техническое
задание
А4
XXXXXXXXX.421.012 ПЗ
Пояснительная
Записка
А4
XXXXXXXXX.421.012 Э1
Схема
электрическая
структурная
А4
XXXXXXXXX.421.012 Э3
Схема
электрическая
принципиальная
А4
XXXXXXXXX.421.012 ПЭ
Перечень
элементов

XXXXXXXXXXXXX.421.012  ВП

Изм
Лит
№ докум
Подпись
Дата
ПРИСТРІЙ КОНТРОЛЮ ЗА РІВНЯМИ АНАЛОГОВИХ СИГНАЛІВ

Ведомость проекта

Лит
Лист
Листов
Разраб
Xxxxxxxxx.
К
2
2
Провер
Xxxxxxxxx

НТУ “XXX”

Кафедра XXX

Утв.
Xxxxxxxxx.

Анотація
В даному курсовому проекті розроблено пристрій контролю за рівнями аналогових сигналів. Розробка виконана на ОМК та МС ТТЛ-логіки малого ступеню інтеграціі. В пояснювальній записці приведені необхідні обгрунтовування, розрахунки та описи принципу дії як пристрою вцілому, так і його окремих функціональних блоків та вузлів.
Альбом документів курсового проекту крім пояснювальної записки вміщує також креслення структурної та принципової схем пристрою.

Аннотация
В данном курсовом проекте разработано устройство контроля за уровнями аналоговых сигналов. Разработка выполнена на ОМК и МС ТТЛ -  логики малого степени интеграции. В объяснительной записке приведенные необходимые разъяснения, расчеты и описания принципа действия как устройства в целом, так и его отдельных функциональных блоков и узлов.
Альбом документов курсового проекта кроме объяснительной записки вмещает также черчение структурной и принципиальной схем устройства.

Annotation
In given semester project is designed device of the checking for level analog signal. The Development was run for CPU and MS TTL - a logic small degree to integrations. In expository note brought necessary explanations, calculations and descriptions of the principle of the action as device as a whole, so and its separate functional block and nodes.
The Album course project document except expository note contains also drawing structured and principle schemes device.

Техническое задание
Разработать устройство контроля за уровнями аналоговых сигналов
Составные части устройства:
Входные сигналы медленно изменяющиеся во времени аналоговые сигналы постоянного тока (Ui) от нескольких источников (4 датчика).
Обработка входных сигналов
Сравнить уровни входных сигналов с двумя уставками (нижним Uп1 и верхним Uп2 пороговыми уровнями), хранящимися в виде констант K1i и K2i в памяти данных микроконтроллера, и по результатам сравнения осуществить:
1)     Включить зеленый светодиодный индикатор, если K1i <Ui <K2i.
2)     Включить красный светодиодный индикатор, сформировать и подать на звуковой излучатель (динамик) последовательность импульсных сигналов с заданной частотой (Fз) и скважностью 2, если        K1i >Ui >K2i.
·        Диапазон изменения входных
сигналов (Ui), В 0,1 – 5
·        Нижний пороговый уровень Uп1,
соответствующий константе K1i, В 0,9
·        Верхний пороговый уровень Uп2,
соответствующий константе K2i, В 2,4
·        Частота последовательности  импульсных
сигналов, подаваемых
на звуковой излучатель Fз, Гц 3730
Выходные сигналы:
уровни сигналов и выведенные их на 4 – разрядный 7 – сегментный светодиодный или жидкокристаллический индикатор (ЖКИ) в виде десятичных чисел с ошибкой не более +.20 мВ.
Осуществлять динамическую индикацию выбранного канала с заданной частотой обновления всех разрядов индикатора Fо.ж
·        Частота обновления всех разрядов
индикатора Fо, Гц– 44 Гц.
система управления:
Выбор индицируемого канала осуществляется вручную с помощью 4 кнопок с зависимой фиксацией.
Напряжения питания
Напряжения питания  устройства, В ---- 5
Условия эксплуатации
Температурный диапазон: +5…+40ос.
Относительная влажность: 40%.
Элементная база в качестве элементной базы использовать микросхемы  ТТЛ (ТТЛШ) малой и средней степени интеграции. 

Комплектность конструкторской документации :

Конструкторская документация должна содержать следующие документы:
-               ведомость проекта
-               техническое задание
-               объяснительную записку
-               схему электрическую структурную
-               схему электрическую функциональную
-               перечень элементов
Срок сдачи
Сдать до 1 апреля 2006 года.

Реферат
Данный документ представляет собой пояснительную записку объемом 25 листов. В пояснительной записке представлено 1 таблица, 8 рисунков использовано 10 источников литературы.
Ключевые слова: МИКРОКОНТРОЛЛЕР, АНАЛОГОВЫЙ СИГНАЛ, ПРЕОБРАЗОВАНИЕ ИНФОРМАЦИИ, ДИНАМИК, СВЕТОДИОДНЫЙ ИНДИКАТОР.
В данном курсовом проекте разработано устройство контроля за уровнем аналоговых сигналов. Разработка выполнена на микроконтроллере и микросхемах ТТЛ-логики малой степени интеграции. в пояснительной записке приведены необходимые обоснования, расчеты и описания принципа действия как устройства в целом, так и его отдельных функциональных блоков и узлов.
Альбом документов курсового проекта кроме пояснительной записки содержит также : спецификацию, техническое задание, перечень элементов, чертежи структурной и принципиальной схем устройства.

Содержание
Введение
1.     Выбор и обоснование основных технических решений.
1.1.            Детализация исходного ТЗ и постановка задачи (использование блочно-иерархического подхода при разработке данного устройства).
1.2.            Источники информации (входных сигналов).
1.3.            Приемники информации (выходных сигналов).
1.4.            Возможные пути (варианты) решения поставленной задачи.
1.5.            Возможные варианты структурных схем и их сравнительный анализ.
1.6.            Обоснование выбора структурной схемы.
1.7.            Обоснование выбора типа ОМК для решения поставленной задачи.
2.     Структурная схема устройства и её описание.
2.1.            Структурная схема.
2.1.1.                          Назначение отдельных функциональных блоков.
2.2.            Описание принципа действия и общий алгоритм работы.
2.3.            Разработка функциональных схем и блок-схем алгоритмов работы отдельных блоков.
3.     Разработка функциональной и принципиальной схем устройства.
3.1.            Описание принципиальной схемы устройства.
3.2.            Описание принципиальных схем отдельных устройств.
4.     Расчет потребляемой мощности и определение требований к источникам питания.
5.     Расчет временных параметров.
6.     Разработка и отладка рабочей программы (управления).
6.1.            Блок-схема(ы) алгоритма(ов) и её(их) описание(я).
6.2.            Структура программы.
6.3.            Текст программы (вносится в приложение!).
6.4.            Технология отладки программы.
6.4.1.                          Компиляция (с распечаткой всех файлов, полученных во время компиляции: obj, lst, erl, sym).
6.4.2.                          Моделирование.
7.     Заключение.
8.     Список используемой литературы.

Введение
Однокристальные микроконтроллеры (ОМК) позволяют существенно расширить интеллектуальные возможности различного рода устройств и систем. Они представляют собой, по сути, специализированные однокристальные микроЭВМ, содержащие для связи с внешней средой встроенные периферийные узлы и устройства, набор которых во многом определяет их функциональные возможности и области применения.
Они стали сегодня одним из самых распространенных элементов программируемой логики. Более двух третей мирового рынка микропроцессорных средств в настоящее время составляют именно однокристальные микроконтроллеры.
В структуру ОМК семейства PIC заложено много различных функциональных особенностей, делающих их самыми высокопроизводительными, микропотребляющими, помехозащищенными, программируемыми пользователем 8-ми битными микроконтроллерами. Благодаря этим особенностям ОМК семейства PIC могут обрабатывать аппаратно-программным способом как дискретные, так и аналоговые сигналы, а также формировать различного рода управляющие сигналы, а также осуществлять связь между собой и ЭВМ, находящейся на более высоком иерархическом уровне в системе.
Существует два принципиально разных подхода к проектированию цифровых устройств: использование принципа схемной логики или использование принципа программируемой логики.
Следует иметь в виду, что наивысшее быстродействие достигается в процессорах, в которых управляющее устройство строится с использованием системной логики, а операционное устройство выполняется в виде устройства, специализированного для решения конкретной задачи.
Мы будем использовать микроконтроллер фирмы Microchip со встроенным АЦП, и на его основе разрабатывать устройство контроля за уровнями входных аналоговых сигналов.

1.Выбор и обоснование основных технических решений.
1.1 Детализация исходного ТЗ и постановка задачи (использование блочно-иерархического подхода при разработке данного устройства).
Поставленную задачу можно разбить на 3 задачи:
1. Задача приема входных данных.
2. Задача обработки входных данных и принятие решения.
3. Выдача управляющего сигнала на объекты индикации.
В свою очередь задача приема входных данных  содержит в себе 3 задачи малой размерности:
1)         Прием аналогового сигнала;
2)         цикл работы АЦП;
3)         запись в РОН.
Задача обработки входных данных и принятия решения реализуется на основе 2 подзадач:
1)    чтение двух  констант (верхний и нижний предел) из ПЗУ;
2)    сравнение констант с РОН.
Задача выдачи управляющего сигнала на объект управления содержит в себе 3 задачи малой размерности:
1)         Преобразование информации о уровне входного аналогового сигнала в форму пригодную для выдачи на ЖКИ
2)         Осуществление управления динамической индикацией с заданной частотой обновления;
3)         Подача сигнала на зеленый светодиод в том случае, либо же  подача сигнала на красный светодиод и на динамик (с определенной в ТЗ частотой) в зависимости от принятого решения.
В соответствии с блочно-иерархическим принципом это разбиение исходной задачи на ряд более простых задач можно представить следующей структурой (см. рис. 2.1).
Задача керування об’єктом
прием
входных
данных
обработки входных данных и принятия решения
выдача управляющего сигнала
Цикл работы АЦП
Чтение порта ОМК
Запись в РОН
Чтение констант из ПЗУ
Сравнение констант  с данными в РОН
Управление динамической
индикацией
Преобразование инф. о ур. вх. аналогового сигнала в форму пригодную для выдачи на ЖКИ
Подача сигнала на светодиоды и           
динамик  в зав. от
принятого решения
 

Рисунок 1.1 Разбиение общей задачи на ряд подзадач.
1.2 Источники информации (входных сигналов)
Источниками информации могут служить любые устройства, выдающие плавно изменяющиеся во времени  аналоговые сигналы уровень которых лежит в пределах 0-5 В ( уровни ТТЛ ).
1.3 Приемники информации (выходных сигналов)
Приемниками  информации служат семисегментные светодиодные индикаторы , светодиоды и динамик.
1.4 Возможные пути (варианты) решения поставленной задачи
Все МКУ разрабатываются с помощью программных и аппаратных способов реализации.
Преимущества аппаратной реализации заключаются в том, что:
а) использование специальных БИС упрощает разработку и обеспечивает высокое быстродействие системы в целом;
б) уменьшается время на разработку и отладку устройства.
Преимущества программной реализации такие;
а) меньшая стоимость и потребляемая мощность системы ;
б) меньшее количество компонент в системе, а значит выше надежность системы в целом;
в) время жизни системы значительно выше по сравнению с аппаратной реализацией;
г) возможность простой модификации системы (путем перепрограммирования).
Не смотря на то, что численно преимуществ программной реализации больше, чем у аппаратной, бывают случаи, где без аппаратной части просто не обойтись. Но не в данной задаче.
Глобальная задача обработки входных данных и принятия решения будет реализована программным путем, так как именно для этого предназначен микроконтроллер. Если же входные данные обрабатывать аппаратно (собрать схему на жесткой логике), тогда ТЗ теряет свой смысл, в нем оговорено спроектировать микроконтроллерное устройство, а значит для МК останется только задача формирования выдачи выходного сигнала. Хотя эту задачу нельзя назвать слишком уж простой, и осуществить ее решение на жесткой логике было бы затруднительно и дороговато.
И зачем пытаться что-то реализовать аппаратно, если можно без особых усилий достичь того же результата, используя микроконтроллер. Поэтому обработкой входных сигналов будет заниматься МК под управлением соответствующей программы.
К тому же чем меньше элементов будет в проектируемом устройстве тем оно будет надежнее и дешевле.

1.5. Возможные варианты структурных схем и их сравнительный анализ
Для реализации данного устройство можно предложить следующие варианты:
1)                                          на микроконтроллере со встроенным  АЦП;
2)                                           
ВС
СД
УС
2
11
Блок индикации
          CPU
 

 
рис. 1.5.1 Структурная схема устройства на микроконтроллере со встроенным  АЦП.
где :
ВС – входной аналоговый сигнал,
СД – сигналы данных для индикации (в том числе звуковой),
УС – сигналы  управления индикацией 
3)                                          внешний АЦП + 3 портовый микроконтроллер без АЦП
14
ВС
СД
ЦС
2
11
Блок индикации
          CPU
АЦП
 

рис. 1.5.2 Структурная схема устройства на микроконтроллере с внешним АЦП.
где :
ВС – входной аналоговый сигнал,
СД – сигналы данных для индикации (в том числе звуковой),
УС – сигналы  управления индикацией 
4)                                          внешний АЦП + компоратор + дешевый 2 портовый
Кі1
 
 микроконтроллер.
АЦП
Блок компорации
 
14
 
 

ВС
 
                                    
14
14
СД
УС
2
11
Блок индикации
          CPU
Кі2
ФК
 

рис. 1.5.3 Структурная схема устройства на микроконтроллере с внешним  АЦП и блоком компорации.
где :
ВС – входной аналоговый сигнал,
СД – сигналы данных для индикации (в том числе звуковой)
УС – сигналы  управления индикацией 
ФК – флаг компорации (результат сравнения)
Кі1, Кі2 – константы нижнего и верхнего пороговых уровней
1.6 Обоснование выбора структурной схемы
Учитывая все аспекты, рассмотренные в п.1.4 ПЗ, мы выбираем 1 вариант реализации (на микроконтроллере со встроенным  АЦП).
1.7. Обоснование выбора ОМК для решаемой задачи
Для решения данной задачи необходим МК, который содержит в себе следующие характеристики в соответствии с ТЗ:
1)    Встроенный АЦП с разрядностью 8р.
2)    имеет 1 линий для ввода аналогового сигнала
3)    имеет 14 линий  вывода (8 – входные данные для семисегментные световые индикаторы,  3 – для выбора индикатора, 2-для светодиодов и 1- для динамика );
4)    позволяет использовать кварцевый и внешний генератор;
5)     имеет в наличии ПЗУ;
6)    будет доступным и сравнительно недорогим.
7)    иметь достаточное быстродействие
Еще одним немаловажным моментом является наличие документации на МК, чтобы правильно его запрограммировать.
Учитывая все требования, нами был выбран микроконтроллер PIC16C72, так как он в наибольшей степени удовлетворяет всем вышесказанным условиям.
Но поскольку оценить нужное быстродействие без написания программы трудно, возможно нам придется заменить его на микроконтроллер того же семейства 16с7х  но более быстродействующий.

2. Структурная схема устройства и её описание
2.1Структурная схема
После обоснования выбора структурной схемы устройства останавливаемся на схеме с микроконтроллером со встроенным АЦП. Структурная схема приведена на рисунке 2.1.
ВС
СД
УС
2
11
Блок индикации
          CPU
 

рис. 2.1 Структурная схема устройства на микроконтроллере со встроенным  АЦП.
где :
ВС – входной аналоговый сигнал,
СД – сигналы данных для индикации (в том числе звуковой),
УС – сигналы  управления индикацией 
2.1.1                            Назначение отдельных функциональных блоков
Блок ЦПУ предназначен для преобразования входного аналогового сигнала в цифровое представление, сравнения этого значения с константами и в зависимости от результата сравнения осуществлять управление устройством индикации, предварительно преобразовав информацию о уровне аналогового входного сигнала в форму пригодную для блока индикации.
Блок индикации предназначен для вывода информации о уровне входного аналогового сигнала, в виде десятичных чисел, с заданными количеством знакомест и частотой обновления данных. Кроме того блок индикации с помощью двух светодиодов и динамика информирует попадает ли уровень сигнала в область, ограниченную константами Кі1 и Кі2. 
2.2            Описание принципа действия и общий алгоритм работы
Аналоговый сигнал, поступающий на вход АЦП микроконтроллера, преобразовывается в цифровое представление. Затем микроконтроллер сравнивает  уровень входного сигнала с двумя константами, хранящимися в ПЗУ,  и в зависимости от результата сравнения подает сигналы на динамик и светодиоды, по линиям СД. Кроме того микроконтроллер преобразовывает информацию о уровне аналогового входного сигнала в форму пригодную для блока индикации, эта информация передается по линиям СД. 
Обновление информации на блоке индикации целиком зависит от МК, оно происходит с заданной частотой 44 Гц. По линиям УС, от микроконтроллера в блок индикации, передаются сигналы, предназначенные для выбора знакоместа.

2.3 Функциональная схема устройства и ее краткое описание

C2
Rs
+5 B
8
Свет
Светодиод
     PB0-     
       PB7
PA0
PA1
PA2
jlbjl
                 CPU
RA0                       RB0-
                                     RB7
Vcc
                                      RC0-OSC1                           RC1
                                       RC2
OSC2                          RC3
                                                                                      RC4 
2
одиод
     PB0-     
       PB7
PA0
PA1
PA2
jlbjl
ВС
Динамик
     PB0-     
       PB7
PA0
PA1
PA2
jlbjl
ВС
XTAL
C1
0 B
ВХ PB7
PA0
PA1
PA2
jlbjl
ВС
 

          
          

Рисунок 3.1 Функциональная схема МКУ


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

4.                             Расчет потребляемой мощности и определение требований к источникам питания.
4.1 Расчет потребляемых токов
Расчет потребляемых токов сводится к тому, что необходимо определить суммарное потребление тока всеми микросхемами, то есть:
                                               (4.1)
где Iобщ - общий ток, потребляемый устройством,
Ik - ток, потребляемый k-той микросхемой,
m - общее число микросхем,
n - число микросхем данного типа.
*При условии индикации «8». Поскольку у нас динамическая индикация, то одновременно горит только один индикатор, поэтому общий потребляемый ток равен 35 mA( тоже самое и со светодиодами).
Получаем общий ток потребления:
Iобщ =  25 + 35 + 10+ 25 = 95 mA
4.2 Расчет потребляемой мощности
Расчет потребляемой мощности сводится к тому, что необходимо определить мощность потребляемую устройством, то есть:
                                       (4.2)
где Робщ - общая потребляемая мощность,
Uпит - напряжение питания,Iобщ - общий ток потребления.

Принимаем потребляемую мощность не более 0,5 Вт.

4.3 Расчет надежности
Интенсивность отказов l характеризуется отношением числа изделий в единицу времени к числу изделий, продолжающих оставаться исправными к началу рассматриваемого промежутка времени:
                                                   (4.3)
где m - число изделий, отказавших за время t,
N - число исправно работающих изделий к началу промежутка времени.
Интенсивность отказов элементов следующая:
микросхемы – 0.85×10-6-1),
резисторы – 0.9×10-6-1),
конденсаторы – 1.4×10-6-1).
Тогда,
 (ч-1)
 
Поскольку не учтена интенсивность отказа некоторых элементов примем что наработка на отказ составит около 35 000 часов. Такую надежность устройства можно считать приемлемой.

5. Расчет временных параметров
По ТЗ разрабатываемое устройство должно проводить динамическую индикацию с частотой 44Гц. И, в определенной ситуации, звуковую индикацию, с частотой последовательности  импульсных  сигналов 3730 Гц.
Для соблюдения поставленных в ТЗ условий нам потребуется выполнять процедуру динамической индикации через время tди=22727 мкс, а процедуру звуковой индикации через время tзи=268 мкс.
Нам известно что скорость выполнения одной команды, при использовании PIC16C72, тактируемого от кварца 4Мгц, занимает четыре такта (не считая goto и т.п.), т.е скорость выполнение среднестатистической команды равна 1 МГц. Значит наша процедура динамической индикации должна срабатывать каждые 22727 командных циклов микроконтроллера, а процедура звуковой индикации каждые 268 командных циклов.
Кроме того нам известно, что АЦ преобразование в выбранном нами микроконтроллере (PIC16C72) длиться не более 20 мкс.
Эти данные будут нужны при настройке таймеров и задержек в программе.

6. Разработка и отладка рабочей программы .
Возможно предложить следующие варианты решения поставленной задачи:
1.                 Написать программу которая в непрерывном цикле Производит АЦП преобразование, перевод результата в семисегментный код, и осуществляет динамическую индикацию.
Преимущества : легко написать программу (не сложный алгоритм)
Недостатки: труднее высчитывать задержки для обеспечения динамической и звуковой индикации с заданной частотой. Из-за не постоянного времени выполнения процедуры преобразования в семисегментный код, не получиться обеспечить точную частоту обновления.
2.                 Написать программу которая в непрерывном цикле Производит АЦП преобразование, перевод результата в семисегментный код. Складывает результаты в буффер. По прерываниям таймеров происходит динамическая и звуковая индикация.
Преимущества: данный подход обеспечит точную частоту звуковой и динамической индикации. Не нужно подбирать задержки для индикаций. Можно чаще снимать данные с АЦП и выводить их позднее, а это уменьшает вероятность того, что мы пропустим резкое изменение уровня входного сигнала.
Недостатки: разработка программы усложниться за счет использования таймеров и прерываний от них. Кроме того нужно каким-то образом организовать буфер для хранения результатов АЦП.
Учитывая все вышесказанное, мы выбираем 2 вариант, т.к. на наш взгляд он более приспособлен для решения поставленной задачи.

6.1.         Блок-схемы алгоритмов и их описание

6.2.         Структура программы
Микроконтроллер выполняет следующие функции:
-                   прием аналогового сигнала ;
-                   АЦП преобразование ;
-                   Преобразования результата АЦП в семисегментный код ;
-                   принятие решения о выходе уровня входного сигнала за пороговые уровни.
-                   Вывод преобразованных значений на светодиодные индикаторы(осуществление динамической индикации с заданной частотой)
-                   выдача сигнальных сообщений на светодиоды и динамик.
Программа содержит следующие участки программы:
INIT – производит перевод всех портов и регистров устройства в исходное состояние;
MAIN – основная программа;
IRQTMR1  - подпрограмма обработки прерывания от таймера1 (для динамической индикации)
IRQTMR2  - подпрограмма обработки прерывания от таймера2
    (для звуковой индикации)
INDICATION – подпрограмма обновления состояния индикатора;
BINTOSEVEN – подпрограмма перевода числа из двоичного кода в семисегментный код.
SOUNDINDICATION – подпрограмма звуковой индикации
6.3.         Текст программы.
Текст программы приведен в приложении А.
6.4.         Технология отладки программы
При разработке и отладке программы была использована бесплатная программа Mplab предоставляемая фирмой Microchip.
MPLAB - это интегрированная среда разработки (IDE) для семейства микроконтроллеров PICmicro фирмы Microchip Technology Incorporated. MPLAB позволяет писать, отлаживать и оптимизировать программы для Ваших разработок. MPLAB включает текстовый редактор, симулятор (виртуальный отладчик), менеджер проектов и поддерживает эмуляторы (внутрисхемные отладчики) MPLAB-ICE и PICMASTER , программаторы PICSTART Plus и PRO MATE II и другие средства и инструменты разработок фирмы Microchip и других фирм.
Инструментальные средства MPLAB, организованные как ниспадающие меню и определяемые быстрые клавиши, позволяют:
- ассемблировать, компилировать исходный текст;
- отлаживать логику работы, наблюдая с помощью симулятора или, в реальном времени, с эмулятором MPLAB-ICE ;
- просматривать переменные в окнах просмотра;
- программировать кристаллы с помощью программаторов PICSTART Plus или PRO MATE II
- и многое другое.
Так как MPLAB не корректно работает с АЦП,  отладка программы выполнялась путем замены результата АЦП числами, которые не выходили за пороговые значения(заданными константами К1 и К2) и на числа которые:  
а) меньше нижней границы ;
б) больше верхней границы .
6.5.         Технология отладки программы
6.5.1.  Компиляция (с распечаткой всех файлов, полученных во время компиляции: obj, lst, erl, sym)
В ходе компиляции был получен объектный модуль и НЕХ – файл пригодный для прошивки в память микроконтроллера.
Приведем фрагменты файлов полученных во время компиляции:
Файл KURSOV.lst:
MPASM 02.50.02 Intermediate    KURSOV.ASM   4-20-2006  9:09:06 PAGE  1
LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE
                      00001    list      p=16C72
                      00002    #include <P16C72.inc>
                      00001         LIST
                      00002 ; P16C72.INC  Standard Header File, Version 1.01    Microchip Technology, Inc.
                      00249         LIST
                      00003
  00000020            00004 TMP     EQU     20H
  00000021            00005 K1      EQU     21H
  00000022            00006 K2      EQU     22H
                      00007
  00000023            00008 SOTNI    EQU     23H
  00000024            00009 DESYATKI EQU     24H
  00000025            00010 EDINICI  EQU     25H
                    00011
  00000028            00012 SAVEW           EQU     28H
  00000030            00013 SAVEW2          EQU     30H
  00000029            00014 SAVESTATUS      EQU     29H
  00000031            00015 SAVESTATUS2     EQU     31H
                      00016
  00000026            00017 SV      EQU     26H ; STACK VERTEX
  00000027            00018 SP      EQU     27H ; STACK  POINTER
                      00019
                      00020
  00000032            00021 DINAMIK EQU     32H
                      00022
  00000033            00023 CT      EQU     33H ; FOR DELAY
                      00024
                      00025 ;STK    40h-5Eh  ; STACK ADDRES FOR TEN BCD TRIADS
                      00026
Warning[205]: Found directive in column 1. (ORG)
0000                  00027 ORG     0x00             ; processor reset vector
0000   28B5           00028         GOTO    Start            ; go to beginning of program
                      00029
                      00030
00031 ; -------------IRQ
Warning[205]: Found directive in column 1. (ORG)
0004                  00032 ORG     0x04                    ; обработка прерывания осуществляется за 9 циклов (4,5 мкс)
0004   1C0C           00033         BTFSS   PIR1, TMR1IF    ; анализ
0005   2818           00034         goto    IRQTMR2         ;   источника прерывания
                      00035
0006                  00036 IRQTMR1                         ; обработчик прерывания от таймера
                     00037 ;------ PUSH REGISTERS---------
0006   00A8           00038         MOVWF   SAVEW
0007   0803           00039         MOVF    STATUS,W
0008   00A9           00040         MOVWF   SAVESTATUS
0009   0804           00041         MOVF    FSR,W
000A   00A6           00042         MOVWF   SV
                      00043 ;------------------------------
000B   1010           00044         BCF     T1CON,TMR1ON    ; TIMER STPR
000C   3038           00045         MOVLW   B'00111000'
000D   008E           00046         MOVWF   TMR1L
000E   30A7           00047         MOVLW   B'10100111'
000F   008F           00048         MOVWF   TMR1H
MPASM 02.50.02 Intermediate    KURSOV.ASM   4-20-2006  9:09:06         PAGE  2
LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE
0010   1410           00049         BSF     T1CON,TMR1ON    ; TIMER ON
0011   100C           00050         BCF     PIR1, TMR1IF    ; сброс флага переполнения от таймера
0012   2116           00051         CALL    INDICATION
                      00052
                      00053 ;------ POP REGISTERS ---------
0013   0826           00054         MOVF    SV,W
0014   0084           00055         MOVWF   FSR
0015   0829           00056         MOVF    SAVESTATUS,W
0016   0083           00057         MOVWF   STATUS
0017   0828           00058         MOVF    SAVEW,W
                      00059 ;------------------------------
---------------------------------
---------------------------------
Файл KURSOV.err:
Warning[205] D:\MPLAB\KURSOV.ASM 27 : Found directive in column 1. (ORG)
Warning[205] D:\MPLAB\KURSOV.ASM 32 : Found directive in column 1. (ORG)
Warning[203] D:\MPLAB\KURSOV.ASM 83 : Found opcode in column 1. (retfie)
Warning[205] D:\MPLAB\KURSOV.ASM 86 : Found directive in column 1. (ORG)
Message[302] D:\MPLAB\KURSOV.ASM 107 : Register in operand not in bank 0.  Ensure that bank bits are correct.
Message[302] D:\MPLAB\KURSOV.ASM 109 : Register in operand not in bank 0.  Ensure that bank bits are correct.
Message[302] D:\MPLAB\KURSOV.ASM 111 : Register in operand not in bank 0.  Ensure that bank bits are correct.
Message[302] D:\MPLAB\KURSOV.ASM 167 : Register in operand not in bank 0.  Ensure that bank bits are correct.
Message[302] D:\MPLAB\KURSOV.ASM 168 : Register in operand not in bank 0.  Ensure that bank bits are correct.
Warning[203] D:\MPLAB\KURSOV.ASM 322 : Found opcode in column 1. (RETURN)
Warning[203] D:\MPLAB\KURSOV.ASM 399 : Found opcode in column 1. (RETURN)
Warning[203] D:\MPLAB\KURSOV.ASM 419 : Found opcode in column 1. (RETURN)
Warning[203] D:\MPLAB\KURSOV.ASM 434 : Found opcode in column 1. (RETURN)
Warning[205] D:\MPLAB\KURSOV.ASM 438 : Found directive in column 1. (END)
Файл KURSOV.hex:
:02000000B52821
:080008000C1C1828A8000308D5
:10001000A9000408A600101038308E00A7308F0009
:1000200010140C10162126088400290883002808C3
:100030008C1C2628B0000308B1001211003091007A
:0E00400012158C105C21310883003008090075
:0C01540082073F3406345B344F346634BD
:100160006D347D3407347F346F3403138316FF30CE
:10017000850000308600003087008312FF30A00029
:10018000A501A301A401B201850186018701073001
:100190008700FF30B3007830A2002D30A10040303E
:1001A0008400A700A60038308E00A7308F00900191
:1001B00010140C108B170B1783160C148C1483124D
:1001C000C1309F001F1534211F19E4287F309E0085
:1001D0001E08A000FF30B300000000000000000077
:1001E000000000000000000000000000000000000F
:1001F00000000000000000000000B30BEC2803101A
:1002000021082002031C0D29031020082202031CD0
:100210000D29121187150712DF2807168711920181
:100220008C101211FC3091001215DF282708840071
:1002300000080710860067210714840A0008871049
:10024000860067218714840A000807118600672149
:100250000715840A03105E300402031C3129403064
:1002600084000408A7000800A301A401A501A30AB3
:100270006430A00203183729A3036430A007A40A3E
:100280000A30A00203183F29A4030A30A00720085F
:10029000A500AA208000840A2408AA208000840ADD
:1002A0002308AA208000840A03105E300402031C85
:1002B0005B29403084000800031001303202031C27
:1002C0006429B20387120800B20A87160800FF30BB
:1002D000B30000000000000000000000000000006B
:0602E000B30B69290800C0
:00000001FF

6.5.2.  Моделирование
Моделирование производилось в интегрированной среде разработки MPLAB (кратко в разделе 6.5 этого документа).
Для проверки состояния регистров мы использовали окно «watch», а для подсчета времени выполнения процедур в программе были расставлены   breakpoint’ы и использовалось окно «stopwatch» .
В результате моделирования установлена работоспособность программы. исследованы получившиеся временные характеристики:
Процедура BINTOSEVEN– в худшем случае (при преобразовании уровня 5В) – 99 мкс.
Процедура INDICATION– 7694 мкс
Интервал между вызовами INDICATION – 22741 мкс (44Гц)
Интервал между вызовами SOUNDINDICATION – 268 мкс (3731Гц)
Данные временные характеристики полностью удовлетворяют ТЗ.

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
1)                В.В.Скороделов "Проектирование устройств на однокристальных микроконтроллерах с RISC-архитектурой". Ч1,Ч2, Учебное пособие.
2)                Угрюмов Е. П. Проектирование элементов и узлов ЭВМ. М.: Высшая школа, 1991.
3)                Шило В. Л. Популярные цифровые микросхемы. М.: Радио и связь, 1988.
4)                Тули М. Справочное пособие по цифровой электронике. М.: “Энергоатомиздат”, 1990.
5)                Бирюков С.А. “Применение интегральных микросхем серии ТТЛ”. М.: “Патриот”, 1992.
6)                Применение интегральных микросхем в электронной вычислительной  технике. Справочник (под ред. Б.И.Файзулаева, –М, Радио и связь, 1989)
7)                ГОСТ 2.102-68. Виды и комплектность конструкторской докуметации. М.: 1988.
8)                ГОСТ 2.708-81. Правила выполнения электрических схем цифровой вычислительной техники. М.: 1988.
9)                Разработка и оформление конструкторской документации. РЭА. Справочник (под  ред. Э.Г.Романычевой – М.: Радио и связь, 1989)
10)           Ю.В.Новиков, О.А.Калашников "Разработка устройств сопряжения". Издательство "ЭКОМ", Москва, 1998г. 355 с.

Заключение
В данном проекте был разработано устройство контроля за уровнями аналоговых сигналов.
Это устройство предназначено для измерения уровней входных аналоговых сигналов, проверки попадания уровня в определенные границы  и отображения на цифровом табло текущего значения уровня сигнала.
Устройство реализовано на однокристальном микроконтроллере типа PIC16С71.
Применение в устройстве данного однокристального микроконтроллера привело к экономии элементов, возможности меняя программу работы в широких пределах корректировать алгоритм обработки данных. Также улучшились весогабаритные параметры.
Устройство имеет следующие характеристики:
Потребляемая мощность не более 0,5 Вт;
Наработка на отказ около 35000 часов;
Уровни входных сигналов 0-5 В.
Промоделировав работу программы и проанализировав, полученные при моделировании, временные характеристики можем сказать что устройство полностью удовлетворяет требованиям, поставленным в ТЗ.
В качестве улучшения можно предложить доработать устройство, а конкретнее добавить возможность контроля за уровнями аналоговых сигналов, уровень которых выше 5В.
В качестве решения можно предложить поставить на входе АЦП делитель уровня и учитывать его коэффициент деления в программе (для перевода результата отображения в семисегментный код ).
При таком подходе получиться полноценный вольтметр постоянного тока.



Обозначение
Наименование
Количество
Конденсаторы
С1
K50-6-20 мкФ – 16В
1
С2-С3
МРТ-111-20 пФ±10%-63В
2
С4
КМ – 6 – 9 - 0,47 +- 10% ОЖО 464. 023 ТУ
1
Микросхемы
DD1
PIC16С72
1
HG
АЛС324А
3
Кварц
ZQ1
4 МГц
1
Разъемы
ХТ1
СНО 4
1
Телефон
BF1
ТОН-2
1
Кнопки
SA1
П2К
1
Резисторы
R1
ОМЛТ 0,125 – 300 Ом
1
R2-R11
ОМЛТ 0,125 – 1,2 КОм
10

Приложение А

Текст программы:
   list      p=16C72
   #include <P16C72.inc>
TMP  EQU     20H
K1     EQU     21H
K2     EQU     22H
SOTNI        EQU     23H
DESYATKI EQU     24H
EDINICI     EQU     25H
SAVEW               EQU     28H
SAVEW2             EQU     30H
SAVESTATUS    EQU     29H
SAVESTATUS2 EQU     31H
SV     EQU     26H ; STACK VERTEX
SP     EQU     27H ; STACK  POINTER
DINAMIK  EQU     32H
CT     EQU     33H ; FOR DELAY
;STK 40h-5Eh  ; STACK ADDRES FOR TEN BCD TRIADS
ORG     0x00             ; processor reset vector
          GOTO    Start            ; go to beginning of program
; -------------IRQ
ORG  0x04                     ; обработка прерывания осуществляется за 9 циклов (4,5 мкс)
          BTFSS        PIR1, TMR1IF     ; анализ
          goto   IRQTMR2            ;   источника прерывания
IRQTMR1                      ; обработчик прерывания от таймера
;------ PUSH REGISTERS---------
          MOVWF    SAVEW
          MOVF        STATUS,W
          MOVWF    SAVESTATUS
          MOVF        FSR,W
          MOVWF    SV
;------------------------------
          BCF  T1CON,TMR1ON         ; TIMER STPR
          MOVLW    B'00111000'
          MOVWF   TMR1L
          MOVLW    B'10100111'
          MOVWF   TMR1H
          BSF   T1CON,TMR1ON         ; TIMER ON
          BCF  PIR1, TMR1IF     ; сброс флага переполнения от таймера
          CALL         INDICATION
;------ POP REGISTERS ---------
          MOVF        SV,W
          MOVWF    FSR
          MOVF        SAVESTATUS,W
          MOVWF    STATUS
          MOVF        SAVEW,W
;------------------------------
IRQTMR2
          BTFSS        PIR1, TMR2IF; анализ
          goto   RET 
T2BREAK
;------ PUSH REGISTERS---------
          MOVWF    SAVEW2
          MOVF        STATUS,W
          MOVWF    SAVESTATUS2
;------------------------------
          BCF  T2CON,TMR2ON         ; TIMER2 STOP
          MOVLW    B'00000000'
          MOVWF   TMR2
          BSF   T2CON,TMR2ON         ; TIMER2 ON
          BCF  PIR1, TMR2IF     ; сброс флага переполнения от таймера
          CALL         SOUNDINDICATION
;------ POP REGISTERS ---------
          MOVF        SAVESTATUS2,W
          MOVWF    STATUS
          MOVF        SAVEW2,W
;------------------------------
RET
retfie                     ; возврат из прерывания
ORG     0xAA
TOSEVEN
            addwf      PCL,F        ; W + PC -> PC
            retlw      b'00111111' ; ..FEDCBA = '0'
            retlw      b'00000110' ; .....CB. = '1'
            retlw      b'01011011' ; .G.ED.BA = '2'
            retlw      b'01001111' ; .G..DCBA = '3'
            retlw      b'01100110' ; .GF..CB. = '4'
            retlw      b'01101101' ; .GF.DC.A = '5'
            retlw      b'01111101' ; .GFEDC.A = '6'
            retlw      b'00000111' ; .....CBA = '7'
            retlw      b'01111111' ; .GFEDCBA = '8'
            retlw      b'01101111' ; .GF.DCBA = '9'
Start
        BCF    STATUS,6
        BSF    STATUS,5  ; BANK1
          MOVLW    B'11111111';INITA
          MOVWF   TRISA
          MOVLW    B'00000000';INITB
          MOVWF   TRISB
          MOVLW    B'00000000';INITC
          MOVWF   TRISC
         
        BCF    STATUS,5 ; BANK 0
;--------------------------- INIT VAR
;----------------- TESTS
          MOVLW    B'11111111'
          MOVWF    TMP
;----------------------
;         CLRF          TMP
          CLRF          EDINICI
          CLRF          SOTNI
          CLRF          DESYATKI
          CLRF          DINAMIK
          CLRF          PORTA
          CLRF          PORTB
          CLRF          PORTC
          MOVLW    B'00000111'
          MOVWF   PORTC
         
          MOVLW    B'11111111'
          MOVWF    CT    
          MOVLW    .120
          MOVWF    K2    
          MOVLW    .45
          MOVWF    K1    
;--------------------------- INIT STACK
          MOVLW    0x40
          MOVWF    FSR
          MOVWF    SP
          MOVWF    SV
;--------------------------- INIT TIMER1
          MOVLW    B'00111000'
          MOVWF   TMR1L
          MOVLW    B'10100111'
          MOVWF   TMR1H
;------------------------------- INIT TIMER 2
; --------------------------- RUN TIMER1
          CLRF          T1CON
          BSF   T1CON,TMR1ON ; TIMER ON
          BCF            PIR1,TMR1IF
          BSF            INTCON,GIE
          BSF            INTCON,PEIE
        BSF    STATUS,5 ; BANK1
          BSF            PIE1,TMR1IE
          BSF            PIE1,TMR2IE
;         MOVLW    B'00000001'
;         MOVWF   PIE1
MAIN
;--------------------------------------------- ADC ------------
          BCF  STATUS,5 ; BANK0
          MOVLW    B'11000001'
          MOVWF    ADCON0
          BSF   ADCON0,2 ; START CONV
          CALL         BINTOSEVEN
LOOP        
          BTFSC       ADCON0,2
          GOTO        LOOP
;----------------------------    TEST VALUES
;         MOVLW B'1100100'    ; POADAET
;         MOVLW B'0000000'    ; NIJE
          MOVLW B'1111111'    ; VISHE
          MOVWF ADRES         
;---------------------------
          MOVF ADRES,W
          MOVWF TMP
;DELAY ;----5106-CYCLES  1CYCLE=1us
          MOVLW    .255
          MOVWF    CT
D2    
          NOP
          NOP
          NOP
          NOP
          NOP
          NOP
          NOP
          NOP
          NOP
          NOP
          NOP
          NOP
          NOP
          NOP
          NOP
          NOP
          NOP
          DECFSZ     CT,1
          GOTO        D2
COMP
; ----------------- COMPARE -----------
;         K1< ADC <K2 ????
;----    K1< ADC ? ----------
          BCF  STATUS,0
          MOVF        K1,W                  
          SUBWF      TMP,0                  ; ADFRES-K1
          BTFSS        STATUS,0 ; ЕСЛИ ADRES<ki, ТО ПЕРЕЙТИ НА NO (ИНАЧЕ ПРО
                                       ; ПРОПУСТИТЬ СЛЕД КОМАНДУ) 
          GOTO        NO
;----    ADC <=K2 ? --------
          BCF  STATUS,0
          MOVF        TMP,W               
          SUBWF      K2,0           ; ADFRES-K1
          BTFSS        STATUS,0 ; ЕСЛИ ADRES>ki, ТО ПЕРЕЙТИ НА NO (ИНАЧЕ ПРО
                                       ; ПРОПУСТИТЬ СЛЕД КОМАНДУ) 
          GOTO        NO
;YES
;--------------- TIMER 2 STOP  
          BCF T2CON,TMR2ON ; TIMER STOP
          BSF   PORTC,3
          BCF  PORTC,4
          GOTO    MAIN
NO
;--------------- TIMER2 ON WITH IMMIDIATLY IRQ
          BSF   PORTC,4
          BCF  PORTC,3
         
          CLRF          T2CON
          BCF  PIR1, TMR2IF     ; сброс флага переполнения от таймера           
          BCF  T2CON,TMR2ON         ; TIMER2 STOP
          MOVLW    B'11111100'
          MOVWF   TMR2
          BSF   T2CON,TMR2ON         ; TIMER2 ON
         
;--------------------------------------------------
          GOTO        MAIN
; -------------------- DYNAMIC INDICATION PROCEDURE
INDICATION
;----------- RESTORE SP VALUE-----------
          MOVF        SP,W
          MOVWF    FSR
;---------------------------------------
          MOVF        INDF,W
          BCF            PORTC,0
          MOVWF    PORTB
          CALL         DELAY
          BSF  PORTC,0   
          INCF          FSR,F
          MOVF        INDF,W
          BCF            PORTC,1   
          MOVWF    PORTB
          CALL         DELAY
          BSF  PORTC,1   
          INCF          FSR,F
          MOVF        INDF,W
          BCF            PORTC,2   
          MOVWF    PORTB
          CALL         DELAY
          BSF  PORTC,2   
          INCF          FSR,F
;-------------------CALCULATE SP (STACK POINTER)
;----    5Eh< FSR ? ----------
          BCF  STATUS,0
          MOVLW    0x5E          
          SUBWF      FSR,0                   ; ADFRES-K1
          BTFSS        STATUS,0 ; ЕСЛИ FSR<70h, ТО ПЕРЕЙТИ НА NO (ИНАЧЕ ПРОПРОПУСТИТЬ СЛЕД КОМАНДУ) 
          GOTO        SPFSRNO
          MOVLW   0x40
          MOVWF    FSR  
SPFSRNO
;------------ PUSH SP VALUE ----------
          MOVF        FSR,W
          MOVWF    SP
RETURN
;---------------------- BINARY TO SEVENSEGMENTS GODE CONVERTION
BINTOSEVEN
; ----------- MUL x2 --------------
          clrf    SOTNI
          clrf    DESYATKI
          clrf    EDINICI
;         RLF   TMP,1
;         BTFSS        STATUS,0 ;  
;         GOTO        M1
;
;         MOVLW  .2        
;         MOVWF    SOTNI
;         MOVLW  .5        
;         MOVWF    DESYATKI
;         MOVLW  .6        
;         MOVWF    EDINICI
M1
;----------- convert bin to bcd -------------
;         clrf    SOTNI
pr0   
          incf    SOTNI,f ;разряд сотен
          movlw        .100
          subwf          TMP,f
          btfsc STATUS,0
          goto   pr0
          decf   SOTNI,f
          movlw        .100
          addwf         TMP,F
;         clrf    DESYATKI
pr1
          incf    DESYATKI,F ;разряд десятков
          movlw        .10
          subwf          TMP,F
          btfsc STATUS,0
          goto   pr1
          decf   DESYATKI,F
          movlw        .10
          addwf         TMP,F
;         clrf    EDINICI
          movf TMP,W
          movwf        EDINICI
;----------- convert bcd to seven segments code -------------
TTTT
          CALL         TOSEVEN
          MOVWF    INDF
          INCF          FSR,F
          MOVF        DESYATKI,W
          CALL         TOSEVEN
          MOVWF    INDF
          INCF          FSR,F        
          MOVF        SOTNI,W
          CALL         TOSEVEN
          MOVWF    INDF
          INCF          FSR,F
;-------------------CALCULATE SV (STACK VERTEX)
;----    5Eh< FSR ? ----------
          BCF  STATUS,0
          MOVLW    0x5E          
          SUBWF      FSR,0                   ; ADFRES-K1
          BTFSS        STATUS,0 ; ЕСЛИ FSR<70h, ТО ПЕРЕЙТИ НА NO (ИНАЧЕ ПРОПРОПУСТИТЬ СЛЕД КОМАНДУ) 
          GOTO        SVFSRNO
          MOVLW   0x40
          MOVWF    FSR  
SVFSRNO
RETURN
;---------------------- SOUND INDICATION PROCEDURE
SOUNDINDICATION
          BCF  STATUS,0
          MOVLW    0x1            
          SUBWF      DINAMIK,0                  ; ADFRES-K1
          BTFSS        STATUS,0 ; ЕСЛИ FSR<70h, ТО ПЕРЕЙТИ НА NO (ИНАЧЕ ПРОПРОПУСТИТЬ СЛЕД КОМАНДУ) 
          GOTO        DIN
          DECF         DINAMIK,F
          BCF  PORTC,5
          RETURN
DIN
          INCF          DINAMIK,F
          BSF   PORTC,5
RETURN
DELAY ;----2555-CYCLES  1CYCLE=1us
          MOVLW    .255
          MOVWF    CT
D1    
          NOP
          NOP
          NOP
          NOP
          NOP
          NOP
          NOP
          DECFSZ     CT,1
          GOTO        D1
RETURN
END

1. Реферат Учет труда и заработной платы на предприятии 3
2. Курсовая на тему Подготовка переподготовка повышение квалификации трудовых ресурсов в общем и на железной дороге
3. Реферат Личность преступника
4. Курсовая Защита интересов ответчика в гражданском процессе
5. Реферат Доуз, Софи
6. Курсовая Применение статистических методов при оценке интенсивности развития отрасли Цветная металлургия
7. Реферат на тему Heart Of Darkness 1 Cruelty Essay Research
8. Лабораторная работа Решение сфероидических треугольников
9. Реферат на тему Peer Pressure Essay Research Paper Peer Pressures
10. Сочинение на тему Топики по Английскому языку для англшк 10 класс