📄 didi.c
字号:
/***********************************************************************
“天祥电子” 倾情奉献
www.txmcu.cn
www.txmcu.com
***********************************************************************
程序功能: 本程序延时用定时器的方法产生相互间隔的一频率为1KH的方波与高电平信号。
1KH方波持续期间,会驱动蜂鸣器发出响声,高电平持续期间,蜂鸣器不会发出声音。
这样,二者相互穿插的结果就产生了断断续续的“滴滴”声。
**************************************************************************/
#include<reg52.h>
#define uint unsigned int
uint aa;
unsigned char pp;
bit close;
sbit didi=P2^3;
void main()
{
TMOD=0x01; //模式设置,00000001,可见采用的是定时器0,工作与模式1(M1=0,M0=1)。
TR0=1; //打开定时器
TH0=0xff;//计时器每隔100微秒(0.1ms)发起一次中断。
TL0=0x9c;//产生频率为1000HZ的声音信号。
ET0=1; //开定时器0中断
EA=1; //开总中断
while(1)
{
if(pp==10)
{
pp=0;
if(!close)
didi=~didi; //频率为1KH的音频信号
aa++;
}
if(aa==200)
{
didi=1;
close=1; //方波音频信号持续时间为200*10*100us=0.2s
}
if(aa==300) //滴滴声的周期为300*10*100us=0.3s
{
close=0;
aa=0;
}
}
}
void time0() interrupt 1
{ TH0=0xff;
TL0=0x9c;
pp++;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -