Електроний посібник з
дисципліни "Мікропроцесорні системи"
 
Дипломный проект
                      
Сформуємо в пам'яті програм контролера масив значень байта виводу згідно табл. 1 (мітка BEGDIM), які потрібно вивести на індикатор для формування шістнадцяткових цифр від 0 до F. Текст підпрограми, яка реалізує дешифратор, наведено нижче.
DEСOD:  MOV DPTR,#BEGDIM ; заносимо в DPTR адресу першого
                                                     ; елемента масиву
MOV A,P1                                   ; уводимо вхідні сигнали
ANL A,#0FH                         ; маскуємо старші розряди вхідних
                                                     ; сигналів, одержуємо зсув в
                                                     ; таблиці для даної комбінації
MOVC A,@A+DPTR                ; заносимо в акумулятор значення
                                                     ; елемента масиву, відповідного
                                                     ; вхідному коду
MOV P2,A                                   ; виводимо значення в порт
RET                                             ; виходимо з підпрограми
BEGDIM: DB 3FH, 06H, 5BH, 4FH, ; 0, 1, 2, 3
                   DB 66H, 6DH, 7DH, 07H, ; 4, 5, 6, 7
                   DB 7FH, 6FH, 77H, 7CH, ; 8, 9, A, B
                     DB 39H, 5EH, 79H,71H  ; C, D, E, F

У даній програмі вхідне значення коду, утвореного вхідними сигналами, перетвориться в зсув для масиву вихідних значень. Потім за його допомогою зчитуємо з таблиці значення й виводимо у вихідний порт.
 
Рис. 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.
Програмний дешифратор виконати у вигляді підпрограми з параметрами, що задаються.
                                                                  Лабораторна робота №3

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

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

Вихідні дані. Вхідні сигнали для семисегментного індикатору надходять на розряди порту Р1.0-Р1.3, а керування індикатором здійснюється з порту 2 через буферний підсилювач.
Написати програму перекодування двійкового значення, які надходить з порту Р1, у значення, що відповідають цифрам шістнадцяткового алфавіту, котрі відображаються на семисегментному індикаторі. Підключення виходів порту Р2 до індикатору зображено на рис. 3.3.

Теоретичні відомості. Дешифратори будуються на основі масивів вихідних сигналів, розташовуваних у пам'яті програм. Звертання до потрібного елемента масиву здійснюється заданням зсуву відносно до початку масиву.
Розв'язок: Запишемо таблицю істинності для дешифратора (табл. 1).
Методика виконання:
1. Заносимо програму у вікно редактора програми.
2. Контроль над роботою програми здійснюємо за допомогою редактора оточення. Для цього натискаємо кнопку  панелі інструментів. Після входу в редактор створюємо середовище оточення й у вікні «Оточення контролера» налаштовуємо виходи порту Р2 на вихід (рис. 1).
3. Переходимо на вкладку «Зовнішні пристрої» і встановлюємо у вікні оточення чотири кнопки й семисегментний індикатор зі списку елементів.
4. Активізуючи по черзі кожний елемент, заповнюємо форму підключення його до контролера. Наприклад: кликнувши на кнопку в колонці, що з'явився ліворуч, натискаємо на кнопку у полі адреси, у вікні, що з'явилося, вказуємо, що вона підключена до виводу контролера, і в сусідній колонці до біта 0 порту Р1 (рис. 2).
1. Після підключення кнопок і індикатору виходимо з редактора оточення, зберігши файл оточення
2. Після виходу з редактора в робочому вікні з'явиться вікно «Оточення». Якщо тепер перейти в режим налагодження, то за допомогою підключених кнопок можна задавати логічні сигнали на підключених входах, а індикатор буде відображати значення сигналів на виходах.