微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 蜂鸣器响,在P5.7 放了一个摁键,没有达到预期效果

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

时间:10-02 整理:3721RD 点击:
   如果没有JB P5.7,$,蜂鸣器响,
我在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。还是不好用。

你的延时程序是什么样

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top