In my oppinion solution given by Kevin is not the right way to go.. I would employ any microcontroller (8051, PIC) with built-in UART, so you don't need to warry about bits, bytes and timing. All is done for you within this microcontroller. If it is for example 8051, use 11059200Hz cristal quarz and you will find a lot of application nots how to set up the UART to operate at, say, 9600bps or any other rate. You will also need TTL - to - RS232 level converter and there are hundreds of ICs to performe this task. (Most common are MAX232 or 202 - doesn'i need to be MAX, any with the number 202 or 232 will do). So you connect encoder output (assuming you have 0-5V level) to INT0 of the CPU (if you have encoder with 2 waves you will connect the other wave to any available input pins and with 2-waves shifted by 90deg you will be able to read not only distance but direction too). And that is your hardware!!! Now comes the software. Ask yourself in what format you would like to send data to PC: - raw indication that a pulse just occured ( a byte in HEX or ASCII) - calculated distance in from of a string 000.0 ..? But from this point you will not manipulate with hardare any more.. If you are intereste I can post you some diagrams of working circuits..