A. 单片机蜂鸣器c语言编程
没有研究你的程序,但是Beep=~Beep;很好理解,就是将Beep的值
取反
,如果Beep原来是1(响),那么将Beep的值取反后再给回它自已那不是变成0(不响)了吗。
B. 蜂鸣器每一秒响一次,响十秒后关闭,怎么做,C语言
每隔一秒响一次, 响多久没有说
一般都是响一秒 停一秒。 这样就是20秒后关闭了。
可以写作
intcnt=0;
while(cnt++<10)
{
BEEP=1;
delay_ms(1000);
BEEP=0;
delay_ms(1000);
}
C. 单片机用C语言让蜂鸣器发出两种声调,怎么编程
让蜂鸣器发出两种不同的声调很容易,只要给蜂鸣器的控制信号发送不同频率的脉冲就可以实现了,以下以延时方式来做。
#include<reg51.h>
#define
uchar
unsigned
char
#define
uint
unsigned
int
sbit
SPK=P1^0;
sbit
K1=P1^7;
//发声函数
void
Alarm(uchar
t)
{
uchari,j;
for(i=0;i<200;i++)
{
SPK=~SPK;
for(j=0;j<t;j++);
//由参数t行成不同的频率
}
}
voidmain()
{
SPK=0;
while(1)
{
if(K1==1)
{
Alarm(90);
Alarm(120);
}
}
}
D. AT89C52单片机 蜂鸣器响一秒停0.5秒 速求 c语言
#include <reg51.h>
typedef unsigned char BYTE; // 数据范围0-255
typedef unsigned int WORD; // 数据范围0-65535
typedef bit BOOL ; // 数据范围0-1
sbit BUZZ = P0^0;
WORD count,flag;
void timer0() interrupt 1
{
TH0=(65535-46080)/256;
TL0=(65536-46080)%256; // 重新载入延时时间,如果晶振为12M, 则为被减数则为50000
count++;
if(count==10) // 11.0592 晶振精确延时0.5秒
{ flag++;
if (flag==1)
{BUZZ=0; }
else if (flag==3)
{BUZZ=1; flag=0; }
count=0;
}
}
/* 主程序 */
/********************************/
main()
{
TMOD=0x01; // 定时器工作在方式1
TH0=(65536-46080)/256;
TL0=(65536-46080)%256; // 载入定时器初值
ET0=1; // 开定时器0 中断
EA=1; // 开总中断
TR0=1; // 定时器0工作
flag=0;
while(1);
}