蜂鸣器响,在P5.7 放了一个摁键,没有达到预期效果
时间:10-02
整理:3721RD
点击:
如果没有JB P5.7,$,蜂鸣器响,
我在P5.7 放了一个摁键。我想一直摁着就一直响。
但是 以下程序下进去后,。根本就没有这样的效果,,,不摁摁键,,蜂鸣器都在响。
我不是很清楚,。谁帮帮我
START:JB P5.7,$
CLR P1.0
LCALL DELAY
SETB P1.0
LCALL DELAY
这样用摁键控制不对么。
我在P5.7 放了一个摁键。我想一直摁着就一直响。
但是 以下程序下进去后,。根本就没有这样的效果,,,不摁摁键,,蜂鸣器都在响。
我不是很清楚,。谁帮帮我
START:JB P5.7,$
CLR P1.0
LCALL DELAY
SETB P1.0
LCALL DELAY
这样用摁键控制不对么。
等高手。一起学习。
根据描述,蜂鸣器是在P1.0为高电平时响。单片机一般默认各端口上电后是输出高电平,所以按键不按键都会响。要想上电后不响,需要先执行clr p1.0,其次按键控制时需要构成循环,可改成这样:
。
CLR P1.0 ;关闭蜂鸣器
START:
JB P5.7,$ ;等待按键按下
SETB P1.0 ;按键按下后启动蜂鸣器
JNB P5.7,$ ;等待按键松开
CLR P1.0 ;按键松开后关闭蜂鸣器
AJMP START ;返回循环控制
是低电平有效的。
我试了你的那个初始化SETB P1.0。还是不好用。
你的延时程序是什么样