Цитата(Jead @ Jan 13 2012, 17:19)

Ну не совсем обнулять, а скажем послать в него определенную комбинацию, н-р: MOV P1,#01000000b.
Наверное, Вы хотели спросить следующее:
Допустим, что младшие 3 бита порта Р1 предназначены для ввода, а старшие 5 бит - для вывода. Как, настроив младшие биты порта Р1 на ввод, изменять значение битов порта Р1 на вывод, при этом не затрагивая биты этого порта, настроенные на ввод?
Ответ:
1. Допустим, что в начале работы программы значения выходных пинов (битов) порта Р1 - низкий уровень (ноль). Настройка (инициализация) порта Р1 осуществляется следующим образом:
MOV P1, #00000111b
В случае, если некоторые пины (биты) порта Р1, предназначенные для вывода, в начале работы программы должны иметь высокий уровень (единицу), то инициализация будет выглядеть так (например, самый старший разряд - высокий.единица):
MOV P1, #10000111b
2. Например, теперь необходимо сигнал на третьем (считаем с нуля!) пине (бите) сделать сигнал высокого уровня. Делается это так:
ORL P1, #00001000b
или так
SETB P1.3
3. Теперь, например, на этом (третьем) пине (бите) нужен низкий уровень:
ANL P1,#NOT 00001000b
или
CLR P1.3
4. Если нужно установить сразу два бита (например, четвертый и пятый):
ORL P1,#00110000b
сбросить в ноль эти два бита
ANL P1,#NOT 00110000b
5. Если нужно изменить значение одного бита (например, третьего) на противоположное:
CPL P1.3
Ну, вот, как-то таким образом.