Почётный гражданин KAZUS.RU
Регистрация: 30.10.2006
Сообщений: 1,755
Сказал спасибо: 0
Сказали Спасибо 80 раз(а) в 56 сообщении(ях)
|
Будем считать активным уровнем в системе уровень логической единицы.
Существует неприоритетный шифратор с 10 входами и четырьмя выходами, формирующий двоичный код нажатой клавиши. Т.е. при появлении активного уровня на каком либо входе, на двоичном выходе формируется его номер, при этом если нажато более одной клавиши, формируется номер последней нажатой клавиши.
Пусть клавиша "0" имеет наивысший приоритет, а клавиша "9" низший, т.е. если нажата клавиша "0" формируется её код, на нажатие клавиш "1-9" шифратор не реагирует. Если нажата клавиша, например, "5", то формируется её код, шифратор не реагирует на нажатие клавиш "6-9", а при нажатии клавиш "0-4" формируется новый код в зависимости от нажатой клавиши.
Для осуществления указанной функции необходимо разработать цепь блокировки клавиш низшего приоритета.
Пусть клавиши приоритетного шифратора подключены к входам неприоритетного шифратора через элементы И, причем клавиша "0", подключена напрямую к входу "0" неприоритетного шифратора, клавиша "1" через двухвходовой элемент И, клавиша "2" через 3-х входовой, ... , клавиша "9" через 10 входовой.
На выходе элемента И будет сформирована лог.1 только тогда, когда на всех его входах присутствуют лог.1.
Соединим через инверторы выходы элементов И клавишей высшего приоритета с одним из входов элементов И всех клавиш низшего приоритета. Т.е. клавишу "0" (напомним она подключается к входу неприоритетного шифратора напрямую) через инвертор, соединим с одним из входов всех элементов И клавиш "1-9"; выход элемента И, подключенного к клавише "1", через инвертор, соединим с одним из входов всех элементов И клавиш "2-9"; ... ; выход элемента И, подключенного к клавише "8", через инвертор, соединим со одним из входов элемента И клавиши "9".
Мы получили приоритетный шифратор на базе неприоритетного.
Рассмотрим его работу. Пусть нажата клавиша "0". На выходе инвертора, подключенного к этой клавиши, будет сформирован логический "0", который заблокирует выход всех элементов И, к которым подключены клавиши "1-9", на выходе неприоритетного шифратора будет сформирован код клавиши "0", который не будет изменен при нажатии клавиш "1-9", поскольку на одном из входов элементов И, через которые подключены эти клавиши, присутствует логический ноль.
Пусть нажата клавиша "7", тогда лог.0 сформированный на выходе инвертора, подключенного к выходу элемента И клавиши "7", заблокирует клавиши "8-9", на выходе неприоритетного шифратора будет сформирован код клавиши "7", однако при нажатии, клавиши, например, "4", на выходе неприоритетного шифратора будет сформирован код клавиши "4", поскольку логический 0, сформированный на инверторе подключенного к выходу элемента И клавиши "4", заблокирует клавиши "5-9".
С уважением, Алексей.
|