Термінова допомога студентам
Дипломи, курсові, реферати, контрольні...

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

РефератДопомога в написанніДізнатися вартістьмоєї роботи

При включенні харчування микро-ЭВМ виробляє виконання підпрограми ініціалізації (ініціалізація стека, настроювання використовуваних портів ВВОДА/ВЫВОДА, завантажується в компаратор, А таймер/счетчика число 80 000, вибирається потрібний режим роботи таймер/счетчика 1 (біт CTC1 регістру управління таймером/счетчиком 1(TCCR1B), встановлюється в одиницю, що означає скидання таймер/счетчика 1 при… Читати ще >

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

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

У Р. УГЛИЧЕ.

Кафедра.

«ТОЧНІ ПРРИБОРЫ І ВИМІРЮВАЛЬНІ СИСТЕМЫ».

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

по дисциплине.

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

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

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

|Підпис студента |Підпис викладача | | | | |Дата 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.

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

[pic] мСек — кнопка вибору відображення вимірюваною тривалості імпульсу в милі Секундах.

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

Секундах.

Інверсія — кнопка вибору першого чи другої режиму виміру см.

ТЗ.

Св.Д1. — світлодіод индицирующий включення другого режиму измерения.

Св.Д2. — світлодіод индицирующий включення режиму відображення вимірюваною тривалості імпульсу в секундах.

Св.Д3. — світлодіод индицирующий включення режиму відображення вимірюваною тривалості імпульсу в милі секундах.

AVR90S8515 — однокристальная микро-ЭВМ AVR90S8515.

Малюнок 1.

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

При включенні харчування микро-ЭВМ виробляє виконання підпрограми ініціалізації (ініціалізація стека, настроювання використовуваних портів ВВОДА/ВЫВОДА, завантажується в компаратор, А таймер/счетчика число 80 000, вибирається потрібний режим роботи таймер/счетчика 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 і З) МП повертається у основну програму. У цьому цикл роботи програми закінчується .

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

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

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

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

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

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

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

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

До основних рис однокристальної микро-ЭВМ AVR90S8515: • AVR RISC архітектура — архітектура високої продуктивності і малого споживання • 120 команд, що їх виконується за машинний цикл • 8 Кбайта Flash ПЗУ програм, із можливістю внутрісистемного перепрограмування і завантаження через SPI послідовний канал, 1000 циклів стирание/запись • 512 байтів ЭСППЗУ даних, із можливістю внутрісистемної завантаження через SPI послідовний канал, 100 000 циклів стирание/запись • 512 байтів вбудованого СОЗУ • 32×8 біт регістру загального призначення • 32 программируемых ліній ввода/вывода • 16-разрядный і 32-разрядный формат команд • Діапазон напруг харчування від 2,7 У до 6,0 У • Повністю статичний прилад — працює при тактовою частоті від 0 гц до 8 МГц • Тривалість командного циклу: 125 нс, при тактовою частоті 8 МГц • 8-разрядный і 16-разрядный (з режимами порівняння і захоплення) таймеры/счетчики • Здвоєний ШИМ з 8, 9 чи 10-разрядным дозволом • М’який повний двобічний UART • Два зовнішніх і… 10 внутрішніх джерел сигналу переривання • М’який сторожовий таймер зі своїм вбудованим генератором • Вмонтований аналоговий компаратор • Режими енергозбереження: пасивний (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 МГц.

[pic].

Малюнок 2.

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

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

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

[pic] де До — нестабільність частоти кварцевого резонатора.

К=0.1*8000000=80 гц fBQ — частота кварцевого резонатора.

[pic].

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] буде равна.

[pic].

[pic].

[pic].

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,0×02.

OUT SPH, R16; Инициализация.

LDI R16,0X10; стека.

OUT SPL, R16.

LDI R16,0B11100100.

OUT DDRA, r16; НАСТРОЮЄМО ЛИНИ b 0,1,3,4.

; ПОРТУ, А НА ВВЕДЕННЯ, а лінії 2,5,6,7 на вывод.

LDI R16,0B11111111; НАСТРОЮЄМО ВСЕ ЛИНИИ.

OUT DDRC, R16; ПОРТУ З НА ВЫВОД.

LDI R16,0B11111111; НАСТРОЮЄМО ВСЕ ЛИНИИ.

OUT DDRD, R16; ПОРТ D НА ВЫВОД.

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

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

LDI R16,0B00000000;ЗАПРЕТ прерывания.

OUT GIMSK, R16; по INT0.

LDI R16,0X1 °F ;Завантажуємо в.

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

LDI R16,0X40.

OUT OCR1AL, R16.

LDI R16,0B00000000.

OUT TCNT1L, R16.

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 IMPILS1_TO0; на 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 мС).

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 IMPILS1_TO0:

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 IMPILS0_TO1; на 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 IMPILS0_TO1:

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, -1 bin16BCD5_loop1: inc tBCD2; визначення subi fbinL, low (10 000); кількості sbci fbinH, high (10 000); десятків тисяч brsh bin16BCD5_loop1 ;серед яке перекладається subi fbinL, low (-10 000) sbci fbinH, high (-10 000) ldi tBCD1, -0×11 bin16BCD5_loop2: subi tBCD1, -0×10 ;визначення subi fbinL, low (1000); кількості sbci fbinH, high (1000); тисяч brsh bin16BCD5_loop2 ;серед яке перекладається subi fbinL, low (-1000) sbci fbinH, high (-1000) bin16BCD5_loop3: inc tBCD1 ;визначення subi fbinL, low (100); кількості sbci fbinH, high (100); десятків brsh bin16BCD5_loop3 ;серед яке перекладається subi fbinL, -100 ldi tBCD0, -0×10 bin16BCD5_loop4: subi tBCD0, -0×10 ;визначення subi fbinL, 10; кількості brsh bin16BCD5_loop4; одиниць subi fbinL, -10 ;серед яке перекладається add tBCD0, fbinL.

LDI R16,0X9.

LDI R17,0X0 ldi r18,0×0.

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; висновок на порт З двоично-десятичного числа.

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. Методичне вказівки і завдання щодо курсовому проектированию.

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

Показати весь текст
Заповнити форму поточною роботою