第一次发贴 这是我用开发板参照视频写的一个8*8电子的流动显示程序
该点阵为8*8双色点阵
图片太大了 传不上来
点阵显示的是由下往上的方式显示 内容是
I love(一个心形的图案) u
以下是该程序代码
#include<reg51.h>
unsigned char code tab1[]={ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xFF,0x81,0xE7,0xE7,0xE7,0xE7,0x81,0xFF,//心
0xFF,0x99,0x00,0x00,0x81,0xC3,0xE7,0xFF,//I
0xFF,0x99,0x99,0x99,0x99,0x81,0xC3,0xFF,//u
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
};//要显示的内容
unsigned char code tab[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; 显示的行
sbit LE=P3^7;
void DIANZHEN(unsigned char i,unsigned char luse,unsigned char hongse)//双色点阵显示函数(1:公共端,2:绿色端,3:红色端)
{
P0=tab[i];
LE=1;
LE=0;
P0=0xff;
P2=luse;
P0=hongse;
}
void DELAYMS(unsigned int ms) //毫秒级延时(ms)
{
unsigned int i;
unsigned char j;
for(i=0;i<ms;i++)
for(j=110;j>0;j--);
}
void main()
{
unsigned char i,j;
unsigned int k;
while(1)
{
DIANZHEN(i,0xff,tab1[i+j]);
DELAYMS(5);
if(i<8)
i++;
else
i=0;
if(k<=100)
k++;
else
{
k=0;
j++;
if(j>32)j=0;
}
}
}