上淘宝搜索 16X64LED点阵显示屏原理图+源代码
部分代码如下:
//*****************************************************************//
sbit R=P2^2; //定义数据输入端口P2^0
sbit CLK=P2^0; //时钟信号
sbit STB=P2^1; //595锁存信号
sbit key1=P1^0;
sbit key2=P1^1;
sbit key3=P1^2;
sbit key4=P1^3;
uchar k1_flag=0,k2_flag=0,k3_flag=0,n;
uchar yd,h; //m为移动计数器,h为行段计数器;
long zimo; //字模计数器
uchar BUFF[10]; //缓存;
float d=40;
void key(); //按键处理函数
void tiaozheng_data(void); //调整数据函数
void fasong_data(void); //发送数据函数
void saomiao(void); //行扫描函数
void writebyte(char dat); //595写一字节函数
void main()
{
uchar i; //d的大小决定移动速度
yd=0; //移动计数器,记录移动字节数
zimo=0; //字模计数器,记录字数
while(1)
{
while(yd<16)
{
for(i=0;i<d;i++)
{
key(); //按键扫描函数
saomiao(); //调用扫描函数
}
yd++; //移动一位
}
yd=0;
zimo=zimo+32; //向后移动一个字
if(k1_flag==0)
{
if(zimo>=32*65) //取决于字数 默认table1[]
zimo=0;
}
if(k1_flag==1) //取决于字数 table2[]
{
if(zimo>=32*24) //取决于字数
zimo=0;
}
if(k1_flag==2) //取决于字数 table3[]
{
if(zimo>=32*141) //取决于字数
zimo=0;
}
if(k1_flag==3) //取决于字数 table2[]
{
if(zimo>=32*24) //取决于字数
zimo=0;
}
if(k1_flag==4)
{
if(zimo>=32*141) //取决于字数 table3[]
zimo=0;
}
}
}