Amigo primero que todo te recomiendo aclarar un poco tus conocimientos sobre lo que solicitas... Todos los que nombraste si bien es cierto que son codigos de comunicacion de datos serial, no son principalmente un protocolo de comunicacion a excepcion de b8zs y hdb3 que son tecnicas de reconocimiento o verificacion de datos.
Nrz, Nrzi, Manchester, Manchester Miferencial, Bipolar, son codificaciones de de datos o señales... no son protocolos... por tanto es imposible realizarlos directamente desde un pic 16f877....
el PIC lo puedes utilizar para seleccionar el codificador que utilizaras a modo de demultiplexor y usando el MSSP envias el dato al codificador seleccionado.... nose si se entiende... estudia un pokito acerca de los codigos ke mencionas, para ke aclares tus dudas... aca te dejo algunos links..
http://es.wikipedia.org/wiki/Codificaci%C3%B3n_digital#NRZ_.28No_retorno_a_cero.29
http://www.textoscientificos.com/redes/senales/codigos
http://en.wikipedia.org/wiki/Manchester_code
saludos