It could be caused by DC (direct current) offset. This happens when the signal "idle" value is shifted from the normal zero value during the recording.
The picture below is an example of DC offset. You can see that most of the signal is above the zero value. When the signal is digitized to 16-bit signed integer samples all values above the maximum 32767 (the red part) are clipped.
Later when the DC offset is corrected the signal could look like yours:
The offset does not necessarily need to be constant (zero frequency) it could be a very low frequency e.g. caused by wind like Thejasvi pointed out. You can check this if you see longer run of the signal (over several seconds). With the low frequency overload of the signal the clipping value would not be constant. Alternatively the "idle" value of the signal would fluctuate around the zero if the signal still contains strong low frequency components.
During usual audio recording a high pass filter is applied to block very low frequencies including the DC offset. This filter could be missing or faulty in your circuits.
As a temporary workaround you can lower the gain during your recording. This will of course make the SNR and dynamic range lower.
As Dan Stowell pointed out a physical obstruction of the microphone's membrane could be another reason for similar clipping.
Detailed examination of the signal (zoom around the clipping values) should allow you to distinguish the two. Value clipping (caused by DC offset) should show the maxima always at the (almost) same value. A physical obstruction in the microphone should probably allow some variance among the maximum values.