5楼的是C写的
#include <reg52.H>
unsigned char dis[][8]={ //注:不同的硬件电路,字模也不一样
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},//黑屏
{0x3C,0x66,0x66,0x66,0x66,0x66,0x66,0x3C},//0
{0x18,0x1C,0x18,0x18,0x18,0x18,0x18,0x3C},//1
{0x1C,0x3E,0x36,0x30,0x18,0x0C,0x3E,0x3E},//2
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},//黑屏
};
unsigned char ROW[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; //选通行
void delay(unsigned int time)
{
while(time>0)
time--;
}
main()
{
unsigned char x=0,speed,j,k,n=0;
speed=5;//修改这里可以改变移动速度;值越大越慢
while(1){
for(k=0;k<speed;k++){
for(j=0;j<8;j++){
P2=~((dis[n][j]>>x)|(dis[n+1][j]<<(8-x)));//实现移动主要是这句话
P0=ROW[j];
delay(300);
}
}
x++;
if(x==8){
x=0;
n++;
if(n>3)
n=0;
}
}
} |