缘由51单片机实现8*8滚动箭头的程序,运行时什么图案都没有,甚至根本不亮 - 24小时必答区

cpp
#include<reg52.h>
unsigned char code M[]={
0xff,0xff,0xfe,0xfd,0xf8,0xfd,0xfe,0xff,
0xff,0xff,0xfd,0xfb,0xf0,0xfb,0xfd,0xff,
0xff,0xff,0xfb,0xf7,0xe0,0xf7,0xfb,0xff,
0xff,0xff,0xf7,0xef,0xc0,0xef,0xf7,0xff,
0xff,0xff,0xef,0xdf,0x80,0xdf,0xef,0xff,
0xff,0xff,0xdf,0xbf,0x00,0xbf,0xdf,0xff};
void main()
{
unsigned char wei=0,zt=0,ys=0,cs=0,sj=0;
while(1)
{//入门时可以用独占计数延时到处嵌套,入门后中高级应用就不能再使用到处独占嵌套循环延时,除了数码管、点阵显示器需要外。
if(wei==0)wei=1;else wei*=2;//点阵位控制类似8位数码管的位
P3=M[sj+cs];//点阵数据对应1位8个灯亮灭
P2=wei;
while(++ys);//显示延时必须独占
P2=P3=255;//消隐
if(++sj>8){sj=0;++zt;}//控制点阵一屏显示完成同时计算切合延时非独占
if(zt>47){cs+=8;if(cs>40)cs=0;zt=0;}
}//控制切换速度另8个数据组成一屏即动画速度到全部数据显示完成
}