⑴ 51单片机中如何通过一个按键实现暂停与恢复需要一个编程的思想
有以下几种情况:
1.循环查询按键。当按键按第一次时间,进入第一层循环查询语句内部,执行恢复。不跳出该层循环,继续查询按键。当第二次按下时间,进入第二层循环查询语句内部,执行暂停。循环结束。若想反复暂停和恢复,就在外面再加一层while(1)类似的死循环,反复执行其内部的两层循环查询语句。
2.用一个标志变量,记住按键的状态。初始化为个值,如“暂停”,按键之后检查标志变量,是“暂停”就执行“恢复”,再让它变为“恢复”说明当前已经执行了恢复。反之亦然。
3.掉电暂停。这样需要按键能触发cpu工作。所以,需要按键接到外部中断上面。中断后可以恢复CPU工作。在中断中再判断是否要让cpu掉电与否。
不知道这种方法你能接受不?还是用外部中断。此按键触发中断后,关掉所有其他的中断,也即EA=0(最好先用个变量记住EA,方便恢复),然后就一直在中断中等待该按键第二次按下再恢复EA,最后退出中断。
⑵ 51单片机如何用一个按键控制一段程序的运行与停止
1、创建项目文件。
6、当按下一个按键时,关闭灯,整个程序运行,再按一次,程序停止。
⑶ 单片机按键实现暂停和开始
这个程序 while(K1);
while(!K1);
你觉得到了这里,这个程序不死? 不管K1按下还是不按下,这个程序都是死循环啊!
而且你的程序 { } 都不成对出现,能编译通过么?
调试程序的时候,建议一步一步来,不要一口气将程序写好,结果很多问题
⑷ 请问51单片机如何用一个独立按键控制程序的暂停和继续
1.你的程序并不能实现显0~9,1357,0246,亮灯和响铃是可以。
2.用P1.1按键是可以实现暂停和继续的,并不需要中断。不是什么事都需要中断,好像离开中断就什么也不能做了?
3.你想暂停,是随时暂停,还是什么时候暂停?
⑸ 单片机如何用一个按键实现启停
不知道你想要实现啥样的启停,今天上班有点闲,给你写一个程序做参考,你可以根据你的需要进行更改。//功能是按键,按下启动停止,启动后LED灯闪烁,
停止LED灯灭。
#include
"REG52.H"
sbit
LED1_01
=
P1^1;
//LED灯
sbit
KEY0_01
=
P1^2;
//按键
bit
value_flag
=
0;
//标志位
/*
*
延时1ms延时子函数
**/
void
Delay_1ms(unsigned
int
Time)
{
unsigned
int
x,
y;
for(x
=
Time;
x
>
0;
x--)
for(y
=
120;
y
>
0;
y--);
}
/*
*
按键开关【启动和停止】子函数
**/
void
Scan_keyoutCmd(void)
{
if(KEY0_01
==
0)
//检测按键是否按下
{
Delay_1ms(10);
//延时去抖动
if(KEY0_01
==
0)
//确定按键按下
{
value_flag
=
~
value_flag;
//取反标志位
}
while(KEY0_01
==
0);
//检测松手
}
}
/*
*
程序运行【启动和停止】子函数
**/
void
Disp_layledketCmd(void)
{
if(value_flag
==
1)
//如果标志打开启动单片机运行程序
{
LED1_01
=
0;
Delay_1ms(500);
//启动运行程序后LED灯开始闪烁
LED1_01
=
1;
Delay_1ms(500);
}
else
if(value_flag
==
0)
//如果标志关闭停止单片机运行程序
{
LED1_01
=
0;
//停止运行程序后LED灭。
}
}
/*
*
函数主体
**/
int
main(void)
{
value_flag
=
1;
//打开标志位
while(1)
{
Scan_keyoutCmd();//单片机循环检测是否有按键按下【启动或停止】应运程序
Disp_layledketCmd();
//执行应运程序
}
}
⑹ 51单片机中用数码管做秒表时怎么用一个独立按键控制开始和暂停,即第一次按下计时,在按下时暂停
其实,控制秒表的启动和停止,很简单。要做秒表,一定要用定时器吧,假如用T0,那开始初始化时,不写TR0=1,先不启动。x0dx0a当按一下键,再启动,TR0=1,就开始计时了。x0dx0a再 按一下键,就停止,TR0=0,就不计时了。x0dx0a程序好写,先 定义一个按键x0dx0asbit key=P1^1; //具体是哪个 键,你自己改x0dx0a主程序中,判断按键和启动/停止x0dx0aif(key==0)x0dx0a{x0dx0adelay(); //具体延时时间自己定x0dx0aif(key==0)x0dx0a{x0dx0aTR0=!TR0; //每按一次,取反 一次x0dx0awhile(key==0);x0dx0a}x0dx0a}
⑺ 单片机怎么用按键控制开始 停止和清零
//定义IO和变量
sbit start = P1^1;
sbit stop = P1^2;
sbit reset = P1^3;
bit flag_start;//计数标志位
uint sec;//秒
//按键功能
if(start==0)
flag_start=0;
if(stop==0)
flag_start=1;
if(reset==0)
{flag_start=0;sec=0;}
//计数程序
if(flag_start)
{sec++;}
单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。
⑻ 单片机怎么用一个按钮控制步进电机启动和停止
单片机用一个按钮控制步进电机启动和停止,这很容易的,识别按键按下的程序会写吧,那定义一个位变量,即标志位,如flag,上电后flag=0,为电机停止状态。每按一次按键,flag=!flag,即取反一次,然后再判断标志位,flag=1,则启动电机。flag=0,则停止电机。