A programmable impedance control circuit for use in a semiconductor device having an impedance range shifting function prevents or substantially reduces an impedance detection failure based on an environment change. An impedance detector includes a first array driver, a second array driver, and an impedance matching transistor array and a range shifting transistor array independently controlled by the first and second array drivers. A comparator each compares first and second output voltage levels of the impedance detector with an array reference voltage, and outputs an up / down signal as the comparison result. A counter performs an up / down counting in response to the up / down signal, and outputs control code data. A range shifting circuit monitors a counting output of the counter and so generates range shifting data. Whereby, even if there is an environment change on a manufacturing process, power source voltage or operating temperature, etc., an impedance matching and correction operation can be performed without a waste of impedance matching transistor array and control code.