Quote:
Объясните мне пожалуйста принцип работы портов ввода /вывода… в частности порта D2H
все порты ВВ55 программируются один единственный раз при включении на работу в непрерывном режиме, т.е. при вводе/выводе данные непосредственно появляются на требуемых ножках.
в случае с клавиатурой собирается квадратная матрица, через резистор линии по входу подключаются на +5В, линии по выходу идут через диод (чтобы не было КЗ) и клавишу. По нажатию клавиши в узлах решётки соединяются линии входа и выхода.
А теперь "магия": если в порту выхода выставить 0, то, при нажатой клавише, произойдёт на соответствующем участке падение напряжения и по линии входа мы получим тоже 0 (иначе там всегда 1, которая будет через резистор от +5В). Так сделано, чтобы исключить электрические наводки и помехи. В принципе, схемное решение стандартное. Клавиатура опрашивается выставлением последовательно 0 на соотв. линии выхода и анализом линий входа.
Да, ты можешь выдать на линии выхода всё что угодно, хоть 0 на все разряды, но тогда ты не сможешь отличить между собой клавиши разных строк (столбцов) клавиатурной матрицы. Но, да, если надо всего лишь проверить факт нажатия
любой клавиши, то так поступать можно.
(
http://en.wikipedia.org/wiki/Pull-up_resistor)