Завдання до домашньої підготовки



Мы поможем в написании ваших работ!


Мы поможем в написании ваших работ!



Мы поможем в написании ваших работ!


ЗНАЕТЕ ЛИ ВЫ?

Завдання до домашньої підготовки



 

1. Ознайомтеся зі схемою багаторежимного буферного регістра та схемою програмного пристрою введення-виведення інформації в паралельному коді КР580ИК55.

2. Вивчіть способи організації обміну інформацією між мікро-ЕОМ і зовнішніми пристроями. Розгляньте схеми під'єднання пристрою введення-виведення даних при різних способах обміну.

3. Ознайомтеся з командами вводу-виводу МП БІС КР580ИК80, а також часовими діаграмами їх виконання.

4. Зобразити схему під'єднання до мікро-ЕОМ пристрою введення-виведення, що використовуються при проведенні лабораторної роботи.

5. Вивчити групу логічних команд і команд умовної передачі керування.

6. Ознайомтесь з розрядами регістра ознак МП БІС та правилами запису в них 1.

7. Ознайомтесь з програмами 8.6, 8.7, 8.8, 8.9.

8. Самостійно розробіть програми: а) увімкнення світлодіодів вихідного пристрою, якщо число, що записане у вхідному пристрої, більше 3; б) увімкнення світлодіодів вихідного пристрою, якщо число, записане у вхідному пристрої, більше 3, але менше 8.

9. Змінити вигляд програми 8.8 так, щоб мікро-ЕОМ реєструвала на 0 в п'ятому розряді при записаних 1 у всіх інших розрядах.

 

Завдання до лабораторної роботи

 

Завдання 1. Дослідити програму 8.6.

Порядок виконання завдання: 1. Ввести в мікро-ЕОМ програму 8.6. Здійснити пуск програми. 2. Впевнитись, що при виконанні програми мікро-ЕОМ постійно переписує дані з вхідного пристрою у вхідний. Для цього за допомогою перемикачів вхідного пристрою змінити числа, записані в ньому. Інформація про числа в пристроях введення-виведення може відображатися світлодіодами.

Завдання 2. Дослідити програму 8.7.

Порядок виконання завдання: 1. Ввести в мікро-ЕОМ програму 8.7. Здійснити пуск програми і дослідити результат її виконання по числу, записаному у вхідний пристрій. 2. Замінюючи в програмі 8.7 двохбайтну команду ANI<D> на однобайтні ANA A, XRA A, ORA A, дослідити результати їх виконання по числу, записаному у вихідному пристрої.

Завдання 3. Дослідити програму 8.8.

Порядок виконання завдання: 1. Ввести в мікро-ЕОМ програму 8.8. Здійснити пуск програми і впевнитись, що при її виконанні мікро-ЕОМ реагує лише на ті числа у вхідному пристрої, які містять 1 в п'ятому розряді. Після закінчення виконання програми ( виконання в програмі команди RST1) в розряді Z регістру стану записана 1. 2. Дослідити програму 8.8, яка змінила вигляд і дозволяє мікро-ЕОМ реагувати на 0 в п'ятому розряді при записаних 1 у всіх інших розрядах.

Завдання 4. Дослідити програму 8.9.

Порядок виконання завдання: 1. Ввести в мікро-ЕОМ програму 8.9. Здійснити пуск програми і впевнитись, що при наявності 1 лише у другому розряді числа вхідного регістра світлодіоди вихідного регістра увімкнені і мікро-ЕОМ працює в циклі WAIT 2. 2. Записати 0 у другий розряд вхідного пристрою при увімкнених світлодіодах вхідного пристрою. Записати 1 в п'ятий розряд вхідного пристрою і впевнитись, що світлодіоди вихідного пристрою вимикаються і мікро-ЕОМ знаходиться при виконанні циклу WAIT 1 програми. 3. Встановити 1 одночасно у другому та п'ятому розрядах числа у вхідному пристрої і перевірити, що мікро-ЕОМ послідовно виконує обидва цикли (WAIT 1 WAIT 2) програми.

Завдання 5. Дослідити програми, розроблені в п. 8 завдання для домашньої підготовки.

П р и м і т к а. Програми, розроблені при виконанні п. 8 завдання для домашньої підготовки, дослідіть самостійно.

 

Робота на навчальній ЕОМ

 

В навчальній мікро-ЕОМ вхідні і вихідні пристрої виконані за схемами, наведеними на рис. 8.6 і 8.7. Адреса вхідного пристрою – 20, а вихідного – 30. Таким чином, всі програми, приведені в лабораторній роботі, завдання і порядок їх виконання можуть бути без будь-яких змін виконані на навчальній мікро-ЕОМ.

 

Зміст звіту

 

Звіт повинен містити: 1. Схеми під'єднання зовнішніх пристроїв до мікро-ЕОМ. 2. Часові діаграми процесу виконання мікро-ЕОМ команд введення-виведення даних з зовнішніх пристроїв. 3. Самостійно розроблені і дослідженні в процесі виконання лабораторної роботи програми, вказані в п. 8 завдання для домашньої підготовки. 4. Повний перелік команд передачі керування за умовою для МП БІС КР580. 5. Повний перелік команд логічних операцій для МП БІС КР580ИК80.

 

Завдання для самоперевірки

 

1. За допомогою яких команд мікро-ЕОМ може здійснювати введення-виведення інформації?

2. За скільки машинних тактів здійснюється введення-виведення даних за командами IN<A1>, OUT<A1>?

3. Наведіть схеми під'єднання дешифраторів адрес і зовнішніх пристроїв при організації обміну інформацією з зовнішніми пристроями за допомогою різних команд.

4. Вкажіть переваги і недоліки різних методів адресації до зовнішніх пристроїв.

5. При виконанні яких команд, наведених в програмі 8.7, задіються розряди регістра стану МП БІС?

6. За якими умовами записується 1 в кожній з розрядів регістра стану МП БІС?

7. Перерахуйте види логічних операцій, які виконує МП БІС.

8. Перерахуйте режими роботи програмного пристрою введення-виведення інформації в паралельному коді КР580ИК55.

9. Вкажіть відмінності в керованих сигналах схем К589ИР12 і КР580ИК55 при використанні їх в режимі введення-виведення інформації в мікро-ЕОМ.

10. Наведіть різні варіанти зовнішніх пристроїв до мікро-ЕОМ за допомогою схем К589ИР12 і КР580ИК55.

11. Розгляньте можливі способі організації обміну інформацією між двома мікро-ЕОМ в паралельному коді за допомогою схеми КР580ИК55.

 

Література

 

1. Горбунов В.Л., Панфилов Д.И., Преснухин Д.Л. Микропроцессоры. Основы построения микро-ЕОМ. – М.: Высшая школа, 1984.

2. Балашов Е.П., Пузанков Д.В. Микропроцессоры и микропроцесорные системы: Радио и связь, 1981.

3. Прангишвили И.В. Микропроцессоры и микро-ЕОМ. – М.: Энергия, 1979.

4. Алексеенко А.Г., Галицин А.А., Иванников А.Д. Проектирование радиоэлектронной аппаратуры на микропроцессорах. – М.: Радио и связь.

 

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

ПІДПРОГРАМА І СТЕК

 

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

 

Короткі відомості з теорії

 

Пам'ять мікро-ЕОМ, що побудована на підставі МПК серії К580, може мати не більше 65536 однобайтних комірок. Враховуючи обмежені можливості пам'яті при розробці програм, потрібно старатися зробити їх як можна коротшими. З цією метою частина програми, яка неодноразово повторюється, або програма, яка часто використовується, можуть бути оформлені у вигляді підпрограм – послідовність команд, виконання яких може бути викликано з будь-якого місця програми будь-якою кількістю разів. Процес передачі управління до підпрограми називається її викликом. Дані і адреси, потрібні для роботи підпрограми, називаються вхідними параметрами. Результати роботи підпрограми, що передаються по закінченні її роботи в основну програму, називаються вихідними параметрами.

Для виклику підпрограми і поверненню з них використовуються команди CALL<A2> <A1> і RET.

Команда CALL <A2> <A1> загружає в програмний лічильник МП БІС вміст байтів <A2> <A1>, записаних в наступних двох адрес пам'яті після адреси, де записаний код команди CALL (CD). Вміст байта <A2> записується в молодший байт PCL програмного лічильника, а третій байт <A1> команди - в старший байт PCH програмного лічильника, при цьому МП БІС автоматично зберігає в стеку адресу основної програми, до якого вона буде звертатися після виконання підпрограми.

Стек – спеціально організована область ОЗП, задіяна в мікро-ЕОМ для тимчасового зберігання даних або адрес. Число, записане в стек останнім, дістається з нього першим.

Команда RET (С9) кладе в програмний лічильник останнє записане да даний момент в стеку число. Після цього виконання програми буде здійснюватись з цієї адреси. Будь-яка підпрограма повинна закінчуватись командою RET.

Автоматичне зберігання і відновлення адреси основної програми при виконанні підпрограм дозволяє зробити підпрограми вкладеними, тобто здійснити виклик однієї підпрограми з іншої. Рівень вкладання для даної мікро-ЕОМ визначається лише розміром стеку.

Існують також команди умовного виклику підпрограми і повернення з них. Вони дозволяють викликати підпрограму і повернутися з неї за визначеним станом заданих розрядів регістра ознак (аналогічно командам умовним переходів). Всі команди умовного виклику підпрограми – трьохбайтні, в другому і третьому байтах сповіщається початкова адреса підпрограми. Команди виклику підпрограм і повернення з них використовують стек і внутрішній регістр МП БІС SP (STACK POINTER) для адресації до стека.

Крім команд виклику підпрограм і повернення з них зі стеком можна обмінюватись інформацією за допомогою команд PUSH<R> (записати в стек вміст позначеного регістра МП БІС) і POP<R> (записати дані зі стека в позначений регістр МП БІС). Ці команди є однобайтними, і в них міститься вказані пари регістрів МП БІС.

При запису в стек вміст пари регістрів або програмного лічильника за адресою SP-1 записується вміст старшого регістра з вказаної пари або старший байт PCH програмного лічильника, а за адресою SP-2 в стек записується вміст молодшого регістра з вказаної пари молодшого байта PCL програмного лічильника.

При запису зі стека даних в пару регістрів або програмний лічильник в молодший регістр пари або PCL записується число з адреси, вказаної в покажчику стека SP, а в старший регістр пари або PCH – число, записане за адресою SP+1. В результаті виконання команди вміст покажчика стека SP збільшується на 2. Дані в пам'яті не змінюються, а лише відбувається їх читання і збільшення вмісту SP.

Таким чином, при запису даних адреси стека зростають від більших до менших, а показник стека SP завжди містить останню адресу стека, в якій записано число.

При розробці програм необхідно спочатку назначати область стека, записуючи в SP адресу за допомогою команди LXI SP<A2> <A1> або команди SPHL.

Всі операції зі стеком повинні бути збалансовані, тобто кожна підпрограма повинна містити кількість команд PUCH<R> і POP<R> та закінчуватись командою RET. В протилежному випадку виконання команди RET в кінці підпрограми призводить до запису в програмний лічильник випадкового числа зі стеку. Адреса повернення в основну програму буде втрачена і зруйнується послідовність її виконання.

Як правило, на початку кожної програми зберігають в стеку вміст всіх задіяних при її виконанні регістрів за допомогою команд PYSH<P>. В кінці підпрограми відновлення вмісту регістрів здійснюється за допомогою команд POP<R> і в зворотній послідовності по відношенню до їх запису в стек.

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

Алгоритм роботи часової затримки наведений на рис. 8.7. Загальний час затримки обчислюється за формулою

,

де - число, спочатку записане в лічильнику.

Як лічильник вибраний регістр В, в який записується число з регістру С.

Команда NOP потрібна для збільшення часу виконання циклу, а таким чином, і загальної затримки. Замість команди NOP може бути записана будь-яка послідовність команд, виконання яких не змінює вміст регістрів мікропроцесора. Час запису числа в регістр В і повернення з підпрограми фіксований і в цикл не входить. Мінімальна затримка для наведеної підпрограми визначається при і дорівнює

.

Максимальна затримка має місце при і обчислюється за формулою

.

Підпрограма DLY (підпрограма 8.10) є підпрограмою часової затримки, яка записана у відповідності з алгоритмом, показаним на рис. 8.7. Розглянимо приклад використання підпрограмі часової затримки при організації звукових сигналів в мікро-ЕОМ.

В мікро-ЕОМ звукові сигнали можуть формуватися найпростішою схемою (рис. 8.8), на вхід якого зі звуковою частотою записуються по черзі "0" і "1". Будемо вважати, що пристрій формування звукових сигналів має адресу 80. Схема алгоритму роботи підпрограми генерації звукових коливань (підпрограма 8.11) наведена на рис. 8.9.

Підпрограма 8.10.

Адреса Машинний код Мітка Мнемокод Коментар
  MOV B, C записати число з регістра С в регістр В
DLY NOP немає операції
  DCR B зменшити число в регістрі В на 1
C2 0109   JNZ DLY якщо число, записане в регістрі В, не дорівнює нулю, то йти на DLY
C9   RET  

Підпрограма 8.11.

Адреса Машинний код Мітка Мнемокод Коментар
0A00 0A01 AF D3 80 BPP XRA A OUT BP очистити акумулятор записати 00 у вихідний пристрій
0A03 CD 0009   CALL DLY викликати підпрограму затримки
0A06 2F   CMA записати код ГГ в акумулятор
0A07 D3 80   OUT BP записати код ГГ в вихідний пристрій
0A09 CD 0009   CALL DLY викликати підпрограму затримки
0A0C C9   RET  

Програма MAIN (програма 8.12) є програмою генерації сигналів з частотою, що задається числом з вхідного регістру.

Програма 8.12

Адреса Машинний код Мітка Мнемокод Коментар
DB 20 MAIN IN 20 записати число з вхідного регістра в акумулятор
4F   MOV C, A записати число в регістр С
СD 000A   CALL BPP викликати підпрограму ВВР
C3 0008   JMP MAIN продовжити

При використанні підпрограм за рахунок зміни вхідних параметрів можна впливати на кінцевий результат виконання підпрограм. Розглянимо це на прикладі підпрограми регульованої затримки часу (підпрограма 8.13).

Програма складається з двох підпрограм: DELB (адреса 0430) і DELA (адреса 0429). Підпрограма DELB здійснює регульовану часову затримку, і вхідним параметром її є двохбайтне число, записане в парі регістрів (В, С). Це число і визначає тривалість затримки в мілісекундах. Винятковим випадком підпрограми DELB є підпрограма DELA, що здійснює фіксовану затримку в 1 мс і не має вхідних параметрів. Таким чином. Якщо необхідно мати в програмі фіксовану затримку в 1 мс, то можна звертатися за допомогою команди CALL до підпрограми DELA. При необхідності отримання визначеної заданої часової затримки в програмі необхідно записати відповідне число в регістри В, С, а потім викликати підпрограму DELB.

Програма 8.13.

Адреса Машинний код Мітка Мнемокод Коментар
C5 DELA PUSH B зберегти вміст регістрів В і С в стеку
042A 01 0100   LX1 B, 001 встановити тривалість 1 с
042D C3 3104   JMP DEL1
C5 DELB PUCH B зберегти вміст регістрів В і С в стеку
F5 DEL1 PUSH PCW зберегти вміст PCW в стеку
AF   XRA A очистити акумулятор
D5   PUSH D зберегти вміст регістрів D і E в стеку
16 67 DEL 2 MVID, TIME завантажити лічильник
DEL 3 DCR D 1 с затримки зменшити вміст лічильника на 1
C2 3604   JNZ DEL 3 якщо не 0, продовжувати
043A OB   DCX зменшити вміст лічильника на 1
043B 043C 043F B8 C2 3404 B9 C2 3404   CMP D JNS DEL2 CMP C JNZ DEL2 якщо не 0, продовжувати
D1   POP D відновити вміст регістрів D, T
F1   POP PCW те ж, PCW
C1   POP B те ж, В, С
C9   RET  

 

Завдання для домашньої підготовки

 

1. Вивчити часові діаграми виконання мікро-ЕОМ команд CALL<A2> <A1> і RET.

2. Ознайомитесь з командами виклику і повернення з підпрограми за умовою для МП БІС.

3. Визначити, при яких числах, записаних в регістрі В, підпрограма 8.9 буде здійснювати мінімальний і максимальний час затримки. Визначити ці часи, якщо машинний такт Т – 1 мкс.

4. Розробіть підпрограму 5- і 10-секундної часової затримки.

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

6. Визначте для підпрограми 8.13, при яких числах в регістрах В і С буде максимальний і мінімальний час затримки. Визначте ці часи, якщо машинний такт Т -–1 мкс.

7. Розберіть програму 8.14, яка визначає, який з восьми перемикачів вхідного пристрою (адреса 20) мікро-ЕОМ встановлений в положення "0":

а) складіть алгоритм роботи програми 8.14;

б) запишіть підпрограму, що використовується в програмі 8.14;

в) встановіть, в якому регістрі МП БІС міститься інформація про номер перемикача вхідного пристрою, який встановлений в "0";

г) визначте, як буде працювати програма 8.14, якщо на вхідному пристрою будуть встановлені в стан "0" не один, а два перемикача.

Програма 8.14.

Адреса Машинний код Мітка Мнемокод Коментар
31 B00B   LXI SP, 0 BB0 записати в покажчик стеку SP адресу 0900
DB20 WAITC IN 20 отримати число з вхідного пристрою
FE FF   CPI FF чи містить будь-який розряд число 0
CA 0308   JZ WAITC якщо ні, то чекати
800A CD 1008   CALL IDSW якщо так, то викликати підпро-граму визначення розряду, в якому записаний 0
800D CF   RST I закінчити виконання програми
06 FF IDSW MVI B, FF записати в регістр В число FF
SRCH INR B збільшити вміст регістра В на 1
0F   RRC зсунути число в акумуляторі вправо
DA 1208   JC SRCH якщо С = 1, то продовжувати
C9   RET повертання з підпрограми

 



Последнее изменение этой страницы: 2016-04-23; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.233.219.62 (0.011 с.)