ustify"> Блок 6: З виходу STR АЦП подається стробірующій сигнал в пристрій введення № 2. Двійковий код з АЦП надходить в пристрій введення № 2. З пристрою виводу № 2 передаємо біт в регістр А.
Блок 7: Так як це тільки один біт і для того щоб визначити його значення необхідно зрушити його з першої позиції відразу в тригер С, а нульове значення біта С на місце 15 біта і так далі. Тобто призвести зрушення всіх бітів зліва на право.
Блок 8: Після чого перевіряємо сигнальний прапор тригера С. Якщо тригер С дорівнює нулю повертаємося в п'ятий блок і так до тих пір поки не надійде стробірующій біт.
Кінець циклу перевірки стробирующего бита.
Блок 9: Двійковий код з АЦП надходить в пристрій введення № 1. З адреси пристрою зчитуємо код і записуємо значення сигналу в регістр А.
Блок 10: Після чого необхідно переписати в перший осередок виділену під пам'ять.
Блок 11: Збільшуємо значення регістра HL на один в даному циклі програми, для того щоб наступне значення не затерли попередні.
Блок 12: Збільшуємо значення регістра D на один для того щоб в наступному циклі включився наступний за рахунком канал.
Блок 13: Записуємо значення знаходиться в регістрі D в акумулятор.
Блок 14: Віднімаємо з значення регістра А значення регістра B.
Блок 15: Перевіряємо флагової тригер Z. Якщо він дорівнює нулю починаємо цикл заново, тобто повернення в блок 5
Закінчується цикл перевірки кількості перевірених каналів.
Програма закінчила свою роботу.
Блок-схема
2.2 Складання програми на мові асемблера та її розміщення в ОЗУ
У таблиці 2 наведена таблиця програми. Застосуємо дві мітки M1 і M2 для циклів перевірок.
Таблиця 2
№МеткиМнемокодОперандыКомментарийБайтыЦиклыТакты1LXIH, 012AHL 012Ah33102MVID, 0AhD 0Ah2273MVIB, 00hB 00h2274MOVA, BA B1155M2OUT1А Уст. Вив. № 123106M1IN2А Уст. Введення № 223107RRCA СДВ П (А) 1148JNCM1Проверка тригера С33109IN1А Уст. Введення № 1231010MOVM, AМ (А) 12711INXHHL (HL) +111512 INRBB (B) +111513 MOVA, BA (B) 11514CMPD (A) - (D) 11415JNZM2Проверка тригера Z3310
У таблиці 3 наведено відповідність команд і комірок пам'яті, збережених даних і осередків.
Таблиця 3.
№ команди Адреса (hex) 1031A 031B 031C2031D 031E3031F 03204032150322 032360324 03257032680327 0328 03299032A 032B10032C11032D12032E13032F140330150331 0332 0333
У таблиці 4 наведена програма циклу в кодових комбінаціях.
Таблиця 4.
№ командиАдрес ОП16МнемокодОперадныКоманда 2Команда 16Комментарій1031A 031B 031CLXIH, 031A0010 000121HL? 031A B3 ст.байт B2 мл.байт0001 00010310011 0110A2031D 031EMVID,? Ah0000 011006D? A160000 11100A3031F 0320MVIB,?? h0001 011016B? 000000 00000040321MOVA, B0111 10107AA? (B) 50322 0323OUT11101 0011D3А? У.вив № 10000 00010160324 0325IN21101 1011DBА? (У.ввода № 2) 0000 00100270326RRC0000 11110FА? сдв.П (А) 80327 0328 0329JNCМ11101 0010D2УП при С=0 перехід до осередку 0327 B3 ст.байт B2 мл.байт1000 11001A0100 1100039032A ...