In wireless sensor networks, sensor nodes are usually battery-powered and thus how to conserve energy is a critical issue. Allowing sensor nodes to enter sleep mode periodically to reduce power consumption is a common mechanism to conserve energy. However, existing power-saving protocols cannot generate arbitrary duty cycle based on a sensor node's traffic load. This implies that improvement on energy efficiency is still needed. In this paper, we propose a power-saving protocol, E-MAC, which is capable of generating any duty cycle based on its traffic load. Simulation results verify that E-MAC outperforms existing power-saving protocols (such as Green-MAC) in terms of power consumption, network throughput, and network lifetime.