АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Розробка програми горіння символів. Скласти підпрограму виведення на шестизнакове семисегментне табло букви Н на 3, 4 і 6 місця

Читайте также:
  1. Великі програми повинні розроблятися так щоб їх супровід був максимально зручним.
  2. ВИЗНАЧЕННЯ ВИРОБНИЧОЇ ПРОГРАМИ ПРОЕКТОВАНОГО ЦЕХУ
  3. До програми навчання Академії входили слов’янська, грецька, польська, латинська мови, граматики цих мов, риторика, діалектика, астрономія, математика, філософія, богослов’я.
  4. За відсутності одного з трьох факторів горіння не виникає
  5. Зміст програми
  6. ЗМІСТ РОБОЧОЇ ПРОГРАМИ
  7. Зміст робочої програми по темам курсу
  8. Комплексний підхід до розробки експортної програми підприємства
  9. Матеріали для самоконтролю, тестові завдання, ситуаційні задачі та літературу дивіться у відповідних методичних розробках.
  10. Мета програми
  11. Методи визначення виробничої програми
  12. Методична розробка

Скласти підпрограму виведення на шестизнакове семисегментне табло букви Н на 3, 4 і 6 місця.

1. Визначити керуюче слово (табл. 1.1).

Таблиця 1.1.

Керуюче слово

 

D 7 D 6 D 5 D 4 D 3 D 2 D 1 D 0 шістнад­цят­ковий код
                80 Н

2. Визначити двійкову комбінацію символу, який заданий викладачем (табл. 1.2).

3. Визначити двійкову комбінацію індикаторів, які задані викладачем (табл. 1.3).

Таблиця 1.2

Кодування символу

 

Символ В 7 В 6 В 5 В 4 В 3 В 2 В 1 В 0 шістнад­цят­ковий код
Н                  

Таблиця 1.3

Кодування індикаторів

 

Індикатори А 7 А 6 А 5 А 4 А 3 А 2 А 1 А 0 шістнад­цят­ковий код
3, 4, 6                 2 С

 

4. Оформити програму (табл. 1.4).

Таблиця 1.4

Підпрограма виведення на шестизнакове семисегментне табло літери Н на 3, 4 і 6 місця

 

Адреса Код Мітка Мнемоніка Коментар
  3 E D 3 FBH   MVIA, 80 H   OUT FBH Занесення керуючого слова до аку­мулятора. Виведення керуючого слова за ад­ре­сою FBH
  3 Е D 3 F9H     MVIA, 76 H   OUT F9H   Занесення коду симво­лу до аку­мулятора. Виведення коду симво­лу за ад­ре­сою F9H
80 А 80 В 3 Е D 3 F8H     MVIA, 2 СH   OUT F8H   Занесення коду індика­торів до аку­мулятора. Виведення коду індика­торів за ад­ре­сою F8H
80 С     HLT Зупинка

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. Організація вкладених підпрограм

 

 


Записуємо підпрограму затримки у вигля­ді таблиці (табл. 2.1), при цьому щоб за­побіг­ти перекриттю адресного простору, основну програму пишемо з адреси 800 Н, а підпро­гра­му – з 900 Н.

В даній програмі в регістри В і С завантажуються чис­ла, що формують тривалість за­тримки, причому регістр С утворює внут­рішній контур затримки, а В – зовнішній. Як­що міт­ку K 2 встано­вити на місце, що вказане знаком (*), то підпрог­рама буде виконувати 256(FFH) + 128(80 Н) = 384 відні­мань, на кожне із яких буде витраче­но обумовлений час. Якщо ж мітку K 2 встановити за адресою 902 Н, тоді число віднімань буде 256 ´ 128 = 32768, так як після кожного зменшення на 1 вмісту регістра В, регістр С завантажу­ється знову чис­лом 255 і цикл віднімання повторюється. Для от­римання трива­лої затримки нам більш ви­гідно використовувати другий ва­ріант установлення мітки.

Таблиця 2.1

Підпрограма затримки

 

Адреса Код Мітка Мнемоніка Коментар
  0 Е FF     K 2: MVI B, 80 H   MVI C, FFH Завантаження регістру В чис­лом 80 Н Завантаження регістру С чис­лом 255
  O D C 2 K 1: DCR С JHZ K 2 Зменшення С на одиницю Умовний перехід на мітку K 1, якщо в регістрі С не 0
90А 90В C 2 K 2* DCR B JNZ K 2 Зменшення В на одиницю Умовний перехід на мітку K 2, якщо в регістрі В не 0  
90С C 9   RET Повернення із підпрограми

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.005 сек.)