按键精灵的函数与子程序问题。 有程序123和程序a,执行顺序1-a-2-a-3-a-cd

按键精灵的函数与子程序问题。 有程序123和程序a,执行顺序1-a-2-a-3-a-cd,第1张

函数渣兄与子程序的区别在于函数有返回值而镇梁伏子程序没有,这也就是说函数可以代替御携子程序,子程序不能代替函数。

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()

//执行应运程序

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12485202.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存