#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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)