硬件设计
链接:https://pan.baidu.com/s/1I0BUv8O4I5DfdSPf0P573w
提取码:5bpq
代码设计
#include <reg51.h>
#include <intrins.h>
#define u8 unsigned char
#define u16 unsigned int
sbit beep=P2^3;
sbit key=P3^0;
void delay_ms(u16 x)//毫秒延时函数
{u16 i,j;
for(i=0;i<x;i++)
for(j=0;j<115;j++);
}
void delay_us(u8 t) //延时10*t微妙
{u8 i;
for(i=0;i<=t;i++);
}
void BEEP_Alarm(u8 t) //蜂鸣器报警,持续t秒
{
u8 i,j,k;
for(j=0;j<t;j++)
{ for(i=0;i<200;i++)
{beep=0;delay_us(50);beep=1;delay_us(50);}
for(k=0;k<100;k++)
{beep=0;delay_us(110);beep=1;delay_us(110);}
}
}
void led() //报警灯
{u8 temp,i;
temp=0xf8;
for(i=0;i<9;i++)
{P0=temp;
BEEP_Alarm(1);
temp=_crol_(temp,1);
}
}
void main()
{
if(key==0)//判断按键被按下
{
delay_ms(10);//延时去抖
if(key==0)//再次判断按键被按下
{
while(!key); //等待按键松开
led();
}
}
}
.
.