Sí, creo q como lo hace manolo es la mejor manera.
No sé porqué dejé así el código. Aunque es por un instante, dejaba el puerto con un valor que no era el que deseabamos.
Puedes estirar su ejemplo en varias lineas:
Leemos el puerto
Modificamos los bits que queremos
Reescribir en el puerto
Pero si se puede hacer todo el una linea, pues mejor

En cuanto al nombre de los diferentes grupos de bits, por lo que yo se, WORD es un tipo de datos de 16 bits y DWORD de 32bits.
Pienso que hay un poco de lio entre el nombre que le damos y el tipo de dato que lo representa (que además cada uno le llama como quiere y si no le gusta lo renombra):
8 bits -> char, byte
16 bits -> int, long, word, short
32 bits -> long, float, dword
Un saludo
gONzAO