Дополнительные упражнения
(1) Покажите, как построить JK-триггер с помощью D-триггера и коммутатора-мультиплексора на 4 входа. Подсказка: используйте адресные входы коммутатора в качестве J и К.
(2) Разработайте схему, которая на 7-сегментном индикаторе будет показывать время (в миллисекундах), в течение которого была нажата кнопка. После каждого измерения устройство должно возвращаться в исходное положение. Воспользуйтесь генератором 1,0 МГц.
(3) Разработайте измеритель реакции. После того как «А» нажимает кнопку, загорается светодиод и счетчик начинает отсчет. Когда свою кнопку нажимает «В», светодиод гаснет, а на цифровом индикаторе воспроизводится время в миллисекундах. Позаботьтесь о том, чтобы схема работала нормально даже в том случае, когда «А» успевает отпустить свою кнопку до того, как «В» нажмет свою.
(4) Спроектируйте измеритель периода — устройство, измеряющее число микросекунд в одном периоде гармонического входного сигнала. Установите на входе компаратор на триггере Шмитта для формирования уровня ТТЛ; используйте тактовую частоту 1 МГц. Каждое очередное измерение должно начинаться после нажатия кнопки.
(5) Если вы еще не успели поставить буферный регистр, добавьте его к счетчику периода.
(6) Сделайте так, чтобы схема измеряла время десяти периодов. Кроме того, во время счета должен загореться светодиод.
(7) Сконструируйте электронный секундомер. Кнопка «А» начинает и останавливает счет, кнопка «В» производит сброс. Выход должен иметь вид хх. х (секунды и десятые доли). Считайте, что в схеме имеются прямоугольные импульсы, следующие с частотой 1 МГц.
(8) В некоторых секундомерах используется только одна кнопка (при каждом нажатии выполняется одна из операций цикла: пуск, останов, сброс, затем снова пуск и т. д.).
(9) Спроектируйте высокочувствительный цифровой частотомер для измерения числа периодов входного сигнала в 1 с. Число значащих цифр должно быть достаточно большим. За время каждого цикла счета число, отсчитанное на предыдущем интервале, запоминайте в буферном регистре. Интервалы счета возьмите равными 1, 0,1 и 0,01 с. Полезно добавить в устройство хорошую входную схему, она позволит работать при различных значениях чувствительности. Эта схема представляет собой триггер Шмитта с регулируемыми гистерезисом и точкой запуска (используйте быстродействующий компаратор). Можно добавить также сигнальный вход для уровней ТТЛ. Подумайте над тем, как организовать двоично-десятичный выход: с помощью коммутации или путем параллельного вывода каждой цифры? Задумайтесь на некоторое время.
(10) Сконструируйте схему для регистрации пролета снаряда или пули, используя НС-логику. Летящий снаряд разрывает тонкий провод, пересекающий путь его пролета, затем, преодолев по ходу через некоторое расстояние, он разрывает второй провод. Не забывайте о проблеме дребезга контактов. Считайте, что в вашем распоряжении есть последовательность прямоугольных импульсов с частотой 10 МГц с уровнями ТТЛ, и постройте схему для воспроизведения на индикаторе интервала времени между моментами разрыва двух проводов в микросекундах (4 цифры). Схема должна быть готова к очередному выстрелу путем нажатия кнопки.
(11) С помощью двух схем 74HC42-S («1 из 10») сконструируйте дешифратор «1 из 16». Входной сигнал представляет собой 4-разрядное двоичное число. На выходе должны действовать сигналы с отрицательной логикой (как у схемы 74НС42). Подсказка: в качестве входа старшего разряда используйте вход «Разрешение».
(12) Представьте, что у вас есть четыре ПЗУ на 256 бит семейства ТТЛ, каждое из которых имеет 8-разрядный параллельный адресный вход, выходные схемы с тремя состояниями (в положительной логике) и вход для их отпирания, который использует отрицательную логику (т. е. ПЗУ выдает на выход выбранный информационный бит, когда разрешающий сигнал имеет низкий уровень). Покажите, как с помощью этих устройств, используя любые необходимые средства, построить ПЗУ на 1024 бита. (Возможно, окажется удачным применить схему 74НС138, а может это проще сделать с помощью вентилей.) Воспользуйтесь этими способами.
(13) Придумайте схему, которая хранила бы текущую сумму последовательно вводимых в нее 4-разрядных двоичных чисел. Сохраняйте только 4 разряда результата (т. е. производите суммирование по модулю 16). Аналогичные схемы используются для получения контрольных сумм, которые записываются на носитель информации, чтобы выявить ошибки, например при записи на перфоленту. Считайте, что каждое новое число сопровождается положительным импульсом готовности, которое имеет длительность 1 мкс и уровень ТТЛ. Предусмотрите вход сброса. Таким образом, ваша схема будет иметь общий вид, показанный на рис. 8.99.
Рис. 8.99.
К этой схеме добавьте еще выходной бит, который будет равен 1, если общее число «единиц» всех чисел, поступающих на вход с момента последней установки, нечетно, и 0, если оно четно. Подсказка: с помощью «паритетного дерева» Исключающего ИЛИ можно определить, когда сумма «единиц» в каждом числе будет нечетной; на основе этого постройте схему.
(14) В упражнении 8.14 вы построили схему умножения 2x2, используя карты Карно для каждого выходного бита. А теперь решите ту же задачу, используя операции сдвига и сложения. Для начала запишите произведение тем способом, который известен вам из начальной школы. Этот процесс имеет простую повторяющуюся схему (рис. 8.100) и требует для реализации несколько 2-входовых вентилей (какого типа?), которые будут вырабатывать промежуточные члены (а0Ь0 и т. п), и 1-разрядных полусумматоров (сумматоры, которые имеют выход переноса, но не имеют входа переноса) для сложения промежуточных членов.
Рис. 8.100.
(15) Теперь по тому же принципу сконструируйте умножитель 4x4 с помощью 4-разрядных полных сумматоров (74НС83) и 16 2-входовых вентилей.