YL-236点阵汉字LED显示C语言

/
//
//   at89s52 LED点阵汉字显示
//   作者:倪建华 QQ:10772919
//   江苏省南通技师学院
//   2014.5.30
//
//
//
sfr P0=0x80;
sfr P2=0xa0;
sbit ROW0=P2^0;
sbit ROW1=P2^1;
sbit COL0=P2^2;
sbit COL1=P2^3;
sbit COL2=P2^4;
sbit COL3=P2^5;
//YL-236自带 zimo221软件,横向取模,字节倒序
unsigned char zm[]=
{
/*--  文字:  点  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x80,0x00,0x80,0x00,0x80,0x1F,0x80,0x00,0x80,0x08,0xF8,0x1F,0x08,0x08,0x08,0x08,
0x08,0x08,0xF8,0x0F,0x08,0x08,0x80,0x08,0x14,0x11,0x24,0x22,0x22,0x22,0x00,0x00,

/*--  文字:  阵  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x01,0x1F,0x01,0x11,0x01,0xE9,0x3F,0x85,0x00,0x89,0x02,0x51,0x02,0xF1,0x3F,
0x11,0x02,0x15,0x02,0xE9,0x7F,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,
};

ys(int ms)
{
 int k,d;
 for(k=0;k<ms;k++)for(d=0;d<123;d++);
}
main()
{
 unsigned char x,y,s,k;
 while(1)
 for(k=0;k<16;k++)//从上往下扫描16行
 {
  x=k/8;//k>>3,扫描上半个和下半个汉字
  y=k%8;//k&7;,从上往下扫描8行
  P0=0;//行消隐,很重要
  ROW1=1;ROW1=0;
  ROW0=1;ROW0=0;
  P0=1<<y;//行扫描
  ROW1=x;ROW1=0;
  ROW0=x+1;ROW0=0;
  s=x*16+y*2;//每行两个字节,(y<<1);半个汗字16个字节,x<<4;
  P0=zm[s+0];//左半个
  COL0=1;COL0=0;
  P0=zm[s+1];//右半个
  COL1=1;COL1=0;
  P0=zm[s+32+0];//左半个
  COL2=1;COL2=0;
  P0=zm[s+32+1];//右半个
  COL3=1;COL3=0;
  ys(1);//>1ms时明显闪烁
 }
}

 

下面是仿真原理图

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页