Hi rostyslav, welcome to ETO!
We can't help you much without knowing what microcontroller and compiler you plan to use.
What I can tell you is that there are two main ways to make a delay--a NOP statement ("no operation") that basically says to not do anything. This "wastes" a certain number of clock cycles (depends on your processor how many you waste, but I want to say it's usually one cycle). You can line up a bunch of these in a row to create a delay. However, this method is fairly useful, and you can't do anything with your processor until those NOP statements are done. This leads us to our second option, which is to make use of the Timers that are built into some microcontrollers. These timers count up once each cycle, and when they hit a pre-defined value, they trigger an "interrupt". You can use the timers to create delays.
Again, it would help to know what kind of microcontroller and what compiler you'd want to use, as they are all different.
Regards,
Matt