Good question. When you specify a time that you did an action, we don't use have+verb to describe the action. So, saying "I visited Niagara Falls last weekend." is the only correct option when using a specific time.
You can say "I have visited Niagara Falls." but without the time specifier - more like a response to a question emphasizing a past action.