怎样使按键使无源蜂鸣器驱动电路图响再按另一个键无源蜂鸣器驱动电路图不响

下面的程序要求按一下按键蜂鸣器响,直到放手,但一上电蜂鸣器为什么响个不停,谢谢! - 【51单片机】 - 电子工程世界-论坛
后使用快捷导航没有帐号?
请完成以下验证码
查看: 4084|回复: 2
下面的程序要求按一下按键蜂鸣器响,直到放手,但一上电蜂鸣器为什么响个不停,谢谢!
在线时间3 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
#include&reg52.h&
#define uchar unsigned char
#define uint unsigned int
#define dao 523 //将“dao”宏定义为中音“1”的频率 523Hz
#define re 587 //将“re”宏定义为中音“2”的频率 587Hz
sbit buzzer=P2^4;
sbit s1=P1^0;& & & && & //最好不要用到P3口
sbit s2=P1^1;
uchar code yinfu[]={dao,re};
void delay(uint t)& && && && && && && && && && && && && && &&&//延时t MS
& & & & uint i,j;
& & & & for(i=t;i&0;i--)
& & & & & & & & for(j=110;j&0;j--);
void key_scan()& && && && && && && && && && && && && && && && && &//键盘扫描
& & & & if(s1==0)
& & & & & & & & C=yinfu[0];
& & & & & & & & delay(10);
& & & & & & & & if(s1==0);
& & & & & & & & while(!s1)
& & & & & & & & & & & & buzzer=1;
& & & & if(s2==0)
& & & & & & & & C=yinfu[1];
& & & & & & & & delay(10);
& & & & & & & & if(s2==0);
& & & & & & & & while(!s2)
& & & & & & & & & & & & buzzer=1;
void main()
& & & & buzzer=1;
& & & & TMOD=0x01;
& & & & key_scan();& && && && && && && && && && && && && && && && & //设置定时器0为工作模式1
& & & & TH0=(/C)/256;& && && && && && && && && && && && && &//装T0的初值
& & & & TL0=(/C)%256;
& & & & EA=1;& && && && && && && && && && && && && && && && && && &&&//开总中断
& & & & ET0=1;& && && && && && && && && && && && && && && && && && & //开定时器0中断
& & & & TR0=1;& && && && && && && && && && && && && && && && && && & //启动定时器0
& & & & while(1);
void T0_time() interrupt 1
& & & & TH0=(/C)/256;& && && && && && && && && && && && && &//装T0的初值
& & & & TL0=(/C)%256;
& & & &&&buzzer=~
在线时间131 小时
TA的帖子TA的资源
纯净的硅(初级), 积分 701, 距离下一级还需 99 积分
纯净的硅(初级), 积分 701, 距离下一级还需 99 积分
硬件中,蜂鸣器是=1响?还是=0响?
在线时间1414 小时
威望6292分
芯币21600枚
E金币300枚
TA的帖子TA的资源
while(1);不再有判断了
EEWORLD 官方微信
EE福利 唾手可得
Powered by查看: 1537|回复: 34
为什么我的蜂鸣器不响
#include&reg51.h&&&
#define uchar unsigned char& && && &&&/*宏定义 */
#define uint unsigned int& && && && & /*宏定义 */
uchar hour,hour_h,hour_l;& && && && & /*定义小时,小时的高位,小时的低位*/
uchar min,min_h,min_l;& && && && && & /*分*/
uchar sec,sec_h,sec_l;& && && &/*秒*/
uchar int_& && && && &/*定时溢出作用标号*/
sbit key_secadd=P1^1;& &&&/*定义了 p1.1为秒增1键,用在调时中断里*/
sbit key_minadd=P1^2;& &&&/*定义了 p1.2为分增1键,用在调时中断里*/
sbit key_houradd=P1^3;& & /*定义了 p1.3为时增1键,用在调时中断里*/
sbit key_intime=P1^0;& &&&//按P1.0进入调时
sbit key_quit=P1^5;& & //P1.5退出调时
sbit bell=P1^5;& &&&//小喇叭
void delay(uchar time);& && &&&/*延时子函数声明*/
void display();& && && && && & /*显示子函数声明*/
void inter_init();& && && &/*定时器初始化子函数声明*/
void time24();
/****专用数码管显示表***/
uchar code duma[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x40}; /*0x40显示“一”符号*/
uchar code wema[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0x00};
/*小时hour&&分min&&秒sec*/
//---------------------延时子函数--------------------------------
void delay(uchar time)& &/*延时子函数*/
& &uchar time_1;
& &for (;time&0;time--)
& & for (time_1=100;time_1&0;time_1--);
//---------------------初始化T0函数--------------------------
void time0(void) interrupt 1&&/*定时器T0服务子程序*/
&&TH0=()/256;
&&TL0=()%256;
&&int_num++;
//---------------------定时器函数--------------------------
void inter_init()& &&&/*定时器初始化子函数*/
& &EA=1;& & /*开总中断*/
& &EX0=1;& & /*开外部中断0*/
& &ET0=1;& &&&/*打开定时器T0*/
& &TMOD=0x01; /*工作方式1*/
& &TCON = 0x00;& &/*触发方式*/
& &IP = 0x01;& & /*中断优先级别,T0优先*/
& &TH0=()/256; /*置初值,大约50ms一个中断 */
& &TL0=()%256;
& &TR0=1;& & /*置位TR0,启动定时器0*/
//---------------------24小时时间自加 --------------------------
void time24()& && & /*时间递增*/
& &if(int_num==20)&&/*值满20,大约就是一秒的时间。*/
& & {& && && &/* 其值设为2,则定时时间快10倍,可做毫秒计时*/
& &&&int_num=0;
& &&&sec++;& && & /*秒值加1*/
& &&&if(sec==60)&&/*如果秒值满60,就归0*/
& && & sec=0;
& && & min++;&&/*分值加1*/
& && & if(min==60)
& && && &min=0;
& && && &hour++;& & /*分值归0,时值加1*/
& && && &if(hour==24)
& && && & {
& && && &&&hour=0;& &/*时值满24归0*/
& && && & }
& && &&&}&&
//-----------按键调整子函数-------------------------------------
void key(void) //按键调整子函数
if(key_intime==0)
&&{EA=0;&&//& && &关中断
& &sec=0;&&//秒归零
while(100) //正确& &
{ display();
&&if(key_quit==0)
&&if(key_secadd==0)
& & delay(1);
& & if(key_secadd==0)
& & sec++;
& && &while(!key_secadd);
& && &if(sec==60)
& && &&&sec=0;
&&if(key_minadd==0)
& & delay(80);
& & if(key_minadd==0)
& && &min++;
& && &while(!key_minadd);
& && &if(min==60)
& && &&&min=0;
&&if(key_houradd==0)
& & delay(80);
& & if(key_houradd==0)
& && &hour++;
& && &while(!key_houradd);
& && &if(hour==24)
& && &&&hour=0;
//---------------------数码管显示子函数-------------------------------------
void display()&&/*数码管显示子函数*/&&
& &sec_h=sec/10;& &&&/*求出秒高位需要显示的字符*/
& &sec_l=sec%10;& &/*求出秒低位需要显示的字符*/
& &min_h=min/10;
& &min_l=min%10;
& &hour_h=hour/10;
& &hour_l=hour%10;&&
& &P2=duma[sec_h];&&/*显示秒高位*/
& &P0=wema[6];
& &delay(10);
& &P2=duma[sec_l];&&/*显示秒低位*/
& &P0=wema[7];
& &delay(10);
& &P2=duma[10]; /* “一”符号的显示 */
& &P0=wema[5];
& &delay(10);
& &P2=duma[min_h];& &/*分*/
& &P0=wema[3];
& &delay(10);
& &P2=duma[min_l];
& &P0=wema[4];
& &delay(10);
& &P2=duma[10];& &/* “一”符号的显示 */
& &P0=wema[2];
& &delay(10);
& &P2=duma[hour_h];& & /*时*/
& &P0=wema[0];
& &delay(10);
& &P2=duma[hour_l];
& &P0=wema[1];
& &delay(10);
//---------------------主函数--------------------------------
/*void alarm_clock() //闹钟子函数-变频发声
& &uint i,j,y,m;
& &if(hour==00)//时到了00点?
& && &if(min&=01){m=0;} //分大于或等于01就把m清零,若不成立向下执行
& && &if(min==00)//到了00分?
& && && &if(m&15)
& && && &&&{
& && && &&&do{& & //循环-变频
& && && && && &m++; display();
& && && && && &for(i=0;i&2000;i++)
& && && && && &{bell=~for(j=0;j&24;j++);} //取反/
& && && && && &for(y=0;y&2000;y++)
& && && && && &{bell=~for(j=0;j&25;j++);} //取反/
& && &for(i=0;i&2000;i++)
& && && && && &{bell=~for(j=0;j&26;j++);} //取反/
& & for(i=0;i&2000;i++)
& && && && && &{bell=~for(j=0;j&27;j++);} //取反/
& && && && & }
& && && &&&while(m&15); //闹15次结束
& && && & }
//---------------------主函数--------------------------------
void main()
&&inter_init();& && & /*定时器初始化*/
&&hour=23;& && && &/*自定义一个初值,方便快速观察翻转状态(可修改)*/
& &key();& &
& &time24();&&/*分开时间,分别显示字符*/
& &//alarm_clock();//闹钟函数
& &display();& & /*调用显示函数来显示*/
 P1^5接按键就可以退出 接蜂鸣器不可以退出 进不了闹钟调时功能 蜂鸣器不响
 没有进入闹钟程序
蜂鸣器没有接收到信号
程序有问题,可以分享下pcb图不
换成喇叭试一下
换成喇叭试一下
我没看你的代码,但是我之前的蜂鸣器不响是因为蜂鸣器分有源和无源的,我当时没搞清楚,不知道会不会是这个原因
1,确定蜂鸣器的工作电压
2,确定蜂鸣器的工作方式,是高低电平驱动,还是脉冲方式驱动。
哪种蜂鸣器,有的要脉冲才会响
^5接按键就可以退出 接蜂鸣器不可以退出 进不了闹钟调时功能 蜂鸣器不
程序有问题
蜂鸣器连接的I/O口要取反才能响
看存在接触的问题不
蜂鸣器分两种,即交流和直流。 直流蜂鸣器在施加直流电后即发出响声,交流蜂鸣器虽然也可用直流供电,但需另加振荡电路,起振后蜂鸣器才会发声。
蜂鸣器那端有信号给进吗,看连线段有没有电平跳变,也就是红色低电平到蓝色高电平,程序就帮不上忙了
蜂鸣器频率没调好
先确定你用的是有源的还是无源的蜂鸣器
有源的蜂鸣器才可以直接使用io口
程序有问题,可以分享下pcb图不
蜂鸣器分两种,即交流和直流。 直流蜂鸣器在施加直流电后即发出响声,交流蜂鸣器虽然也可用直流供电,但需另加振荡电路,起振后蜂鸣器才会发声。
交流 还是直流的
脉冲的问题
有有源轰鸣器和无源轰鸣器,无源的要脉冲才可以驱动。
无源轰鸣器要脉冲,有源的就不用了。
原理图看看。。
蜂鸣器分有源无源两种,先直接加电测试蜂鸣器有没有问题;在一步一步测试你的程序;你写的太长了,要分小段。小块的功能测试
哪种蜂鸣器,有的要脉冲才会响
仿真不响,还是实物不响
用三极管控制,注意那个是输出引脚,要接到集级,发射机接vcc,接无缘风鸣器,控制音调音色。有缘蜂鸣器,就是低电平就响,接对就好
已经搞清楚了 是有缘和无缘的问题 谢谢大家
程序有问题,接蜂鸣器的要取反
Powered by&>&2个独立按键控制蜂鸣器发出不同声音
2个独立按键控制蜂鸣器发出不同声音
上传大小:22KB
2个独立按键控制蜂鸣器发出不同声音 汇编
综合评分:0(0位用户评分)
所需积分:
下载个数:6
{%username%}回复{%com_username%}{%time%}\
/*点击出现回复框*/
$(".respond_btn").on("click", function (e) {
$(this).parents(".rightLi").children(".respond_box").show();
e.stopPropagation();
$(".cancel_res").on("click", function (e) {
$(this).parents(".res_b").siblings(".res_area").val("");
$(this).parents(".respond_box").hide();
e.stopPropagation();
/*删除评论*/
$(".del_comment_c").on("click", function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_invalid/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parents(".conLi").remove();
alert(data.msg);
$(".res_btn").click(function (e) {
var q = $("#form1").serializeArray();
console.log(q);
var res_area_r = $.trim($(".res_area_r").val());
if (res_area_r == '') {
$(".res_text").css({color: "red"});
$.post("/index.php/comment/do_comment_reply/", q,
function (data) {
if (data.succ == 1) {
var $target,
evt = e || window.
$target = $(evt.target || evt.srcElement);
var $dd = $target.parents('dd');
var $wrapReply = $dd.find('.respond_box');
console.log($wrapReply);
var mess = $(".res_area_r").val();
var str = str.replace(/{%header%}/g, data.header)
.replace(/{%href%}/g, 'http://' + window.location.host + '/user/' + data.username)
.replace(/{%username%}/g, data.username)
.replace(/{%com_username%}/g, _username)
.replace(/{%time%}/g, data.time)
.replace(/{%id%}/g, data.id)
.replace(/{%mess%}/g, mess);
$dd.after(str);
$(".respond_box").hide();
$(".res_area_r").val("");
$(".res_area").val("");
$wrapReply.hide();
alert(data.msg);
}, "json");
/*删除回复*/
$(".rightLi").on("click",'.del_comment_r', function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_comment_del/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parent().parent().parent().parent().parent().remove();
$(e.target).parents('.res_list').remove()
alert(data.msg);
//填充回复
function KeyP(v) {
$(".res_area_r").val($.trim($(".res_area").val()));
评论共有0条
审核通过送C币
欧姆社学习漫画系列--统计学相关
创建者:houzhiguo
入门编程前的指南
创建者:weixin_
SAPUI5教程
创建者:jiangbo_phd
上传者其他资源上传者专辑
课程资源热门标签
VIP会员动态
前端开发重难点
17年软考最新真题及解析
物联网全栈开发专题
二十大技术领域优质资源
spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip
CSDN&VIP年卡&4000万程序员的必选
2个独立按键控制蜂鸣器发出不同声音
会员到期时间:剩余下载个数:
积分不足!
资源所需积分
当前拥有积分
您可以选择
程序员的必选
绿色安全资源
资源所需积分
当前拥有积分
VIP年卡全年1200个资源免积分下载
你当前的下载分为234。
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:}

我要回帖

更多关于 按键精灵 蜂鸣器 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信