Міністерство освіти і науки України
Національний університет „Львівська політехніка”
КУРСОВА РОБОТА
з дисципліни Цифрові пристрої та мікропроцесори на тему:
Функціональний генератор інфранизької частоти на базі МП системи
Львів 2013
Вступ
Мікропроцесорна система представляє собою систему обробки інформації й керування, реалізовану на основі сучасної елементної бази і принципу програмного керування. Для побудови мікропроцесорної системи потрібен обмежений набір апаратних ресурсів, а реалізація функцій системи покладається на програмне забезпечення. Таким чином, мікропроцесорні системи - це цифрові системи обробки інформації й керування, функціональні можливості яких визначаються програмним забезпеченням, а взаємозв'язок із зовнішнім середовищем забезпечується зовнішніми пристроями.
Мікропроцесорна система складається з наступних пристроїв: процесора (П), що виконує основні функції керування й обробки інформації; запам'ятовуючого пристрою (ЗП), призначеного для зберігання даних і програм, і пристроїв вводу/виводу (ПВВ), що забезпечують взаємозв'язок із зовнішнім середовищем. Пристрої мікропроцесорної системи об'єднані між собою внутрішньо системним інтерфейсом і взаємодіють по адресному принципу - всі підпорядковані пристрої і їхні складові частини мають неповторювані адреси, по яких до них звертаються пристрої, що виконують функції керування.
Процесор мікро-ЕОМ обробляє інформацію трьох типів – дані, адреси й команди програми. Над даними виконуються арифметичні й логічні операції, реалізовані процесором. Обробка адрес визначається способом зберігання й доступу до даних і команд і також базується на виконанні арифметичних операцій. Обробка команд полягає в перетворенні коду команди в послідовність керуючих впливів (мікрооперацій) відповідно до алгоритму виконання команди. Кожна мікрооперація (або їхня сукупність - мікрокоманда) виконується у фіксовані інтервали часу (такти), а вся сукупність виконання команди протягом повного циклу (командного циклу) утворить мікропрограму. Під управлінням мікропрограми виконується обробка даних й адрес і керування іншими пристроями мікропроцесорної системи через внутрішньо системний інтерфейс. Для виконання перерахованих функцій процесор містить засоби обробки даних, обробки адрес, зберігання даних й адрес – зверх оперативний запам'ятовуючий пристрій, засоби мікропрограмного керування, засоби синхронізації й керування режимами роботи процесора. Для обробки даних використовується універсальний арифметично-логічний пристрій (АЛП), запам'ятовуючі регістри для зберігання вихідних даних, результатів (акумулятори) і ознак результату (прапорці). Розрядність пристрою обробки даних характеризує розрядність процесора.
Обробка адрес і даних у процесорі частково або повністю може виконуватися загальним арифметичним пристроєм. Часто для обробки адрес використовують окремі спеціалізовані засоби, що дозволяють сполучити в часі обробку адрес і даних у послідовності команд і тим самим підвищити продуктивність процесора. До спеціалізованих засобів відносять програмний лічильник, здійснюючий безпосередню адресацію команд програми, адресні регістри даних, суматори адрес. Розрядність пристроїв обробки даних характеризує розрядність процесора.
РОЗДІЛ 1. Постановка задачі
Технічне завдання.
Реалізувати генератор інфранизької частоти, розробити апаратну частину та написати програму на мові асемблера для МП системи, на основі комплекту КР580, яка реалізує такі функції:
Формує за допомогою ЦАП вихідну напругу, що описується виразом:
де Т=0.5 с – період зміни напруги, А=5 В – амплітуда напруги, а =1.
2) Опитує дво-клавішну клавіатуру, перша з яких вибирає період повторення функції з ряду T, 2T, 4T відповідно, а інша задає амплітуду вихідної напруги з ряду A, A/2, A/4;
3) Виводить на один семи-сегментний індикатор інформацію про період повторення: цифри 1, 2, 4- відповідають T, 2T, 4T, а на інший індикатор інформацію про амплітуду A, A/2 чи A/4.
Ескізний малюнок пристрою наведений на рис.1
Рис.1. Ескізний малюнок зовнішнього вигляду генератора
На семи-сегментному індикаторі відображається, інформація про амплітуду і період сигналу. Так, якщо кнопка Т натиснута 1 раз то період збільшиться в 2 рази (2Т), і на індикаторі висвітлиться цифра «2» .Якщо кнопку Т натиснути ще раз,то період стане рівним 4Т і на індикаторі побачимо цифру «4». При натисненні цієї кнопки 3-й раз період стане рівним Т, а на індикаторі засвітиться «1». Кнопка А працює аналогічно і призначена для зміни амплітуди.
Часову залежність заданого сигналу наведено на рис.2.
Рис.2. Часова залежність заданого сигналу
Формування відліків вихідної напруги та відповідних кодів ЦАП
Варіант 1
А = 5 В, Т = 0,5 с а = 1
Таблиця 1
Відліки n
∆t·n
U(∆t·n), B
Код ЦАП
Код ЦАП у 16-ій системі
0
0
0
128
080
1
0,01
0,626
144
090
2
0,02
1,243
159
09F
3
0,03
1,84
175
0AF
4
0,04
2,408
189
0BD
5
0,05
2,938
203
0CB
6
0,06
3,421
215
0D7
7
0,07
3,851
226
0E2
8
0,08
4,22
236
0EC
9
0,09
4,523
243
0F3
10
0,1
4,754
249
0F9
11
0,11
4,911
253
0FD
12
0,12
4,99
255
0FF
13
0,13
4,99
255
0FF
14
0,14
4,912
253
0FD
15
0,15
4,758
249
0F9
16
0,16
4,526
243
0F3
17
0,17
4,224
236
0EC
18
0,18
3,856
226
0E2
19
0,19
3,427
215
0D7
20
0,2
2,944
203
0CB
21
0,21
2,415
189
0BD
22
0,22
1,847
175
0AF
23
0,23
1,251
160
0A0
24
0,24
0,634
144
090
25
0,25
0,008
128
080
26
0,26
-0,619
112
070
27
0,27
-1,235
96
060
28
0,28
-1,832
81
051
29
0,29
-2,4
66
042
30
0,3
-2,931
52
034
31
0,31
-3,416
40
028
32
0,32
-3,846
29
01D
33
0,33
-4,216
20
014
34
0,34
-4,52
12
00C
35
0,35
-4,752
6
006
36
0,36
-4,909
2
002
37
0,37
-4,989
0
000
38
0,38
-4,991
0
000
39
0,39
-4,914
2
002
40
0,4
-4,759
6
006
41
0,41
-4,529
12
00C
42
0,42
-4,229
19
013
43
0,43
-3,861
29
01D
44
0,44
-3,433
40
028
45
0,45
-2,951
52
034
46
0,46
-2,426
66
042
47
0,47
-1,855
80
050
48
0,48
-1,258
95
05F
49
0,49
-0,642
111
06F
Рис.2. Залежність коду ЦАП від номера відліку
Рис.3. Залежність напруги від номера відліку·∆t
Таким чином ми бачимо , що програмна реалізація функції часу буде полягати у послідовному записі з періодом Δt, значень Сn в порт виводу, до якого підключений ЦАП.
РОЗДІЛ 2. Апаратне забезпечення
Опис основних компонентів МПС КР580.
Розглядати даний мікропроцесорний комплект КР580 почнемо з мікропроцесора (МП) КР580ВМ80А (ИК80А), який зображений на рис.4.
Рис.4. Мікропроцесор КР580ВМ80А
Функціональне призначення виводів:
А0 - А15 – адресна шина, забезпечує адресацію до довільної 16-розрядної комірки пам'яті або зовнішнього пристрою;
D0 - D7 – двонапрямлена шина даних (ШД), для обміну інформацією із зовнішніми пристроями;
F1, F2 – входи тактових сигналів;
INT – запит на переривання;
HOLD – запит на ПДП;
SYNC – сигнал синхронізації на початку кожного машинного циклу;
DBIN – готовність МП до приймання даних;
WR – сигнал на виході МП, що дані видані й встановлені на ШД для їх запису у зовнішні пристрої;
READY – підтвердження про готовність даних на ШД та їх введення у МП;
RESET – на цьому виводі формується сигнал на початкову установку МП, при цьому обнулюється його програмований лічильник, а також тригери, які формують сигнали;
WAIT – сигнал на підтвердження про те, що МП знаходиться в стані очікування;
INTE – дозвіл на переривання;
HLDA – підтвердження ПДП.
В даному мікропроцесорному комплекті системним генератором є мікросхема КР580ГФ24 (рис.5) виконана по біполярній технології, споживаний струм 15 і 12 мА від джерел +5, +12 В відповідно. Сигнали синхронізації формуються задаючим генератором, стабілізованим кварцом з резонансною частотою до 27 МГц, дільником частоти з коефіцієнтом 9.
Рис.5. Мікросхема КР580ГФ24
Для роботи генератора тактових імпульсів (ГТІ) передбачено увімкнення зовнішнього кварцового резонатора, а також LC- коливальної системи, яка задає часову постійну.
Функціональне призначення виводів:
F1 – сигнал високого рівня тривалістю у два періоди коливань опорного генератора (для керування МОН входами);
F2 – сигнал високого рівня тривалістю у п'ять періодів коливань опорного генератора (для керування МОН входами);
XTAL1, XTAL2 – входи для вмикання КР;
RDYIN – вхідний сигнал від МП який ініціює формування сигналу готовності системи;
RESIN – вхідний сигнал, який ініціює формування сигналу "скид системи";
READY – вихідний сигнал; який формується мікросхемою для керування МПС;
SYNC – вхід тактової послідовності;
RESET – на цьому виводі ГП формується сигнал "скиду" МП у початковий стан;
STSTB – вихідний імпульс строба стану низького рівня тривалістю один період коливань опорного генератора;
TANK – вивід для підключення LC- коливальної системи.
Мікросхема КР580ВА86/87 (рис.6) являє собою двонаправлений шинний формувач з трьохстановими виходами, виконаних по біполярній технології, живляться від джерела +5 В і споживають струми 169 та 130 мА відповідно.
Рис.6. Мікросхема КР580ВА86А
Канал А забезпечує струм навантаження 15 мА, Канал ВA забезпечує струм навантаження 32 мА. Напрям передачі вибирається сигналом на вході Т. Мікросхема КР580ВА86 виконує передачу без інверсії, мікросхема КР580ВА87 – з інверсією.
Для буферизації шини даних та для формування сигналів керування використовують системний контролер КР580ВК28. Графічне позначення ВІС типу КР580ВК28 (рис. 7) системного контролера.
Рис.7. Системний контролер КР580ВК28
Призначення виводів системного контролера:
D0-D7 – виводи, які увімкнено до відповідних вихідних ліній МП;
BD0-BD7 – виводи, які увімкнено до шини даних;
DBIN – сигнал про готовність МП до приймання даних; STSTB - сигнал строю стану системного контролера;
HLDA – сигнал підтвердження захвату шин;
WR – інформаційна шина КР580ИК80;
MEMR – читання даних із пам'яті;
MEMW – запис даних у пам'ять; IOR - читання з лінії ввід/ вивід; IOW- запис у лінію ввід/вивід.
Структура мікропроцесора на мікропроцесорному комплекті КР580 приведена на рисунку 8.
Рис. 8. Структура мікропроцесора на мікропроцесорному комплекті КР580
Запам’ятовуючі пристрої МП системи
Є декілька видів запам’ятовуючих пристроїв: оперативний запам’ятовуючий пристрій (ОЗП) , постійний запам’ятовуючий пристрій (ПЗП), КЕШ – пам’ять, також стек може виступати як окремий пристрій. Вибираємо ПЗП для запам’ятовування коду програми, ОЗП – для використання мікропроцесором, як область для зберігання проміжних даних.
ПЗП – працює лише у режимі читання. Він використовується для збереження програм і даних, які потребують для роботи системи і не підлягають зміні.
ОЗП – працює у двох режимах і зберігає поточну інформацію, яка введена у МПС. Цей пристрій працює у двох режимах, які залежать від виконання програм і уведених даних. За допомогою цього пристрою змінюються необхідні параметри даних, записуються поточні результати, для їх виводу або подальшої обробки і таке інше.
Вибираємо об’єм пам’яті: ПЗП – 2 Кб ; ОЗП – 2 Кб.
В якості ЗП пристроїв беремо мікросхеми типу К573РФ2 для ПЗП (час вибірки становить 450 нс; потужність 580 мВт при напрузі +5В) і К537РУ10 (час доступу 220 нс; споживана потужність 6 мВт при напрузі живлення 5В) (рис. 8) для ОЗП.
А0-А10 – вхідні адреси комірок пам'яті, з'єднані із шиною адреси МПС;
D0-D7 – вихідні виводи, на які виставляються дані, що зберігались у запам'ятовуючому пристрої, з'єднуються з шиною даних МПС:
CS – вхідний вивід, за яким визначається звертання до ПЗП чи ОЗП:
ОЕ – вхідний вивід, який визначає режим роботи запам'ятовуючого пристрою (читання або запис).
Рис. 9 Мікросхеми К573РФ2 – ПЗП і К537РУ10 – ОЗП.
Таблиця 2
Сімейство
Технологія
Тип ВІС
Організація
К537
КМОП
К537РУ10
2К(8
К573
nМОП
К573РФ2
2К(8
Розподіл пам'яті проводимо з урахуванням того, що основна програма, записана у ПЗП, а тому перше звертання МП здійснюється до нульової комірки ПЗП.
Оскільки, кожен пристрій пам’яті згідно нашого вибору має 2 Кб, це означає, що кожен пристрій буде займати 2048 адрес. Ці пристрої підключаються до шини адрес паралельно. Даний адресний простір можна забезпечити за допомогою одинадцяти ліній ( А0 – А10 ).
Першу частину адрес ми відвели для ПЗП а не для ОЗП, оскільки в перший момент роботи мікропроцесора відбувається ініціалізація процесора, в ході якої усі регістри обнулюються, в тому числі й програмний лічильник, у зв’язку з чим мікропроцесор звертається до першої команди за адресою 0000H.
Таблиця 3
Адреси
Пам’ять
Тип
0000-07FFH
0800-0FFFH
1000-FFFFH
ПЗП
ОЗП
–
К573РФ2
К537РУ10
вільна область
Дешифрація схем пам’яті.
Як бачимо, ні режим роботи, ні вибір комірки не визначають вид ЗП. Тому у цих пристроях передбачений вивід, який визначає активний стан ОЗП або ПЗП. Для визначення виду ЗП потрібно вибрати лінію старших розрядів, наприклад, А11. Якщо стан лінії А11 відповідає логічний "0", то звертання відбувається до ПЗП, і для стану лінії А11 — логічній "1", звертання відбувається до ОЗП. Оскільки для вибору ЗП використовується одна лінія, то між ОЗП і ПЗП ставимо інвертор (рис. 10).
У випадку, коли б у нас було більше двох пристроїв, ми використали б дешифратор потрібної розрядності або схему дешифрації на логічних елементах.
Рис. 10. Підключення мікросхеми КР573РФ2 – ПЗП і КР537РУ10 – ОЗП.
Проектування системи вводу-виводу МПС
За допомогою пристрою вводу/виводу у МПС засилається інформація, а також виводиться на контрольні пристрої. Для проектованої МПС, згідно технічного завдання, зовнішніми пристроями є:
сегментні індикатори;
клавіші;
ЦАП.
Узгодженість зовнішніх пристроїв із внутрішніми визначається, як навантажувальною здатністю пристрою ввід/вивід, так і числом вихідних ліній МПС із числом вхідних ліній зовнішніх пристроїв.
Для запалювання сегмента індикатора на нього треба подати рівень логічного нуля, що відповідає індикаторам типів АЛС32Б , АЛС342Б. На індикаторах буде виводитись одна з трьох цифр: 1, 2, 4. На основі цього нижче в таблиці наведений стан рівнів на виходах a-g в залежності від цифри.
рис.11. 7-сегментний індикатор типу АЛС32Б (АЛС342Б)
Таблиця 4
Цифра
a
b
c
d
e
f
g
Число
1
1
0
0
1
1
1
1
4FH
2
0
0
1
0
0
1
0
12H
4
1
0
0
1
1
0
0
4CH
З даної таблиці видно, що сегмент “b” запалений завжди, тому його можна закоротити на землю. Сегменти “а” , “d” і “e” завжди мають один рівень, тому їх можна об‘єднати і керувати ними одним сигналом. Тому для управління одним індикатором потрібно 4 лінії. Для управління двома індикаторами в динамічному режимі – 6. Для управління ЦАПом потрібно 8 ліній . Тому загальна кількість ліній виводу при динамічній індикації буде 14 ліній.
3.1 Реалізація паралельного інтерфейсу
Складовими частинами інтерфейсу можуть бути багато режимні буферні регістри (ББР) або програмований периферійний адаптер (ППА) типу КР580ВВ55 (рис. 12).
Призначення виводів ППА типу КР580ВВ55 :
D0-D7 – вхідні виводи ППА, які увімкнені до ШД МП системи (D0 - молодший розряд);
PА0-PА7 – вихідна шина даних каналу А;
PB0-PB7 – вихідна шина даних каналу В;
PС0-PС3 – вихідна шина даних каналу С (молодші розряди):
PС4-PС7 – вихідна шина даних каналу С (старші розряди);
CS – вибір пристрою;
А0, А1 – молодші розряди ША, за якими проводиться вибір каналу;
RD – сигнал, за яким проводиться встановлення даних внутрішнього регістра ВІС, на ШД;
WR – вхідний сигнал, який дає дозвіл на запис даних у ППА;
R – сигнал, по якому ВІС переходить у початковій стан.
Рис.12. Програмований периферійний адаптер (ППА) типу КР580ВВ55.
Коли на вході CS є сигнал низького рівня, в залежності від того, який з сигналів IORD чи IOWR є активним, відбудеться запис в ППА чи зчитування з нього. Комбінація сигналів на входах A0 та A1 визначає канал, з яким відбудеться обмін інформацією.
Перед початком роботи, ППА треба запрограмувати, тобто задати режими роботи кожного каналу. Програмування відбувається шляхом одноразового запису в регістр керуючого слова відповідного байта.
Вибраний тип ППА має три основних режими роботи:
режим "0" - звичайний ввід/ вивід;
режим '1" - стробований ввід/ вивід;
режим "2" - двонапрямлена магістраль.
Для цілей поставлених технічному завданні найбільш зручною є робота ППА в режимі 0, в режимі вводу сигналів, які поволі міняються. При виводі в цьому режимі на лініях каналів можна програмно формувати різні сигнали, тобто керувати роботою індикаторів.
В даній роботі канали A, B та молодший підканал програмуються на вивід в режимі 0, старший підканал С- на ввід.
Оскільки максимальна навантажувальна здатність виходів КР580ВВ55 становить 2мА, а струм сегментів знаходиться в межах 10-15 мА, між виходами ППА і виходами індикаторів необхідно включати буферні елементи з відкритими колектором – інвертори 155ЛН2, 155ЛН3 або повторювачі 155ЛП9. Опори між виходами інверторів і входами індикаторів обмежують середній струм через сегмент на рівні 10 мА.
Лінії каналу C, які працюють на клавіатуру, під‘єднані через опори 10кОм до шини +5В. Таким чином при розімкнених клавішах відповідні розряди каналу C мають стан лог. "1". При натисненій клавіші лінія переходить в стан лог. "0". Невизначеність станів лінії, яка виникає в моменти натискання та відпускання клавіш ліквідується програмним шляхом.
Через канал A на ЦАП подається код, який відповідає вихідній напрузі. ЦАП вибраний з розрядністю 8. Для роботи ЦАП до його виходів необхідно підключити операційний підсилювач з коректуючими елементами.
Коли на вході CS є сигнал низького рівня , в залежності від того , який з сигналів IORD чи IOWR є активним , відбувається запис в ППА чи зчитування з нього . Комбінація сигналів на входах А0 та А1 визначає канал , з яким відбувається обмін інформацією ( табл.3.4 ).
CS = 0
Таблиця 5
IORD
IOWR
А1
А0
Робота з каналом
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
зчитування канала А
зчитування канала В
зчитування канала С
зчитування канала РКС
запис в канал А
запис в канал В
запис в канал С
запис в канал РКС
4.2. Двоклавішна клавіатура.
Основними елементами будь-якої клавіатури являються перемикачі. Вони використовуються для комутації електронних кіл постійного та змінного струму. Для побудови двоклавішної клавіатури використаємо два мікроперемикачі типу МП12. Основні характеристики цього перемикача:
- струм комутації – 10-6…0,5 А;
- напруга комутації – 0,5…36 В;
- число комутацій – 104.
Слід зауважити, що перед встановленням мікроперемикачів у клавіатуру після тривалого зберігання необхідно виконати їх тренування (15 перемикань).
Лінії каналу C (PC4, PC5) ППА, що працюють на клавіатуру, під’єднані через опори 10 кОм до шини +5 В. Таким чином при розімкнених клавішах відповідні розряди каналу С мають стан лог.1. Невизначеність станів лінії, яка виникає в момент натискання та відпускання клавіш, ліквідується програмним шляхом.
Вважаємо, що клавіша, котра підключена до лінії PC4, відповідає за зміну амплітуди сигналу, а та, котра підключена до лінії PC5 – за його тривалість.
4.3. Система індикації
В даній системі використано динамічну індикацію. Індикатори, які відображають значення амплітуди та періоду, працюють у динамічному режимі.
4.4. Цифро-аналоговий перетворювач
Основне призначення цифро-аналогових перетворювачів – автоматичне перетворення (декодування) двійкових кодів на еквівалентні їм значення будь-якої фізичної величини (напруги або струму). Кількісний зв'язок між вхідним числом, переважно двійковим, кодом N2 і його аналоговим еквівалентом, наприклад напругою UВИХ, для довільного моменту часу t1 визначається співвідношенням
(5.4.1)
де (U – крок квантування за рівнем напруги, тобто “вага” одного дискрету напруги, якій відповідає один двійковий розряд; (Ui – похибка перетворення.
Основними параметрами ЦАП є динамічний діапазон зміни вхідних та вихідних значень, швидкодія і похибка перетворення.
Динамічні діапазони за входом (Umax/Umin) і виходом (N2max/N2min) при лінійному цифро-аналоговому перетворенні мають одне і те саме значення, яке виражають або числом розрядів цифрового коду, або в децибелах; при Umin=0, Nmin=0 динамічний діапазон D=Umax/(U=Nmax/(N, де (U, (N – допустимі абсолютні похибки відхилення значень статичної характеристики UВИХ=f(N2) від лінійного закону.
Швидкодію цифро-аналогового перетворення визначають такі часові параметри:
– час перетворення – інтервал часу, протягом якого відбувся акт однозначного перетворення із цифрового коду в аналоговий сигнал;
– частота квантування – величина, що обернена періоду квантування, тобто інтервалу часу між сусідніми послідовними перетвореннями.
Схеми ЦАП виготовляють в інтегральному виконанні з метою їх використання у мікропроцесорній техніці.
Для реалізації цифро-аналогового перетворення переважно використовують два типи матриці резисторів:
– складеної із двійково-зважених резисторів;
– постійного імпедансу типу R-2R.
Вибраний ЦАП типу К572ПА2А.
Даний ЦАП має наступні параметри:
– розрядність – 12 біт;
– час перетворення – 15 мкс;
– інтерфейс – паралельний;
– напруга живлення – +5 В;
– диференційна нелінійність – ±0,025%;
– похибка перетворення – ±0,1%;
– споживаний струм – 1,5 мА.
Повна принципова схема пристрою зображена нижче.
РОЗДІЛ 3. Програмне забезпечення
Асемблер використовується для написання системних та прикладних програм, що працюють в реальному масштабі часу. Формат стрічки програми на мові Асемблер має вигляд:
мітка: команда операнди; коментар.
Стрічка програми складається з шести полів. Перших два поля генеруються транслятором. Колонка коментарів завжди починається символом ";" і є необов'язковою.
Мітка є унікальна послідовність символів, довжиною не більше шести, яка починається з букви або знаків "@","!".
Мітка ― це ідентифікатор першого байту команди, біля якої вона з'являється. Наявність мітки в команді необов'язкова, але якщо вона є, тоді мітка стає символічним ім'ям, яке застосовується в командах переходів для передачі управління відміченій команді. Мітками не можуть бути назви команд або регістрів та псевдокоманди ORG,EQU,DB,DW,DS,END. Мітка обмежується справа символом ":" В полі команд поміщають мнемонічну назву однієї з команд процесора або одну з наведених вище псевдокоманд. Команди бувають без oперандів або з одним чи двома операндами.
Перший операнд є результат, а другий ― джерело. Операндами є назви регістрів, регістрових пар, мітки, а також ідентифікатори, числа та вирази. Числа можуть бути представлені в двійковому, вісімковому, десятковому та шістнадцятковому вигляді. Відповідно до системи числення в кінці числа має бути одна з букв: В, С, D, Н. Число без букви в кінці інтерпретується як десяткове або як шістнадцяткове, якщо в складі числа є одна з букв А-F. Шістнадцяткове число, що, починається з букви необхідно доповнити зліва нулем.
Ідентифікатори мають відповідати тим самим умовам, що й мітки. Ідентифікатори ― це назви констант та змінних. Для надання константам та змінним початкових значень використовується псевдокоманда EQU.
Текст програми на мові Асемблер повинен починатись псевдокомандою ORG з oперандом, яка задає початкову адресу області трансляції. Останньою стрічкою програми є псевдокоманда END.
1.Алгоритм.
Загальний алгоритм до програми зображений на рис.14. Програма складається з 5 основних блоків: блку ініціалізації, блоку індикації, блоку виводу вибірок на ЦАП, блоку опитування кнопок та затримки. Деякі з них розписані детальніше. (рис 13-15).
рис.12. Загальний алгоритм рис.13. Алгоритм опитування кнопок
роботи пристрою
рис.14. Алгоритм виводу цифр на індикатор
рис.15. Алгоритм виводу вибірок на ЦАП
2. Повний текст програми
WaitSample: DS 1 ; ІНІЦІАЛІЗАЦІЯ
SampleNum: DS 1 ;
T: DS 1 ;
Am: DS 1 ;
ButT: DS 1 ; кнопка Т
ButA: DS 1 ; Am
Trigger: DS 1 ; перемикач індикаторів
N: DS 1 ; кількість відліків
ORG 0000h ;
JMP START ;
ORG 0100h ;
START: LXI H,SAMPLES ; занес. в HL значення відліків
MVI A,8Ah ;
OUT 03h ; програмуємо РКС
MVI A,50 ;
STA N ; N=50
MVI A,1 ;
STA Trigger ;
STA ButA ; кнопки спочатку
STA ButT ; не натиснуті
STA WaitSample ; WS=1
MVI A,0 ;
STA Am ;
STA T ;
STA SampleNum ; SN=0
JMP show ; перехід на
; БЛОК ІНДИКАЦІЇ
show: LDA Trigger ;
OUT 02h ; включаємо 1 з індикаторів
XRI 03h ; змінюємо
STA Trigger ; значення Trigger
CPI 01h ; при 1 значенні Trigger
JNZ S2 ; виводимо амплітуду
S1: LDA T ; а при іншому - період
CPI 00h ; визначаємо значення Т
JZ TTT1 ;
TTT0: MVI A,02h ; Т=0, тоді виводиться "1" (T)
OUT 01h ;
JMP output ;
TTT1: CPI 01h ;
JZ TTT2 ;
MVI A,09h ; т=1, тоді виводиться "2" (2T)
OUT 01h ;
JMP output ;
TTT2: MVI A,0Eh ; Т=2, тоді виводиться "4" (4T)
OUT 01h ;
JMP output ;
S2: LDA Am ;
CPI 00h ; визначаємо значення Am
JZ AAA1 ;
AAA0: MVI A,02h ; Am=0, тоді виводиться "1" (A)
OUT 01h ;
JMP output ;
AAA1: CPI 01h ;
JZ AAA2 ;
MVI A,09h ; Am=1, тоді виводиться "2" (A/2)
OUT 01h ;
JMP output ;
AAA2: MVI A,0Eh ; Am=2, тоді виводиться "4" (A/4)
OUT 01h ;
JMP output ; перехід на
; БЛОК ВИВОДУ ВИБІРОК НА ЦАП
output: LDA WaitSample ;
DCR A ; зменшуємо WS на 1
STA WaitSample ;
CPI 00h ; WS=0?
JZ keybrd ; ні - перехід в наст блок
WS0: LDA T ;
CPI 00h ; визначаємо т
JZ T1 ;
T0: MVI A,2 ; т=0, тоді WS=2
STA WaitSample ;
JMP A1 ;
T1: LDA T ;
CPI 01h ;
JZ T2 ;
MVI A,4 ; T=1, тоді WS=4
STA WaitSample ;
JMP A1 ;
T2: MVI A,8 ; T=2, тоді WS=8
STA WaitSample ;
A1: LDA Am ;
CPI 00h ; визначаємо Am
JZ A2 ;
MOV A,M ;
JMP A4 ;
A2: LDA Am ;
CPI 01h ;
JZ A3 ;
MOV A,M ; при Am=1 ділимо
RRC ; значення вибірок на 2
JMP A4 ;
A3: MOV A,M