The era of internet of things (IoT) envisions a world where electronics is integrated with our environment. This can be achieved with ubiquitous low power sensing devices. It is challenging to achieve low power computing in the IoT paradigm since most applications are data-centric. However, typical applications have low duty cycle processing where idle times can be exploited for energy savings. This paper implements a programmable power management where clock gating and dynamic voltage and frequency scaling (DVFS) are both configurable. Clock gating shuts off the clock to reduce dynamic power consumption of a task. A DVFS system reduces the performance enough for a task to meet a specified deadline, distributing the workload across the long idle times. To scale the voltage, a 3:2 topology switched-capacitor converter (SCC) was used. For frequency scaling, a ring oscillator that scales well within sub-threshold voltages was implemented. Finally, a low overhead programmable DVFS controller was designed. Using these blocks to implement DVFS, results show a 35-38% full system energy savings. Moreover, the active components where the programmable DVFS is applied to shows 52-59% energy savings.