[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
Оставляем потроха калькуля в неприкосновенности.
Подключаемся к линиям сканирования клавиатурной матрицы через резисторы, согласующие уровни (300 кОм , но лучше поэкспериментировать).
Конфигурим ноги MCU, подключенные к ВЫХОДАМ сканирования на вход.
Конфигурим ноги MCU, подключенные к ВХОДАМ сканирования на выход.
Остальное - всё программно:
Ждём активный уровень сканирования требуемой линии клавы.
Быстро переводим линию, соответствующую нажимаемой кнопке в это же состояние.
Следим за уровнем.
Как только уровень возвратился в неактивное состояние - мигом переводим линию обратно.
И так несколько раз подряд (чтобы побороть схему антидребезга калькулятора).
Количество таких циклов ессно подобрать практическим методом для конкретного типа калькуля с хорошим запасом, учитывая то, что тактовая частота у одной и той же модели может разбегаться очень далеко.
Если будет недостаточно уровня 1,5 в для входа MCU (хотя, для PIC такой номер проходит нормально) то можно "подтянуть" (pull-up) выводы к питанию резисторами, а к калькулятору подключать через развязывающие диоды.
Ещё один способ: Использовать для "нажатия" кнопок полевые транзисторы с изолированным затвором (КП501 оптимально).
И напоследок метод - который был применен давным давно (экземпляров 1000 этого юнита до сих пор работают :))) ...
На каждую кнопку по транзистору. Транзистор открыт - кнопка нажата. Транзистор закрыт - кнопка отпущена. Проще некуда да и сканировать ничего не нужно.
E-mail: info@telesys.ru