Міністерство освіти і науки України
Національний університет “Львівська політехніка”
ІТРЕ
Кафедра РЕПС
Курсова робота
з дисципліни :
“Мікропроцесори у радіотехнічних системах ”
на тему:
„Пристрій для вимірювання опору та ємності з автоматичним вибором меж вимірювання”
№0104054
Львів 2005
Зміст
Технічне завдання 3
Вступ 4
Опис методу 5
Опис електричної схеми 8
Опис програмної частини 9
Висновок 10
Список літератури 11
Додатки:
Алгоритм роботи програми
Лістинг програми
Схема електрична принципова
Перелік елементів
Технічне завдання.
Розробити на базі мікроконтроллера МК-51 пристрій для вимірювання опору на діапазонах 1 кОм, 10 кОм та ємності на діапазоні 1 мкФ, 10 мкФ з автоматичним вибором меж вимірювання без використання АЦП. Індикатор 4-розрядний, семисегментний.
2. Вступ
Сучасний рівень автоматизації в промисловості значною мірою забезпечуєься застосуванням систем програмного керування на базі мікропроцесорних обчислювальних пристроїв. Тому спеціалісти, які експлуатують та проектують системи автоматичного керування , повинні володіти відповідними знаннями не тільки для програмування мікропроцесорних обчислювальних пристроїв, але і для побудови та функціонування мікропроцесорних систем, мати навики роботи з ними для використання під час проектування та експлуатації систем програмного керування найрізноманітнішими пристроями та механізмами.Адже сфери використання мікропроцесорних пристроїв та систем надзвичайно різноманітні. Це універсальні обчислювальні пристрої - комп'ютери та калькулятори, а поза тим – системи керування електроприводами промислових механізмівта установок, робототехніка, системи контролю та сигналізації, електропобутова техніка, електричні системи та комплекси транспортних засобів тощо.
Створення МП призвело до появи принципово нових напрямків у створенні і застосуванні цифрової обчислювальної техніки : вмонтоване керування складним обладнанням і приладами, багатопроцесорні системи, персональні комп`ютери тощо.
Мікропроцесорна система представляє собою систему обробки інформації та керування, реалізовану на основі сучасної елементної бази і принципу програмного керування. Для побудови мікропроцесорної системи потрібний обмежений набір апаратних ресурсів, а реалізація функцій системи покладається на програмне забезпечення. Таким чином, мікропроцесорні системи - це цифрові системи обробки інформації і керування, функціональні можливості яких визначаються програмним забезпечення, а взаємозв’язок з зовнішнім середовищем забезпечується зовнішніми пристроями.
1. Опис методу
Для вимірювання опору ми будемо використовувати інтегруючу RC–ланку (мал.1). При подачі одиничного стрибка на таку ланку в ній протікає перехідний процес, який описується рівнянням:
Uc(t) = Uж (1 – e-t/τ) (1)
При цьому перехідний процес матиме вигляд, показаний на мал.2:
Мал.1. Інтегруюча RC-ланка Мал.2. Перехідний процес в інтегруючій RC-ланці
Величину вимірюваної ємності ми будемо визначати з часу заряду ємності до певного рівня Uоп. Необхідну залежність ми можемо вивести з рівняння (1):
Uоп/Uж = 1 – e -t/τ → - t/τ = ln (1 - Uоп/Uж) ,
де τ =RC – стала часу RC-ланки, Uоп – опорна напруга, до якої ми будемо заряджати конденсатор.
Так як логарифм від відношення напруг є величина незмінна, його можна порахувати наперед і записати, як константу „k”:
k = – ln (1 - Uоп/Uж)
τ = t / k → C = t / k R
Для найбільш ефективного вимірювання напруга Uc повинна знаходитись на рівні біля 2/3 від Uж. Виберемо напругу Uоп такою, щоб константа „k” була рівна 1:
– ln (1 - Uоп/Uж) = 1 → Uоп = Uж (1 – 1/e)
C = t / R і відповідно R=t/C
Напругу живлення вибираємо 5В (напруга живлення мікроконтролера), при цьому Uоп = 2.71В.
Порахуємо значення ємності конденсатора для кожного діапазону вимірювання:
τ max = 10мс = 0.01с
Ємність:
Для діапазону 1кОм :
С4 = = =
Для діапазону 10кОм :
С5 = = =
Опір:
Для діапазону 1 мкФ:
R3 =
Для діапазону 10 мкФ:
R4 =
Порахуємо похибку вимірювання в кожному діапазоні:
Для діапазону 1 кОм :
ΔR1 = Rmax / Nmax = 1000 / 1∙104 = 0,1 (Ом)
δ R1 = (ΔR1 / Rmax) ∙ 100 % = 1∙10-1 ∙100 % /1000 = 1∙ 10-2 %
Для діапазону 10 кОм :
ΔR2 = Rmax / Nmax = 10000/ 1∙104 = 1 (Ом)
δ R2 = (ΔR2 / Rmax) ∙ 100 % = 1∙100 % / 10000 = 1∙ 10-2 %
Для діапазону 1 мкФ:
ΔС1 = Сmax / Nmax = 1∙10-6 / 1∙104 = 1∙10-10 (Ф)
δ С1 = (ΔС1 / Сmax) ∙ 100 % = 1∙10-10 ∙100 % /1∙10-6 = 1∙ 10-2 %
Для діапазону 1 мкФ:
ΔС1 = Сmax / Nmax = 10∙10-6 / 1∙104 = 1∙10-9 (Ф)
δ С1 = (ΔС1 / Сmax) ∙ 100 % = 1∙10-9 ∙100 % /10∙10-6 = 1∙ 10-2 %
Схема працює наступним чином. Опір Rx чи Сx, що необхідно виміряти , вмикається до клем згідно схеми, при цьому на транзистор подається логічна одиниця, яка його відкриває, після чого відбувається заряд конденсатора. Після заряду конденсатора до напруги Uоп спрацьовує компаратор і на вхід P1.0 поступає сигнал за яким ми зупиняємо таймер/лічильник. Значення опору чи ємності буде визначатися числом в таймері/лічильнику та виводиться на індикатор, а діапазон вимірювання індикується за допомогою світлодіодів. Якщо заряд конденсатора не відбувся, програмно відкривається наступний транзистор і все повторюється знову. Польові транзистори VT1 і VT6 служать для розряду конденсаторів при подачі на них напруги, що відповідає логічній одиниці.
2. Опис електричної схеми
Проектований вимірювач опору живиться від джерела постійної напруги +5В. Технічним завданням нам задано серію мікроконтролерів MK51. При виборі конкретної моделі мікроконтролера будемо керуватись такими вимогами:
вибраний мікроконтролер повинен мати внутрішню пам’ять;
повинен мати достатню кількість портів вводу-виводу;
наявність 16-розрядного таймера-лічильника;
об’єм оперативної пам’яті не є суттєвим;
по можливості мати низьке енергоспоживання.
Описаним вище вимогам найбільше задовільняє мікроконтролер КР1816ВЕ51.
Для контролю рівня заряду конденсатора використаємо компаратор DA1, на один вхід якого ми подаємо напругу конденсатора, а на інший опорну напругу Uоп, яка задається стабілітроном VD1 і точніше виставляється резистивним подільником R11. Для зменшення впливу вхідного опору компаратора на заряд конденсатора необхідно вибрати компаратор з високим вхідним опором, наприклад LM219D вхідний опір якого складає 10 МОм. Точність вимірювання опору напряму залежить від точності взірцевих конденсаторів і резисторів, тому їх слід вибирати термостабільними і високоточними з якомога меншим допуском на розкид параметрів
Вихід компаратора DA1 під’єднується до входу P1.0 мікроконтролера і при заряді конденсатора до напруги Uоп переключається в стан логічної „1” і програмно ми зупиняємо таймер і зберігаємо результат. Відображення результатів (номер виміряного резистора і його значення) здійснюється на чотирьохрозрядному семисегментному індикаторі з динамічною індикацією.
3. Опис програмної частини
Програмна частина складається з оголошення констант, головної програми ініціалізації, підпрограм обробки перериваннь від таймера-лічильника, а також службових підпрограм, що реалізують перекодування і виведення результату.
В головній програмі ініціалізації в регістри загального призначення заносяться початкові значення, задається режим роботи таймерів-лічильників та заносяться початкові значення константи в регістр вибору давача і лічильника давачів, а також задається дозвіл на переривання.
Лічильник Т0 рахує час заряду взірцевого конденсатора чи конденсатора ємність якого вимірюється. Для спрощення розрахунків і прискорення вимірювання виберемо максимальний час заряду конденсатора рівним 10 мс, що відповідатиме 10000 лічильним тактам таймера-лічильника.
Переривання від таймера-лічильника означає, що виникло переповнення і необхідно змінити діапазон. Підпрограма обробки переривання зупиняє таймер-лічильник і робить перехід на інший діапазон вимірювань шляхом вибору іншої RC - ланки та ініціалізації лічильника .
Згідно вищеприведеного опису написано програму на мові асемблера для мікроконтролера КР 1816 ВЕ 51. Лістинг програми приведений у додатку 1.
При вимірюванні ємності та опору, з допомогою такого методу, буде виникати похибка, яка буде залежати від:
точності взірцевої ємності в RC-ланці та її термостабільності;
вхідного опору операційного підсилювача;
часової затримки між заряджанням конденсатора і зупинкою лічильника;
періоду лічильних імпульсів таймера-лічильника
стабільністі джерела живлення.
Висновок
У цій курсовій роботі було розроблено пристрій для вимірювання опору та ємності з автоматичним вибором меж вимірювання на мікроконтролері МК-51 без використання аналого-цифрового перетворювача.
Був запропонований метод вирішення цієї задачі, який ґрунтується на визначенні опору резистора через вимірювання часу заряду ємності інтегруючої RC-ланки до певної напруги і перерахунку цього часу на шукану величину. Були викладені математичні основи такого перерахунку і запропоновані ідеї, щодо спрощення цієї процедури. Відповідно до цього були підібрані оптимальні значення напруги живлення і опорної напруги, а також визначене значення взірцевих ємностей та опорів вимірювальних RC-ланок.
На базі мікроконтроллера КР 1816 ВЕ 51 була розроблена електрична принципова схема такого вимірювача опору та ємності, яка передбачає автоматичне циклічне опитування резистивних та ємнісних давачів і виведення на дисплей значення опору чи ємності.
На підставі цієї схеми і запропонованого часового методу вимірювання опору був складений алгоритм роботи такого пристрою. Цей алгоритм був реалізований на мові асемблера.
Розроблений пристрій для паралельного вимірювання опору та ємності з автоматичним вибором діапазону вимірювання повністю відповідає поставленому технічному завданню.
Список літератури.
Самофалов, Вікторов, Кузняк „Мікропроцесори” – К. - 1989р;
Лихтцындер „Микропроцесоры в радиотехнических системах” – К. – ВШ 1989г;
Корячко „Микропроцесоры и микро ЕОМ в радиоелектронних средствах” – М. – ВШ, 1990г;
Каган, Сташын „Основы проектирования микропроцесорных устройств автоматики” – М. – Енерго Атом Издат, 1987г;
Сташын, Урусов, Мологонцева „Проектирование цифровых устройств на микроконтролерах” – М. - Енерго Атом Издат, 1990г;
Конспект лекцій з курсу „Мікропроцесори в радіоелектронних пристроях”.
Додаток 1. Лістинг програми.
chas equ 10000 ; час затримки 10 мс.
chasx equ 65535-chas
org 0000 ; вектор рестарту
jmp start
org #0Bh ; вектор обробки переривання від таймера
jmp timer
org #0100h ; адреса початку програми
start: mov SP, #10H ; 3-ій банк регістрів використаємо під стек
anl PSW, #0EFH ; перемикання на 1-ий банк
orl PSW, #08h
mov P1, #0FFh ; всі розряди встановлюємо 1
mov P2, #0FFh ;
mov P3, #0FFh ;
mov R6, #10h ; сигнал вибору діапазону
X1: mov R3,#0h
mov IP, #00h ; пріоритет переривань
mov IE, #00h ; заборона переривань
mov TMOD, #01h ; задання режиму роботи лічильника
cjne R6, #010h, mit ; вибір транзистора для розряджання конденсатора
cjne R6, #020h, mit
mov P1, #04h
mit: mov P1, #02h
mov DPTR, #chasx; ; запис у таймер
mov TH0, DPL
mov TL0,DPH
setb ET0 ; дозвіл переривань від лічильника
setb EA ; глобальний дозвіл
setb TR0 ; запуск лічильника
mov P1, R6 ; початок заряду
X2: cjne R3, #0, X3 ; перевірка ознаки переривання
mov A, P1
jz X2
mov TCON,#0h ; зупинка таймера
mov R2,TL0 ; заносимо молодший розряд в R2
mov R7,TH0 ; заносимо молодший розряд в R7
call decode ; виклик підпрограми дешифрації
jmp X1
X3: mov A, R6
rlc A ; зміна діапазону
jc error ; підпрограма помилки
mov R6, A
jmp X2
error: mov P2, #0h
mov P3, #0h
z: jmp z
Підпрограма конвертування у двійково-десяткову
decode: mov A, R7
push Acc
mov A, R2
push Acc
anl PSW, #0E7H ; перемикання на 0-ий банк регістрів
pop Acc
mov R0, A
pop Acc
mov R1, A
mov B, #5
Conv: mov R3, #0
mov R2, #0Ah
push B
call UDIV16
pop B
mov A, R2 ; збереження залишку в стеку
push Acc
djnz B, Conv
Wled: pop Acc ; індикація старшого розряду
pop Acc
anl A, #0Fh;
mov P2, A
pop Acc
rlc A
rlc A
rlc A
rlc A
anl A, #0F0h
orl P2, A
pop Acc
anl A, #0Fh;
mov P3, A
pop Acc ; індикація молодшого розряду
rlc A
rlc A
rlc A
rlc A
anl A, #0F0h
orl P3, A
anl PSW, #0EFH ; перемикання на 1-ий банк
orl PSW, #08h
ret
timer: mov R3, #0h
reti
$include (math.asm)
END
Додаток 2. Алгоритм.
Додаток 3. Перелік елементів.
Позначення
Найменування
Кіл-ть
Примітки
Батареї
В1
7.5В
1
В2
5В
1
Конденсатори
C1, C2
КД1-1 33нФ ±10%
2
С3
КД1-1 10мкФ ±10%
1
С4
КД77-1 10мкФ ±0,5%
1
С5
КД77-1 1мкФ ±0,5%
1
Мікросхеми
DA1
TL062
1
DD2
AT89C51
1
Дисплеї
HL1-HL4
7SEG-BCD
4
Резистори
R1
МЛТ1-0,125 51±10%
1
R2, R4-R8
МЛТ1-0,125 1K±10%
6
R3
МЛТ1-0,125 10K±10%
1
R9
МЛТ1-0,125 8.2K±10%
1
R10
СП5-22 22 К±10%
1
МВВ 0104044
Зм
Арк.
№докум.
Підпис
Дата
Виконав
Гуляйгродс
кий
Літера
Аркуш
Арушів
Перев.
Протасевич
Вимірювач 2-х опорів та ємностей
У
1
2
НУ “ЛП”
Перелік елементів
ІТРЕ РТСзі-51
Позначення
Найменування
Кіл-ть
Примітки
Діоди
VD1
КС133А
1
VD2-VD6
АЛ307Б
5
Транзистори
VT1-VT6
2N6660
6
Резонатори
X1
РК1-1 12MHz
1
Виконав
Гуляйгродс
ький
Вимірювач 2-х опорів та ємностей
Літера
Аркуш
Арушів
Перев.
Протасевич
У
2
2