Електроний посібник з
дисципліни "Мікропроцесорні системи"
 
Дипломный проект
                                                               Лабораторна робота №4

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

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

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

                                                                                                                                                  



Входи
Вихід
P1.2
P1.4
P2.1
P2.3
Р1.7
0
1
1
0
1
1
0
1
0
1
1
1
0
0
1
 
 
 
Запишемо логічне рівняння для виходу згідно з наведеною таблицею.

Р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:
JNB P1.2,M2; ; перевірка умови другого рядка таблиці
JB P1.4,M2 JNB P2.1,M2 JB P2.3,M2
SETB P1.7; установка виходу в одиницю
LJMP Loop; і вихід

M2:
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.
  Звіт повинен містити текст програми, вихідні дані й блок-схему алгоритму.

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