![]() |
![]() |
|||||||||||||||
Вольтметр на AT89C2051
Автор: Neutron Всех приветствую! Появилась задача сделать простой вольтметр сетевого напряжения с цифровой индикацией, решил попробовать сделать на основе микроконтроллера AT89C2051, так как было у меня несколько старых устройств в основе которых был этот микроконтроллер и обвязка для 4 разрядного 7 сегментного LED индикатора. Применение более новых микроконтроллеров с поддержкой АЦП посчитал не оправданной, да и зачем добру пропадать. Сначала хотел сделать вольтметр на основе заряда конденсатора: Но после изучения дата шита пришлось отказаться от данной затеи, так как в микроконтроллере отсутствовало прерывание по компаратору. Второе решение которое я нашёл в интернете это было сигма-дельта АЦП. Оно чудесно вписывалось в данный микроконтроллер, но занимает почти весь вычислительный потенциал данного старичка. В двух словах: происходит зарядка разрядка конденсатора на основе статуса однобитного АЦП в роли которого выступает компаратор. Если напряжение на конденсаторе стало ниже входного то заряжаем, если выше разряжаем, попутно суммируем за определенное количество тактов сколько было зарядок. Вот эта сумма и есть дискретное значение нашего АЦП. Простая схема сигма-дельта АЦП: Просто не правда ли? Ну и для вывода нам понадобится индикатор на сдвиговых регистрах 74HC595 (блок схема, отсутствуют сопротивления и транзисторы) Вот и все. На вход Vin подаете измеряемое напряжение конечно же защитив от превышения напряжения. На индикаторе получаете значение АЦП. Частота кварца 22MHz, одно 13 битное измерение занимает 230 ms, затем оно приводится к 9 битному путем усреднения и выводится на экран. То есть на экран выводятся цифры от 0 до 511.
P.S. На счет тепловой стабильности: при нагреве феном конденсатора и сопротивления до 60С показания индикатора не изменились.
Спасибо за внимание.
Используемые материалы:
Файлы: Все вопросы в Форум.
|
|
|||||||||||||||
![]() |
![]() |


![]() |
![]() |
|||
|
||||
![]() |
![]() |