int Buzzerpin=13//13口接Buzzer的驱动上或直接接看看
void setup()
{
Serial.begin(9600)//蓝牙接rx0和tx0,即第0个串口上
pinMode(Buzzerpin,OUTPUT)
}
void loop()
{
val=Serial.read()
if(val=='q')
{
digitalWrite(Buzzerpin,HIGH)
Serial.println("Buzzer ON!")
}else if(val=='w'){
digitalWrite(Buzzerpin,LOW)
Serial.println("Buzzer OFF!")
}
}
发送“q”为Buzzer响,“w”不响,注意大小写!
你这样设计有什么用?你数据不可能会一直不停的发,不发的时候不是会一直会响?如果只是测试数据发送或接受是否成功用,给你两种方法,第一,如果是两个单片机,将两个单片机的io口连起来一个,发送数据的时候将io口置高,发送完毕置低,另外一个单片机可以根据这个io口的状态和串口中断来判断是否收到数据。
方法二,在接收单片机的串口中断程序中,加上,进入中断时,将io口置高,退出时置低,这样就可以判断是否在接收数据
#include<reg51.h>
sbit buzzer = P1^0 声明区
void delay(int)
void pulse_BZ(int,int,int)声明函数void main(void)
{
while(1)
{
pulse_BZ(500,1,1) 调用发声
delay(1000) 延时1000 X 0.5ms
pulse_BZ(500,1,1)
delay(1000)
pulse_BZ(500,1,1)
delay(1000)
pulse_BZ(200,1,1)
delay(1000)
pulse_BZ(200,1,1)
delay(1000)
}
}void delay(int x)
{
int i,j
for(i=0i<xi++)
for(j=0j<60j++)
}void pulse_BZ(int countint THint TL)
{
int i
for(i=oi<counti++) //循环count次,时间count x 1ms
{
buzzer=1 //此程序段产生1HZ 信号
delay(TH)
buzzer=0
delay(TL)
}
}
51单片机蜂鸣器
开关C语言程序:
sbit P2^0=KEY
sbit P2^1=BEEP
unsigned char KEYNUM=0
void main()
{
while(1)
{
if(KEY==0)//开关按下;
{
KEYNUM++
}
if(KEYNUM==1)//第一次按下;
{
BEEP=1//蜂鸣器响
}
if(KEYNUM==2)/第二次按下;
{
BEEP=0//蜂鸣器不响
KEYNUM=0
}
}
}
51单片机,编写延时程序,控制蜂鸣器发声:
很简单的
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit fengmingqi=P0^0//声明IO口
void delay(uint x)//延时子函数
{
uint i,j
for(i=xi>0i--)
for(j=50j>0j--)
}
void main(void)
{
while(1) //循环
{
fengmingqi=1//p0.0口高电平,蜂鸣器发声
delay(500)//延时
fengmingqi=0//p0.0口低电平,蜂鸣器不发声
delay(500)//延时
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)