You need to rethink your problem a bit. Serial communication doesn't work with integers, jpegs, coordinates, whatever - it only works with bytes! If you need to send something other then an actual "byte" then you'll need to put it throw an process called "serialization" - ie: split it into small byte-size parts and send those parts one by one. Since you want it to work with HyperTerminal (or any other kind of terminal application) then you'll most likely want an ASCII serialization: If you want to send the 2000 number, just send it as the following 4 bytes: "2", followed by "0", followed by "0", followed by "0"! In fact when you type "2000" in the terminal application that's exactly what's happening, you're not sending one integer number, you're sending 4 ASCII chars. In fact the hyper terminal couldn't care less about what you typed: try typing "two thousand", it will not complain.
ASCII Char '2' has ASCII code 50;
ASCII Char '0' has ASCII code 48;
So you see why you're getting "You sent: 50"; "You sent: 48"; "You sent: 48"; "You sent: 48" - the MCU sees the ASCII codes for the chars you typed into your HyperTerminal application!
In order to fix this you'll need to know a few more ASCII codes:
ASCII Char '0' has ASCII code 48 (hex: 0x30);
ASCII Char '1' has ASCII code 49 (hex: 0x31);
ASCII Char '9' has ASCII code 57 (hex: 0x39);
An other interesting ASCII code:
ASCII Char CARIAGE RETURN (this is sent when you hit ENTER on the keyboard) has ASCII code 13 (hex: 0x0D)
You'll need to write an algorithm that initialises the number that's being read, reads the ASCII numbers one by one and only considers it read an number (the "You sent:" line) when an CR char (code 13) is received, ie: when you hit ENTER in HyperTerminal.
I don't want to kill all the fun by writing the algorithm for you, so give it a try yourself.