7 segment led light up specific decimal point
You are setting the pin high on every pass through the loop.

void loop() {
    digitalWrite(dp, HIGH);


Remove that line.

Now you need to add lines to the other digits to turn that pin low at some stage.