There are matching series resistors connected between output digital
pins & controller
In these circumstances (fast digital signals crossing a significant distance on a PCB) you choose matching resistors to suit the impedance of the copper interconnection. The copper interconnection, just like coax cable or twisted pair cable exhibits characteristics that if not properly matched, can cause reflections when the fast edges of the signal reach the receiving device. This will inevitably lead to data corruptions.
On the other hand, if the tracks are not too long (compared to the wavelength of the fastest parts of the signal), maybe the resistors are just pull-ups. There are decent rules of thumb that govern the need to apply terminations of course.
If you need a more definitive answer, a section of the circuit would help as well as a picture of the copper tracks on the circuit board.
In general, you don't need to worry about impedance matching at any frequency - AS LONG AS YOUR TRACE IS SHORT ENOUGH. The rule of thumb is that the time of flight along the trace must be less than 10% of the rise (or fall) time of the signal being propagated. This is slightly different than Matt Young's answer, and it's important if your signal is digital. A 50 MHz square wave with sharp edges will have a rise time much less than the period of the fundamental, and particularly in logic this can cause real problems if the reflected component is too large.
So a good, clean 50 MHz (20 nsec) square wave might have rise and fall times in the range of 2-3 nsec, and (at a rule of thumb of 8 inches/nsec for PCBs), you'd want to start worrying for trace lengths of 2-3 inches or so. See here, for example. This is, in some respects, a very conservative number, since it assumes that the transmitter has zero output impedance and the receiver has infinite input impedance, and the transmission line (pc trace) has no losses. While none of these are exactly true, being conservative is very, very good if you want to avoid unpleasant surprises.
Any kind of electrical power transfer has a typical ratio of voltage to current. For example, you can deliver 100 watts by 1 amp at 100 volts, or 10 amps at 10 volts, or any other product that comes to 100. It's convenient to express the ratio of volts to amps as a number of ohms (since dimensionally that's all ohms are anyway). Power sources, loads, and even transmission lines all have characteristic impedance, which tells you something about what will happen when things are connected together.
Impedance matching is the selection of components with identical impedance, or the addition of impedance transforming components to cause a component with an undesired impedance to appear as though it has a more desirable one.
As Brian Carlton pointed out, when you have matched impedance, you achieve maximal power transfer. This is often desirable, but not always. The thing to remember is that maximal power transfer is achieved at the cost of dissipating equal power in the source and the load.
So for example, a case for not matching impedance is when you want to efficiently use the energy from a source. A 0.1 ohm load would get optimal power out of a battery with a 0.1 ohm internal resistance, but half the energy would be dissipated in the battery itself, which would be rather wasteful of the stored energy. (Not to mention that the terminal voltage would fall to half!) By purposely using a load much with much higher resistance than the battery, most of the stored energy ends up doing work in the load.
On the other hand, you DO want to match impedance when, for example, you have an audio amplifier stage that ideally wants to drive a 600 ohm load, but you only have a 3.2 ohm speaker. An ordinary transformer, having a 1:N voltage ratio, will conveniently give you a 1:N^2 impedance ratio. Another common case is in RF work, where as volting pointed out, you need to minimize reflections, because reflected energy can cause excessive power dissipation in your source.