Ok, you’ve typed the commands on hyperterminal manually and the modem sends sms. That means the modem is working.
Now you must check whether your code is working; remove the gsm modem and connect your controller to the hyperterminal, and see whether the controller is sending the same command to the hyperterminal.
If you can see the exactly same commands on the hyperterminal which you’ve manually typed previously, then your code is also working, otherwise some hardware issues.
In embedded system knowing whether the problem is in hardware or software is the first step in debugging!