Інформація про навчальний заклад

ВУЗ:
Інші
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2024
Тип роботи:
Відповіді до екзаменаційних білетів
Предмет:
Інші

Частина тексту файла (без зображень, графіків і формул):

Мікропроцесорні пристрої 1-й рівень Пряма адресація - адресація, при якій в команді вказана адреса даного (так, ні) Непряма адресація - адресація при якій в другому і третьому байтах команди вказані дані (так, ні) Безпосередня адресація - адресація, при якій адреса даного вказана в одній з регістрових пар (так, ні) Масковане переривання - це переривання, яке завжди виконується, якщо на нього прийшов запит (так, ні) Регістр F (прапорців) МП Intel 8080 - це регістр, в якому зберігається байт стану (так, ні) Регістри загального призначення МП Intel 8080 - це регiстри B, C, D, E, H, L (так, нi) Регістри загального призначення МП Intel 8080 - це регістри A, F, PC, W, Z, SP (так, ні) Команда МП Intel 8080 LDAX D - це команда завантаження акумулятора вмістом регістра D (так, ні) Мікроконтролер AT90S2313 має 2 режими пониженого енергоспоживання (так, ні) Мікроконтролер AT90S2313 має 2 вбудованих 16-розрядних лічильники (так, ні) Набір прапорців мікроконтролера AT90S2313 зберігається в регістрі MCUCR (так, ні) Об’єм вбудованої Flash-пам’яті програм мікроконтролера AT90S2313 становить 2 Кбайти (так, ні) Регістровий файл мікроконтролера AT90S2313 складається з 32 регістрів загального призначення (так, ні) Мікроконтролери сімейства AVR виконані за CISC-архітектурою (так, ні) Команда мікроконтролера AT90S2313 ST –X, R4 здійснює запам’ятовування вмісту регістра R4 в комірці пам’яті з адресою, яка вказана в регістровій парі Х після чого зменшує вміст Х на 1 (так, ні) Мікроконтролер AT90S2313 підтримує 11 переривань (так, ні) 2-й рівень 1. Класифікуйте мікропроцесори за призначенням, типом архітектури та системи команд. За призначенням МП поділяють на універсальні та спеціалізовані: 1. Універсальні МП – це МП загального призначення, які розв’язують широкий клас задач обчислення, обробки та керування. Ці МП застосовуються в обчислювальних системах: персональних комп’ютерах, потужних серверах, робочих станціях та інших засобах обчислювальної техніки, а також при проведенні науково-технічних розрахунків з використанням операцій з плаваючою комою над 64-розрядними і більш довгими операндами. Спеціалізовані МП призначені для розв’язання задач лише певного класу. До спеціалізованих МП належать: сигнальні, медійні та мультимедійні МП, однокристальні мікроконтролери (ОМК), трансп’ютери. Цифрові сигнальні процесори (ЦСП) або сигнальні процесори (DSP – Digital Signal Processors) – призначені для цифрової обробки сигналів у реальному масштабі часу (наприклад, фільтрація сигналів, обчислення згортки, пряме та зворотне перетворення Фур’є). Для них характерними є: 1) наявність достатніх об’ємів внутрішньокристалічної пам’яті для даних і програм; 2) можливість захисту програм від несанкціонованого доступу; 3) підтримка режиму енергозбереження. Мікроконтролери призначені для застосування у вбудованих системах управління, в тому числі і у побутових приладах. Сучасний МК є складною цифровою системою, розміщеною на кристалі. До її складу входять: 1) один 8ми або 16ти, чи рідше 32х розрядний процесор; 2) внутрішня пам’ять програми (від 1го до 10ків кбайт) та даних; 3) широкий набір інтерфейсних і периферійних пристроїв, зокрема, портів вводу/виводу, таймерів, аналого-цифрових перетворювачів та інших. Для МК характерні: 1) широкі функціональні можливості; 2) високі технічні параметри; 3) низька вартість. Медійні та мультимедійні процесори призначені для обробки аудіосигналів, графічної інформації, відеозображень, а також для розв’язування ряду задач у мультимедіакомп’ютерах, іграшкових приставках, побутовій техніці за рахунок створення симетричної мультипроцесорної системи з більш простими процесорами, що опрацьовують цілочисленні операнди. Трасп’ютери – призначені для масових паралельних обчислень і роботи у мультипроцесорних системах. Для трансп’ютерів характерним є наявність внутрішньої пам’яті та вбудованого міжпроцесорного інтерфейсу, тобто каналів зв’язку з іншими ВІС МП. За типом архітектури розрізняють МП з фоннейманівською архітектурою і МП з гарвардською архітектурою. За типом системи команд розрізняють CISC (Complete Instruction Set Computing) – процесори з повним набором команд, в яких швидкодія опрацювання інформації визначається тактовою частотою МП. Тому підвищення швидкодії опрацювання інформації в них йшло по шляху підвищення тактової частоти. RISC (Reduced Instruction Set Computing) – процесори зі зменшеним набором команд, в яких велика швидкодія, навіть при використанні невисокої тактової частоти, досягається за рахунок технології опрацювання інформації. 2. Вказати з яких машинних циклів складається команда МП Intel 8080 JС 809АH і підрахувати кількість тактів у команді. Команда JС 809АH – це команда умовного переходу на адресу 809АH, якщо прапорець переносу С встановлений. Будуть виконуватись такі машинні цикли: М1 – Вибирання (4 такти) М2 – Читання пам’яті (3 такти) М3 – Читання пам’яті (3 такти) Всього команда виконується за 10 тактів. 3. Назвати всі програмно-доступні елементи МП Intel 8080. В МП і8080 програмно-доступними є: 8-розрядні регістри A, B, C, D, E, H, L, окремі розряди (ознаки) регістру стану F; 16-розрядні – регістр слова стану програми PSW (Program Status Word) (регістри F і A), регістрові пари BC, DE, HL, вказівник стека SP, лічильник команд PC, а також тригер дозволу переривання INTE. 4. Назвати сигнали шини управління МП Intel 8080. Для МП Intel 8080 шина управління складається з 5 фізичних ліній, по яких передаються такі сигнали: 1)  EMBED Equation.3  (memory read) – читання пам’яті; 2)  EMBED Equation.3  (memory write) – запис в пам’ять; 3)  EMBED Equation.3  (input output read) – читання пристрою вводу-виводу; 4)  EMBED Equation.3  (input output write) – запис в пристрій вводу-виводу; 5)  EMBED Equation.3  (interrupt acknowledge) – підтвердження переривання. 5. Назвати основні характеристики ядра, підсистеми вводу-виводу та периферійних пристроїв мікроконтролерів сімейства AVR. Характеристики ядра МК AVR Основними характеристиками ядра МК AVR є: повністю статична архітектура; мінімальна тактова частота рівна 0; АЛП підключений безпосередньо до регістрів загального призначення; завдяки гарвардській RISC-архітектурі більшість команд виконується за 1 такт. При цьому досягається продуктивність 1 MIPS на МГц, а максимальна тактова частота може досягати 16 МГц; багаторівнева система переривань, підтримка вкладених переривань; наявність програмного стеку. Характеристики підсистеми вводу/виводу Основними характеристиками підсистеми вводу/виводу є: програмне конфігурування портів вводу/виводу; кожний вивід може бути запрограмований як вхідний або вихідний незалежно від інших вхідні буфери з тригером Шмідта на всіх виводах; можливість підключення до всіх входів внутрішніх підтягуючих резисторів опором 35…120 кОм; навантажувальна здатність всіх виходів становить 20 мА. Периферійні пристрої Периферійні пристрої, які зустрічаються в AVR МК: 8-розрядний таймер/лічильник з дільником (таймер Т0); 16-розр. таймер/лічильник з дільником (таймер Т1); 8-розр. таймер/лічильник з можливістю роботи в асинхронному режимі (таймер Т2); сторожовий таймер (WDT); одно або двоканальний 8…10-розрядний генератор сигналу ШІМ; аналоговий компаратор; 10-розрядний АЦП (6 або 8 каналів); універсальний асинхронний прийомо-передавач (UART); послідовний периферійний інтерфейс. 6. Опишіть організацію пам’яті програм та даних мікроконтролера AT90S2313. Організація пам’яті Організація пам’яті МК виконана по гарвардській архітектурі з розділеними адресними просторами пам’яті програм і пам’яті даних. Пам’ять даних складається з трьох областей: регістрової пам’яті (регістровий файл), статичного ОЗП і пам’яті EEPROM. Оскільки, регістрова пам’ять знаходиться в адресному просторі ОЗП, про ці дві області говорять як про одну. Області ОЗП та EEPROM розташовані у своєму власному адресному просторі (рис.).  EMBED Visio.Drawing.6  Рис. Структура пам’яті МК AT90S2313 Пам’ять програм Пам’ять програм призначена для зберігання команд, що керують роботою МК, а також зберігання різних констант. Пам’ять програм в МК AVR представляє собою Flash-ПЗП, з кількістю циклів перезапису – не менше 1000. Оскільки більшість команд займають в пам’яті 16 біт пам’ять програм має 16-розрядну організацію. Для адресації пам’яті програм використовується лічильник команд (РС – Program Counter). РС має ширину 10 біт і дозволяє адресувати 1024 слів пам’яті програм. За адресою 0х000 пам’яті програм знаходиться вектор скиду. Після скиду МК виконання програми починається з цієї адреси. Пам’ять даних Пам’ять даних МК складається з трьох частин: регістрова пам’ять, оперативна пам’ять, EEPROM. Регістровий файл містить 32 8-розрядних РЗП R0-R31, з адресами від 0х00 до 0х1F в області пам’яті даних. Ці регістри використовуються АЛП у арифметичних і логічних операціях. До цих регістрів можна також звертатись як до звичайних комірок пам’яті. Шість з 32 регістрів файлу – R26…R31 – можна використовувати як три 16-розрядні покажчики адреси у процесі непрямого адресування даних. Один із цих покажчиків (Z Pointer) застосовують для доступу до даних, записаних у пам’яті програм МК. Ці так звані індексні регістри позначаються як X, Y, Z і визначені наступним чином:  EMBED Visio.Drawing.6  В області регістрів вводу-виводу (РВВ) розташовані різні службові регістри (регістр покажчика стеку, регістр стану та ін.), а також регістри управління периферійними пристроями МК. До регістрів В/В можна звертатися двома способами: як власне до регістрів (з допомогою команд IN та OUT) і як до комірок ОЗП. В першому випадку використовуються адреси РВВ з простору В/В (0х00…0х3F). В другому випадку адресу РВВ треба збільшити на 0х20. ЕEPROM МК AT90S2313 має у своєму складі енергонезалежну пам’ять ЕEPROM об’ємом 128 байт. Час запису лежить в діапазоні 2.5…4 мс і залежить від напруги живлення. Використовується для зберігання даних, які можуть змінюватись в процесі функціонування готової системи (калібруючі константи, серійні номери, ключі і т.д.). Енергонезалежна пам’ять розташована в окремому адресному просторі, а доступ до неї здійснюється з допомогою певних РВВ: регістра управління ЕEPROM EECR, регістра адреси ЕEAR і регістра даних ЕEDR. 7. Назвіть типи адресації в мікроконтролері AT90S2313. Наведіть приклади. Для МК AT90S2313 є декілька способів адресації: неявна, безпосередня, пряма адресація і непряма адресація. Для прямої і непрямої адресації в залежності від того, до якої області пам’яті проводиться звернення (для прямої адресації) і які додаткові дії виконуються над індексним регістром (для непрямої адресації) існує декілька різновидів. Надалі будемо позначати Rd – регістр призначення, Rr – передаючий регістр, КОП – код операції, P – регістр вводу/виводу. Неявна адресація Дані, над якими здійснюється операція, знаходяться в певному, наперед визначеному регістрі. Сюди відносяться команди маніпуляцій з бітами регістра стану SREG. Напр. sei (встановити прапорець І регістра SREG: SREG.І  EMBED Equation.3  1). Безпосередня адресація Дані над якими здійснюється операція, знаходяться безпосередньо в коді команди. Напр. andi R18, 98 (Логічне І РЗП R18 і 8-розрядної константи : R18  EMBED Equation.3  R18 & 98). Пряма регістрова адресація з одним регістром Rd Дані, над якими здійснюється операція, знаходяться в регістрі Rd (рис. 1.а). Напр. clr R21 (очистити регістр R21: R21  EMBED Equation.3  0 ). Пряма регістрова адресація з двома регістрами - Rd і Rr Дані, над якими здійснюється операція, знаходяться в регістрах Rd і Rr. Результат операції зберігається в регістрі Rd (рис. 1.б). Напр. mov R4, R2 (переслати вміст R2 в R4: R4  EMBED Equation.3  R2).  EMBED Visio.Drawing.6  Рис. 1. Види прямої адресації в AVR МК Пряма адресація регістра вводу/виводу Даний спосіб адресації використовується командами пересилки даних між регістром вводу/виводу і регістровим файлом – в командах IN та OUT.  EMBED Visio.Drawing.6  Напр. in R4, SREG (переслати вміст регістру стану SREG в R4: R4  EMBED Equation.3  I/O(P)). Пряма адресація до пам’яті даних 16-розрядний адрес комірки пам’яті даних знаходиться в коді команди, яка складається з двох слів. В другому слові знаходиться адрес комірки пам’яті, до якої відбувається звернення.  EMBED Visio.Drawing.6  Напр. lds R4, 0x5F (переслати вміст регістру стану SREG в R4: R4  EMBED Equation.3  SREG). Непряма адресація При непрямій адресації адреса комірки пам’яті знаходиться в одному з індексних регістрів X, Y або Z. В залежності від додаткових маніпуляцій над вмістом індексного регістра розрізняють наступні різновиди непрямої адресації: проста непряма адресація, відносна непряма адресація, непряма адресація з предекрементом, і непряма адресація з постінкрементом. Проста непряма адресація При використанні команд простої непрямої адресації звертання відбувається за адресою, яка знаходиться в індексному регістрі. МК підтримує 6 команд простої непрямої адресації: LD Rd, X/Y/Z (пересилка байту з ОЗП в РЗП) і ST X/Y/Z, Rr (пересилка байту з РЗП в ОЗП).  EMBED Visio.Drawing.6  Напр. LD R5, X (переслати вміст комірки пам’яті з адресою в Х до регістру R5: R5  EMBED Equation.3  (Х)). Відносна непряма адресація При використанні команд відносної непрямої адресації адреса комірки пам’яті, до якої відбувається звертання утворюється сумуванням індексного регістра Y або Z і константи, заданої в команді. МК підтримує 4 команд простої непрямої адресації: LDD Rd, Y+q/Z+q (пересилка байту з ОЗП в РЗП) і STD Y+q/Z+q, Rr (пересилка байту з РЗП в ОЗП). Під зміщення відводиться 6 біт, тобто воно не перевищує 64.  EMBED Visio.Drawing.6  Напр. LDD R5, Y + 10 (переслати вміст комірки пам’яті з адресою Y зміщеною на 10 байт у регістр R5: R5  EMBED Equation.3  (Y + 10)). Непряма адресація з предекрементом При використанні команд непрямої адресації з предекрементом вміст індексного регістру спочатку зменшується на 1, а потім проводиться звертання за отриманою адресою. МК підтримує 6 команд непрямої адресації з предекрементом: LD Rd, -X/-Y/-Z (пересилка байту з ОЗП в РЗП) і ST -X/-Y/-Z, Rr (пересилка байту з РЗП в ОЗП).  EMBED Visio.Drawing.6  Напр. LD R4, -X (X  EMBED Equation.3  X – 1, R4  EMBED Equation.3  (X)). Непряма адресація з постінкрементом При використанні команд непрямої адресації з постінкрементом після звертання за адресою, яка знаходиться в індексному регістрі, вміст індексного регістру збільшується на 1. МК підтримує 6 команд непрямої адресації з постінкрементом: LD Rd, X+/Y+/Z+ (пересилка байту з ОЗП в РЗП) і ST X+/Y+/Z+, Rr (пересилка байту з РЗП в ОЗП).  EMBED Visio.Drawing.6  Напр. LD R4, X+ (R4  EMBED Equation.3  (X), X  EMBED Equation.3  X + 1). Непряма адресація пам’яті програм Для зчитування даних з пам’яті програм використовується непряма адресація з використанням індексного регістра Z.  EMBED Visio.Drawing.6  Адреса константи – байту міститься в регістрі Z. 15 старших бітів визначають адресу слова, а молодший (0-й) біт – молодший або старший байт константи в пам’яті програм: 0 – молодший, 1 – старший байт. Напр. lpm (Завантажує регістр R0 байтом з пам’яті програм: R0  EMBED Equation.3  (Z)). 8. Вкажіть стан прапорців та вміст регістру R16 мікроконтролера AT90S2313 в результаті виконання команди add R16, R17, якщо перед виконанням операції вміст регістрів був такий: R16 = -2010, R17 = -12210 R16 = EC16 = -2010, R17 = 8616 = -12210 add R16, R17 Оскільки результат ненульовий то прапорець нуля Z = 0 Оскільки був перенос з 3 біту в 4 прапорець половинного переносу H = 1 Оскільки старший розряд результату нульовий, прапорець від’ємного значення N = 0 Оскільки результат (144) виходить за межі розрядної сітки для знакових чисел (-128…127) то прапорець переповнення доповняльного коду V = 1. Прапорець знаку S рівний результату операції сума за модулем 2 прапорців N i V: S =  EMBED Equation.3  - вказує на те, що результат від’ємний. 3-й рівень 1. Скласти принципову схему модуля пам’яті для мікро-ЕОМ на мікропроцесорі Intel 8080 якщо для ПЗП об’ємом 8 Кбайт виділена ділянка пам’яті 0000Н-1FFFH, а ОЗП об’ємом 16 Кбайт виділено ділянку 2000Н-5FFFН. У Вашому розпорядженні є така елементна база: а) дешифратор  а) мікросхема ПЗП з організацією 8 К х 8  б) мікросхема ОЗП з організацією 16 К х 8  EMBED Visio.Drawing.6  г) інвертори (НЕ)  д) двовходові схеми АБО  EMBED Visio.Drawing.6  е) двовходові схеми І  EMBED Visio.Drawing.6  МП і8080 адресує 64 Кбайт спільної пам’яті програм і даних використовуючи 16 адресних ліній А15-А0. Карта пам’яті буде виглядати таким чином:  EMBED Visio.Drawing.6  Для ПЗП вибираємо мікросхему КР556РТ16 з організацією 8 К х 8, часом вибірки 85 нс і споживаною потужністю 1 Вт. Для ОЗП вибираємо мікросхему НМ62256 з організацією 32 К х 8, з яких використаємо лише 16 Кбайт. Потрібно сформувати керуючі сигнали (для ПЗП  EMBED Equation.3 , для ОЗП  EMBED Equation.3  і  EMBED Equation.3 ), щоб мікросхеми спрацьовували лише тоді, коли є звертання МП до відповідної ділянки пам’яті. Для ПЗП визначаємо загальні межі Тобто розряди А15 А14 А13 вибирають потрібний діапазон на карті пам’яті, а розряди А12-А0 – потрібний байт в межах цієї ділянки.  EMBED Visio.Drawing.6  Крім того, мікросхема ПЗП повинна активізуватись тоді, коли є читання пам’яті, про що свідчить низький рівень сигналу системної шини  EMBED Equation.3 . Для ОЗП визначаємо загальні межі Тобто розряд А15 завжди рівний 0, а мікросхема повинна вибиратись при комбінаціях сигналів А14 = 0, А13=1 або А14 = 1, А13 = 0, а також коли присутній сигнал або  EMBED Equation.3  (Memory Read – Читання пам’яті) або  EMBED Equation.3  (Memory Write – запис в пам’ять). Формувати ці керуючі сигнали зручно з допомогою дешифратора. Таблиця істинності: При STB=1,  EMBED Equation.3  =  EMBED Equation.3  = 0. При STB=0, або  EMBED Equation.3  = 1 або  EMBED Equation.3  = 1. Схема адресного селектора  EMBED Visio.Drawing.6  Мікросхема ОЗП має також входи керування  EMBED Equation.3  і  EMBED Equation.3 .  EMBED Equation.3  (Output Enable) – дозвіл видачі даних – повинен бути рівним нулю, коли є читання з ОЗП, тому на нього подається сигнал  EMBED Equation.3  і вивід  EMBED Equation.3  (Write Enable) – дозвіл запису даних - повинен бути рівним нулю коли є запис в ОЗП, тому на нього подається сигнал  EMBED Equation.3 . Схема модуля пам’яті буде виглядати наступним чином:  EMBED Visio.Drawing.6  2. Скласти принципову схему інтерфейсу для вводу даних від зовнішнього пристрою, що супроводжується стробом, в комп’ютер на основі мікропроцесора Intel 8080 та написати підпрограму вводу, якщо у Вашому розпорядженні є така елементна база: а) 8-розрядні регістри  б) дешифратори  в) схеми АБО  EMBED Visio.Drawing.6  г) схеми І-НЕ  EMBED Visio.Drawing.6  д) RS-тригери  при таких умовах: а) рівень стробу РС - низький; б) розрядність даних РД - 8; в) адреси елементів інтерфейсу АЕІ задати в полі F0 – F3 Структура інтерфейсу: 1. Вхідний порт приймання даних від ЗП (F0H). 2. Прапорець (тригер) для запам’ятовування байту стану. 3. Регістр стану інтерфейсу (чи приймати дані чи ні) (F1H). 4. Регістр вихідних даних (вих. порт) для скидання прапорця (F2H). 5. Дешифратор адрес (портів). 6. Роз’єми для підключення інтерфейсу до СШ і до ЗП. 7. Елементи малої степені інтеграції. Вибір елементної бази: 1. DD4 – КР580ИР82. 2. DD7 - RS-тригер – К555ТМ2. 3. DD6 – КР580ИР82. 4. DD3 – КР580ИР82. 5. DD2 – КР580ИР82. 6. Х1, Х2. 7. DD1 – 2 вентилі 4-І-НЕ К555ЛИ6, DD5 – 4 вентилі 2-АБО К555ЛЛ1. Принцип роботи інтерфейсу Коли ЗП має дані для передачі він формує строб-сигнал низького рівня, по якому дані записуються в регістр приймання даних. Одночасно строб встановлює в 1 прапорець готовності даних. Коли МП виконуючи основну програму переходить до п/п обслуговування ЗП він перевіряє наявність даних від ЗП зчитуючи дані з регістру даних інтерфейсу – командою IN F1H. Якщо розряд 0 зчитаних даних встановлений в 1, значить дані готові і записані у порті приймання даних. Після цього МП зчитує дані з цього порту (IN F0H), зберігає їх у відведеній комірці пам’яті та скидає прапорець через регістр вихідних даних командою OUT F2H. Основна програма * * CALL ZP (0100H) Підпрограма обслуговування ЗП  EMBED Visio.Drawing.6  3. Скласти принципову схему та написати програму на мові асемблер відображення номеру натиснутої кнопки SW1-SW4 з допомогою світлодіодів HL3-HL1 для мікроконтролера AT90S2313 згідно таблиці: Тактова частота мікроконтролера 4 МГц, спад напруги на світлодіоді – 2 В. До ліній РВ0-РВ3 підключені кнопки SW1-SW4. Натиснутій кнопці буде відповідати логічний 0 на вході. До ліній порту РВ7-РВ5 підключені світлодіоди HL3-HL1, які вказують номер натиснутої кнопки: Сама програма періодично по перериванню від таймеру 0 приблизно 1 раз в 16 мс (при тактовій частоті 4 МГц) опитує стан кнопок. Схема:  EMBED Visio.Drawing.6  Програма ;====================================== .nolist .include "2313def.inc" .list .def temp = r16 .def present_key = r17 ; біжучий стан кнопок .EQU SW1 = PB0 .EQU SW2 = PB1 .EQU SW3 = PB2 .EQU SW4 = PB3 .cseg .org 0 rjmp RESET nop ; rjmp INT0_EXT nop ; rjmp INT1_EXT nop ; rjmp TIM_CAPT1 nop ; rjmp TIM_COMP1 nop ; rjmp TIM_OVF1 rjmp TIM_OVF0 ; вектор обробки переривання від таймеру Т0 .org 0x0B RESET: ldi temp, low(RAMEND) ; ініціалізація out SPL, temp ; стеку rcall Port_Init ; ініціалізація порту В rcall Timer0_Init ; ініціалізація таймера Т0 sei ; дозвіл переривань Loop: rjmp Loop ; вічний цикл Port_Init: ldi temp, 0xFF ; встановити на виходах – 1, out PORTB, temp ; на входах – підтягуючі резистори ldi temp, 0xE0 ; виводи РВ7-РВ5 – виходи, out DDRB, temp ; РВ4-РВ0 – входи ldi present_key, 0x0F ; в початковому стані жодна клавіша не натиснута ret ; повернення з підпрограми Timer0_Init: ldi temp, 4 ; коефіцієнт ділення 256 out TCCR0, temp , дозволити роботу таймера Т0 ldi temp, (1<<TOIE0) ; дозволити переривання out TIMSK, temp ; від таймеру Т0 ret ; повернення з підпрограми TIM_OVF0: in present_key, PINB ; зчитати дані з кнопок andi present_key, 0x0F ; виділити розряди РВ3-РВ0 mov temp, present_key ; зберегти в temp cpi temp, 0x0F ; якщо жодна кнопка в даний момент не натиснута breq L1 ; перейти на мітку L1 sbrs present_key, SW1 ; якщо була натиснута кнопка SW1 ldi temp, 0b11000000 ; потрібно включити діод HL1 sbrs present_key, SW2 ; якщо була натиснута кнопка SW2 ldi temp, 0b10100000 ; потрібно включити діод HL2 sbrs present_key, SW3 ; якщо була натиснута кнопка SW3 ldi temp, 0b10000000 ; потрібно включити діоди HL1 та HL2 sbrs present_key, SW4 ; якщо була натиснута кнопка SW4 ldi temp, 0b01100000 ; потрібно включити діод HL3 in present_key, PORTB ; зчитати поточний стан порта В andi present_key, 0x1F ; виділити розряди світлодіодів or present_key, temp ; записати в них код кнопки out PORTB, present_key ; включити відповідні діоди L1: reti ; повернення з переривання 4. Скласти принципову схему та написати програму на мові асемблер для мікроконтролера AT90S2313 відображення номеру натиснутої кнопки SW1-SW4 з допомогою 10-розрядного рідкокристалічного дисплею на основі контролера НТ1611 з заданою таблицею відображення: а) рідкокристалічний дисплей на базі контролера НТ1611  Тактова частота мікроконтролера 4 МГц, напруга живлення дисплею – 1,5 В.  EMBED Visio.Drawing.6  Програма ;================================================= .nolist .include "2313def.inc" .list .def temp = r16 .def present_key = r17 ; біжучий стан кнопок .def data = r18 .equ SW1 = PD6 .equ SW2 = PD5 .equ SW3 = PD4 .equ SW4 = PD3 .equ DIn = PB7 .equ SK = PB6 .equ S_Space = 0 ; код символу пробіл .equ S_1 = 1 ; код символу 1 .equ S_2 = 2 ; код символу 2 .equ S_3 = 3 ; код символу 3 .equ S_4 = 4 ; код символу 4 .cseg .org 0 rjmp RESET nop ; rjmp INT0_EXT nop ; rjmp INT1_EXT nop ; rjmp TIM_CAPT1 nop ; rjmp TIM_COMP1 nop ; rjmp TIM_OVF1 rjmp TIM_OVF0 ; вектор обробки переривання від таймеру Т0 .org 0x0B RESET: ldi temp, low(RAMEND) ; ініціалізація out SPL, temp ; стеку ldi temp, (1<<SK) + (1<<DIn) ; temp = 0b11000000 out PORTB, temp ; встановити на лініях DIn та SK 1 out DDRB, temp ; лінії DIn та SK - виходи rcall Port_Init ; ініціалізація порту В rcall Timer0_Init ; ініціалізація таймера Т0 sei ; дозвіл переривань Loop: rjmp Loop ; вічний цикл Port_Init: ldi temp, 0xFF ; встановити на входах out PORTD, temp ; підтягуючі резистори ldi present_key, 0x0F ; в початковому стані жодна клавіша не натиснута ret ; повернення з підпрограми Timer0_Init: ldi temp, 4 ; коефіцієнт ділення 256 out TCCR0, temp , дозволити роботу таймера Т0 ldi temp, (1<<TOIE0) ; дозволити переривання out TIMSK, temp ; від таймеру Т0 ret ; повернення з підпрограми TIM_OVF0: in present_key, PIND ; зчитати дані з кнопок andi present_key, 0xF0 ; виділити розряди РD6-РD3 mov temp, present_key ; зберегти в temp cpi temp, 0xF0 ; якщо жодна кнопка в даний момент не натиснута breq L1 ; перейти на мітку L1 sbrs present_key, SW1 ; якщо була натиснута кнопка SW1 ldi data, 0b00000001 ; потрібно вивести 1 sbrs present_key, SW2 ; якщо була натиснута кнопка SW2 ldi data, 0b00000010 ; потрібно вивести 2 sbrs present_key, SW3 ; якщо була натиснута кнопка SW3 ldi data, 0b00000011 ; потрібно вивести 3 sbrs present_key, SW4 ; якщо була натиснута кнопка SW4 ldi data, 0b01100000 ; потрібно вивести 4 rcall DISPLAY ; вивести код кнопки L1: reti ; повернення з переривання Symbol: ; підпрограма передачі коду одного символу в РКІ ldi temp, 5 ; встановити лічильник переданих біт L1: dec temp ; цикл передачі 4 біт breq L2 ; якщо передані всі біти b3-b0 іти на L2 sbrc data, 3 ; якщо b3 = 1 sbi PORTB, DIn ; встановити лінію DIn в 1 sbrs data, 3 ; якщо b3 = 0 cbi PORTB, DIn ; встановити лінію DIn в 0 nop sbi PORTB, SK ; сформувати nop ; тактовий nop ; імпульс nop ; тривалістю nop ; >1 мкс nop ; на виводі cbi PORTB, SK ; SK rol data ; зсунути розряди символу вліво (b3 = b2). rjmp L1 ; перейти на мітку L1 L2: sbi PORTB, SK ; після передачі символу встановити лінію SK в 1 ret ; повернення з підпрограми DISPLAY: rcall Symbol ; вивести номер кнопки ldi data, S_Space rcall Symbol ; вивести символ пробіл ldi data, S_Space rcall Symbol ; вивести символ пробіл ldi data, S_Space rcall Symbol ; вивести символ пробіл ldi data, S_Space rcall Symbol ; вивести символ пробіл ldi data, S_Space rcall Symbol ; вивести символ пробіл ldi data, S_Space rcall Symbol ; вивести символ пробіл ldi data, S_Space rcall Symbol ; вивести символ пробіл ldi data, S_Space rcall Symbol ; вивести символ пробіл ldi data, S_Space rcall Symbol ; вивести символ пробіл ret
Антиботан аватар за замовчуванням

01.01.1970 03:01-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

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

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!