uchar table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}
void delay();//自己仿耐写吧 延迟一秒
void led_blink()//~~~~~~~~~~~~
void single_stream()//单向流水函数声明
void double_stream()//~~~~~~~~
void led_blink() //全部亮时闪烁两次
{
uchar i
if(P3^7==0)
{ i=2
while(i--)
{
P0=0x00//低电平点亮
P1=0x00
P2=0x00
P3=0x00
delay()
P0=0xff//熄灭
P1=0xff
P2=0xff
P3=0xff
delay()
}
}
}
void single_stream()//单向流水灯
{
uchar i//自己定义一下 unsigned char
for(i=0i<8i++)
{
P0=table[i]//逐个点亮led0-7 第零组
delay()
}
for(i=0i<8i++)
{
P1=table[i]//第一组
delay()
}
for(i=0i<8i++)
{
P2=table[i]//第备启春二组
delay()
}
for(i=0i<8i++)
{
P3=table[i]//第三组
delay()
}
}
void double_stream()//这个你也自己写吧
{
}
void main()//main 函数就调用下 前面的就可以了。。
{
while(1)
{
single_stream()
led_blink()
double_stream()
led_blink()
}
}// 大概就是这样。。我没测试旁族
/***32灯流水团派——火柴天堂作品-20130520***//***52单片机,12MHz晶振,P0-P3
接32颗LED,低电平驱动***/
#include"REG52.h"//包含52头文件
#define
TRUE
1//定义布尔塌烂贺量'1':真
#define
FALSE
0//定义布尔量'0':假
#define
uchar
unsigned
char//定义
无符号字符型数据历配
简称
#define
uint
unsigned
int//定义
无符号整型数据
简称
#define
th0
0xb1
#define
tl0
0xe0//20ms
at
12MHz
Fosc
in
Model
1
#define
LED_Port1
P0
#define
LED_Port2
P1
#define
LED_Port3
P2
#define
LED_Port4
P3
#define
LED_AllOff
LED_Port1=LED_Port2=LED_Port3=LED_Port4=0xff
#define
LED_AllOn
LED_Port1=LED_Port2=LED_Port3=LED_Port4=0
#define
LED_Status
43//1步全亮+32步单亮+10步闪烁
#define
LED_Marquee
32
bit
T20msFlag=0
void
Timer0()
interrupt
1
{
TL0=tl0
TH0=th0
T20msFlag=TRUE
}
void
TimerInit()
{
TMOD=0x01
TH0=th0
TL0=tl0
TR0=1
ET0=1
EA=1
}
void
LED_Out()
{
static
uchar
led_status=0
if(T20msFlag)
{
T20msFlag=FALSE
led_status=++led_status%LED_Status
}
if(led_status
&&
led_status<=LED_Marquee)
{
LED_AllOn
switch((led_status-1)>>3)
{
case
0:LED_Port1=1<<((led_status-1)%8)break
case
1:LED_Port2=1<<((led_status-1)%8)break
case
2:LED_Port3=1<<((led_status-1)%8)break
case
3:LED_Port4=1<<((led_status-1)%8)break
default:led_status=0break
}
}
else
{
if(!led_status
&&
led_status%2)
LED_AllOn
else
LED_AllOff
}
}
void
main()
{
TimerInit()
while(1)
{
LED_Out()
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)