|
这是左移的程序主程序
#include<reg52.h>
#include<dingyi.h>
#include<ziku.h>
uint num,temp,num2,c,d,a,b,e;
/*
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=1;y>0;y--);
}
*/
void write595(uchar dat)
{
uchar i;
for(i=0;i<8;i++)
{
sh=0;
sda=dat&0x01;
dat=dat>>1;
sh=1;
}
}
void xianshi()
{
st=0;
st=1;
}
void main()
{
while(1)
{
for(c=0;c<960;c+=32) //总共8位数的个数, 960/32=显示字的个数
{
a=0; //一个字的后半个字是否代替前部分
b=0; //后一个字子否代替前一个字
for(e=0;e<2;e++) //交替替换前后字节
{
for(num=0;num<8;num++) //移位次数为八次
{
num2=6; // 总共完全扫描2次,改变此值可以改变移动速度
lp: temp=0;
for(d=0;d<16;d++)
{
write595(~(shu[temp+97-a+b+c]<<num|shu[temp+128+a+c]>>(8-num)));
write595(~(shu[temp+96+a+c]<<num|shu[temp+97-a+b+c]>>(8-num)));
write595(~(shu[temp+65-a+b+c]<<num|shu[temp+96+a+c]>>(8-num)));
write595(~(shu[temp+64+a+c]<<num|shu[temp+65-a+b+c]>>(8-num)));
write595(~(shu[temp+33-a+b+c]<<num|shu[temp+64+a+c]>>(8-num)));
w rite595(~(shu[temp+32+a+c]<<num|shu[temp+33-a+b+c]>>(8-num)));
write595(~(shu[temp+1-a+b+c]<<num|shu[temp+32+a+c]>>(8-num)));
write595(~(shu[temp+a+c]<<num|shu[temp+1-a+b+c]>>(8-num)));
xianshi();
temp+=2;
P0=d;
}
if(num2>0)
{
num2--;
goto lp;
}
};
a=1;
b=32;
}
}
}
} |
阿莫论坛20周年了!感谢大家的支持与爱护!!
一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。
|