模范电梯升降显示单片机实现.pptxVIP

  • 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)

1亿VIP精品文档

相关文档