单片机/MCUwilliam hill官网
直播中

我是阿拿

11年用户 80经验值
擅长:测量仪表 制造/封装
私信 关注
[问答]

蜂鸣器响,在P5.7 放了一个摁键,没有达到预期效果

   如果没有JB P5.7,$,蜂鸣器响,
我在P5.7 放了一个摁键。我想一直摁着就一直响。
但是 以下程序下进去后,。。根本就没有这样的效果,,,不摁摁键,,蜂鸣器都在响。。
我不是很清楚,。。谁帮帮我


       START:JB P5.7,$
                  CLR P1.0
                 LCALL DELAY
                SETB P1.0
                LCALL DELAY

这样用摁键控制不对么。。。

回帖(4)

wangjianku

2014-4-23 15:11:10
等高手。一起学习。
举报

djs1968

2014-4-23 16:01:29
根据描述,蜂鸣器是在P1.0为高电平时响。单片机一般默认各端口上电后是输出高电平,所以按键不按键都会响。要想上电后不响,需要先执行clr  p1.0,其次按键控制时需要构成循环,可改成这样:
     。。。。
     CLR  P1.0       ;关闭蜂鸣器
START:
     JB  P5.7,$     ;等待按键按下
     SETB  P1.0     ;按键按下后启动蜂鸣器
     JNB  P5.7,$   ;等待按键松开
     CLR  P1.0        ;按键松开后关闭蜂鸣器
     AJMP  START   ;返回循环控制
举报

我是阿拿

2014-4-23 17:29:32
引用: djs1968 发表于 2014-4-23 16:01
根据描述,蜂鸣器是在P1.0为高电平时响。单片机一般默认各端口上电后是输出高电平,所以按键不按键都会响。 ...

是低电平有效的。。。
我试了你的那个初始化SETB P1.0。。还是不好用。。。
举报

星无泪

2014-4-23 18:37:43
你的延时程序是什么样

举报

更多回帖

发帖
×
20
完善资料,
赚取积分