
sbit BEEP=P1^5//sbit是位定义的意思,即使用beep来代表单片P1端口的第5个IO口
void beep()//蜂鸣器子函数,方便调用,
{
unsigned char i , j//设置无符号字符型变量i;和J
for (i=0i<100i++)//定义一个for循环,每次完整地执行for里面的所有语句,i就自增1,直到i=10
{ //当i=100是,for循环就结束
BEEP=!BEEP//BEEP取反//蜂鸣器发生原理,进行电平取反,原来为高电平,下一次执行就变成低电平
for (j = 0 j<200 j++)//需要产生方波这个是延时程序
}
BEEP=1//关闭蜂鸣器蜂鸣器电平不发生变化的时候,蜂鸣器无法发声。
}
蜂鸣器一直响很容易实现,无源蜂鸣器给电平就可以控制发声了,程序如下:
FMQ EQU P3.2ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
MOV A,#0FEH
CLR FMQ
LOOP:
MOV P1,A
RL A
LCALL DELAY
SJMP LOOP
DELAY:
MOV R2,#200
DLY:
MOV R3,#250
DJNZ R3,$
DJNZ R2,DLY
RET
END
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)