Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Приклад програмного опитування дискретного сигналу





  jb p3.2,$ ;опитування натискання кнопки SW15, якщо кнопка ;натиснута, програма виконується далі
Continue: mov A,#0  
  mov DPTR,#0A004h  
  movx @DPTR,A ;відмінити гашення знакомісць С_інд
  mov A,#04h ;записати в Акумулятор. число 04
  mov DPTR,#0A000h ;встановити в DPTR адресу лівої пари знакомісць С_інд
  movx @DPTR,A ;засвітити число 04
  mov DPTR,#0B000h ;встановити в DPTR адресу правої пари знакомісць С_інд
  movx @DPTR,A ;засвітить число 04
  CALL ZAD ;виклик підпрограми затримки
  mov A,#00001111b  
  mov DPTR,#0A004h  
  movx @DPTR,A ;погасити усі знакомісця С_інд
  CALL ZAD  
  jmp Continue ;перехід на початок програми
ZAD: mov R1,#0FFh ;підпрограма затримки
C2: mov R2,#0FFh  
C4: djnz R2, C4  
  djnz R1, C2  
  ret ;вихід з підпрограми
  END  

 

Варіанти індивідуальних завдань

Таблиця 37 – Завдання до лабораторної роботи №3
Текст індивідуального завдання
Підрахувати та відобразити на статичному індикаторі кількість натискань кнопки SW15
Реалізувати опитування клавіатури. Номер клавіші відображати шляхом засвічування відповідної точки на знако-синтезуючому індикаторі.
Реалізувати опитування клавіатури. Номер клавіші послідовно відображати в кожному розряді динамічного індикатора.
 
Продовження таблиці 37
Текст індивідуального завдання
При натисканні SW15 запускати рухомий вогник на світлодіодах HL1-HL8, при відпуску плавне загоряння числа 3 на знако-синтезуючому індикаторі.
При натисканні SW16 включити секундомір з відображенням на статичному індикаторі значення секунд при відпуску запускати рухому "тінь" на світлодіодах HL1-HL8
Реалізувати опитування клавіатури. Номер клавіші индицировать позиційним кодом на світлодіодах HL1-HL8, з відображенням значення кнопки на динамічному індикаторі.
Реалізувати програму введення чотиризначного числа з клавіатури, використовуючи статичний індикатор і дублюючи значення натиснутою кнопки на знако-синтезуючому індикаторі.
Реалізувати опитування клавіатури після 2-х натисків SW16. Номер клавіші відображати на динамічному індикаторі.
При натисканні SW15 запускати будь-яке рухоме значення на знако-синтезуючому індикаторі, а після натиснення SW16 запалити всі крапки в шаховому порядку.
Відображати значення секунд на статичному індикаторі. По перериванню INT0 зупинити секундомір і засвітити світлодіоди HLn (n-непарне)
Відображати число 7543 на динамічному індикаторі. По перериванню INT1 засвітити світлодіоди HLn (n-парне)
На статичному індикаторі відобразити число 5555. По перериванню INT0 відображати "шахматку" на знако-синтезуючому індикаторі, При переривання INT1 відобразити на статичному індикаторі число 3333
Після натискання SW15 реалізувати програму введення тризначного числа з клавіатури з відображенням на статичному індикаторі.
При натисканні SW16 запускати рухому "тінь" на знако-синтезуючому індикаторі, а при повторному натисканні SW16 згасити всі крапки.
Реалізувати опитування клавіатури. Номер клавіші відображати двійковим кодом на світлодіодах HL1-HL8

 



Контрольні питання

1. Структура системи переривання ОЕОМ К1816ВЕ31.

2. Призначення, приклади застосування системи переривання

3. Регістри керування, розподіл пам'яті в ОЕОМ 1816 ВЕ31.

4. Переривання від таймерів, послідовного прийомопередатчика

5. Апаратне усунення брязкоту контактів для схем з TTL і КМОП.

6. Програмне усунення брязкоту контактів

7. Необхідність застосування апаратного або програмного усунення брязкоту контактів


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

Тема: Цифро-аналогове перетворення

Мета роботи: Вивчення методів цифро-аналогового перетворення

Порядок виконання лабораторної роботи:

1) Вивчити структурну схему модуля ЦАП на платі розширення

2) Розробити алгоритм для виконання індивідуального завдання до початку лабораторного заняття.

3) Розробити програму для виконання індивідуального завдання до початку лабораторного заняття.

4) Ввести програму індивідуального завдання на персональному комп'ютері.

5) За допомогою ПНЗ проаналізувати виконання індивідуальної програми.

6) Завантажити програму в стенд ОЕОМ. Переконатися в правильному виконанні індивідуального завдання, змінити значення вимірюваної частоти, повторити перетворення, при негативному результаті здійснити зміну алгоритму або програми.

7) Роздрукувати лістинг правильно працюючої програми.

8) Відповісти на контрольні питання викладача.

Короткі теоретичні відомості

Цифро-аналогові перетворювачі (ЦАП) виробляють напругу або струм, що функціонально пов’язаний з керуючим кодом. Застосовують ЦАП для формування вихідних аналогових сигналів цифрових вимірювальних та обчислювальних пристроїв. Для перетворення двійкового коду в аналоговий сигнал зазвичай формуються струми, пропорційні вагам розрядів коду, після чого сумуються ті струми, яку відповідають ненульовим розрядам вхідного коду.

Використовують зазвичай два методи ЦАП: сумування одиничних еталонних величин і сумування еталонних величин, ваги яких відрізняються. У першому випадку при формуванні вихідної аналогової величини використовується лише одна еталонна величина вагою в один квант. В другому методі використовуються еталонні величини з вагами, що залежать від номера розряду, и в сумуванні беруть участь лише ті еталоні величини, для яких у відповідному розряді вхідного коду встановлена одиниця.

У випадку використання на вході двійкового позиційного коду значення всіх розрядів поступає одночасно, і робота таких ЦАП описується виразом:

,

де Х – аналогова величина;

ai – коефіцієнти відповідних двійкових розрядів, які приймають дискретні значення: одиниця або нуль;

Р – опорний сигнал;

b – кількість розрядів.

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

Класифікація ЦАП може бути проведена за багатьма ознаками:

- Способом формування вихідної напруги (з сумуванням напруг, діленням напруг, з сумуванням струмів);

- Родом вихідного сигналу (з токовим виходом, виходом за напругою);

- Полярністю вихідної напруги (постійна, змінна) и т.д.

Основні структури, що використовуються в ЦАП інтегрального виконання:

- структури з сумуванням струмів;

- ЦАП – зі зваженими резисторами в ланцюгах емітерів;

- ЦАП – зі зваженими резисторами в ланцюгах навантаження;

- ЦАП зі сходовою матрицею R=2R в ланцюгах емітерів, транзисторів, джерел струму;

- ЦАП зі вихідною сходовою матрицею R=2R.

Параметри ЦАП

Кількість розрядів n керуючого коду, номінальний вихідний струм, час встановлення вихідного сигналу після зміни вхідного керуючого коду, похибка повної шкали, похибка лінійності, диференційна нелінійність.

Похибки ЦАП можуть бути виражені у відсотках або інших відносних одиницях, а також в долях кванта. Спрощена схема ЦАП зображена на рисунку 66.

Рисунок 66 – Спрощена схема ЦАП для розуміння роботи перетворення вхідного коду в струм (напругу) певної величини

Якщо резистори ЦАП співвідносяться як 8R, 4R, 2R, 1R, то при вмиканні усіх комутаторів, відповідно до закону Ома напруга в точці OUT буде дорівнювати напрузі VCC. Якщо ввімкнути комутатор резистора R8, напруга в точці OUT буде дорівнювати VCC/2. Аналогічно можна знайти значення напруги за різних комбінацій вхідного коду.

До складу навчально-відлагоджувального стенду входить мікросхема ЦАП AD7801. Вона являє собою восьмирозрядний ЦАП (з паралельним інтерфейсом) з розмахом вихідної напруги рівним напрузі живлення. Для спостереження вихідного сигналу з мікросхеми ЦАП необхідно підключити осцилограф к BNC роз’єму і замкнути перемичку J4. Доступ до ЦАП здійснюється як до комірки зовнішнього ОЗП за адресою 0F000h.

Приклад виконання програми цифро-аналогового перетворення

  ORG 0 ;встановити лічильник адреси РС=0
Begin: mov A,#0 ;записати в акумулятор 0
  mov DPTR,#0F000h ;встановити в DPTR адресу ЦАПа
  movx @DPTR,A ;встановити на ЦАП код з акумулятора
  Call ZAD ;виклик підпрограми затримки
Continue: inc A ;збільшити значення акумулятора на одиницю
  movx @DPTR,A ;встановити на ЦАП код з акумулятора
  call ZAD  
  cjne A,#255d,continue ;якщо код не досяг максимального значення ;перейти на мітку continue
  jmp Begin ;інакше перехід на метку Begin
ZAD: mov R4,#005h ;підпрограма затримки
C2: mov R2,#0FFh  
C3: djnz R2, C3  
  djnz R4, C2  
  ret ;вихід з підпрограми
END    

 

Варіанти індивідуальних завдань

Таблиця 38– Таблиця завдань до лабораторної роботи №4
Текст індивідуального завдання
Сформувати пилкоподібну напругу с частотою повторення 50 Гц. Відображати на статичному індикаторі число згенерованих імпульсів.
При натисканні SW3 сформувати трикутні імпульси, передній фронт 20 мс, задній – 10 мс, кожен 10 імпульс відображати на динамічному індикаторі.
При натисканні SW4 сформувати трапецевидні імпульси, передній фронт яких 13 мс, задній – 15 мс. Кожну секунду засвічувати світлодіод HL1.
Сформувати синусоїду з частотою повторення 120 Гц.
Сформувати пилкоподібну напругу з частотою повторення 200 Гц і тривалістю переднього фронту 2 мс.
При натисканні SW5 сформувати синусоїду з частотою повторення 100 Гц.
Сформувати прямокутні імпульси, з тривалістю 25 мс і скважністю 4
При натисканні SW16 сформувати трикутні імпульси, передній фронт 25 мс, задній – 5 мс.
Сформувати синусоїду з частотою повторення 300 Гц. При натисканні SW15 змінити частоту на 100 Гц.
Сформувати два прямокутних імпульси, один максимальної амплітуди і другий 2/3 амплітуди максимальної з періодом повторення 40 Гц.
Сформувати прямокутні імпульси, з тривалістю 25 мс при натисканні SW6 сформувати трикутні імпульси.
Сформувати синусоїду з частотою повторення 70 Гц, при натисканні SW7 сформувати прямокутні імпульси, з тривалістю 25 мс і скважністю 2.
При натисканні SW15 сформувати трикутні імпульси, передній фронт 15 мс, задній – 40 мс.
При натисканні SW9 сформувати трапецевидні імпульси, передній фронт – 20 с, задній – 20 мс
Сформувати три прямокутних імпульси, один 1/3 максимальної амплітуди, 2-ой – 2/3 максимальної амплітуди, 3-ій максимальної амплітуди з періодом повторення 100 Гц.

Контрольні питання

1. Методи и типи ЦАП.

2. Статичні параметри ЦАП

3. Поняття дискретності, квантування, роздільна здатність ЦАП.

4. Характеристика перетворення, нелінійність ЦАП.

5. Напруга зміщення нуля, припустима напруга на виході ЦАП.

6. Динамічні параметри ЦАП.

7. Фактори, що впливають на похибку ЦАП.

8. Апаратні реалізації ЦАП.

9. Приклади практичного застосування ЦАП.

 


Лабораторна робота №5

Тема: Аналого-цифрове перетворення

Ціль роботи: Навчитися вимірювати аналогову величину та вводити її у МК-р.

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

1) Вивчити структурну схему модуля АЦП на платі розширення.

2) Розробити алгоритм для виконання індивідуального завдання до початку лабораторного заняття.

3) Розробити програму для виконання індивідуального завдання до початку лабораторного заняття.

4) Ввести програму індивідуального завдання на персональному комп'ютері.

5) За допомогою ПНЗ проаналізувати виконання індивідуальної програми.

6) Завантажити програму в стенд ОЕОМ. Переконатися в правильному виконанні індивідуального завдання, змінити значення вимірюваної частоти, повторити перетворення, при негативному результаті здійснити зміну алгоритму або програми.

7) Роздрукувати лістинг правильно працюючої програми.

8) Відповісти на контрольні питання викладача.

Стислі теоретичні відомості

Аналогово-цифрові перетворювачі (АЦП) застосовуються у вимірювальних системах і вимірювально-обчислювальних комплексах для узгодження аналогових джерел вимірюваних сигналів з цифровими пристроями обробки і представлення результатів вимірювання.

Існують різні методи побудови АЦП. Вони відрізняються за складністю реалізації, завадостійкістю, швидкодією.

У системах де основним критерієм є швидкодія застосовують АЦП паралельного перетворення. Але АЦП цього типу досить складні в реалізації. Для n-розрядного АЦП необхідно 2n-1 компараторів і паралельний дільник напруги, який виробляє 2n-1 рівнів квантування.

Для реалізації систем з високою завадостійкістю застосовують інтегруючі АЦП. Такий АЦП складається з двох перетворювачів. Вимірюється напруга перетворюється у тривалість імпульсу, а потім тривалість імпульсу перетворюється в цифровий код.

Одним з найпоширеніших є АЦП, побудований на цифро-аналоговому (ЦАП) перетворювачі. Схема цього АЦП наведена на рисунку 67.

Рисунок 67 – Схема АЦП побудованого на ЦАП

Код формується лічильником, при організації жорсткої логіки, або програмно, якщо АЦП працює в складі обчислювального комплексу. Вхідний код перетворюється в аналоговий сигнал за допомогою ЦАП. Напруга з виходу ЦАП надходить на один з входів компаратора. На інший вхід подається вимірювана напруга Ux. У момент, коли напруга ЦАП дорівнюватиме вимірюваному, компаратор формує сигнал 'Stop' який свідчить про закінчення циклу виміру.

При формуванні коду використовуються різні алгоритми. Найпростішим алгоритмом є порозрядне врівноваження. При такому підході код змінюється від мінімального шляхом збільшення одиниці молодшого розряду до тих пір, поки напруга ЦАП не зрівняється з вимірюваною напругою. Недоліком порозрядного врівноваження є маленька швидкодія.

Для скорочення часу перетворення застосовується метод половинних наближень. Врівноважування починається зі старшого розряду. У цьому розряді встановлюється одиниця і читається стан компаратора. Якщо напруга ЦАП більше вимірюваного то розряд скидається, а якщо менше, то розряд зберігає свій стан. Далі таким же чином обробляється наступний розряд. Перетворення закінчується тоді, коли будуть опрацьовані всі розряди.

У системах стеження, часто необхідно безперервно зчитувати стан датчика. Це забезпечується малим часом перетворення за рахунок застосування стежинь АЦП. Суть даного алгоритму полягає в тому, що спочатку код формується методом половинних наближень. А після порівняння з вимірюваною напругою АЦП відстежує зміну напруги. Якщо напруга зростає то код порозрядно збільшується до тих пір, поки напруга ЦАП не зрівняється з вимірюваним, і навпаки.

У стенді АЦП побудований на мікросхемах AD7801 (восьмирозрядний ЦАП) і LM358 (ОУ в якості компаратора) (див. схему стенда). Стан компаратора можна зчитати з виводу порту Р1.7 однокристальної ЕОМ, про закінчення циклу перетворення також свідчить свічення світлодіода підключеного до виходу компаратора. Доступ до ЦАП здійснюється як до комірки зовнішньої ОЗП за адресою 0F000h.

Вимірювана напруга Ux формується змінним резистором (якщо встановлена ​​перемичка J5), або джерело сигналу підключається до клемники.

У розширеній комплектації стенд поставляється з інтегральним десятібітним АЦП з паралельним інтерфейсом AD7813. Доступ до АЦП AD7813 здійснюється як до комірки зовнішнього ОЗП за адресою 0E000h.

Приклади алгоритмів

Алгоритм порозрядного врівноваження:

  ORG 0000h ;встановити лічильник адреси РС=0
Begin: mov A,#0 ;записати в акумулятор 0
nextTest: mov DPTR,#0F000h ;встановити в DPTR адресу ЦАП
  movx @DPTR,A ;переслати на вхід ЦАП код з акумулятора
  mov r3,#50; ;формуємо затримку у часі на 100 машинних ;циклів. Для виконання команди Djnz ;потрібно 2 машинні цикли, ця команда ;виконується 50 разів. ;Ця затримка необхідна для роботи ЦАП і ;отримання результату на P1.7
z2: djnz r3,z2
  jnb P1.7, ShowResult ;перевірка стану компаратора. Якщо P1.7=0 ;знайдено потрібний код, переходимо до ;відображення результату
  inc A ;збільшити значення акумулятору на одиницю
  cjne A,#0FFh,NextTest ;якщо код не досяг максимального значення
ShowResult: mov DPTR,#0B000h ;виведення значення кода на індикатор GH1
  movx @DPTR,A
  call ZAD ;виклик підпрограми
  jmp Begin ;перехід до оцифровування наступного сигналу
ZAD: mov R4,#0FFh ;підпрограма затримки, що визначає інтервал ;часу між сигналами, що оцифровуються ;затримка = 256*256*2 ≈ 131070 мкс
C2: mov R2,#0FFh
C3: djnz R2, C3
  djnz R4, C2
  ret ;вихід з підпрограми
END    

 

Алгоритм половинного наближення:

  ORG 0000h ;встановити лічильник адреси РС=0
Begin: mov A, #10000000b  
  mov DPTR,#0F000h ;встановити в DPTR адресу ЦАПа
  Call StartCAP  
  jnb P1.7, rel7 ;якщо P1.7=1 скинути біт A.7
  Clr A.7
Rel7: setb A.6 ;встановити 6-ий (рахуючи з 0) біт акумулятора в 1
  Call StartCAP ;виклик підпрограми
  jnb P1.7, rel6 ;якщо P1.7=1 скинути біт A.6
  Clr A.6
Rel6: Setb A.5  
  Call StartCAP  
  jnb P1.7, rel5 ;якщо P1.7=1 скинути біт A.5
  Clr A.5
Rel5: Setb A.4  
  Call StartCAP  
  jnb P1.7, rel4 ;якщо P1.7=1 скинути біт A.4
  Clr A.4
Rel4: Setb A.3  
  Call StartCAP  
  jnb P1.7, rel3 ;якщо P1.7=1 скинути біт A.4
  Clr A.3
Rel3: Setb A.2  
  Call StartCAP  
  jnb P1.7, rel2 ;якщо P1.7=1 скинути біт A.2
  Clr A.2
Rel2: Setb A.1  
  Call StartCAP  
  jnb P1.7, rel1 ;якщо P1.7=1 скинути біт A.6
  Clr A.1
Rel1: Setb A.0  
  Call StartCAP  
  jnb P1.7, rel0 ;якщо P1.7=1 скинути біт A.6
  Clr A.0
Rel0: mov DPTR,#0B000h ;виведення значення коду на індикатор GH1
  movx @DPTR,A ;переслати на вхід ЦАП код з акумулятора
  call ZAD ;виклик підпрограми
  jmp Begin ;перехід до оцифровування наступного сигналу
StartCAP: movx @DPTR,A ;встановити на ЦАП код з акумулятора
  mov r3,#50; ;формуємо затримку у часі на 100 машинних циклів. ;Для виконання команди Djnz потрібно 2 машинні ;цикли, ця команда виконується 50 разів. Ця ;затримка необхідна для роботи ЦАП і отримання ;результату на P1.7
Z2: djnz r3,z4
  ret ;вихід з підпрограми
ZAD: mov R4,#0FFh ;підпрограма затримки, що визначає інтервал ;часу між сигналами, що оцифровуються ;затримка = 256*256*2 ≈ 131070 мкс
C2: mov R2,#0FFh
C3: djnz R2, C3
  djnz R4, C2
  ret ;вихід з підпрограми
END    

Варіанти індивідуальних завдань

Таблиця 39 – Таблиця завдання до лабораторної роботи № 5
Текст індивідуального завдання
Порозрядне врівноваження, значення відображати на статичному індикаторі.
Метод половинних наближень, значення відображати на динамічному індикаторі.
Слідкуючий з початковим порозрядним врівноваженням, відображати на статичному індикаторі.
Слідкуючий з початковим порозрядним врівноваженням, відображати на динамічному індикаторі.
При натисканні кнопки SW15 ввімкнути АЦП половинних наближень, значення відображати на динамічному індикаторі.
При натисканні кнопки SW3 ввімкнути АЦП порозрядного врівноваження, значення відображати на статичному індикаторі.
При натисканні кнопки SW4 ввімкнути АЦП слідкуючого типу з початковим порозрядним врівноваженням, значення відображати на динамічному індикаторі.
При натисканні кнопки SW5 ввімкнути АЦП слідкуючого типа с початковим половинним наближенням, значення відображати на статичному індикаторі.
При натисканні кнопки SW5 ввімкнути АЦП половинного наближення, результат відображати на динамічному індикаторі при натисканні кнопки SW3.
При виникненні переривання INT0 ввімкнути АЦП порозрядного врівноваження, результат відображати на статичному індикаторі при натисканні кнопки SW3.
При натисканні кнопки SW7 ввімкнути АЦП слідкуючого типу з початковим порозрядним врівноваженням, результат відображати при натисканні кнопки SW8.
При натисканні кнопки SW8 ввімкнути АЦП слідкуючого типу з початковим половинним наближенням, результат відображати на динамічному індикаторі при натисканні кнопки SW9.

Контрольні питання

1. Методи и типи АЦП.

2. Статичні параметри АЦП.

3. Поняття дискретності, квантування, роздільної здатності.

4. Характеристика перетворення, диференціальна нелінійність АЦП, відхилення коефіцієнта перетворення.

5. Напруга зсуву нуля.

6. Динамічні параметри АЦП.

7. Час перетворення, час затримки запуску, час циклу перетворення, максимальна частота перетворення.

8. Поняття апертурний час.

9. Фактори, що впливають на похибку АЦП.

10. Апаратні реалізації АЦП.

11. Приклади практичного застосування АЦП.

12. Побудова схем АЦП за допомогою мікросхем ЦАП.


Лабораторна робота №6

Тема:Обробка частотних і часових сигналів

Ціль роботи: Вивчення методів частотного перетворення

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

1) Вивчити методи частотного перетворення (апаратні і за допомогою програмованих лічильників/таймерів).

2) Вивчити методи вимірювання часових інтервалів.

3) Розробити алгоритм для виконання індивідуального завдання до початку лабораторного заняття.

4) Розробити програму для виконання індивідуального завдання до початку лабораторного заняття.

5) Ввести програму індивідуального завдання на персональному комп'ютері.

6) За допомогою ПНЗ проаналізувати виконання індивідуальної програми.

7) Завантажити програму в стенд ОЕОМ. Переконатися в правильному виконанні індивідуального завдання, змінити значення вимірюваної частоти, повторити перетворення, при негативному результаті здійснити зміну алгоритму або програми.

8) Роздрукувати лістинг правильно працюючої програми.

9) Відповісти на контрольні питання викладача.

Стислі теоретичні відомості

У системах автоматичного керування часто доводиться вимірювати такі величини як: частота (f), період (T), тривалість (t), зсув фаз (j). Для цього застосовується перетворення частота-код. Залежно від того, який саме параметр потрібно виміряти застосовують різні підходи.

При вимірюванні частоти fx проводиться підрахунок імпульсів вхідного сигналу, протягом фіксованого відрізку часу (рисунок 68).

Рисунок 68 – Вимірювання частоти fx методом підрахунку імпульсів вхідного сигналу, протягом фіксованого відрізка часу

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

Вимірювання частот нижче 100Гц замінюється виміром періоду Тх. При цьому проводиться підрахунок імпульсів фіксованої частоти f0 за інтервал рівний або кратний вимірюваному періоду (рисунок 69).

Рисунок 69 – Вимірювання періоду проходження методом підрахунку кількості імпульсів відомої частоти

Таким же чином вимірюється тривалість імпульсу τх, відмінність полягає лише в тому, що при вимірі тривалості імпульсу непотрібно ділити частоту на два.

При вимірюванні зсуву фаз часовий інтервал tj формують шляхом кон'юнкції сигналів f1x і f2x (рисунок 4.18), отриманий інтервал часу вимірюють методом описаним вище.

Схеми, що реалізують цей алгоритм, наведені на рисунку 70.

 

Рисунок 4.18 – Вимірювання зсуву фаз

Рисунок 70 – Схеми для вимірювання частоти а) низької, б) високої

У лабораторному стенді при наявності плати розширення до входу ОЕОМ Т0 підключений постійний генератор частоти, а до входу Т1 підключений генератор із змінною частотою. Сигнали цих генераторів можна спостерігати на осцилографі, підключеному до BNC гнізда. Для спостереження сигналу Т0 замкнути перемичку J1, а для Т1 перемичку J3

Таймери/лічильники (Т/Л) ОЕОМ призначені для підрахунку зовнішніх подій, для отримання програмно керованих тимчасових затримок, виконання функцій, що задають час ОЕОМ.

До складу блоку Т/Л входять:

1) два 16-ти розрядних регістра Т/Л 0, Т/Л 1;

2) 8-ми розрядний регістр режимів Т/Л (ТМ0D);

1) 8-ми розрядний регістр керування (ТСОN);

2) схема інкремента ;

3) схема фіксації INT0, INT1, Т0, Т1;

4) схема керування прапорцями;

5) логіка керування Т/Л.

Два 16-розрядних регістри Т/Л 0 і Т/Л 1 виконують функцію збереження результату лічби. Кожен з них складається з пари 8-ми розрядних регістрів, відповідно ТH0, ТL0 і Тh1, ТL1. Причому регістри ТН0, ТH1 - старші, регістри ТL0, ТL1 - молодші 8 розрядів. Кожен з 8-ми розрядних регістрів може бути використаний, як РОН, якщо Т/Л не використовуються (біт TR0 для Т/Л 0 і біт TR1 для Т/Л 1 в регістрі керування TCON дорівнює "0").

Регістр режимів Т/Л (TMOD) призначений для прийому та зберігання коду, що визначає:

- Один з 4-х можливих режимів роботи кожного Т/Л;

- Роботу в якості таймерів або лічильників;

- Керування Т/Л від зовнішнього виводу.

Регістр режимів TMOD

M0-M1 (0-1,4-5) - один з 4-х режимів лічильників;

С/Т (2,6) - "0" – таймер, "1" – лічильник;

GATE - дозвіл керування від зовнішнього виводу. "0" - заборонено, "1" - дозволено (INT0, INT1);

Регістр керування (TCON) призначений для прийому та зберігання коду керуючого слова. Регістр TCON не можна використовувати як РОН. Схема інкремента призначена для збільшення на 1 у кожному машинному циклі вмісту регістрів Т/Л 0, Т/Л 1, якщо для них:

- Встановлено режим таймера і дозволено лічбу;

- Встановлено режим лічильника, лічба дозволена і на відповідному вході схеми Т0 (для Т/Л 0) або Т1 (для Т/Л 1) зафіксовано лічильний імпульс у попередньому машинному циклі.

Регістр керування TCON

TR - біт включення Т/Л. 0 - "вимкнений";

TF - прапорець переповнення Т/Л;

IT - визначає вид переривання по входу INT ("0" по L-рівню, "1" - по фронту);

IE - прапорець запиту на переривання.

ДДК

Для відображення значень на семисегментних індикаторах використовують двійково-десяткове представлення чисел. У його основі лежить принцип кодування кожної десяткової цифри групою з чотирьох бітів (тетрадою). Оскільки чотирма бітами можна закодувати шістнадцять різних комбінацій, а десяткових цифр тільки десять, останні шість кодів в двійково-десятковому представленні не використовуються (таблиця 40).

Таблиця 40 – Двійково-десяткове представлення чисел
Двійково-десятковий код Десяткова цифра
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
1 0 1 0 не використовується
1 0 1 1 не використовується
1 1 0 0 не використовується
1 1 0 1 не використовується
1 1 1 0 не використовується
1 1 1 1 не використовується

Ця обставина може бути причиною отримання неправильних результатів при виконанні звичайних арифметичних операцій, таких, як додавання і віднімання. Для подібних ситуацій МК-51, має спеціальну команду десяткової корекції акумулятора - DA A

Алгоритм її роботи наступний:

якщо (A3-0) > 9V(AC) = 1, то (А7-0) (A7-0) + 6,

потім якщо (A7-4) > 9V (C)=1, то (A7-4) (A7-4) + 6

Існує два формати представлення двійково-десяткових чисел:

- упакований;

- неупакований.

При використанні упакованого формату в одному байті можна записати (упакувати) дві двійково-десяткові цифри.

При застосуванні неупакованого формату в одному байті записується одна двійково-десяткова цифра (молодша тетрада байта), а чотири старших біти дорівнюють нулю.

Приклад програми вимірювання частоти

;зміна частоти в Гц

;розрахований на зовнішню частоту Т0 6817 Гц

;підрахунок ведеться за 1 с, результат у вигляді ХХХХ Гц

mode equ 55h ;налаштовує T1 counter, T0 counter

str equ 50h ;запис в TCON дозволяє лічбу

ORG 0000h ;встановити лічильник адреси РС=0

BEG: MOV TL1,#00h ;скинути Т/Л1 в нуль

MOV TH1,#00h ;

MOV TL0,#0f0h ;встановити початкове значення Т/Л0

MOV TH0,#0E4h ;розраховане на 1 с

MOV TMOD,#MODE ; ініціалізація режимів таймерів

MOV TCON,#STR ;запуск лічильника

JNB TF0,$ ;перевірка прапорця переповнювання Т/Л0

CLR TR1 ;якщо відбулося переповнення то

CLR TR0 ;зупинити лічбу Т/Л1 і Т/Л0

MOV R0,TL1 ;зчитування результату вимірювання

MOV R1,TH1 ;R0 містить молодшу частину, а R1 - старшу

CALL IND ;виклик підпрограми індикації

MOV R3,#01h ;часова затримка

M: MOV R4,#01h ;з використанням двох регістрів,

DJNZ R4,$ ;які зменшуються на одиницю

DJNZ R3,M ;у вкладеному циклі

JMP BEG ;перехід на наступний цикл вимірювання

IND: ;підпрограма індикації, перетворює результат

;з двійкової системи числення в двійково-десяткову

;і відображає на індикаторах

JMP M1

L: DB 01h,02h,04h,08h,16h,32h,64h,28h,56h,12h,24h,48h,96h

HI: DB 00h,00h,00h,00h,00h,00h,00h,01h,02h,05h,10h,20h,40h

M1: MOV R2,#00h

MOV R6,#00h

MOV R7,#00h

NACHALO_L: MOV A,R0

JNB ACC.0,AGAIN_L

MOV A,R2

MOV DPTR,#L

MOVC A,@A+DPTR

ADD A,R6

DA A

MOV R6,A

JNB PSW.7,PLUS_NEXT_L

MOV A,R7

ADD A,#01H

DA A

MOV R7,A

PLUS_NEXT_L:

MOV A,R2

MOV DPTR,#HI

MOVC A,@A+DPTR

ADD A,R7

DA A

MOV R7,A

AGAIN_L:

MOV A,R0

RRC A

MOV R0,A

INC R2

CJNE R2,#08h, NACHALO_L

NACHALO_HI:

MOV A,R1

JNB ACC.0, AGAIN_HI

MOV A,R2

MOV DPTR,#L

MOVC A,@A+DPTR

ADD A,R6

DA A

MOV R6,A

JNB PSW.7,PLUS_NEXT_HI

MOV A,R7

ADD A,#01H

DA A

MOV R7,A

PLUS_NEXT_HI:

MOV A,R2

MOV DPTR,#HI

MOVC A,@A+DPTR

ADD A,R7

DA A

MOV R7,A

AGAIN_HI:

MOV A,R1

RRC A

MOV R1,A

INC R2

CJNE R2,#0Dh,NACHALO_HI

MOV A,R6

MOV DPTR,#0B000h ;Вивід на індикацію

MOVX @DPTR,A ;молодшої частини коду

MOV A,R7

MOV DPTR,#0A000h ;Вивід на індикацію

MOVX @DPTR,A ;старшої частини коду

RET

END

Варіанти індивідуальних завдань









Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2019 zdamsam.ru Размещенные материалы защищены законодательством РФ.