|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Розробка програми горіння символів. Скласти підпрограму виведення на шестизнакове семисегментне табло букви Н на 3, 4 і 6 місцяСкласти підпрограму виведення на шестизнакове семисегментне табло букви Н на 3, 4 і 6 місця. 1. Визначити керуюче слово (табл. 1.1). Таблиця 1.1. Керуюче слово
2. Визначити двійкову комбінацію символу, який заданий викладачем (табл. 1.2). 3. Визначити двійкову комбінацію індикаторів, які задані викладачем (табл. 1.3). Таблиця 1.2 Кодування символу
Таблиця 1.3 Кодування індикаторів
4. Оформити програму (табл. 1.4). Таблиця 1.4 Підпрограма виведення на шестизнакове семисегментне табло літери Н на 3, 4 і 6 місця
2 Методика виконання завдання № 2 [2, 3, 4]
СКЛАСТИ ПІДПРОГРАМУ ВИВЕДЕННЯ НА ШЕСТИЗНАКОВЕ СЕМИСЕГМЕНТНЕ ТАБЛО ЗАДАНОГО ЗНАКУ НА ЗАДАНІ МІСЦЯ ТА ОРГАНІЗУВАТИ МИГАННЯ СИМВОЛІВ
Мигання організується за рахунок затримки між послідовними запалюваннями символів, які видаються почергово (на перше, друге, тощо) задані місця. Алгоритм програми наведено на рис. 2.1. Так як швидкодія будь-якої мікропроцесорної системи в сотні, а то і в тисячі разів перевищує швидкодію виконавчих пристроїв, часто потрібно затримувати виконання програми на деякий час. Для цього застосовуються затримки – зовнішні і внутрішні. Зовнішня затримка організується за допомогою додаткових пристроїв, що звуться таймерами. Як таймер можуть бути використані ємнісні, механічні і будь-які пристрої з електронним керуванням. В найпростішому випадку механічний таймер – це двигун, що приводить до руху механізм, який розмикає і замикає електричні контакти. Зовнішня затримка може виконуватися незалежно від роботи процесора і він виконує в цей час інші роботи. Мікропроцесору необхідно тільки періодично опитувати розряд порту, до якого підключено вихід таймера. Для запуску таймера необхідно до розряду порту, який підключено до входу ПУСК, подати “1”. Внутрішня затримка може бути: – апаратна; – програмна. Апаратна працює аналогічно зовнішній затримці. Тільки замість механічних і електричних таймерів використовуються електронні програмовані таймери, які виконані у вигляді окремого контролера і працюють в широкому часовому інтервалі. Програмна затримка не потребує якихось додаткових пристроїв. Для її здійснення достатньо задати мікропроцесору певну задачу, яку він буде вирішувати завданий час. В цьому випадку мікропроцесор буде зайнято вирішенням програми затримки, і він не зможе виконувати інші завдання. Так як будь-який мікропроцесор виконує тільки операції складання і віднімання, то складемо програму затримки, використовуючи операції віднімання. Для цього потрібно взяти два будь-яких регістри із 8 відомих, окрім регістра А, бо мікропроцесор може бути використано для вирішення інших задач. Припустимо, ми вибрали регістри В і С. Тепер ми можемо, використовуючи команду безпосереднього завантаження MVI R, (байт), записати до них деякі числа і почати віднімання з цих регістрів. Віднімання будемо проводити за допомогою команди зменшення DCR R, яка зменшує вміст вказаного регістра на 1 і результат записує в цей же регістр, при цьому встановлюючи відповідні біти в регістрі стану. Віднімання будемо проводити до тих пір, поки у відповідному регістрі не буде 0. Цю операцію краще всього можна здійснити командою умовного переходу, що аналізує регістр стану. Як видно із рис. 2.1 затримка організується 3 рази. Великі програми можуть бути спрощені шляхом застосування підпрограм (підпрограма – це відособлена частина основної програми, яка виконується необхідну кількість разів) для розв¢язування задач, що повторюються. Припустимо, що програма повинна виконувати серію розрахунків, яка містить в собі декілька множень. У цьому випадку можна написати одну універсальну підпрограму множення, яку можна застосовувати будь-яку кількість разів для виконання множення. Підпрограма може розташовуватися в будь-якій вільній області ОЗП або ПЗП, її адреси не повинні перетинатися з адресами основної програми. Для звернення до підпрограми застосовується команда САLL (адреса), що має довжину 3 байта. В першому байті записується код команди, в другому і третьому – адреса початку підпрограми. На час виконання команди САLL мікропроцесор надсилає вміст програмного лічильника (адреса повернення) до стека – спеціально вибраної частини пам¢яті. Мікропроцесор перейде до адреси повернення після виконання команди RET у кінці підпрограми. Після команди RET програма переходить до команди, що безпосередньо йде за командою САLL. На рис. 2.2. наведено алгоритм організації вкладених підпрограм. Тут при виконанні команди САLL 950 Н до стека записується адреса елемента пам¢яті, наступна за командою САLL, і керування передається підпрограмі 1 з початковою адресою 950 Н. Коли в підпрограмі 1 зустрінеться команда САLL F 00 H, відбудеться запис до стека адреси елемента пам¢яті, наступної за командою САLL, і передача керування підпрограмі 2. Після виконання підпрограми 2 за командою RET буде зчитана вершина стека і керування буде передано команді, що є наступною після САLL F 00 H. За командою RET в підпрограмі 1 з вершини стека буде взято адресу елемента пам¢яті, де записана команда САLL 950 Н, і передано керування команді, що є наступною після неї.
Записуємо підпрограму затримки у вигляді таблиці (табл. 2.1), при цьому щоб запобігти перекриттю адресного простору, основну програму пишемо з адреси 800 Н, а підпрограму – з 900 Н. В даній програмі в регістри В і С завантажуються числа, що формують тривалість затримки, причому регістр С утворює внутрішній контур затримки, а В – зовнішній. Якщо мітку K 2 встановити на місце, що вказане знаком (*), то підпрограма буде виконувати 256(FFH) + 128(80 Н) = 384 віднімань, на кожне із яких буде витрачено обумовлений час. Якщо ж мітку K 2 встановити за адресою 902 Н, тоді число віднімань буде 256 ´ 128 = 32768, так як після кожного зменшення на 1 вмісту регістра В, регістр С завантажується знову числом 255 і цикл віднімання повторюється. Для отримання тривалої затримки нам більш вигідно використовувати другий варіант установлення мітки. Таблиця 2.1 Підпрограма затримки
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.005 сек.) |