我想问一下关于51单片机单键识别的松手检测的问题

作者&投稿:丁灵 (若有异议请与网页底部的电邮联系)
我想问一个关于c51单片机单键识别松手检测的问题~

按键按下是为0的!while就是为0等待!也就是while(key==0);其实松手检测不在实际中不用,因为按键坏了程序就死这里啦!

汇编语言写
JB P3.2,$ ;P3.2是高电平,原地踏步

在这里加一个while语句的目的是防抖动,也就是说防止你按一下键,由于抖动的原因,而单片机响应好几下。比如你的按键接在P0.0上,sbit ds=p0.0 当你按下的时候ds=0,放手的时候又是1,所以应该是while(ds==0);这句话就是在等待你松手,你松手以后才继续执行命令

比如你用的P1^0口连接按键
那么while(P1^0==0);此句结束循环就是按键放开

while(temp!=0xf0) //松手检测
{
temp=P1;
temp=temp&0xf0;
P0=tab[num]; //调用数码管显示
}


关于51单片机若干的问题,急。。。
2022-11-16 51单片机如何使用? 2013-11-26 关于51单片机的几个问题 3 2014-02-08 51单片机的问题 2 2011-04-26 51单片机,简单问题 2 2011-03-20 你好,菜鸟想一个关于51单片机的问题,谢谢 3 2013-07-18 那些年关于51单片机的事儿 3 更多类似问题 > 为...

我想问下51单片机开发板上如何将按键的数据作为向pc机发送的数据。求...
单片机接收数据要在中断里处理,单独的函数不行,可以参考单片机教程。我好久没玩51了,对寄存器都忘得差不多了。但是是步骤还是清楚的,首先要对串口初始化,打开串口,设置波特率,打开全局中断,串口就OK了。按键用只要扫描IO口,读读得高低电平即可,很简单。你网上收一下郭天祥的视频教程,讲的很...

关于51弹药的升级问题
你的加点都已经是刷图点了~魔爆当然要舍弃~满冰弹和满火弹的威力不是一般的强悍~如果以后洗点~魔爆 远古必加满~60将军飘过~

我想问下51单片机开发板上如何将按键的数据作为向pc机发送的数据。求...
弄个矩阵键盘的程序,然后建立一个数组,里面的元素对应按键的数字值。然后将元素值在赋值给一个变量,发送给pc。出错的程序想不出来

一个简单的51单片机问题
将你的while()函数改为下面这个函数:while(1){ P1_0=0;sleep(1000);P1_0=1 sleep(1000);} 你再试试这个。蜂鸣器不断响,就是因为给它高低电平,它就能发声。

关于51前程无忧的简历填写问题
solidworks是硬件 pro\/e是软件(一般指的是开发或美工)还有一种分类是专门使用office办公的,单纯的编写输入,多数出现在国外,适用于外企,要求要有良好的语言基础,在中国属于计算机行业的软件,不属于开发,可以找品质管理之类的工作 如果你能详细说明一下你想要选什么,我就能更好的帮你分类了,希望能...

51单片机毕设问题,大虾们速度啊···
我帮同学做过一份51单片机的毕业设计,了解了一下,按照现在的大学制度。。。你这个毕设不会被评价为过于简单的(不过要看你的学校级别了,呵呵,这个问题不可回避)。因为有些学校单单一个51做的电子表就能通过答辩了。。。至于你说的两个人同时按抢答键的问题。。。个人拙见:以普通51us级的判断...

想问51仿真器是什么
51仿真器是指以调试单片机软件为目的而专门设计制作的一套专用的硬件装置。单片机在体系结构上与PC机是完全相同的,也包括中央处理器,输入输出接口、存储器等基本单元,因而与PC机等设备的软件结构也是类似的。更多关于51仿真器是什么,进入:https:\/\/www.abcgonglue.com\/ask\/fab94c1615822493.html?zd...

我想问一下,五一上班国家规定是否算加班费还是算调休
5月1日当天算加班,4月29日、30日为调休。。请参考《国务院办公厅关于2012年部分节假日安排的通知》国办发明电〔2011〕45号

51节短信
一阵雨能下多久?一束花能开多久?一脸笑能挂多久?假如问我祝福你多久?我说:心跳多久,祝福多久!五一...51、五一,今天你的全部愿望都能实现,香车宝马载着让人大喷鼻血的MM为你送来升迁和发财的动静。不信...85、劳动节不想用一些太做作的华丽的词语祝福你,我就简简单单几个字:做人一定要注意:一。戗箜翮簪...

通城县19898326470: 我想问一下关于51单片机单键识别的松手检测的问题 -
岛泳志苓: 在这里加一个while语句的目的是防抖动,也就是说防止你按一下键,由于抖动的原因,而单片机响应好几下.比如你的按键接在P0.0上,sbit ds=p0.0 当你按下的时候ds=0,放手的时候又是1,所以应该是while(ds==0);这句话就是在等待你松手,你松手以后才继续执行命令

通城县19898326470: 如何用单片机判断按键单击双击? -
岛泳志苓: 假设key==0有键if(key==0) 第一次按下按键{ while(!key);第一次松开按键 while(i && key) i 的大小就是延时长短 { i- -; } if(i==0)...

通城县19898326470: 89C51单片机关于按键判断的问题 -
岛泳志苓: 有两个办法供你参考:1)将3个按键进行编码,将三个键编码成01、10、11,这样只需占2条输入线就够了,正好利用2个中断口,任何一个中断均调用键盘程序;2)将3个键的3个输出线通过二极管引到中断输入口(相当于3输入与门),这样任何一个键按下均发生中断,只需占用一个中断口.但是如果采用软件延时的话按键时的延时精度还是得不到保证的.

通城县19898326470: 51单片机独立按键中,按一下和一直按的区别 -
岛泳志苓: 按一下松开这个LED一直亮:if(key==0) { while(key==0); led=0; }按一下松开就亮一下:if(key==0) { led=0; while(key==0); led=1; }

通城县19898326470: 51单片机 .多个键按下任一个键即产生中断,并判断键值.用什么方法.用什么芯片? -
岛泳志苓: 按键全部接在单片机IO(比如P1)上 再分别用一个二极管把按键接到单片机 中断口(P3.2) 在单片机 中断服务程序里检测IO(P1)上的电平就OK了 照样实现中断功能

通城县19898326470: 求助51单片机独立按键问题.写了个有关独立按键的程序,程序是为了实现数码管显示数字的,问题看补充. -
岛泳志苓: 我还是没明白你想要实现什么呢,你想松开手后还是保持那个数字显示,等你按下一个键是变成下一个数字?还是等你按下一个键时在其它的位上显示出下一个数字?很简单啊这个,还有啊,你最好在程序里扫描键盘之前定义一下让P3=0xff

通城县19898326470: 51单片机怎么用按键控制一个数码管,按一下显示一个数字,顺序显示 -
岛泳志苓: /*-----------------------------------------------名称:单个共阳数码管动态显示变化数字内容:通过循环检测P1口按键输入值,然后用数码管输出,没有按键按下时原值不变 ------------------------------------------------*/ #include<reg52.h> //包含头文件,一般情况...

通城县19898326470: 51单片机同一个独立按键按一下显示1,再按一下显示2,依次类推,求思路不求代码. -
岛泳志苓: 这个容易,判断按键按下了,这个会吧.先定义一个变量,每当这个按键接下一次,变量加1,当变量超过最大值后,回最小值,最大值是5,超过5,就回1.接下来就是判断,变量值分别为1,2,3,...时,都要执行什么程序了.这个应该会做吧,用if 语句,或用case语句.如果不执行什么,只是显示,就更简单了,不需要判断了,直接把变量显示出来就行了.

通城县19898326470: 关于51单片机很小,键盘扫描问题 -
岛泳志苓: 解决这个问题,你的程序用延时来产生方波,这样就势必造成大量的CPU资源被浪费到延时程序上.建议改用定时器来产生方波.这样,你的CPU可以全时地处理键盘扫描问题了,做一个软件消抖,就可以解决好这个问题. 最简单的办法,当你的计时器位数不够的时候,设一个全局变量.比如要实现1HZ,那么就用这个全局变量对计时器的溢出次数进行计数,溢出15次跳变一次,这样就可以实现了.

通城县19898326470: 51单片机 关于按键 if(button) i++; 其实我想实现的功能就是 按下按键后 i自加1 -
岛泳志苓: 你自己已经分析到位了,单片机运行速度是很快的,不加延时你按键一瞬间已经执行i++好多次了,加一段20毫秒左右延时,延时结束在判断按键一次,还处于按下状态才算一次,然后再延时20毫秒左右,才能进行下一次判断.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网