}
void init() //主程序初始化
{
EA=1; //CPU开放所有中断源的中断请求
EX0=1; //允许外部中断0中断
EX1=1; //允许外部中断1中断
IT0=1; //外部中断0采用边沿触发方式产生中断
IT1=1; //外部中断1采用边沿触发方式产生中断
v=15; //设置移动速度的初值
}
void init1() //左移显示方式各变量的初始化
{
shuz=5;
shub=1;
a=shuz*16+shub*8+14;
P0=0;
P2=0;
temp1=0;
}
void disp1() //左移显示子程序
{
P0=table[k];
k++;
P2=table[k];
k++;
P1=temp1;
temp1++;
if(temp1==0x10)
temp1=0x00;
delay(1);
}
void main()
{
init();
while(1) //主循环
{
if(flag%3==0) //判断是不是左移显示方式
{
init1(); //左移显示初始化
while(flag%3==0) //左移循环控制
{
for(i=0;i<=a;i++) //判断左移的字符个数
for(j=0;j<=v;j++) //向左移动的速度由变量v控制
for(k=i*2;k<(i*2+32);) //显示一幕
if(flag%3==0) //判断有没有中断,flag的值有没有变化
disp1(); //若没有中断调用左移显示子程序
else
{
i=a;j=v;k=(i*2+32);//若有中断了初始化左移的各变量
}
}
}
|