//驱动继电器实验 #include <reg52.h> sbit buzzer = P3^7; //声明蜂鸣器的位置 sbit relay = 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次2万次×0.5ms=1s(连接灯可观察到亮灭) pulse_BZ(100,1,1); delay(200); ///蜂鸣器响后第一次延迟2000×0.5ms=0.1s pulse_BZ(100,1,1); delay(200); ///蜂鸣器第二次响后延迟2000×0.5ms=0.1s } } ///延迟函数。 void delay(int n) {
int i,j; for(j=0;j
<n
;j
++
)
//大循环n次,用时n×0.5ms
for
(i
=
0
;i
<
60
;i
++
)
;
//小循环60次,用时0.5ms
}
//蜂鸣器发声函数。
void
pulse_BZ
(
int count
,
int TH
,
int TL
)
{
int i
;
for
(i
=
0
;i
<count
;i
++
)
{
buzzer
=
1
;
delay
(TH
)
; buzzer
=
0
;
delay
(TL
)
;
}
}
//继电器控制函数。
void
pulse_RL
(
int count
,
int TH
,
int TL
)
{
int i
;
for
(i
=
0
;i
<count
;i
++
)
{
relay
=
1
;
delay
(TH
)
; relay
=
0
;
delay
(TL
)
;
}
}