Міністерство освіти і науки України
Національний університет “Львівська політехніка”
ІТРЕ
Кафедра РЕПС
Курсова робота
з дисципліни :
“Мікропроцесори у радіотехнічних системах ”
на тему:
„Пристрій для вимірювання опору та ємності з автоматичним вибором меж вимірювання”
Львів 2006
Зміст
Технічне завдання 3
Вступ 4
Опис методу 5
Опис електричної схеми 8
Опис програмної частини 10
Висновок 12
Список літератури 13
Додатки:
Алгоритм роботи програми
Лістинг програми
Схема електрична принципова
Перелік елементів
Технічне завдання.
Розробити на базі мікроконтроллера МК-51 пристрій для вимірювання опору на діапазонах 1 кОм, 10 кОм та ємності на діапазоні 1 мкФ, 10 мкФ з автоматичним вибором меж вимірювання без використання АЦП. Індикатор 4-розрядний, семисегментний.
1. Вступ
Сучасний рівень автоматизації в промисловості значною мірою забезпечуєься застосуванням систем програмного керування на базі мікропроцесорних обчислювальних пристроїв. Тому спеціалісти, які експлуатують та проектують системи автоматичного керування , повинні володіти відповідними знаннями не тільки для програмування мікропроцесорних обчислювальних пристроїв, але і для побудови та функціонування мікропроцесорних систем, мати навики роботи з ними для використання під час проектування та експлуатації систем програмного керування найрізноманітнішими пристроями та механізмами. Адже сфери використання мікропроцесорних пристроїв та систем надзвичайно різноманітні. Це універсальні обчислювальні пристрої - комп'ютери та калькулятори, а поза тим – системи керування електроприводами промислових механізмів та установок, робототехніка, системи контролю та сигналізації, електропобутова техніка, електричні системи та комплекси транспортних засобів тощо.
Створення МП призвело до появи принципово нових напрямків у створенні і застосуванні цифрової обчислювальної техніки: вмонтоване керування складним обладнанням і приладами, багатопроцесорні системи, персональні комп`ютери тощо.
Мікропроцесорна система представляє собою систему обробки інформації та керування, реалізовану на основі сучасної елементної бази і принципу програмного керування. Для побудови мікропроцесорної системи потрібний обмежений набір апаратних ресурсів, а реалізація функцій системи покладається на програмне забезпечення. Таким чином, мікропроцесорні системи - це цифрові системи обробки інформації і керування, функціональні можливості яких визначаються програмним забезпечення, а взаємозв’язок з зовнішнім середовищем забезпечується зовнішніми пристроями.
2. Опис методу
Для вимірювання опору ми будемо використовувати інтегруючу 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
Виберемо напругу Uоп такою, щоб константа „k” була рівна 1:
– ln (1 - Uоп/Uж) = 1 → Uоп = Uж (1 – 1/e)
C = t / R і відповідно R=t/C
Напругу живлення вибираємо 5В (напруга живлення мікроконтролера), при цьому Uоп = 3.15В.
Для зручності вимірювань приймемо:
τ 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 служать для розряду конденсаторів при подачі на них напруги, що відповідає логічній одиниці.
3. Опис електричної схеми
Проектований вимірювач опору живиться від джерела постійної напруги +5В та +12В. Технічним завданням нам задано серію мікроконтролерів MK51. При виборі конкретної моделі мікроконтролера будемо керуватись такими вимогами:
вибраний мікроконтролер повинен мати внутрішню пам’ять;
повинен мати достатню кількість портів вводу-виводу;
наявність 16-розрядного таймера-лічильника;
об’єм оперативної пам’яті не є суттєвим;
по можливості мати низьке енергоспоживання.
В даній роботі використано мікроконтролер КР1816ВЕ51.
Цей мікроконтролер має такі основні характеристики:
Обсяг внутрішньої пам’яті програм, кілобайтів.............................4
Обсяг внутрішньої пам’яті даних, байтів........................................128
Максимальна частота слідування тактових сигналів , МГц…..12
Струм споживання (при =12 МГц), мА ...............20
Напруга живлення , В ......................4,0 - 6,6
Вихідна напруга високого рівня , В............................................> 2,4
Вихідна напруга низького рівня , В ...................< 0,4
Вихідний струм високого рівня , мкА .....................<60
Вихідний струм низького рівня , мА.....................................< 15
Для контролю рівня заряду конденсатора використаємо компаратор DA1, на один вхід якого ми подаємо напругу конденсатора, а на інший опорну напругу Uоп, яка задається стабілітроном VD1 і точніше виставляється резистивним подільником R11. Для зменшення впливу вхідного опору компаратора на заряд конденсатора необхідно вибрати компаратор з високим вхідним опором, наприклад LM219D:
Напруга живлення, , В............................................................ ± (5–18)
Напруга зміщення, , мВ.........................................................................0,7
Вхідний струм зсуву, , нА.................................................................150 – 500
Вхідний струм зміщення, , нА.............................................................30 – 75
Час встановлення, , мкс..........................................................0,08
Вихідний струм, Івих, мА..................................................................25
Струм споживання, Іж, мА..........................................................12,5
Вхідний опір, Rвх, МОм…………………………………………...10
Точність вимірювання опору напряму залежить від точності взірцевих конденсаторів і резисторів, тому їх слід вибирати термостабільними і високоточними з якомога меншим допуском на розкид параметрів
Вихід компаратора DA1 під’єднується до входу P1.0 мікроконтролера і при заряді конденсатора до напруги Uоп переключається в стан логічної „1” і програмно ми зупиняємо таймер і зберігаємо результат. Відображення результатів здійснюється на чотирьохрозрядному семисегментному індикаторі з динамічною індикацією.
Характеристики транзистора 2N6660:
Максимально допустимі параметри
постійна розсіювана потужність …………………………..Pmax=6,25 Вт
постійна напруга стік-витік ………………………………..UСВmax=60 В
постійна напруга заслін-витік ……………………………..UЗВmax=30 В
постійний струм стоку ……………………………………...ICmax=2 A
максимальна температура навколишнього середовища …Tmax=150 °C
Постійний струм стоку ……………………………………..IC=0,5 A
Початковий струм стоку .…………………………………..Iпоч=0,01 A
Напруга відсічки…………………………………………… UЗСвід=2 В
Крутизна характеристики………………………………….S=170..195 мА/В
Вхідна ємність ………………………..……………………СЗС=50 пФ
4. Опис програмної частини
Програмна частина складається з оголошення констант, головної програми ініціалізації, підпрограм обробки перериваннь від таймера-лічильника, а також службових підпрограм, що реалізують перекодування і виведення результату.
В головній програмі ініціалізації в регістри загального призначення заносяться початкові значення, задається режим роботи таймерів-лічильників та заносяться початкові значення константи в регістр вибору давача і лічильника давачів, а також задається дозвіл на переривання.
Лічильник Т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 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
jmp error
;Підпрограма конвертування у двійково-десяткову форму
decode: mov A,TL0
mov R2,#EFh
subb A,R2
mov R2,A
mov A,TH0
mov R3,#D8h
subb A,R3
mov R3,A
mov R5,#00h ; в цей регістр ми занесемо перші два числа
mov DPTR,#1000d ; спочатку ми будемо віднімати 1000
mit1: inc R5 ; збільшуємо вміст регістра до виникнення ознаки ;переносу
call minus
inc mit1
call plus
dec R5
mov A,R5 ; переносимо підраховане число у другу тетраду регістру
swap A
mov R5,A
mov DPTR,#100d ; тепер будемо віднімати 100, при кожному віднімані ;будемо
mit2: inc R5 ; збільшувати вміст регістра на одиницю до тих пір,
call minus ; поки не виникне ознака переносу
inc mit2
call plus
dec R5
mov R4,#00h ; в цей регістр ми занесемо інші два числа
mov DPTR,#10d ; рахувати будемо десятки
mit3: inc R4
call minus
inc mit3
call plus
dec R4
mov A,R4 ; робимо обмін тетрад у регістрі
swap A
add A,DPL
mov R5,A
induk: mov P2,R5 ; виводимо значення опору, яке зберігається в парі регістрів
mov P3,R4
call induk
ret
minus: clr C ; пп віднімання двохбайтного слова
mov A,R2
subb A,DPL
mov R2,A
mov A,R3
subb A,DPH
mov R3,A
ret
plus: clr C ; пп додавання двохбайтного слова
mov A,R2
add A,DPL
mov R2,A
mov A,R3
add A,DPH
mov R3,A
ret
END
Додаток 2. Алгоритм.
Підпрограма переведення двохбайтового двійкового числа в десяткову форму
Додаток 3. Перелік елементів.
Позначення
Найменування
Кіл-ть
Примітки
Мікросхеми
DA1
TL062
1
DD1
КР1816ВЕ51
1
DD2-DD5
54141ADM
4
Транзистори
VT1-VT6
2N6660
6
Конденсатори
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
C6,C8
КД1-1 0,1мкФ ±10%
2
C7,C9
КД1-1 100мкФ ±10%
2
Індикатори
HL1-HL4
ELS2326EGWA
4
МВВ 0104044
Зм
Арк.
№докум.
Підпис
Дата
Виконав
Гуляйгродс
ький
Літера
Аркуш
Арушів
Перев.
Протасевич
Вимірювач 2-х опорів та ємностей
У
1
2
НУ “ЛП”
Перелік елементів
ІТРЕ РТСзі-51
Позначення
Найменування
Кіл-ть
Примітки
Резистори
R1
МЛТ1-0,5 200±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-30 47 К±10%
1
R11-R16
МЛТ1-0,25 2,2К±10%
6
Діоди
VD1
КС133А
1
VD2-VD6
АЛ307Б
5
Резонатори
X1
РК1-1 12MHz
1
Виконав
Гуляйгродс
ький
Вимірювач 2-х опорів та ємностей
Літера
Аркуш
Арушів
Перев.
Протасевич
У
2
2