Синтез цифрових пристроїв

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

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

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

Рік:
2013
Тип роботи:
Розрахунково - графічна робота
Предмет:
Обчислювальна техніка та мікропроцесори

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

Міністерство освіти і науки України Національний університет «Львівська політехніка»  ГРАФІЧНО-РОЗРАХУНКОВА РОБОТА з дисципліни: «Обчислювальна техніка та мікропроцесори» на тему: «Синтез цифрових пристроїв» Варіант №4 Львів - 2013 ЗМІСТ: Вступ Розробка мікропроцесорної системи на базі MKMCS-51. Розробка і опис принципової схеми Блок-схема алгоритму Розробка програми на мові Асемблер Висновок Список використаної літератури ВСТУП Системи автоматичного управління виробничими процесами, інформаційно-вимірювальні та контрольно-діагностичні системи, а також автоматизація наукових досліджень не можуть бути реалізовані без пристроїв, що виконують функції управління. При побудові системи управління будь-яким об'єктом постає ряд завдань: робити вимірювання (можливо у великій кількості і від декількох об'єктів), проводити їх обробку, забезпечувати зберігання інформації, виробляти керуючі сигнали. Все це буде займати у оператора багато часу і може призводити до грубих помилок. Тому постає питання про автоматизацію вимірювань, що збільшує швидкість зняття відліків, а, отже, і обсяг одержуваної інформації, веде до підвищення точності та достовірності результатів вимірювань і звільняє людину від заняття монотонної і трудомісткою роботою. У зв'язку з цим останнім часом в якості пристроїв управління зростає застосування мікроконтроллерів. Сучасні мікроконтролери володіють такими обчислювальними ресурсами і можливостями управління в режимі реального часу, для одержання яких раніше необхідні були дорожчі багатокристальні компонування. 2.Розробка функціональної схеми мікропроцесорної системи на базі МК 51.  3.Розробка і опис принципової схеми: Для реалізації мікропроцесорної системи відображення інформації на семи сегментному індикаторі (LED) я використовую такі елементи: а) мікроконтролерIntel 8051 б) 9 розрядний (LED) семи-сегментнийіндикатор АЛС318 в) дешифратор К155ИД3 (4-16) г) 8-ми розрядний паралельно-паралельний регістр зсуву К155ИР13 г) кварцовий генератор «HC-49 S» з частотою 11,0592 МГц Спроектована мікропроцесорна система живиться від стабілізованого джерела напруги величиною +5В. Частота з якою працює контролер від кварцового резонатора становить 11.0592 МГц, тому тривалість одного машинного циклу становить 2 мкс. В даній схемі реалізований принцип динамічної індикації. Індикатор АЛС318 має спільний катод, а тому щоб засвітити певний розряд необхідно подати на анод логічну «1» а на катод логічний «0». Для засвічування потрібного розряду використовується дешифратор на виході якого є тільки один логічний нуль ( до катода ). Для засвічування необхідних сегментів використовується порт 1, який з’єднаний з анодами індикатора через буферний регістр зсуву, який виконує узгодження рівнів сигналів мікропроцесора і індикатора. Сам регістр синхронізується з 4-ої ніжки порта2 кожен раз при активації відповідного розряду індикатора. Зважаючи на те, що у дешифратора є невикористаними аж 7 виходів, ми легко можемо збільшити кількість розрядів індикатора аж до 16. 4.Блок-схема алгоритму роботи індикатора АЛС318  5.Розробка програми на мові Асемблер з необхідними коментарями Код програми яка реалізує виведення даних на спроектованому нами цифровому пристрої. ;===================== Ініціалізація банків ==================== bank0 equ 00000000B bank1 equ 00001000B bank2 equ 00010000B bank3 equ 00011000B ;===================== Оголошення змінних =================== adressequ R1 ; для пересування по буферу даних indexequ R0 ; для зміни розряду індикатора ;===================Сегмент даних ======================== DSEG ORG 20H ORG 30h BufROM: DS 10H ; визначення масиву даних для відображення ORG 70H Stack: DS 10H ;=================== Сегмент коду ========================= CSEG ORG 0000H ; старт програми jmpstart ; перехід до початку програми ORG 0003H reti ; вектор переривання INT0 ORG 000BH call INTERUPT ; вектор переривання таймера 0 ORG 0013H reti ; вектор переривання INT1 ORG 001BH reti ; вектор переривання таймера 1 ORG 0023H reti ; вектор переривання UART ORG 0030H Start: movsp, #(stack-1) ;встановлення вершини стеку ;================ ініціалізація портів ================== mov p0, #11111111B mov p1, #11111111B mov p2, #11111111B mov p3, #11111111B ;================= запис попередніх значень в буфер ====== movbufROM,#0 mov bufROM+1,#1 mov bufROM+2,#2 mov bufROM+3,#3 mov bufROM+4,#4 mov bufROM+5,#5 mov bufROM+6,#6 mov bufROM+7,#7 mov bufROM+8,#8 mov bufROM+9,#9 ;=================== ініціалізація ======================= call INITIALIZATION ; ініціалізація змінних mov TL0,#LOW(-5000) ; встановлення таймера 0 на 5 мс mov TH0,#HIGH(-5000) ; в режим зворотнього відліку mov IE,#0ffh ;глобальний дозвіл переривань mov TMOD,#00000001b ;встановлення Т0 в 16 бітний режим mov TCON,#10h ;запуск таймера 0 ;============ основне тіло програми ====================== MAIN: jmp MAIN ;================= обробка переривань ==================== INTERUPT: mov P2,#0FFh ;скидання порта2 mov IE,#0 ;заборона переривань mov TCON,#0h ;вимкнення таймера mov A,@adress ;зчитування значення розряду з буфера даних callDecoder ;декодування зчитаного значення в 16h mov P1,A ;виведення обробленого значення на індикатор mov P2,index ;активація поточного розряду індикатора incadress ;перейти на наступний байт в буфері даних djnzindex,skip ;якщо при переході на інший розряд відбувсявихід за межі розрядної сітки індикатора то викликаємо функцію ініціалізації call INITIALIZATION skip: mov TL0,#LOW(-5000) ;встановлення таймера mov TH0,#HIGH(-5000) ; встановлення таймера mov IE,#0ffh ;дозвіл переривань mov TCON,#10h ;включення таймера reti ;повернення з переривань ;================== функція ініціалізації ==================== INITIALIZATION: movindex,#9 ;перехід на 0 розряд індикатора movadress,#BufROM ;перехід на перший байт буфера даних mov P1,#0 ;очищення порта 1 mov P2,#0FFh ;встановлення порта 2 ret ;========== функція двійково-шістнадцяткового декодування ===== Decoder: movc A,@A+PC ;зчитування потрібного значення з таблиці даних ret ;============= таблиця значень декодера ===================== db 01100000b db 11011010b db 11110010b db 01100110b db 10110110b db 10111110b db 11100000b db 11111110b db 11110110b db 11101110b db 00111110b db 10011100b db 01111010b db 10011110b db 10001110b ;================== кінець програми ======================= end ВИСНОВОК: При створенні алгоритму роботи пристрою і написанні коду програми на мові асемблер, було зроблено акцент на економічності використання ресурсів і часу роботи процесора. Алгоритм може бути з легкістю модифікований, оскільки задача виведення тут реалізована через переривання, а весь інший час роботи можна використовувати для вирішення інших задач. Використана література: Микроконтроллеры. Это же просто. Том 1 , Фрунзе А.В., 2002. Цифровые и аналоговыеинтегральныемикросхемы., С. В. Якубовский, Л. И. Ниссельсон, В. И. Кулешова,1990. Популярныемикросхемы ТТЛ , Шило В.Л. ,Аргус,1987.
Антиботан аватар за замовчуванням

25.07.2013 13:07-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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