call main()
function main()
Do
call 1()
call a()
call 2()
call a()
call 3()
call a()
dealy 30000
loop
end function
function 1()
函数1的内容
end function
function 2()
函数2的内容
end function
function 3()
函数1的内容
end function
function a()
函数a的内容
end function
不知辩核道你想要实现啥样的启停,今天上班有点闲,给你写一个程序做参考,你可以根据你的需要进行更改。//功能是按键携激掘,按下启动停止,启动后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()
//执行应运程序
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)