标题:
单片机如何同时驱动LED和无源蜂鸣器?想要让LED与无源蜂鸣器同时亮、灭 求帮助
[打印本页]
作者:
weixiao4
时间:
2020-4-7 20:37
标题:
单片机如何同时驱动LED和无源蜂鸣器?想要让LED与无源蜂鸣器同时亮、灭 求帮助
想要让LED与无源蜂鸣器同时亮、灭
作者:
wulin
时间:
2020-4-8 06:55
驱动无源蜂鸣器用定时器中断比较方便,给你一个示例参考。
无标题.jpg
(84.35 KB, 下载次数: 76)
下载附件
2020-4-8 06:54 上传
#include <STC89C5xRC.H>
sbit key=P3^2;
sbit buzzer=P3^7;
unsigned char count;
unsigned int count1;
bit flag=0;
bit sign=0;
void Timer0Init() //250微秒@12.000MHz
{
TMOD= 0x02; //设置8位自动重装模式
TL0 = 0x06; //设置定时初值
TH0 = 0x06; //设置定时重载值
TR0 = 1; //定时器0开始计时
EA = 1; //开总中断
ET0 = 1; //开定时器0中断
}
void main()
{
Timer0Init();//初始化定时器
P2=0xfe;//初始化流水灯
while(1)
{
if(!key)//键控流水灯
{
if(++count>=50&&sign==0)
{
sign=1;//按键自锁
flag=1;//启动蜂鸣器
P2=P2<<1|0x01;//流水灯
if(P2==0xff)
P2=0xfe;
}
}
else //松手
{
sign=0;//按键自锁清0
count=0;//消抖计数清0
}
}
}
void timer0() interrupt 1
{
if(flag)
{
buzzer=~buzzer;//蜂鸣器取反
if(++count1>=500)//0.125s
{
count1=0;//计数器清0
buzzer=1;//蜂鸣器复位
flag=0; //启动标志清0
}
}
}
复制代码
作者:
小石头123
时间:
2020-4-8 10:13
拉到同一个IO口就可以了
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1