The present perfect is used for actions that occurred at a non-specific time before now. The specific time is not important. Therefore, we do not usually use specific time expressions ("this morning", "yesterday", "last year" ...) with the present perfect. You can use the present perfect with non-concrete expressions of time ("never", "ever", "many times", "for", "since", "already", "yet" ...). This non-specific concept of time is quite difficult to understand, for this reason, below you have the particular uses of the present perfect.