用c语言编写单片机流水灯程序,(8个发光二极管从左至右循环点亮)

用c语言编写单片机流水灯程序,(8个发光二极管从左至右循环点亮),第1张

#include<reg51.h>

voiddelay(void)

{

unsignedinti,j

for(i=0i<200i++)

for(j=0j<1000j++)

}

voidmain(void)

{

while(1)

{

P3=0xfe//第一个灯亮

delay()//延时

P3=0xfd//第二个灯亮

delay()

P3=0xfb//第三个灯亮

delay()

P3=0xf7//第四个灯亮

delay()

P3=0xef//第五个灯亮

delay()

P3=0xdf//第六个灯亮

delay()

P3=0xbf//第七个灯亮

delay()

P3=0x7f//第八个灯亮

delay()

}

}

扩展资料

单片机C语言16种方式流水灯

voidmain()

{

while(1)

{

P1=0xfe//点亮第一个发光管

Delay(5000)

P1=0xfd//点亮第二个发光管

Delay(5000)

P1=0xfb

Delay(5000)

P1=0xf7

Delay(5000)

P1=0xef

Delay(5000)

P1=0xdf

Delay(5000)

P1=0xbf

Delay(5000)

P1=0x7f//点亮第八个发光管

}

}

共阳极,低电平亮,到时候自己调整。假设用单片机P1口。延时函数自己写吧。

#include<reg52.h>

#define unsigned char uchar

#define unsigned int uint

void delay()

{}

void main()

{

uchar i=1,sign=-1

P1=0xfc

while(1)

{

delay()

if(sign==-1)

{

P1<<1

i++

if(i==7)

sign=-sign

}

else

{

P1>>1

i--

if(i==1)

sign=-sign

}

}

}

ORG 0000H

LJMP START

ORG 0030H

START:

MOV A, #0FEH

MOV R2, #8

OUTPUT:

MOV P1, A

RLA这是左移

ACALL DELAY

DJNZ R2, OUTPUT

---------------------------加上下面这一段即可

MOV R2, #8

OUT:

MOV P1, A

RRA这是右移

ACALL DELAY

DJNZ R2, OUT

---------------------------下面的,都是原来的

LJMP START

DELAY:

MOV R6, #0

MOV R7, #0

DELAYLOOP: 延时程序

DJNZ R6, DELAYLOOP

DJNZ R7, DELAYLOOP

RET

END


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存