- 2
- 0
- 约1.5千字
- 约 13页
- 2019-09-26 发布于山西
- 举报
8×8LED点阵屏仿电梯数字滚动显示;? 8X8 点阵LED工作原理说明;从图中可以看出,8X8点阵共需要64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置1电平,某一行置0电平,则相应的二极管就亮;因此要实现一根柱形的亮 ,若对应的一列为一根竖柱,或者对应的一行为一根横柱,因此实现柱的亮的方法如下所述:
一根竖柱:对应的列置1,而行则采用扫描的方法来实现。
一根横柱:对应的行置0,而列则采用扫描的方法来实现。
;如下图所示,假设显示数字“0”;;8×8LED点阵屏仿电梯数字滚动显示;原理图;部分程序
数字0-5的显示:
char code Table[]=
{0x00,0x3c,0x66,0x42,0x42,0x66,0x3c,0x00, “0”
0x00,0x08,0x38,0x08,0x08,0x08,0x3e,0x00, “1”
0x00,0x3c,0x42,0x04,0x08,0x32,0x7e,0x00, “2”
0x00,0x3c,0x42,0x1c,0x02,0x42,0x3c,0x00 , “3”
0x00,0x0c,0x14,0x24,0x44,0x3e,0x0c,0x00, “4”
0x00,0x7e,0x40,0x7c,0x02,0x42,0x3c,0x00}; “5”}
int r=0, a=0,current_level=1,dest_level=1,x=0;;中断程序:
void led_disp() interrupt 1
{ int i;
if(P1!=0xffcurrent_level==dest_level)
{ if(P1==0xfe) dest_level=5;
if(P1==0xfd) dest_level=4;
if(P1==0xfb) dest_level=3;
if(P1==0xF7) dest_level=2;
if(P1==0Xef) dest_level=1;
}; TH0=(65536-4000)/256;
TL0=(65536-4000)%256; “4ms”
P3=_crol_(P3,1); “列码”
i=current_level*8+r+a;
P0=~Table[i]; “行码”;“电梯升”:
if(current_leveldest_level)
{ if(++r==8)
{ r=0;
if(++x==4)“指刷新x次后变数”
{x=0;
if(++a==8)
{ a=0;
current_level++;
}
}
}
} ;“电梯降”:
else if(current_leveldest_level)
{ if(++r==8)
{ r=0;
if(++x==4)
{x=0;
if(--a==-8)
{a=0;
current_level--;
}
}
}
}
else{ if(++r==8) r=0;} }“楼层不变,保持稳定刷新”;谢谢!
原创力文档

文档评论(0)