The statement "I have broken my leg" needs more context. It could mean,
"I have broken my leg
before"
which could mean one of two things:
1) it is still broken or
2) it is no longer broken.
Without some sort of added modification, we don't know what "I have broken my leg" is in reference to, so we can't say for sure whether the leg is still broken or not. Try:
"I have
just now broken my leg" means, it is still broken.
The same holds true for the Simple Tenses:
"I broke my leg."
We don't know if the leg is still broken or not. We need more context. Let's add modification:
"I broke my leg
10 years ago." (The leg is not broken)
"I broke my leg
an hour ago." (The leg is broken)
=====
In terms of how 1. and 2. differ, well, it depends on whom you're talking to. Some people say 1. and 2. mean the same thing, whereas other people say they mean two different things:
Did you eat? (Simple Past = direct reference to time / informal)
Have you eaten? (Present Perfect = indirect reference to time / formal)
If you're writing an exam, refer to 'have eaten' as time without boundaries, and 'ate' as time with boundaries.
In many cultures of the World, it's often considered impolite to ask people in authority direct questions. In Japanese, for example, speakers end questions with words like "...don't you think?" which allows the askee a choice in their response. In English, the use of Have...? works in a similar way. The reason being, time is not an issue with the Present Perfect. It expresses "some unknown time in the past". It's that 'unknown' part of the Present perfect that speakers draw on when asking "Have you...? The assumption is that it allows the askee a choice in not having to give the time s/he had eaten. The same holds true for the Simple Past: the speaker doesn't have to say when s/he ate. But, it's different because it implies a time, whereas the Present Perfect does not imply a time.
Did you eat? (implies a specific time)
Have you eaten? (does not imply a specific time).
