Цитата(Golikov A. @ Jan 29 2008, 21:28)

ну на выход это не сложно, записал в порт и все готово.
sfr P4=0x80 //port address see datasheet
P4=0x03; //set
P4^=0x02; //change
P4|=0x02; //set
P4&=(~0x03); //clear
А на вход, ходят слухи что если записать в порт все единички, а потом прочитать, то прочитаешь именно то что внешнее устройство пишет в порт.
Вот как это реализовано честно не знаю, и почему не возникает конфликтов тоже, может я в корне не прав

...
p4=0x03;
if(P4==0x01) //read example
но вот последние надо уточнить, на самом деле самому интересно...
В принципе, я это знала, просто вызывает большие сомнения насчет использования портов как входов. Сначала записать туда все единички, а потом считывать пришедшие данные... странно как-то. Кстати, программирую на Си в Кейле и не представляю, как там различается считывание из регистра или из защелки. А Ассемблер, к сожалению, не знаю.
Если у кого-то есть опыт работы с портами, поделитесь.