用C语言编写按键控制流水灯的程序

用C语言编写按键控制流水灯的程序,第1张

1灭)。编译器keil

c代码如下:

#include<reg51.h>

#include<intrins.h>

//包含循环左移函数

_cro_l头文件

unsigned

char

tmp

//中间变量

//////////////////////////////////////////////////////////////////////////////////////////////////

//

延时子程序

////////////////////////////////////////////////////////////////////////////////////////////////

void

delay(unsigned

int

cnt)

{

while(--cnt)

}

//////////////////////////////////////////////////////////////////////////////////////////////////

//

主函数

////////////////////////////////////////////////////////////////////////////////////////////////

main()

{

while(1)

//外层循环

{

tmp

=

0xfe

p1

=

tmp

while(1)

//内层循环,执行1、3、5、7亮灯循环

{

delay(30000)

//延时以便能观察到灯亮移动,自己可以调整时间,由晶振和实参决定

tmp

=

_crol_(tmp,2)

p1

=

tmp

if(tmp

==

0xbf)

//判断是否已经点亮到第7灯。是,则退出进入2、4、6、8循环

{

break

}

}

tmp

=

0xfd

p1

=

tmp

while(1)

//内层循环,执行2、4、6、8亮灯循环

{

delay(30000)

//延时以便能观察到灯亮移动,自己可以调整时间,由晶振和实参决定

tmp

=

_crol_(tmp,2)

p1

=

tmp

if(tmp

==

0x7f)

//判断是否已经点亮到第8灯。是,则退出进入1、3、5、7循环

{

break

}

}

}

}

低电平点亮

START:MOV R0,#8

MOV R1,#8

SETB C

MOV A,#0FEH

MOV P1,A

S1:RLC A

CALL DELAY

MOV P1,A

DJNZ R0,S1

SETB C

MOV A,#0FEH

MOV P2,A

S2:RLC A

CALL DELAY

MOV P2,A

DJNZ R1,S2

AJMP START

DELAY:MOV R5,#0FFH //改变值变延时时间

LOOP2: MOV R4,#0FFH//改变值变延时时间

LOOP1:DJNZ R4,LOOP1

DJNZ R5,LOOP2

RET

END


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

原文地址: http://outofmemory.cn/yw/7790199.html

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

发表评论

登录后才能评论

评论列表(0条)

保存