Читайте также: |
|
Написання програми керування комбінаційним автоматом табличним способом
Ціль роботи: вивчити використання теорії цифрових автоматів для формалізації написання програм комбінаційних автоматів.
Вихідні дані. Вхідні сигнали для семисегментного індикатору надходять на розряди порту Р1.0-Р1.3, а керування індикатором здійснюється з порту 2 через буферний підсилювач.
Написати програму перекодування двійкового значення, які надходить з порту Р1, у значення, що відповідають цифрам шістнадцяткового алфавіту, котрі відображаються на семисегментному індикаторі. Підключення виходів порту Р2 до індикатору зображено на рис. 3.3.
Теоретичні відомості. Дешифратори будуються на основі масивів вихідних сигналів, розташовуваних у пам'яті програм. Звертання до потрібного елемента масиву здійснюється заданням зсуву відносно до початку масиву.
Розв'язок: Запишемо таблицю істинності для дешифратора (табл. 1).
Істинності для дешифратора
Таблиця 1
Входи | Виходи | Символ | ||||||||||
P1.3 | P1.2 | P1.1 | P1.0 | P2.7 | P2.6 | P2.5 | P2.4 | P2.3 | P2.2 | P2.1 | P2.0 | |
A | ||||||||||||
B | ||||||||||||
C | ||||||||||||
D | ||||||||||||
E | ||||||||||||
F |
Сформуємо в пам'яті програм контролера масив значень байта виводу згідно табл. 1 (мітка BEGDIM), які потрібно вивести на індикатор для формування шістнадцяткових цифр від 0 до F. Текст підпрограми, яка реалізує дешифратор, наведено нижче.
DEСOD: MOV DPTR,#BEGDIM; заносимо в DPTR адресу першого
; елемента масиву
MOV A,P1; уводимо вхідні сигнали
ANL A,#0FH; маскуємо старші розряди вхідних
; сигналів, одержуємо зсув в
; таблиці для даної комбінації
MOVC A,@A+DPTR; заносимо в акумулятор значення
; елемента масиву, відповідного
; вхідному коду
MOV P2,A; виводимо значення в порт
|
У даній програмі вхідне значення коду, утвореного вхідними сигналами, перетвориться в зсув для масиву вихідних значень. Потім за його допомогою зчитуємо з таблиці значення й виводимо у вихідний порт.
Методика виконання:
1. Заносимо програму у вікно редактора програми.
2. Контроль над роботою програми здійснюємо за допомогою редактора оточення. Для цього натискаємо кнопку панелі інструментів. Після входу в редактор створюємо середовище оточення й у вікні «Оточення контролера» налаштовуємо виходи порту Р2 на вихід (рис. 1).
3. Переходимо на вкладку «Зовнішні пристрої» і встановлюємо у вікні оточення чотири кнопки й семисегментний індикатор зі списку елементів.
4. Активізуючи по черзі кожний елемент, заповнюємо форму підключення його до контролера. Наприклад: кликнувши на кнопку в колонці, що з'явився ліворуч, натискаємо на кнопку у полі адреси, у вікні, що з'явилося, вказуємо, що вона підключена до виводу контролера, і в сусідній колонці до біта 0 порту Р1 (рис. 2).
1. Після підключення кнопок і індикатору виходимо з редактора оточення, зберігши файл оточення
2. Після виходу з редактора в робочому вікні з'явиться вікно «Оточення». Якщо тепер перейти в режим налагодження, то за допомогою підключених кнопок можна задавати логічні сигнали на підключених входах, а індикатор буде відображати значення сигналів на виходах.
Рис. 2. Вікно настроювання оточення контролера
Рис. 3. Підключення зовнішніх пристроїв до контролера
Звіт повинен містити текст індивідуального задання й текст програми.
Задання:
Варіант 1. Написати програму, яка перетворить код на входах Р0.0-Р0.2 у символи від 3 до D.
Варіант 2. Написати програму, яка перетворить код на входах Р0.4-Р0.6 у символи 0,2,4,6,8,А,З,E.
Варіант 3. Написати програму, яка перетворить код на входах Р1.0-Р1.2 у символи 1,3,5,7,9,B,D,F.
Варіант 4. Написати програму, яка перетворить код на входах Р 0-Р2 у символи 1,1,2,2,3,3,4,4.
Варіант 5. Написати програму, яка перетворить код на входах Р 0-Р2 у символи 2,5,8,A,C,D,E,F.
Варіант 6. Написати програму, яка перетворить код на входах Р 0-Р2 у символи 1,3,5,7,9,B,A,D.
Варіант 7. Написати програму, яка перетворить код на входах Р 0-Р2 у символи 2,6,A,E,0,4,8,C.
Варіант 8. Написати програму, яка перетворить код на входах Р 0-Р2 у символи 1,4,7,A,D,0,3,6.
Варіант 9. Написати програму, яка перетворить код на входах Р 0-Р2 у символи 0,3,6,9,C,F,2,5.
Варіант 10. Написати програму, яка перетворить код на входах Р 0-Р2 у символи 5,9,C,0,4,8,C,0.
Програмний дешифратор виконати у вигляді підпрограми з параметрами, що задаються.
Дата добавления: 2015-07-08; просмотров: 149 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Лабораторна робота №2 | | | Лабораторна робота №4 |