简单8X8LED点阵显示驱动电路

出处:xwj时间:2011-09-03

  验任务
  在8x8 LED(LED(Light-Emitting-Diode中文意思为发光二极管)是一种能够将电能转化为可见光的半导体,它改变了白炽灯钨丝发光与节能灯三基色粉发光的原理,而采用电场发光。据分析,LED的特点非常明显,寿命长、光效高、无辐射与低功耗。LED的光谱几乎全部集中于可见光频段,其发光效率可超过150lm/W(2010年)。将LED与普通白炽灯、螺旋节能灯及T5三基色荧光灯进行对比,结果显示:普通白炽灯的光效为12lm/W,寿命小于2000小时,螺旋节能灯的光效为60lm/W,寿命小于8000小时,T5荧光灯则为96lm/W,寿命大约为10000小时,而直径为5毫米的白光LED光效可以超过150lm/W,寿命可大于100000小时。有人还预测,未来的LED寿命上限将无穷大。)点阵上显示柱形,让其先从左到右平滑移动三次,其次从右到左平滑移动三次,再次从上到下平滑移动三次,从下到上平滑移动三次,如此循环下去。
  2. 电路原理图

简单8X8LED点阵显示驱动电路

图4.24.1

  3. 硬件电路连线
  (1)。 把“单片机系统”区域中的p1端口用8芯排芯连接到“点阵模块”区域中的“dr1-dr8”端口上;
  (2)。 把“单片机系统”区域中的p3端口用8芯排芯连接到“点阵模块”区域中的“dc1-dc8”端口上;
  4. 程序设计内容
  (1)。 8x8 点阵led工作原理说明
  8x8点阵led结构如下图所示

简单8X8LED点阵显示驱动电路2

图4.24.2

  从图4.24.2中可以看出,8x8点阵共需要64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置1电平,某一行置0电平,则相应的二极管就亮;因此要实现一根柱形的亮法,如图49所示,对应的一列为一根竖柱,或者对应的一行为一根横柱,因此实现柱的亮的方法如下所述:
  一根竖柱:对应的列置1,而行则采用扫描的方法来实现。
  一根横柱:对应的行置0,而列则采用扫描的方法来实现。
  5.汇编源程序
  org 00h
  start: nop
  mov r3,#3
  lop2: mov r4,#8
  mov r2,#0
  lop1: mov p1,#0ffh
  mov dptr,#taba
  mov a,r2
  movc a,@a+dptr
  mov p3,a
  inc r2
  lcall delay
  djnz r4,lop1
  djnz r3,lop2
  mov r3,#3
  lop4: mov r4,#8
  mov r2,#7
  lop3: mov p1,#0ffh
  mov dptr,#taba
  mov a,r2
  movc a,@a+dptr
  mov p3,a
  dec r2
  lcall delay
  djnz r4,lop3
  djnz r3,lop4
  mov r3,#3
  lop6: mov r4,#8
  mov r2,#0
  lop5: mov p3,#00h
  mov dptr,#tabb
  mov a,r2
  movc a,@a+dptr
  mov p1,a
  inc r2
  lcall delay
  djnz r4,lop5
  djnz r3,lop6
  mov r3,#3
  lop8: mov r4,#8
  mov r2,#7
  lop7: mov p3,#00h
  mov dptr,#tabb
  mov a,r2
  movc a,@a+dptr
  mov p1,a
  dec r2
  lcall delay
  djnz r4,lop7
  djnz r3,lop8
  ljmp start
  delay: mov r5,#10
  d2: mov r6,#20
  d1: mov r7,#248
  djnz r7,$
  djnz r6,d1
  djnz r5,d2
  ret
  taba: db 0feh,0fdh,0fbh,0f7h,0efh,0dfh,0bfh,07fh
  tabb: db 01h,02h,04h,08h,10h,20h,40h,80h
  end
  6. c语言源程序
  #include <at89x52.h>
  unsigned char code taba[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
  unsigned char code tabb[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
  void delay(void)
  {
  unsigned char i,j;
  for(i=10;i>0;i--)
  for(j=248;j>0;j--);
  }
  void delay1(void)
  {
  unsigned char i,j,k;
  for(k=10;k>0;k--)
  for(i=20;i>0;i--)
  for(j=248;j>0;j--);
  }
  void main(void)
  {
  unsigned char i,j;
  while(1)
  {
  for(j=0;j<3;j++)  //from left to right 3 time
  {
  for(i=0;i<8;i++)
  {
  p3=taba[i];
  p1=0xff;
  delay1();
  }
  }
  for(j=0;j<3;j++)  //from right to left 3 time
  {
  for(i=0;i<8;i++)
  {
  p3=taba[7-i];
  p1=0xff;
  delay1();
  }
  }
  for(j=0;j<3;j++)  //from top to bottom 3 time
  {
  for(i=0;i<8;i++)
  {
  p3=0x00;
  p1=tabb[7-i];
  delay1();
  }
  }
  for(j=0;j<3;j++)  //from bottom to top 3 time
  {
  for(i=0;i<8;i++)
  {
  p3=0x00;
  p1=tabb[i];
  delay1();
  }
  }
  }
    }



  
上一篇:PWM直流电机调速双闭环控制系统的设计
下一篇:电脑主板6OXT(1.0)电路图[_]27

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关电路图