51单片机 驱动蜂鸣器、继电器实验
扫描二维码
随时随地手机看文章
//==声明区========================================
#include //定义8051暂存器之标头档, P2-17~19
sbitbuzzer = P3^7;//声明蜂鸣器的位置
sbitrelay = P3^6;//声明继电器的位置
void delay(int);//声明延迟函数
void pulse_BZ(int,int,int);//声明蜂鸣器发声函数
void pulse_RL(int,int,int);//声明继电器控制函数
//==主程序========================================
main()//主程序开始
{while(1)//无穷循环,程序一直跑*/
{pulse_RL(10,2000,2000);
//继电器使灯亮灭各10次,各2000 0.5m=1s
pulse_BZ(100,1,1);
//蜂鸣器第1声哔,约100*(0.5m+0.5m)=0.1s
delay(200);//延迟200 0.5ms=0.1s
pulse_BZ(100,1,1);
//蜂鸣器第2声哔,约100*(0.5m+0.5m)=0.1s
delay(200);//延迟200 0.5ms=0.1s
}//while循环结束
}//主程序结束
//==副程序=========================================
//延迟函数开始,延迟约x*0.5ms/
void delay(int x)//延迟函数开始
{int i,j;//声明整数变量i,j
for (i=0;i计数x次,延迟约x 0.5ms
for (j=0;j<60;j++); //计数60次,延迟约0.5ms
}//延迟函数结束
void pulse_BZ(int count,int TH,int TL)//蜂鸣器发声函数开始
{int i;//声明整数变量i/
for(i=0;i计数count次
{buzzer=1;//输出高态
delay(TH);//延迟TH 0.5ms
buzzer=0;//输出低态
delay(TL);//延迟TL 0.5ms
}//for循环结束
}//蜂鸣器发声函数结束
void pulse_RL(int count,int TH,int TL) //继电器控制函数开始
{int i;//声明整数变量i
for(i=0;i计数count次
{relay=1;//输出高态,继电器激磁(灯亮)
delay(TH);//延迟TH 0.5ms
relay=0;//输出低态,继电器消磁(灯灭)
delay(TL);//延迟TL 0.5ms
}//for循环结束
}//继电器控制函数结束思考``````