Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Лабораторна робота №4

Читайте также:
  1. Photoshop. Лабораторная работа №5 Редактирование фотографий.
  2. Батогами. Одначе робота ця забрала не всі її думки: дівчина стиха
  3. ІНДИВІДУАЛЬНА РОБОТА
  4. Лабораторна робота №1 Створення прототипів
  5. Лабораторна робота №2
  6. Лабораторна робота №3

Написання програми комбінаційного автомата за таблицею істинності

 

Ціль роботи: вивчити методи розв'язку логічних рівнянь для бітових змінних і засвоїти формальні методи написання програми для комбінаційних автоматів.

Теоретичні відомості. Спосіб реалізації комбінаційного автомата, розглянутий в 3 лабораторній роботі, має наступні обмеження: вхідні сигнали повинні бути підключені на один порт і підряд (інакше необхідно буде збирати інформацію з різних входів в одне вхідне слово); при досить великій кількості входів (7 і більше) і неповному використанні вихідних комбінацій нераціонально використовується пам'ять програм. Тому пропонується інший спосіб розв'язку задання керування, заснований на програмній реалізації логічних кон’юнктивно диз'юнктивних рівнянь.

Як і в попередньому випадку, функціонування автомата задається у вигляді таблиці істинності, наприклад, табл. 1


 

Приклад задання алгоритму у вигляді таблиці істинності


Таблиця 1


 

 

Входи Вихід
P1.2 P1.4 P2.1 P2.3 Р1.7
         
         
         

Запишемо логічне рівняння для виходу згідно з наведеною таблицею.

 

Р1.7=!Р1.2 & P1.4 & P2.1 & P2.3 +Р1.2 &!P1.4 & P2.1 &!P2.3+Р1.2 &

!P1.4 & P2.1 &!P2.3 (3.1)

 

Складемо схему алгоритму для першої функції «І» рівняння (рис. 3.1).

Слід звернути увагу, що команді переходу за умовою відповідає умовний оператор на блок-схемі алгоритму з результатом «ні» унизу. Тому для того, щоб програма була зручною, пропонується використовувати команди, які перевіряють інверсну умову. Тоді послідовне виконання таких команд і буде відповідати виконанню вихідної умови логічної функції.

У результаті програмна реалізація для першої функції «І» рівняння має вигляд:

JB P1.2,M1 JNB P1.4,M1 JNB P2.1,M1 JNB P2.3,M1 SETB P1.7 LJMP EXIT

M1: * * *;перевірка наступної умови

Схема алгоритму для функцій «АБО» наведена на рис. 3.6 у розділі 3.


 

У цьому алгоритмі під &1, &2 маються на увазі логічні функції «І» по рядках таблиці наведених рівнянь.

Повна програма логічного рівняння, відповідного до таблиці істинності, має вигляд:

Loop: JB P1.2,M1; перевірка умови першого рядка таблиці

JNB P1.4,M1 JNB P2.1,M1 JNB P2.3,M1

SETB P1.7; установка виходу в одиницю

LJMP Loop; і вихід


M1:

 

M2:


 

JNB P1.2,M2;; перевірка умови другого рядка таблиці

JB P1.4,M2 JNB P2.1,M2 JB P2.3,M2

SETB P1.7; установка виходу в одиницю

LJMP Loop; і вихід

 

JNB P1.2,M3; перевірка умови третього рядка таблиці

JB P1.4,M3 JNB P2.1,M3 JB P2.3,M3

SETB P1.7; установка виходу в одиницю

LJMP Loop; і вихід


 
M3: CLR P1.7; скинути вихід у нуль – не виконалася жодна з умов

LJMP Loop; і вихід

 

Методика виконання:

1. Заносимо програму у вікно редактора програми.

2. Контроль над роботою програми зробимо за допомогою редактора оточення. Для цього підключаємо на входи відповідні до задання кнопки, а на виходи – світлодіоди.

3. Правильність складання умов появи вихідних сигналів перевіряється під час симуляції виконання в покроковому режимі, остаточна перевірка – в автоматичному режимі. Для переходу на симуляцію в автоматичному режимі необхідно після включення повторно нажати клавішу F9.

Звіт повинен містити текст програми, вихідні дані й блок-схему алгоритму.

 

Варіанти задань

Варіант 1 Комбінація натискання клавіш Стан портів виводу
Порти МК P0.0 P1.2 P1.4 P1.5 P2.1 P2.2 P1.3 P2.3
Кодова комбінація 1                
Кодова комбінація 2                

 

 

Варіант 2 Комбінація натискання клавіш Стан портів виводу
Порти МК P0.0 P1.2 P1.4 P1.5 P2.1 P2.2 P1.3 P2.3
Кодова комбінація 1                
Кодова комбінація 2                

 

Варіант 3 Комбінація натискання клавіш Стан портів виводу
Порти МК P0.0 P1.2 P1.4 P1.5 P2.1 P2.2 P1.3 P2.3
Кодова комбінація 1                
Кодова комбінація 2                

 

Варіант 4 Комбінація натискання клавіш Стан портів виводу
Порти МК P0.0 P1.2 P1.4 P1.5 P2.1 P2.2 P1.3 P2.3
Кодова комбінація 1                
Кодова комбінація 2                

 

Варіант 5 Комбінація натискання клавіш Стан портів виводу
Порти МК P0.0 P1.2 P1.4 P1.5 P2.1 P2.2 P1.3 P2.3
Кодова комбінація 1                
Кодова комбінація 2                

 

Варіант 6 Комбінація натискання клавіш Стан портів виводу
Порти МК P0.0 P1.2 P1.4 P1.5 P2.1 P2.2 P1.3 P2.3
Кодова комбінація 1                
Кодова комбінація 2                

 

Варіант 7 Комбінація натискання клавіш Стан портів виводу
Порти МК P0.0 P1.2 P1.4 P1.5 P2.1 P2.2 P1.3 P2.3
Кодова комбінація 1                
Кодова комбінація 2                

 

Варіант 8 Комбінація натискання клавіш Стан портів виводу
Порти МК P0.0 P1.2 P1.4 P1.5 P2.1 P2.2 P1.3 P2.3
Кодова комбінація 1                
Кодова комбінація 2                

 

Варіант 9 Комбінація натискання клавіш Стан портів виводу
Порти МК P0.0 P1.2 P1.4 P1.5 P2.1 P2.2 P1.3 P2.3
Кодова комбінація 1                
Кодова комбінація 2                

 

 

Варіант 10 Комбінація натискання клавіш Стан портів виводу
Порти МК P0.0 P1.2 P1.4 P1.5 P2.1 P2.2 P1.3 P2.3
Кодова комбінація 1                
Кодова комбінація 2                

 

Варіант 11 Комбінація натискання клавіш Стан портів виводу
Порти МК P0.0 P1.2 P1.4 P1.5 P2.1 P2.2 P1.3 P2.3
Кодова комбінація 1                
Кодова комбінація 2                

 

Варіант 12 Комбінація натискання клавіш Стан портів виводу
Порти МК P0.0 P1.2 P1.4 P1.5 P2.1 P2.2 P1.3 P2.3
Кодова комбінація 1                
Кодова комбінація 2                

 

Варіант 13 Комбінація натискання клавіш Стан портів виводу
Порти МК P0.0 P1.2 P1.4 P1.5 P2.1 P2.2 P1.3 P2.3
Кодова комбінація 3                
Кодова комбінація 4                

 

Варіант 14 Комбінація натискання клавіш Стан портів виводу
Порти МК P0.0 P1.2 P1.4 P1.5 P2.1 P2.2 P1.3 P2.3
Кодова комбінація 3                
Кодова комбінація 4                

 

Варіант 15 Комбінація натискання клавіш Стан портів виводу
Порти МК P0.0 P1.2 P1.4 P1.5 P2.1 P2.2 P1.3 P2.3
Кодова комбінація 3                
Кодова комбінація 4                

 

Варіант 16 Комбінація натискання клавіш Стан портів виводу
Порти МК P0.0 P1.2 P1.4 P1.5 P2.1 P2.2 P1.3 P2.3
Кодова комбінація 3                
Кодова комбінація 4                

 

Лабораторна робота №5 Дослідження тимчасових затримок у МП системах

Ціль роботи: навчитися писати програми й розраховувати значення змінних для програмних тимчасових витримок.

Теоретичні відомості. Тимчасові витримки в мікропроцесорних системах легше всього організувати через програмні лічильники. У якості лічильників зручно використовувати регістри R0 – R7. При цьому виходимо з того, що команди виконуються за кінцевий час. Вихідними даними для розрахунків є частота кварцу мікроконтролера. У середовищі Mcstudio вона встановлюється в меню ВиконанняОпції симуляції. Програми формування затримок зручно оформляти у вигляді підпрограми з передачею параметрів. Параметр – значення регістрів, що забезпечує задану тимчасову затримку.

У прикладі наведено програму тимчасової затримки для двобайтового лічильника.

Приклад:

Mov r2,#25h; завантаження молодшого байта затримки 1 ц Mov r3,#47h; завантаження старшого байта затримки 1 ц Lcall zd1; виклик підпрограми затримки 2 ц

M1: ajmp M1; нескінченний цикл

zd1: mov a,r2; пересилання вхідного значення в акумулятор 1 ц вип. r3


раз


 

m2: djnz a,m2; декремент молодшого байта затримки 2 ц вип. r2*r3 раз

djnz r3,zd1; декремент старшого байта затримки2 ц вип. r3 раз

ret;вихід з підпрограми 2 ц

Розрахунки часу затримки. За основу береться тривалість одного


 
машинного циклу контролера. При тактовій частоті процесора 12 МГц тривалість машинного циклу 1 мкС. Загальна тривалість обчислюється за наступною формулою

Тзд=1ц+1ц+2ц+1ц*r3+2ц*r2*r3+2ц*r3+2=

=1+1+2+71+2*37*71+2*71+2=10869 [мkc].

Методика виконання:

1. Контроль витримки затримки проводиться за покажчиком часу, що перебуває у вікні «Ресурси» (пункт «Ядро MCS-51» (рис. 1).

2. Встановлення заданої частоти генератора виконується через пункт меню Виконання – Опції симуляції.

3. Для контролю виконання програми в автоматичному режимі використовувати крапку зупинки, встановлену на мітці М1. Для задання крапки зупинки необхідно маркер помістити на потрібну крапку програми й натиснути клавішу F5.

4. Задається крапка зупинки. Програма запускається на симуляцію в автоматичному режимі після переривання виконання (в крапці зупинки), час виконання не повинен відрізнятися від встановленого в заданні більш ніж на 5 мкс.


 

 

 

Рис. 1. Вікно ядра MCS-51 Рис. 2. Вікно установки частоти

генератора мікроконтролера

 

5. Значення регістрів визначається за формулою, що наведена вище. Для цього треба задати значення старшого байта затримки, що дорівнює 255, і за рівнянням знайти значення молодшого байта. Якщо отримане значення перевищує число 255, додаємо ще один цикл у програмі. З урахуванням цього коректуємо формулу й знаходимо потрібні значення.

Варіанти задань.

Час затримки повинен дорівнювати номеру за списком, що помножений на 27 мілісекунд.

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

 


Дата добавления: 2015-07-08; просмотров: 131 | Нарушение авторских прав


Читайте в этой же книге: Директиви асемблера | Режим командного рядка | Режим роботи 0 | Інтерфейс RS 232 | Довжина кабелю | SCL S P | Система керування з неперервними характеристиками | Система керування кроковим двигуном | Методика виконання. | Лабораторна робота №2 |
<== предыдущая страница | следующая страница ==>
Лабораторна робота №3| Лабораторна робота №6

mybiblioteka.su - 2015-2024 год. (0.016 сек.)