Калькулятор поддерживает базовые функции и операции: логическое НЕ, ИЛИ, И, Исключающее-ИЛИ, а также сложение, вычитание, умножение, деление и модулярная операция (целочисленный остаток от деления двух значений).
Базовым компонентов является микроконтроллер Atmel ATtiny2313, работающий от встроенного RC осциллятора 8 МГц (необходимо учесть это при программировании микроконтроллера).
Принципиальная схема устройства
Список компонентов
Обозначение в схеме |
Наименованиe, номинал | Примечание |
U1 | Микроконтроллер ATtiny2313 | |
U2 | Микросхема 74HC595 | Регистр сдвига |
U3 | Регулятор напряжения LM7805 | |
1K | Резистор 1 кОм | 9 штук |
91Ohm | Резистор 91 Ом | 8 штук (номинал зависит от типа применяемых светодиодов) |
2N4401 | Транзистор 2N4401 | 4 штуки |
C1 | 10 мкф × 16В | |
C2 | 100 нФ | |
SW1 – SW16 | Кнопки | |
Switch | Выключатель питания |
Микроконтроллер имеет 17 линий ввода/вывода (а если использовать внешний кварцевый резонатор, то 15 линий). Поэтому были принята методика мультиплексирования для управления светодиодами и считывания состояния 16 кнопок.
Для управления 32 светодиодами они были включены в матрицу 8×4, что сокращает количество сигнальных синий с 32 до 12. Дополнительно для управления светодиодами применяется регистр сдвига 74HC595
Микросхема 74HC595 содержит 8 битный регистр хранения и 8 битный сдвиговый регистр. Данные последовательно передаются в сдвиговый регистр, затем фиксируются в регистре хранения. К регистру хранения подключены 8 выходных линий. На картинке ниже показано расположение выводов микросхемы 74HC595. Для управления регистром сдвига требуется 3 сигнальные линии. С помощью регистра сдвига осуществляется управление столбцами, а микроконтроллер с помощью 4 транзисторных ключей управляет строками. В итоге управление 32 светодиодами осуществляется при помощи 7 линий ввода/вывода микроконтроллера.
16 кнопок объединены в матрицу 4×4 и для контроля состояния кнопок требуется 8 линйи ввода/вывода микроконтроллера.
Необходимо заметить, что резисторы в цепи светодиодов следует подобрать в соответствии с типом применяемых светодиодов. Рассчитать значение резисторов можно самому или при помощи этой интернет-странички.
Устройство собрано на макетной плате
На изображении видно обозначение функций каждой кнопки.
Программное обеспечение написано на Си, и пользователи могут самостоятельно адаптировать программу по любой другой тип микроконтроллера с числом линий ввода/вывода не менее 15. Программный код снабжен комментариями.
Работа двоичного калькулятора на микроконтроллере ATtiny2313
Загрузки
Исходный код программы микроконтроллера - скачать
hex-файл для микроконтроллера ATtiny2313 - скачать