按照时间段来说,一开始先显示一个字,延时500mS后,这个字的每个亮的点都向换到旁边的点亮,然后再延时500mS……依此类推,这个字就向左滚动了,要让它快点或者慢点滚,改变延时时间即可。
可以参考一下
#include
#define uchar unsigned char
#define uint unsigned int
sbit yy=P2^0;
sbit xx=P2^1;
uchar temp,i,j,a;
uchar code table[]={0xe7,0xdb,0xdd,0xee,0xdd,0xdb,0xe7,0xff,
0xe7,0xdb,0xdd,0xee,0xdd,0xdb,0xe7,0xff};
void delay(uint z) //延时子函数
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void main()
{
while(1)
{
for(i=0;i<8;i++) //图形移位8次
{
for(a=0;a<10;a++) //延时控制移动速度
{
temp=0x01; //列扫描初值
for(j=0;j<8;j++) //扫描8次
{
yy=1;
P1=temp; //列值
yy=0;
delay(2); //延时,时间短了会重影,长了会闪烁
xx=1;
P1=table[i+j]; //行值
xx=0;
yy=1; //消隐
P1=0x00;
yy=0;
temp=temp<<1; //列值左移一位
}
}
}
}
}
制作LED电子显示屏的具体方法材料:订购单元板、铝合金边框(户内)、钣金你怎么这么抠涅?!你说你一分不给我还得教你知识是不? 这么深奥的