In daily life, there is no difference between 早上 and上午. They are usually interchangeable and equal to morning in English. However, if you want to describe an earlier time, 早上 is usually used.
中午 is noon in English,about 12-13 at the noon.
下午 is afternoon in English.
晚上 is evening in English, not night.
中午 is noon in English,about 12-13 at the noon.
下午 is afternoon in English.
晚上 is evening in English, not night.