Устройство контроля за уровнем аналоговых сигналов
Нам известно что скорость выполнения одной команды, при использовании 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'
Другие рефераты на тему «Коммуникации, связь и радиоэлектроника»:
Поиск рефератов
Последние рефераты раздела
- Микроконтроллер системы управления
- Разработка алгоритмического и программного обеспечения стандарта IEEE 1500 для тестирования гибкой автоматизированной системы в пакете кристаллов
- Разработка базы данных для информатизации деятельности предприятия малого бизнеса Delphi 7.0
- Разработка детектора высокочастотного излучения
- Разработка микропроцессорного устройства для проверки и диагностики двигателя внутреннего сгорания автомобиля
- Разработка микшерного пульта
- Математические основы теории систем