第一次按下按键进入一种频率松手后还在这个频率中一直工作,当我第二次按下进入第二个频率松手后在第二个频率中一直工作,直到我在按下按键才改变依次类推。P1.0 led输出,P3.4按键输入检测脚,,求一个C语言程序详解。
这是 我的子程序怎样调用到独立按键里去 啊
你写的这种程序,一个个的函数,时间长短不齐。
用来控制不同的显示闪烁频率,还可以。
怎么能和读出按键联合使用?
检测按键,还能一会检测的密集一些,一会慢慢的检测?
----------
按键检测,是应该用同样的时间间隔来检测。
这样才不会遗漏按键的操作。
检测几十次、或检测几百次,改变一次LED,即可出现不同的闪烁频率。
应该先写好独立按键的检测程序,
然后再编写,如何控制闪烁延时的程序。
----------
我在上面给出的程序,可以实现不同的闪烁频率。
你可以试验一下。
我现在这样写是每按一次按键所要进入的频率这里有5种频率我把这五中频率写成了子函数用来调用,我想知道我用一个按键来实现调用 ,行不行的通,如果行的同应该怎样调用这子函数到按键检测(怎样写)),每按一次按键切换一个频率并一直保持在当前频率,直到我在按下按键才跳出当前到下一频率一直循环5次按下后,按第六次又回到第一个模式。
追答你写的程序,各个函数,时间长短不齐。
调用你的程序,就不能按时检测按键。
按键后,有时很灵,有时就很迟钝。
如果是低频闪烁,按下键,就难以及时反应。
这就不能保证每按一次按键切换一个频率。
----------
你为什么不写一个按键检测的程序呢?
检测几十次、或检测几百次,改变一次LED,即可出现不同的闪烁频率。
----------
我在上面给出的程序,已经可以实现你要求的内容。
按键、松开,就能出现不同的闪烁频率。
你可以试验一下。
这是我 的 子程序,现在要在一个按键里调用,,怎么按你的 方法调用不了,我是要每按一次按键进入一个模式段,一直保持,直到我再按按键才切换到下一个模式,按你那样调用,它乱跑,而且要长按10多秒才变换,我想按下就变换,在你没松手一直按下都不会切换模式,一定是要在我松手后在按一次按键才切模式 ,,求解,谢谢
51单片机一键控制一个LED,每按一下按键LED闪烁一种频率,共闪烁三种频 ...
case 2: delay(); readkey(); \/\/中速闪烁 case 3: delay(); readkey(); led = ~led; \/\/快速闪烁 } } }
...共闪烁三种频率.别照抄哦,有好的答案加分~~
MAIN: SETB LED ;LED 灭 LL1: JB KEY , LL1 ;等待按键第一次按下 LCALL YS ;延时去抖 JB KEY,LL1 ;按键第一次按下 则往下执行 LL12: MOV TMOD,#10H MOV TH1, # 00H ;送时间常数较小 定时时间长 MOV TL1, #1CH SET...
单片机用c语言,按钮控制一个LED灯,要求按下松开,LED亮,按下松开,LED...
1、首先打开桌面上的keil软件,在进行对51单片机进行编程时最常用的就是keil软件。2、编写相应的代码:#include<reg52.h> \/\/定义单片机的头文件sbit led=P2^0; \/\/定义单片机的管脚,void main(void) \/\/主函数{ while(1) \/\/无限循环 {led=0x1f; \/\/点亮前面三个灯。这里...
51单片机怎么只控制一颗LED灯闪烁
1、新建项目,如图所示。2、添加头文件,创建延迟函数。3、创建C主函数。4、添加死循环效果。5、点亮LED灯。P1=0x7e;二进制11111110。6、添加延迟效果。注意事项:很多公司都有51系列的兼容机型推出,今后很长的一段时间内将占有大量市场。51单片机是基础入门的一个单片机,还是应用最广泛的一种。需要...
按键点灯程序,按一下按键灯亮(一直亮),再按一下灭,51单片机。
1、首先打开编程软件Keil uVision4,新建一个工程文件,在菜单栏中Project—— New uVision Project..。2、然后选择单片机型号是 Atmel 公司的 AT89c52,单击OK。3、再单击工具栏上新建按钮,新建一个文档,然后再点击保存,输入保存的路径,输入名字。4、右键单击将这个文件添加到到工程文件夹中。5、...
如何用单片机控制LED灯闪烁?
以下是一个简单的51单片机程序,通过按下按键可以实现4种不同状态的灯亮灭,包括正闪、反闪、多种间隔闪。程序中使用了定时器来实现闪烁功能。程序中使用了P1.0到P1.3作为控制灯的引脚,P3.2作为按键的引脚。每当按下按键时,通过判断状态值来切换不同的灯亮灭模式。定时器中断函数用来实现灯的...
51单片机怎么用c语言写一个按钮控制一个led的闪烁,按一下开始闪烁,再按...
if(P02)\/\/再次确定按键按下 { while(P02){flash=flash}\/\/按住按键的动作 flash=~flash;\/\/按键按下后执行动作 } } } void ledflash(){ if(flash){ led=1;\/\/点亮 delay(100);\/\/延时100MS led=0;\/\/熄灭 } else led=0;} void delay(unsigned int i){自己根据单片机频率写个1MS带形参...
51单片机LED按键延时3秒一次点亮,取反按键依次熄灭程序是怎么写的
现功能:按下按键三个全亮,在按下LED2灭,再按下三个LED全灭,如此循环,相当于三档,第三档是停止。第一档和第二档定时5S,5S终了,停止运行,如果此时再按1次则回到第一档。如果5S之内按下,则切换到下一档,实现功能:按下按键三个全亮,在按下LED2灭,再按下三个LED全灭,如此循环,...
如何用单片机一个按钮开关控制3个灯3种效果。流水。闪烁。还有一直亮...
延时20ms去抖动 if(CountTemp > 160)\/\/如果按键时间有效,改变状态 { switch(ucState){ case(0):{ ucState = 1;led1 = 0;led2 = 0;led3 = 0;} break;case(1):{ ucState = 2;led1 = 0;led2 = 0;led3 = 0;} break;case(2):{ ucState = 0;led1 = 0;led2 = 1;...
用51单片机按键控制启动给按键控制LED亮熄 在按键控制停止给LED不工 ...
不晓得你的按键和LED是高有效还是低有效 键盘需要去抖动啊 每次检测有键按下后,要延时一小段时间,在检测。你试一下呢?聚集还是要不得,感觉你程序算法有问题 include<reg52.h> \/\/\/宏定义\/\/\/ define uint unsigned int define uchar unsigned char \/\/\/定义引脚\/\/\/ sbit K1 = P1^0;sbit K2...