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

单片机驱动16*16点阵LED汉字显示c51程序

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

//=========================================
//******* 单片机驱动16*16点阵LED汉字显示c51程序  *******
//******* 作者:http://www.51hei.com  *******
//=========================================
//晶振12MHz
//P1.0~P1.3接74154行扫描
//P3.0、P3.1接74164串转并
#include < reg51.h>
#define uchar unsigned char
#define uint unsigned int

uchar int_t;
uchar i;
uchar j;
uchar count=2; //2个字
uint k=0;

void t0_int() interrupt 1
{
 TL0=0x18;
 TH0=0x1C;
 int_t++;
 if(int_t==2) //移动速度2ms
 {
  int_t=0;
  k=k+2;
  if(k==count*32)
  k=0;
 }
}

void delay(uint dt)//2字节
{
 uchar bt;//1字节
 for (;dt;dt--)
 {
  for (bt=0;bt<255;bt++);
 }
}

void serial_send(uchar dat)
{
 SCON=0x00;
 SBUF=~dat;
 while(1){ if(TI) {TI=0;break;} }
}

unsigned char code hzdot[64] = {
/*测   CB2E2 */
0x40,0x02,0x27,0xC2,0x24,0x42,0x84,0x52,0x45,0x52,0x55,0x52,0x15,0x52,0x25,0x52,
0x25,0x52,0x25,0x52,0xC5,0x52,0x41,0x02,0x42,0x82,0x42,0x42,0x44,0x4A,0x48,0x04,

/*试   CCAD4 */
0x00,0x20,0x40,0x28,0x20,0x24,0x30,0x24,0x27,0xFE,0x00,0x20,0xE0,0x20,0x27,0xE0,
0x21,0x20,0x21,0x10,0x21,0x10,0x21,0x0A,0x29,0xCA,0x36,0x06,0x20,0x02,0x00,0x00

};

void display()
{
 j=k;
 for(i=0;i<16;i++)
 {
  P1=i;
  serial_send(hzdot[j]);
  j++;
  serial_send(hzdot[j]);
  j++;
  if(j==count*32)
  j=0;
  delay(1);
 }
}

void main()
{
 SCON=0x00;
 TMOD=0x01;
 IE|=0x82;
 TL0=0x18;
 TH0=0x1C;
 delay(100);
 TR0=1; //启动T0定时器
 for(;;)
 display();
}

 

关闭窗口