专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

小玩LED点阵之-翻页显示

作者:佚名   来源:本站原创   点击数:  更新时间:2012年02月17日   【字体:

    LED显示屏(点阵)可以显示变化的数字、文字、图形图像;不仅可以用于室内环境还可以用于室外环境,具有投影仪、电视墙、液晶显示屏无法比拟的优点。

  LED之所以受到广泛重视而得到迅速发展,是与它本身所具有的优点分不开的。这些优点概括起来是:亮度高、工作电压低、功耗小、小型化、寿命长、耐冲击和性能稳定。LED的发展前景极为广阔,目前正朝着更高亮度、更高耐气候性、更高的发光密度、更高的发光均匀性,可*性、全色化方向发展。

为什么要说小玩?因为这个只是一个点阵屏的基础8x8点阵,小得可怜,因此这样小的屏只能显示一些简单的图形和数字,如图

点阵的驱动程序也不是很复杂,但是有一道工序要有耐性。就是图形和数字的取摸。

后附上每秒变动一个数字的源程序,下载地址: http://www.51hei.com/f/88dzp1.rar 




#include<reg52.h>
#define uchar unsigned char

uchar code tab[11][8]={
{0x18,0x24,0x42,0x42,0x42,0x42,0x24,0x18},/*0*/  //共阴
{0x18,0x1C,0x18,0x18,0x18,0x18,0x18,0x3C},/*1*/
{0x3C,0x66,0x42,0x60,0x30,0x1C,0x86,0x7E},/*2*/
{0x3C,0x42,0x40,0x3C,0x40,0x40,0x42,0x3C},/*3*/
{0x30,0x38,0x2C,0x26,0x23,0xFF,0x20,0x20},/*4*/
{0x7E,0x02,0x3E,0x40,0x40,0x40,0x42,0x3C},/*5*/
{0x3C,0x42,0x02,0x3A,0x46,0x42,0x42,0x3C},/*6*/
{0x7C,0x42,0x40,0x20,0x10,0x08,0x08,0x08},/*7*/
{0x3C,0x42,0x42,0x3C,0x42,0x42,0x42,0x3C},/*8*/
{0x3C,0x42,0x42,0x42,0x7C,0x40,0x42,0x3C},/*9*/
{0x24,0x7E,0xFF,0xFF,0xFF,0x7E,0x3C,0x18},//心形
};

uchar count,time,h;
bit flag;

void delay (uchar t)
{
 uchar i=120;
 while(t--)
 while(i--); 
}

void init_T()   //中断和定时器初始化
{
 IE=0x82;  //打开总中断,定时器T1和T0中断
 TMOD=0x01;  //设定T1,T0位工作方式1
 TH0=0x3c;
 TL0=0xb0;  //T0装初值
 TR0=1;   //开始时钟开始工作
}
void main()
{
 
 uchar i;
 init_T();
 while(1)
 {
  for(i=0;i<8;i++)
  {      
   P1=(0x01<<i);
   if(!flag) P0=~tab[time%10][i];
//   else    P0=~tab[time/10][i];
   delay(1);
   P0=0xff;
  }
 }
}

void time_T0() interrupt 1    //定时器0,工作方式1,时钟中断
{
 TH0=0x3c;
 TL0=0xb0;       //T0装初值
 count++;
 if(count==20)
 {
  count=0;
  time++;
/*  h++; 
  if(h==10)
   {flag=~flag;      //时钟计算,每秒加1
   h=0;
  }
*/
  if(time==60)
  {
   time=0;
  }
 }
} 
关闭窗口

相关文章