Con toda seguridad si se puede, hace ya un tiempo realice un proyecto de robotica (un robot hexapodo) que se mueve en base a tres servo motores que se deben mover al mismo tiempo los tres en direcciones diferentes. Esto solo con un PIC16F84.
Lo que debes hacer es primero tener los tiempos para cada posición del servo, y luego generar una tabla traducida a niveles lógicos de unos y ceros. A ver si me explico mejor:
por ejemplo:
Señal Servo 1: _··___··___··___ esto es igual a: 0011000011000011... etc
Señal Servo 2: _···__···___···___ esto es igual a: 0011100001110000... etc
Señal Servo 3: _··___··___··___ esto es igual a: 1000010000100001... etc
Señal Servo 4: _··___··___··___ esto es igual a: 0011100001110000... etc
Señal Servo 5: _··___··___··___ esto es igual a: 0011000011000011... etc
Señal Servo 6: _··___··___··___ esto es igual a: 1000010000100001... etc
Señal Servo 7: _··___··___··___ esto es igual a: 0011000011000011... etc
Señal Servo 8: _··___··___··___ esto es igual a: 0011000011000011... etc
Luego sacas por el puerto cada palabra viendo la tabla de forma vertical:
es decir:
1.- PORTB = 00100100
2.- PORTB = 00000000
3.- PORTB = 11011011
4.- PORTB = 11011011
ETC, ETC...
Trataré de buscar el programa del robot, aunque está hecho en assembler, quiza pueda servirte de guia.
Saludos!