at89c51单片机等待键释放的程序怎么写

如题所述

while(1)
{
while(!KEY)  //按下,等待释放
{
delay(10); //防抖
if(KEY) //如果释放,运行下面的程序
。。。 //这里写释放后要运行的程序 
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-05-09
楼上的都是使用等待按键松手的方法,比较容易理解,还有一种等待按键释放的程序段思路大概是这样的:设置一个标志位,然后,有按键按下置位标志位,按键松开清空标志位,去判断标志位,就知道按键松开了没,这样不用让cpu等待按键松开,在等待的时间里,cpu还可以做其他的事情本回答被网友采纳
第2个回答  2011-11-01
粘一个看下:while(1)//死循环程序
{
if(!key1) //检测是否有键按下
{delay(300);//等待下。。。。
if(!key1)再次检测有键按下
。。。。。。下面的程序本回答被提问者采纳
第3个回答  2011-11-01
while(!key);

at89c51单片机等待键释放的程序怎么写
楼上的都是使用等待按键松手的方法,比较容易理解,还有一种等待按键释放的程序段思路大概是这样的:设置一个标志位,然后,有按键按下置位标志位,按键松开清空标志位,去判断标志位,就知道按键松开了没,这样不用让cpu等待按键松开,在等待的时间里,cpu还可以做其他的事情 ...

AT89c51单片机程序控制两个数码管显示00-59秒表的程序要怎么编啊?
void main(void )\/\/主程序 { TMOD=0x01;\/\/ 定时器1工作方式一 ET0=1;EA=1;TH0=(65536-10000)\/256;\/\/定时10ms TL0=(65536-10000)%256;TR0=0;\/\/上电先不启动 while(1){ if(key1==0)\/\/判断按键是否按下 { Delay1ms(10);\/\/延时消抖 if(key1==0){ while(key1==0);\/\/等待...

怎么用AT89C51操作IO口编程?
定义和初始化端口:在程序中,需要先定义要控制的端口,然后初始化端口的输入\/输出状态。例如,如果要使用P1端口,可以在程序的开头添加以下代码:控制端口状态:可以使用语句来控制端口的状态。例如,如果要将P1.0口设置为高电平,可以使用以下代码:等待一段时间:为了保证IO口能够正确地工作,有时候需要...

急~!!用数码管显示60秒的秒表设计(单片机AT89C51)
;程序如下:;fosc = 11.0592MHz SP1 BIT P3.2 LED BIT P3.4 ;--- ORG 0000H SJMP START ORG 000BH MOV TH0, #4CH JNB F0, T0_END DJNZ R5, T0_END MOV R5, #20 INC R4 CJNE R4, #60, T0_E1 ;最大为59 MOV R4, #0 CLR LED T0_E1...

AT89C51单片机系统的晶振频率是12MHZ,阅读以下汇编代码回答问题..求...
原程序:ORG 0000H LJMP MAIN ORG 000BH LJMP INTT0 ORG 0100H MAIN:MOV TMOD, #01H MOV TH0, #0ECH ;定时5000us MOV TL0, #78H SETB ET0 SETB EA MOV R7, #0AH SETB TR0 SETB P1.7 SJMP $ ;等待中断 ORG 0200H INTT0:MOV TH0,...

单片机AT89C51的P2口接8个LED,让这8个LED显示闪烁功能即8个LED1s熄 ...
R6,#200 D2:MOV R7,#250 D3:DJNZ R7,D3 DJNZ R6,D2 DJNZ R5,D1 DELAY2:MOV R5,#20 D11:MOV R6,#200 D22:MOV R7,#250 D33:DJNZ R7,D33 DJNZ R6,D22 DJNZ R5,D11 因为有CALL指令要用到堆栈,所以要留出堆栈空间而把程序代码安排在 org50 之后;至于延时值,自己调试吧;

通过AT89C51单片机控制8个发光二极管发光 5种效果循环,要求通过按钮...
FLAGEQU 0X1E CNT EQU 0X1D;闪烁模式计数 TEMPEQU 0X1A;临时变量,用完即放 T24EQU 0X19 T16EQU 0X18 T2EQU 0X17;2中断计数 T4EQU 0X16;4中断计数 T100EQU 0X15;100中断计数 T20EQU 0X14;20中断计数 T200EQU 0X13;200中断计数 CNT5EQU 0X12;旋转5状态计数 KEY_1ST== FLAG.0;第一次按...

用C语言编写AT89C51单片机程序,设计一个智能数字钟。
void key_change(); \/\/切换显示按键函数 void key_set(); \/\/设置时间按键函数 void disp(uchar,uchar,uchar,uchar,uchar,uchar); \/\/显示函数 void zd_clock(); \/\/整点报时函数 void nz_clock(); \/\/闹钟函数 uchar incone(uchar); \/\/加1函数 uchar decone(uchar); \/\/减1函数 void set_...

关于单片机AT89C51的编程问题
} } EA = 1; EX1=1;}main(){ p1 = 0xff; EA=1; \/\/开总中断 EX1=1; \/\/开外部中断1 EX0=0; \/\/开外部中断0 IT1=0; \/\/外部中断边沿触发,下降沿触发 IT0=0; \/\/外部中断0边沿触发,下降沿触发} ...

用C语言怎么在单片机AT89C51上编写一个用一个开关控制一个灯亮和灭...
电路有问题啊,电源怎么能直接接到GPIO,这样大电流会损坏IC。P1口好像没有外部中断,那只有轮询了。这个就是按键检测嘛,网上一堆代码,so easy!

相似回答