I had this problem after doing a database software only install. I found I had to open a port on the server in question and also the listener wasnt running to start with. To get it going I just went into lsnrctl (command line) and used the command start.
Because the listener had been started after the instance, the instance had missed its chance to register automatically. To fix this I just restarted the instance.
This can be done by using the sqlplus command line. You will need to login as a user with SYSDBA priveledges (eg system) syntax:
sqlplus name/pass as SYSDBA
then run 'shutdown' and wait for it to finish.
then run 'startup' and wait for it to finish.
fingers crossed you should now have an instance registered with the listener and the listener listening on an open port.
To check that the instance is registered with the listener you can go back into lsnrctl and run the command 'status'. if it hasnt worked you'll see the message 'The listener supports no services'