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