1.硬件
- 51单片机最小系统
- LED灯模块
- 震动传感器模块
2.软件
- main.c程序
#include "reg52.h"
sbit led1 = P3^7;//根据原理图(电路图),设备变量led1指向P3组IO口的第7口
sbit vibrate = P3^3;//Do接到了P3.3口
void Delay2000ms() //@11.0592MHz
{
unsigned char i, j, k;
// _nop_();
i = 15;
j = 2;
k = 235;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
void main()
{
//查询方式判断是否发生震动
while(1){
if(vibrate == 0)//模块说明告诉我们,震动的话,D0输出低电平
{
led1 = 0;//亮灯
Delay2000ms();
led1 = 1;
}else{
led1 = 1;//灭灯
}
}
}
3.实物效果
- 硬件模块接线
LED1正—>VCC(5V)
LED1负—>P3.7
震动传感器I/O—>P3.3
震动传感器VCC—>3.3V或5V(3.3V)
震动传感器GND—>GND - 实验现象
发生震动时,点亮LED灯,2s后灭灯。