ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

         
     
    Проектування приладу вимірюваного тривалість імпульсу
         

     

    Інформатика, програмування

    ФІЛІЯ МОСКОВСЬКОЇ ДЕРЖАВНОЇ АКАДЕМІЇ ПРИЛАДОБУДУВАННЯ І ІНФОРМАТИКИ

    У М. Углич

    Кафедра

    «Точно ПРРІБОРИ І ВИМІРЮВАЛЬНІ СИСТЕМИ»

    КУРСОВИЙ ПРОЕКТ

    з дисципліни

    «Мікропроцесорні пристрої в вимірювальної техніки»

    на тему: «Проектування приладу вимірювального тривалість імпульсу»

    | Студент Алещенко Д. А. | |
    | Шифр 96207 | Викладач Канаєв С.А. |


    | Підпис студента | Підпис викладача |
    | | |
    | Дата 2.06.2000 | Дата |

    м. Углич 2000

    ЗМІСТ
    | ВСТУП | 3 |
    | 1. ТЕХНІЧНЕ ЗАВДАННЯ | 4 |
    | 2. Розробка структурних схем. Узагальнений алгоритм РОБОТИ | 5 |
    | 3. РОЗРОБКА І РОЗРАХУНОК ЕЛЕМЕНТІВ Принципова електрична схема | 8 |
    | 3.1 Вибір мікропроцесорного комплекту | |
    | 3.1.1 Вибір кварцового резонатора | 8 |
    | 3.1.1.1 Визначення похибки від джерела синхронізації | 9 |
    | 3.2 Вибір інтегральної мікросхеми дешифратора | 10 |
    | 3.3 Вибір засобів індикації | 10 |
    | 3.4 Вибір зовнішніх елементів гальванічної розв'язки | 10 |
    | | 11 |
    | 4. Визначення похибки вимірювання тривалості імпульсу | |
    | | 12 |
    | 5 Лістинг програми розрахунку тривалості імпульсу на мові асемблер | 14 |
    | СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ | 20 |
    | Додаток 1 | 21 |

    ВСТУП

    В даний час мікропроцесорна техніка робить великі успіхи взастосуванні, у різних галузях виробництва. Зараз мікропроцесористали застосовуватися не тільки у побутовій техніці і в автомобілях, але і навіть увиробництві керуючи складними технологічними процесами.

    Мета курсового проекту сприяла створення вимірювального приладу набазі мікропроцесора AVR90S8515

    Мікропроцесори американської фірми ATMEL, в останні роки роблятьзначні успіхи в освоєнні нових областей в сфері свого застосування.
    Мікропроцесорне ядро, що використовується в мікроконтролерах AVR, схоже набільшість процесорів з RISC архітектурою, мабуть, за винятком 8 --розрядних регістрів. Розроблено двома розробниками з Норвегії, в місті
    Trondheim. Пізніше, в 1995 році, розробка була придбана фірмою Atmel. ДоДосі розвиток ядра відбувається в Норвегії, в той час як периферійні пристрої тапам'ять розробляються у відділенні Atmel в Каліфорнії.

    За допомогою проектованого приладу можна буде виміряти довжинуімпульсів в діапазоні від 10 мсек до 10 Сек виміряна величівідображатися на чотирьох розрядному світлодіодному індикаторі

    1.Технічне ЗАВДАННЯ

    Необхідно спроектувати прилад для вимірювання тривалостіімпульсу.
    | | Мін. | Макс. |
    | Діапазон виміру: | 10 мС | 10с |
    | Похибка виміру | | 1% |
    | Кількість гальванічно розв'язаних | 1 |
    | каналів | рівень ТТЛШ |
    | Вхідна напруга логічної одиниці | рівень ТТЛШ |
    | Вхідна напруга логічного нуля | |
    | Кількість режимів вимірювання | 2 |
    | | З-ие високо рівня |
    | | Тривалості імпульсу |
    | | З-ие низького рівня |
    | | Тривалості імпульсу |
    | Можливість індикації обмірюваної | Є |
    | тривалості | Світлодіодні індикатори -4 |
    | | Шт |
    | Кількість режимів відображення обмірюваної | |
    | тривалості | 2 |
    | | Відображення в секундах |
    | | Відображення в милі секундах |
    | Вихідна напруга джерела живлення | 5 В |

    2. Розробка структурних схем. Узагальнений алгоритм РОБОТИ

    Структурна схема вимірювального приладу наведена на рис.1

    Структурна схема вимірювального приладу

    МСЕК - кнопка вибору відображення обмірюваної тривалості імпульсу в милі секундах.

    Сек - кнопка вибору відображення обмірюваної тривалості імпульсу в

    секундах

    Інверсія - кнопка вибору першого або другого режиму вимірювання см

    ТЗ.

    Св.Д1. - Світлодіод показує включення другого режиму виміру

    Св.Д2. - Світлодіод показує включення режиму відображення обмірюваної тривалості імпульсу в секундах.

    Св.Д3. - Світлодіод показує включення режиму відображення обмірюваної тривалості імпульсу в милі секундах.

    AVR90S8515 - однокристальна мікро-ЕОМ AVR90S8515

    Малюнок 1.

    Дешифратор проводять дешифрування двійковій-десяткового коду, аіндикатори відображають результати вимірювання.

    При включенні харчування мікро-ЕОМ виробляє виконання підпрограмиініціалізації (ініціалізація стека, настроювання використовуваних портів
    Введення/виводу, завантажується в компаратор А таймер/лічильника число 80000,вибирається потрібний режим роботи таймер/лічильника 1 (біт CTC1 регістрауправління таймером/лічильником 1 (TCCR1B), встановлюється в одиницю, щоозначає скидання таймер/лічильника 1 при спрацьовуванні компаратора А, також біт
    CS10, що знаходиться в цьому ж регістрі, встановлюється в одиницю, цеозначає, що як джерело синхронізації буде використовуватисячастота синхронізації кварцового резонатора), відбувається глобальнедозвіл переривань). Далі відбувається опитування стану кнопки виборурежиму вимірювання тривалості імпульсу і залежно від її стану (0 --вимірювання низького рівня тривалості імпульсу, 1 - вимірювання високогорівня тривалості імпульсу), відбувається перехід на відповіднупідпрограму (IMPULS_POLOGITELNAY - підпрограма вимірювання високого рівнятривалості імпульсу, IMPULS_OTRICHATELNAY - підпрограма вимірунизького рівня тривалості імпульсу). Алгоритм роботи цих двохпідпрограм практичний однаковий, для прикладу розглянемо роботупідпрограми IMPULS_POLOGITELNAY. При переході на цю підпрограму МПпочинає опитування лінії PA0 і в разі виявлення на ній логічної одиницізапускає таймер/лічильник 1. При спрацьовуванні компаратора А відбуваєтьсяскидання таймер/лічильника 1 (у компаратор А додано число - 8000, при частотісинхронізації МП рівній 8Мгц спрацьовування компаратора відбудеться рівночерез 1мС (1%), що говорить про після 1мСек. Звіт милі секунд увідповідно до ТЗ почнеться після минулої дев'ятого милі секунди. Індикаціявимірюваної тривалості імпульсу відбувається кожні 50 МСЕК. Разом з цим
    МП продовжує сканувати лінію PA0 і після того як він виявить на нійстан логічного нуля, що говорить про кінець вимірювання тривалостіімпульсу, відбудеться зупинка таймера/лічильника 1 і зробить перехід напідпрограму перекладу двійкового шістнадцяти розрядного числа в двійковій -десяткове - bin16BCD5 (детальний алгоритм перекладу двійкового шістнадцятирозрядного числа в двійковій-десяткове розглянуто нижче). Після виконанняпідпрограми bin16BCD5, МП опитує стан кнопок МСЕК і Сек. Якщонатиснута кнопка Сек (індикація результату вимірювання проводиться в секундах),то тоді МП шляхом видачі з лінії РА7 логічної одиниці відображає точкурозділяє цілу частину числа від дробової. Якщо не натиснута ні одна з двохкнопок або натиснуті все, то тоді індикація результату вимірюванняпроводиться не буде. Після того як проведе індикація результатувимірювання (через лінії порту D і C) МП повертається в основну програму.
    На цьому цикл роботи програми закінчується.

    Алгоритм підпрограма перекладу двійкового шістнадцяти розрядногочисла в двійковій-десяткове

    Арифметико-логічний пристрій AVR-мікроконтролерів (як іінших мікропроцесорів) виконує елементарні арифметичні та логічніоперації над числами, представленими в двійковому коді. У двійковому кодізчитуються результати перетворення АЦП, в двійковому коді (у форматі цілихчисел або чисел з плаваючою точкою) зручно виконувати обробку результатіввимірювання. Однак, коли остаточний результат відображається наіндикаторі, він повинен бути перетворений в десятковий формат, зручний длясприйняття людиною.
    Формати представлення десяткових чисел

    В даний час поширені два формати представленнядесяткових чисел в мікропроцесорах - упакований двійковій-десятковий код
    (BCD-Binary-Coded Decimal).

    Упакований BCD-код - це таке подання десяткового числа,коли кожна десяткова цифра видається 4-х бітним двійковимпозиційним кодом 8-4-2-1. При цьому байт містить дві десяткові цифри.
    Молодша десяткова цифра займає праву тетраду (біти 3: 0), старша --ліву тетраду (біти 7: 4). Багаторозрядних BCD-числа займають кількасуміжних байт. Якщо число є знаковим, то для представлення знака в
    BCD-форматі відводиться старша тетрада старшого байта

    Алгоритм підпрограми bin16bcd5 полягає в наступному.
    Припустимо, що є ціла беззнакові 16-бітне число (діапазон від 0до 65535). Очевидно, що необхідно знайти 5 десяткових цифр. Спосібперетворення полягає в тому, щоб, віднімаючи з вихідного числа число
    10000, спочатку визначити десяткову цифру десятків тисяч. Потім знаходитьсяцифра тисяч послідовним вирахуванням числа 1000 і т. д. Віднімання коженраз проводиться до отримання негативної різниці з підрахунком числавіднімання. При переході до визначення кожного наступного десятковогорозряду в регістрах вихідного числа відновлюється останняпозитивна різниця. Після того, як буде знайдено десяткова цифрадесятків, в регістрах вихідного числа залишиться десяткова цифра одиниць.

    Графічний алгоритм роботи програми представлений в п.1
    3. РОЗРОБКА І РОЗРАХУНОК ЕЛЕМЕНТІВ Принципова електрична схема

    3.1 Вибір мікропроцесорного комплекту

    Відповідно до ТЗ ядром вимірювального приладу послужилаоднокристальна мікро-ЕОМ AVR90S8515 фірми Atmel.

    Основні характеристики однокристальної мікро-ЕОМ AVR90S8515:
    • AVR RISC архітектура - архітектура високої продуктивності та малогоспоживання
    • 120 команд, більшість яких виконується за один машинний цикл
    • 8 Кбайта Flash ПЗУ програм, з можливістю внутрішньосистемногоперепрограмування і завантаження через SPI послідовний канал, 1000циклів стирання/запис
    • 512 байтів ЕСППЗУ даних, з можливістю внутрішньосистемної завантаження через
    SPI послідовний канал, 100000 циклів стирання/запис
    • 512 байтів вбудованого СОЗУ
    • 32 x 8 біт регістра загального призначення
    • 32 програмованих ліній введення/виводу
    • 16-розрядний і 32-розрядний формат команд
    • Діапазон напруг живлення від 2,7 В до 6,0 В
    • Повністю статичний прилад - працює при тактовою частотою від 0 Гц до 8
    МГц
    • Тривалість командного циклу: 125 нс, при тактовою частотою 8 МГц
    • 8-розрядний і 16-розрядний (з режимами порівняння та захоплення)таймери/лічильники
    • Здвоєний ШІМ з 8, 9 або 10-розрядних дозволом
    • Програмований повний дуплексний UART
    • Два зовнішніх і десять внутрішніх джерел сигналу переривання
    • Програмований сторожовий таймер з власним вбудованим генератором
    • Вбудований аналоговий компаратор
    • Режими енергозбереження: пасивний (idle) і стоповий (power down)
    • Блокування режиму програмування
    • Промисловий (-40 ° C. .. +85 ° C) та комерційний (0 ° C. .. +70 ° C) діапазонитемператур
    • 40-вивідний корпус PDIP і 44-вивідні корпусу TQFP і PLCC
    КМОП мікроконтроллер AT90S8515 реалізований за AVR RISC архітектури
    (Гарвардська архітектура з роздільною пам'яттю і роздільними шинами дляпам'яті програм і даних) і сумісний з вихідних кодів і тактірованію з 8 --розрядними мікроконтролерами сімейства AVR (AT90SXXX). Виконуючи команди заодин тактовий цикл, прилад забезпечує продуктивність, що наближаєтьсядо 1 MIPS/МГц. AVR ядро об'єднує потужну систему команд з 32 8-розряднимирегістрами загального призначення і конвеєрне звернення до пам'яті програм.
    Шість з 32 регістрів можуть використовуватися як три 16-розрядних регістра -покажчика при непрямої адресації простору пам'яті. Виконаннявідносних переходів і команд виклику реалізується за прямої адресацієювсіх 4К адресного простору. Адреса периферійних функцій містяться впросторі пам'яті введення/виводу. Архітектура ефективно підтримує якмови високого рівня, так і програми на мовах асемблера. Вбудованазавантажувана Flash пам'ять забезпечує внутрішньосистемні перепрограмуванняз використанням інтерфейсу SPI (в послідовному Вбудована завантажувана
    Flash пам'ять забезпечує внутрішньосистемні перепрограмування звикористанням інтерфейсу SPI (в послідовному низько вольтовому режимі)або з використанням стандартних програматорів незалежній пам'яті (в
    12-вольтовому паралельному режимі). Споживання приладу в активному режимістановить 3,5 мА і в пасивному режимі 1 мА (при VCC = 3 В і f = 4 МГц). Устоповою режимі, при працюючому сторожовому таймері, мікроконтроллерспоживає 50 мкА. низько вольтовому режимі) або з використанням стандартнихпрограматорів незалежній пам'яті (у 12-вольтовому паралельномурежимі). Споживання приладу в активному режимі складає 3,5 мА і впасивному режимі 1 мА (при VCC = 3 В і f = 4 МГц). У стоповою режимі, припрацюючому сторожовому таймері, мікроконтроллер споживає 50 мкА.

    3.1.1 Вибір кварцового резонатора

    Для роботи МП необхідний кварцовий резонатор який підключається довисновків XTAL1 і XTAL2 (див. графічну частину курсового проекту)
    Робоча частота кварцового резонатора безпосередньо пов'язана з точністювимірювання тривалості імпульсу (з рис. 2 видно, що чим більше частотасинхронізації тим точніше вимірювання тривалості) для заданої похибкивиміру достатньо, щоб частота резонатора дорівнювала fрез = 8 МГц

    Малюнок 2

    3.1.1.1 Визначення похибки від джерела синхронізації

    Похибка від кварцового резонатора виникає в слідствінестабільності його частоти під час роботи.

    Нестабільність частоти кварцового резонатора МА406 приблизно дорівнює
    0.00001 від частоти синхронізації, виходячи з цього похибка виникає вслідстві нестабільності частоти можна визначити за формулою

    де К - нестабільність частоти кварцового резонатора

    К = 0.00001 * 8000000 = 80 Гц fBQ - частота кварцового резонатора

    3.2 Вибір інтегральної мікросхеми дешифратора

    У дешифратора буде використовуватися інтегральна мікросхема КР514ІД2

    3.3 Вибір засобів індикації

    Як засоби індикації будуть використовуватися світлодіоднііндикатори - ААС3224А

    3.4 Вибір зовнішніх елементів гальванічної розв'язки

    Як елементи гальванічної розв'язки використовується цифровамікросхема 249ЛП5 - Оптоелектронний перемикач на основі діодних оптопаривиконаних у металлостеклянном корпусі. основні характеристики цифровоїмікросхеми 249ЛП5 наведено в табл. 1.

    Таблиця 1

    Основні характеристики цифрової мікросхеми 249ЛП5
    | Електричні параметри |
    | Вхідна напруга при IВХ = 15 мА | не більше 1.7 В |
    | Вихідна напруга в стані логічного | 0.4 В |
    | нуля | |
    | Вихідна напруга в стані логічної | 2.4 |
    | одиниці | |
    | Граничні експлуатаційні дані |
    | Вхідний постійний струм | 12 мА |
    | Вхідний імпульсний струм | 15 мА |
    | Напруга живлення | 5 ((0.5) В |
    | Діапазон робочих температур | -60 ... +85 (С |

    4. Визначення похибки вимірювання тривалості імпульсу

    Похибка виміру тривалості імпульсу, як уже говорилосявище, безпосередньо пов'язана безпосередньо пов'язана зі швидкістю роботи
    МП, в свою чергу швидкість якого задається тактовою частотою кварцовогорезонатора.

    Величина тимчасового кванта (d) у нашому випадку, дорівнює періодупроходження імпульсів кварцового резонатора (() тобто d = (. Зміряне значенняоднієї милі секунди дорівнює (відповідно до ТЗ дискретність вимірюваннятривалості дорівнює 1мСек):

    T = (* N

    Де N - число імпульсів, що надійшли на таймер/счетчік1.
    Отже виміряне значення відрізняється від істинного на величинупохибки квантування (К = (tК:

    (tК = T-Tx = N * (-Txде Tx - справжнє значення.
    Похибка квантування залежить від величини кванта (і від моментів початку ізакінчення циклів вимірювання (див. рис.2) по відношенню до імпульсів кварцовогорезонатора. Очевидно, що як початок і кінець вимірювання тривалості можутьрозташовуватися в будь-якій точці між двома сусідніми імпульсами. У результатівиникають дві складових похибки (tК Перша з них ((t1 див. рис.2)позитивна, тому що виміряний часовий інтервал більше дійсного йогозначення, а другий (t2 негативна, тому що із за неї вимірянийчасовий інтервал виходить більше фактичного. Отже істиннезначення тимчасового інтервалу буде:

    Тх = N *(-(( t1-(t2) = N * (- (t1 + (t2
    Pзакон розподілу помилок (t1 і (t2 з урахуванням їх різних знаківявляє собою розподіл Сімпсона, а середньо квадратичнапохибка квантування слідуючи вказівкам [2, с 20] буде дорівнює

    5 Лістинг програми розрахунку тривалості імпульсу на мові асемблер

    Налагодження програми була зроблена за допомогою відладчика-симулятора
    AVRSTUDIO 3.0

    Код програми:
    . include "8515def.inc"
    . def fbinL = r22; двійкове значення, молодший байт байт
    . def fbinH = r23; двійкове значення, старший байт
    . def tBCD0 = r23; BCD значення, цифри 1 і
    . def tBCD1 = r24; BCD значення, цифри 3 і2
    . def tBCD2 = r25; BCD значення, цифри 4
    ; Призначення висновків порту А:
    ; Bit 0 - надходить імпульс
    ; Тривалість которог??
    ; Необхідно виміряти
    ; Bit 1 - підключається кнопка
    ; Режиму вимірювання
    ; 0 - вимірювання тривалості
    ; Негативного імпульсу
    ; 1 - вимірювання тривалості
    ; Позитивного імпульсу
    ; Bit 2 - індикація режиму вимірювання
    ; 0 - (світлодіод погашений)
    ; Індикація режиму вимірювання
    ; Негативного імпульсу
    ; 1 - (світлодіод світиться)
    ; Індикація режиму вимірювання
    ; Позитивного імпульсу
    ; Bit 3 - підключається кнопка
    ; Режиму вимірювання
    ; Тривалості імпульсу в мС
    ; Bit 4 - підключається кнопка
    ; Режиму вимірювання
    ; Тривалості імпульсу в С
    ; Bit 5 - підключається світлодіод
    ; Режиму вимірювання тривалості
    ; Імпульсу в мС
    ; Bit 6 - підключається світлодіод
    ; Режиму вимірювання тривалості
    ; Імпульсу в С

    . ORG 0

    RJMP MET1

    RJMP IMPULS

    RJMP MET1

    RJMP MET1
    1: RJMP Prog

    RJMP Prog

    RJMP MET1

    RJMP MET1
    MET1: LDI R16, 0x02

    OUT SPH, R16; Ініціалізація

    LDI R16, 0X10; стека

    OUT SPL, R16

    LDI R16, 0B11100100

    OUT DDRA, r16; Налаштовуємо Ліни b 0,1,3,4

    ; ПОРТУ А НА ENTER, а лінії 2,5,6,7 на висновок

    LDI R16, 0B11111111; Налаштовуємо ВСЕ ЛІНІЇ

    OUT DDRC, R16; ПОРТУ C НА ВИСНОВОК

    LDI R16, 0B11111111; Налаштовуємо ВСЕ ЛІНІЇ

    OUT DDRD, R16; ПОРТ D НА ВИСНОВОК

    LDI R16, 0B01000000; Дозвіл переривання

    OUT TIMSK, R16; по переповнення T/C1

    LDI R16, 0B00000000; ЗАБОРОНА переривання

    OUT GIMSK, R16; по INT0

    LDI R16, 0X1F; Завантажуємо в

    OUT OCR1AH, R16; компататор А -- 8000

    LDI R16, 0X40

    OUT OCR1AL, R16

    LDI R16, 0B00000000

    OUT TCNT1L, R16 < p> LDI R16, 0B00001000; T/C1 буде обнулятиметься при кожному збігу

    OUT TCCR1B, R16; зі значенням компаратора А

    LDI R16, 0B10000000; Глобальне дозвіл переривань

    OUT SREG, R16

    LDI R16, 0X9

    LDI R19, 0X9; R19 регістр перепризначених для порівняння

    ; з R16 якщо вони рівні, то тоді вимір

    ; тривалості імпульсу не починалося

    CLR R17 clr r22
    OPROS_KEY_OF_INVERT:; Опитування стану кнопки

    SBIC PORTA, 1; режиму вимірювання тривалості імпульсу

    RCALL IMPULS_POLOGITELNAY; режим з-ия тривалості сигналу високоїрівня

    RCALL IMPULS_OTRICHATELNAY; режим з-ия тривалості сигналу низькогорівня
    M2:
    IMPULS_POLOGITELNAY:

    SBI PORTA, 2; Включаємо світлодіод

    SBIC PORTA, 0; Йде сканування лінії PA0

    RCALL IMPULS

    SBIS PORTA , 0; Відбувається перевірка на наявність 1

    RCALL IMPILS_1_TO_0; на PA1, якщо її немає, тоді перехід
    M5: CPI R17, 0xFF

    BRCS M2; якщо R17 переповниться, то

    LDI R17, 0XA; тоді занесемо в R17 10

    RJMP M2;
    Prog: INC R17;

    CPI R17, 0XA; Звіт тривалості імпульсу почнеться

    BRCS M3; тоді коли в R17 буде 10 (DEX) (пройде 10 мС) < p> INC R16; інкремент R17 (лічильник пройшли мСекунд спрацьовує при
    R17> 10)

    BRBC 1, M3; якщо R16 переповниться

    INC R18; тоді інкрементіруем R18 (Тривалість імпульсу

    ; Минуло десять мС далі йде рахунок кожної мС
    M3: RETI; знаходиться в R18 (ст. розряд), R16 (мол. розряд)
    IMPULS:

    LDI R20, 0B00001001; якщо приходить імпульс то тоді запускається T/C1

    OUT TCCR1B, R20

    RET
    IMPILS_1_TO_0:

    LDI R20, 0B00000000; якщо імпульс закінчився T/C1 зупиняється

    OUT TCCR1B, R20

    CPSE R16, R19; перевірка на початок циклу вимірювання якщо вінначілся
    RCALL TEST_OF_STOP_TC1; то тоді перехід на TEST_OF_STOP_TC1

    SBIC PORTA, 1; Опитування стану кнопки режиму вимірювання тривалостіімпульсу

    RCALL IMPULS_POLOGITELNAY; режим з-ия високого рівня тривалості

    RCALL IMPULS_OTRICHATELNAY; режим з-ия низького рівня тривалості

    RET
    TEST_OF_STOP_TC1:; підпрограма перевірки (чи дійсно T/C1зупинився

    IN R21, TCCR1B; під час режиму вимірювання тривалості)

    ANDI R21, 0B000000000; якщо все в порядку, то тоді переходимо наbin16BCD5

    BRNE ENDTEST_OF

    RCALL bin16BCD5
    ENDTEST_OF:

    RET
    M2OTR:
    IMPULS_OTRICHATELNAY:

    CBI PORTA, 2; Вимикаємо світлодіод

    SBIS PORTA, 0; Відбувається перевірка на наявність 0

    RCALL IMPULS_OTR

    SBIC PORTA, 0

    RCALL IMPILS_0_TO_1; на PA1, якщо його немає, тоді перехід
    M5OTR: CPI R17, 0xFF

    BRCS M2OTR

    LDI R17, 0XA

    RJMP M2OTR;
    IMPULS_OTR:

    ; LDI R16, 0X9

    ; LDI R17, 0X0

    LDI R20, 0B00001001; то тоді запускається T/C1

    OUT TCCR1B, R20

    RET
    IMPILS_0_TO_1:

    LDI R20, 0B00000000; T/C1 зупинений

    OUT TCCR1B, R20

    CPSE R16, R19

    RCALL TEST_OF_STOP_TC1_OTR

    SBIC PORTA, 1

    RCALL IMPULS_POLOGITELNAY

    RCALL IMPULS_OTRICHATELNAY

    RET
    TEST_OF_STOP_TC1_OTR:

    IN R21, TCCR1B

    ANDI R21, 0B000000000

    BRNE ENDTEST_OF_OTR

    RCALL bin16BCD5
    ENDTEST_OF_OTR:

    RET

    bin16BCD5: Підпрограма переведення двійкового числа в двійковій-десяткове

    MOV R22, R16

    MOV R23, R18 ldi tBCD2, -1bin16BCD5_loop_1: inc tBCD2; визначення subi fbinL, low (10000); кількості sbci fbinH, high (10000); десятків тисяч brsh bin16BCD5_loop_1; в числі яке переводиться subi fbinL, low (-10000) sbci fbinH, high (-10000) ldi tBCD1 ,-0x11bin16BCD5_loop_2: subi tBCD1,-0x10; визначення subi fbinL, low (1000); кількості sbci fbinH, high (1000); тисяч brsh bin16BCD5_loop_2; в числі яке переводиться subi fbinL, low (-1000) sbci fbinH, high (-1000)bin16BCD5_loop_3: inc tBCD1; визначення subi fbinL, low (100); кількості sbci fbinH, high (100); десятків brsh bin16BCD5_loop_3; в числі яке переводиться subi fbinL, -100 ldi tBCD0,-0x10bin16BCD5_loop_4: subi tBCD0,-0x10; визначення subi fbinL, 10; кількості brsh bin16BCD5_loop_4; одиниць subi fbinL, -10; в числі яке переводиться add tBCD0, fbinL

    LDI R16, 0X9

    LDI R17, 0X0 ldi r18, 0x0

    LDI R27, 0X0
    WAIT_PRESS_KEY:; Підпрограма перевірки, в чому відображати

    ; індикацію в мСекундах або Секутдах

    ; Примітка:

    ; якщо жодна з кнопок режиму відображення

    , не натиснута або натиснуті все, індикація відображатися не БУДЕ

    SBRC R27, 0

    RJMP EXIT

    SBIC PORTA, 3; Якщо натиснута кнопка мСекунди

    RCALL FLASH_mC; то тоді перехід на FLASH_mC

    SBIC PORTA, 4; якщо натиснута кнопка Секунди

    RCALL FLASH_C; то тоді перехід на FLASH_C

    RJMP WAIT_PRESS_KEY; якщо жодна з кнопок не натиснута

    ; то тоді очікуємо натискання

    SBIS PORTA, 3; у противному випадку вихід з підпрограми

    RJMP EXIT

    SBIC PORTA, 4; якщо натиснуті всі дві кнопки, то тоді

    чекаємо поки одну кнопку не відключать

    RJMP WAIT_PRESS_KEY

    OUT PORTD, R23; висновок на порт D двійковій-десяткового числа

    OUT PORTC, R24; висновок на порт C двійковій-десяткового числа

    OUT TCNT1H, R18; обнулення регістра NCNT1H (ст. регістр T/C1)

    OUT TCNT1L, R18; обнулення регістра NCNT1L (мол. регістр T/C1)

    EXIT: RET
    FLASH_mC:

    SBI PORTA, 5; Включаємо світлодіод (режим мСекунди)

    CBI PORTA, 6; Вимикаємо світлодіод (режим Секунди)

    CBI PORTA, 7; і вимикаємо розділову точку

    INC R27

    RET
    FLASH_C:

    CBI PORTA, 5; Включаємо світлодіод (режим Секунди)

    SBI PORTA, 6; Вимикаємо світлодіод (режим мСекунди)

    SBI PORTA, 7; і включаємо розділову точку

    INC R27

    RET

    Список використаних джерел

    1. Опис однокристальної мікро-ЕОМ AVR90S8515

    2. Методичний вказівки і завдання по курсовому проектуванню

    «Розрахунок і проектування цифрових вимірювальних приладів»

         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status