Предлагаемое устройство выполнено по принципу, описанному в [1]. Подав на выводы порта Р3 микроконтроллера соответствующую комбинацию логических уровней, можно прочитать на выводах порта Р1 код, содержащийся в ячейке его внутренней Flash-памяти. Обычно этот режим используют программаторы для сверки записанного в память кода с заданным.
В схеме используется два микроконтроллера (МК) АТ89С2051 фирмы ATMEL, а в качестве индикаторов применены два 7-сегментных (красного свечения). Это позволило реализовать новую функцию: обучение и проверку знаний таблицы умножения. Устройство можно также использовать для сложения, вычитания и деления чисел в пределах от 0 до 99.
Микроконтроллеры в данном устройстве находятся в состоянии последовательного чтения ячеек памяти, аналогично процессу в программаторе, но чтение выполнено в одном периоде входных импульсов, что не соответствует рекомендациям разработчика МК, но реально работает (исключение - линия Р1.0). Во Flash-память МК должны быть записаны коды, которые последовательно выдаются из памяти на выводы порта Р1.
После каждого импульса высокого уровня, вырабатываемого генератором на элементах DD3.1…DD3.4, на выходы МК побайтно выдаются коды из очередной ячейки памяти (всего 2048). При логическом "0" на какой-либо линии порта светится соответствующий сегмент индикатора.
Если занести в ячейки МК данные, необходимые для свечения цифр двух разрядов (от 0 до 99), то можно в период одного импульса вывести сначала множимое число, а в период следующего - множитель. Затем в следующем такте погасить индикатор, а далее вывести результат умножения для контроля. Для отделения операций умножения друг от друга в очередном такте в старшем разряде выводится буква "П", как уведомление о необходимости приготовиться.
Цикл одной операции умножения выполняется за пять тактов генератора. Резистором R3 можно регулировать частоту генератора и, тем самым, изменять скорость выполнения операции.
В момент высокого уровня на выводе 11 DD3.4 выводы порта МК находятся в третьем (Z-состоянии). Светящимся знакам индикатора соответствуют 16-ричные коды:
0 - 81; 1 - F3; 2 - 49; 3 - 61; 4 - 33; 5 - 25; 6 - 05; 7 - F1; 8 - 01; 9 - 21; П - 91;
отсутствие свечения - FF.
Включение питания автоматически устанавливает МК в состояние чтения нулевой ячейки памяти. Процесс чтения всего массива памяти происходит с циклическим повторением. Функцию ограничения тока через сегмент индикатора (до 20 мА) с успехом выполняют внутренние буферы МК. Для программирования не нужно знать систему команд МК. В ячейки памяти заносятся только данные в соответствии с описанной логикой работы.
Для программирования МК можно применить простейший программатор без электронных компонентов[2,3].
Литература
1. Мельник В. Пишем в воздухе светодиодами. - Радио, 2006, №10, С.59.
2. Мельник В. Программатор АТ89С2051 для IBM PC. - Радиомир, 2006, №4, С.20.
3. http://nadiya.ho.ua