3. Опис програмної частини
Програмна частина складається з оголошення констант, головної програми ініціалізації, підпрограм обробки перериваннь від таймера-лічильника, а також службових підпрограм, що реалізують перекодування і виведення результату.
В головній програмі ініціалізації в регістри загального призначення заносяться початкові значення, задається режим роботи таймерів-лічильників та заносяться початкові значення константи в регістр вибору давача і лічильника давачів, а також задається дозвіл на переривання.
Лічильник Т0 рахує час заряду взірцевого конденсатора чи конденсатора ємність якого вимірюється. Для спрощення розрахунків і прискорення вимірювання виберемо максимальний час заряду конденсатора рівним 10 мс, що відповідатиме 10000 лічильним тактам таймера-лічильника.
Переривання від таймера-лічильника означає, що виникло переповнення і необхідно змінити діапазон. Підпрограма обробки переривання зупиняє таймер-лічильник і робить перехід на інший діапазон вимірювань шляхом вибору іншої RC - ланки та ініціалізації лічильника .
Згідно вищеприведеного опису написано програму на мові асемблера для мікроконтролера КР 1816 ВЕ 51. Лістинг програми приведений у додатку 2.
При вимірюванні ємності та опору, з допомогою такого методу, буде виникати похибка, яка буде залежати від:
точності взірцевої ємності в RC-ланці та її термостабільності;
вхідного опору операційного підсилювача;
часової затримки між заряджанням конденсатора і зупинкою лічильника;
округлень при розрахунках;
періоду лічильних імпульсів таймера-лічильника
стабільністі джерела живлення.