百度空间 | 百度首页 
 
查看文章
 
如何在LED旋转屏上滚动显示汉字
2007-06-08 00:56

            在我的旋转LED时钟中从新编写了一个滚动显示汉字的演示程序,因学51编程的时间不久,而且又是一时兴起所编,程序也许有不尽合理的地方。            

C51源程序:
#include <reg51.h>
sbit gate11=P3^0;
sbit gate12=P3^1;
#define unit unsigned int
#define uchar unsigned char
uchar code GB_16[] =        
{
                 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,             //" "
                 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,             //" "
                 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,             //" "
                 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,             //" "
                 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,             //" "
                 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,             //" "
                 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  
                 0x00,0x00,0x34,0x40,0xC4,0x38,0x04,0x0F,             //"欢"
                 0xC4,0x07,0xFC,0x3C,0x3E,0x98,0x24,0x60,
                 0x18,0x30,0x0E,0x1C,0xEF,0x0F,0xCA,0x07,
                 0x48,0x1C,0x38,0x70,0x1C,0xE0,0x08,0x40,
  
                 0x00,0x00,0x40,0x40,0x46,0xE0,0xDC,0x3F,            //"迎"
                 0xE8,0x1F,0x40,0x32,0xFE,0x67,0xFC,0xC3,
                 0x06,0xC2,0x03,0xC1,0xFD,0xFF,0xFC,0xDF,
                 0x04,0xC2,0xFC,0xC7,0xFE,0xC3,0x04,0x40,
  
                 0x00,0x00,0x00,0x80,0x80,0x80,0x82,0x40,             //"光"
                 0xBC,0x60,0x98,0x38,0x80,0x1F,0xFF,0x07,
                 0xFE,0x00,0x80,0x7F,0xE0,0xFF,0xB8,0xC0,
                 0x9E,0xC0,0xC4,0xC0,0x80,0xF0,0x00,0x40,
  
                 0x00,0x00,0xF8,0x0F,0xF0,0x07,0x00,0x00,             //"临"
                 0xFF,0xFF,0xFE,0x7F,0x80,0x00,0x60,0xFF,
                 0x38,0x7E,0x1E,0x42,0x3F,0x7E,0x6A,0x7E,
                 0x68,0x42,0xC8,0xFE,0x4C,0x7F,0x08,0x02,
  
                 0x00,0x00,0x04,0x00,0x04,0x00,0x44,0x70,             //"艺"
                 0x44,0xF8,0x5F,0xCC,0x5F,0xC6,0x44,0xC2,
                 0x44,0xC1,0xC4,0xC1,0xFF,0xC0,0x5F,0xC0,
                 0x04,0xC0,0x04,0xC0,0x06,0xF8,0x04,0x60,
  
                 0x00,0x00,0x44,0x22,0x4C,0x1A,0x7C,0x4E,             //"新"
                 0xD7,0xFF,0xE6,0x7F,0x7C,0x0E,0x5C,0x9A,
                 0x44,0x60,0xFE,0x3F,0xFC,0x1F,0x46,0x00,
                 0xC2,0xFF,0xC3,0xFF,0x62,0x00,0x40,0x00,
  
                 0x00,0x00,0x00,0x40,0x04,0x40,0x04,0x40,             //"工"
                 0x04,0x40,0x04,0x40,0x04,0x40,0xFC,0x7F,
                 0xFC,0x7F,0x04,0x40,0x04,0x40,0x04,0x40,
                 0x06,0x40,0x04,0x60,0x00,0x40,0x00,0x00,
  
                 0x00,0x00,0x80,0x00,0x60,0x00,0xF8,0xFF,             //"作"
                 0xEF,0x7F,0x06,0x00,0x40,0x00,0x30,0x00,
                 0x1C,0x00,0xFF,0xFF,0xFA,0xFF,0x48,0x04,
                 0x48,0x04,0x68,0x04,0x4C,0x06,0x08,0x04,
  
                 0x00,0x00,0x08,0x00,0x1C,0x80,0x0E,0x81,             //"室"
                 0x94,0x8B,0xD4,0x89,0x75,0x89,0x37,0xFF,
                 0x16,0xFF,0x34,0x89,0xD4,0x89,0x94,0x8B,
                 0x1C,0x81,0x0E,0xC0,0x04,0x80,0x00,0x00,

                 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,             //" "
                 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,             //" "
                 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,             //" "
                 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,             //" "
                 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,             //" "
                 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,             //" "
                 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

};
unit disp1,disp2,key1,key2;
unit a,w,ii,jj,kk;
void Delay(unit ms)
{
              while(--ms);
}

void display_HZ(void)
{
             gate11=key1;gate12=key2;
             for(ii=0;ii<5;ii++){
                 for(jj=0;jj<16;jj++){
                   P2=~GB_16[jj*2+ii*32+kk*2];P1=~GB_16[1+jj*2+ii*32+kk*2];
                   Delay(120);
                   P1=0xff;P2=0xff;
                   }
               P1=0xff;P2=0xff;
             }
}

void intersvr0(void)             interrupt 0
{
key1=!key1;
key2=!key2;
w=1;
if(kk<240) kk++; else kk=0;
}

void main(void)
{
             EA=1;IT0=1;EX0=1;
              key1=0;key2=1;
              for(;;){
               w=0;
               Delay(40);
               if(w==1) display_HZ();
              }
}

类别:51单片机 | 添加到搜藏 | 浏览() | 评论 (22)
 
最近读者:
 
网友评论:
1
2007-09-30 12:43 | 回复
不用遥控可以吗?
 
2
2007-09-30 15:41 | 回复
不用遥控.
 
3
2008-01-31 21:18 | 回复
大哥请教一下:uchar code GB_16[] 的数据编码是按什么编的呢?
 
4
2008-02-01 00:48 | 回复
回复LI_G_Y0530网友:用的是取模软件,可在http://www.xiao-qi.com/上免费下载.
 
5
2008-03-09 16:22 | 回复
高人你这个是怎么做的?可以把详细资料发到我邮箱吗?非常感谢!
 
6
2008-03-09 20:41 | 回复
回复yanjiashu网友: 硬件制作请看我的
 
7
2008-03-18 18:46 | 回复
求助:如何设计一个LED图文电子显示球 设计内容:在直流电机旋转臂上安装一列LED发光二极管,用51单片机按一定的规律驱动LED发光,旋转臂旋转时利用人眼的视觉暂留特性显示出文字或图象 具体工作:设计旋转臂位置检测电路,检测旋转臂的位置,为驱动LED发光提供位置依据;解决旋转臂上电路供电问题;设计方便实用的显示内容选择控制;设计方便实用的显示内容更换接口及接口程序 我的邮箱是yanjiashu_2004@126.com;谢谢!
 
8
2008-03-18 19:56 | 回复
回复WXX网友: 专门给你搞一个设计有点不可能哈.
 
9
2008-03-18 21:01 | 回复
呵呵,不要专门给我搞一个,只是希望能提供些设计的方案、方法。关键是怎么做成个球形出来,还有就是怎么设计旋转臂位置检测电路,检测旋转臂的位置,为驱动LED发光提供位置依据
 
10
2008-03-18 22:02 | 回复
在google上用搜索"POV"会有许多这方面的资料,另外,国内也有成熟的产品, 这里也有这方面的资料: http://www.cdle.net/bbs/dispbbs.asp?boardID=2&ID=16552&page=2
 
11
2008-04-27 22:16 | 回复
你好,本人毕设正在做旋转显视屏,遇到一些问题,譬如单片机板子上如何供电?还有好多问题,你能把msn给我吗?
 
12
2008-04-28 11:29 | 回复
这里给你提供了好几种供电方法. http://group.ednchina.com/625/list.aspx 有什么问题, 也可以在这个小组里提出, 让大家一起帮你解决.
 
13
2008-04-30 08:10 | 回复
看了你的博客,相当佩服你哈!所以就冒昧的请你帮我提供点资料:我的毕业设计是"基于51单片机红外遥控设计".接受遥控器发来的信号并在LED上显示出来,能显示0--9. 谢谢
 
14
2008-04-30 08:14 | 回复
我的邮箱是 277177505@163.com
 
15
2008-04-30 09:56 | 回复
回复fujw1985朋友: 我的空间里有的红外线程序介绍的, 你如用LED显示至少要3位才够.
 
16
2009-04-27 19:10 | 回复
大师,能麻烦您把电路图发给我吗?多谢了!littledeerxiaolu@yahoo.com.cn
 
17
2009-06-03 17:27 | 回复
大师 你好 我仿制了一个你的旋转LED 但现在出来的字 上下跳 不总是在上半周或者下半周?这是什么原因啊
 
18
2009-06-03 19:12 | 回复
回复匿名网友:你用的是两个光传感的档板吗?
 
19
2009-06-05 11:20 | 回复
老师,您好,您做的这个汉子显示,会产生外圈比里圈大的效果,即汉子头大脚小。怎样才能排除这种情况?期待您的答复。
 
20
2009-06-05 14:03 | 回复
回复226503:改变运转方式,成柱面显示状。
 
21
2009-06-07 12:40 | 回复
我用的是霍尔,但两侧能检测到信号。我用的是直流电机产生“上下跳 不总是在上半周或者下半周”是不是和转速有关啊(注:速度已经和软驱的速度差不多)
 
22
2009-06-08 11:42 | 回复
老师   你好 我仿制了一个你的旋转LED 但现在出来的字 上下跳 不总是在上半周或者下半周?这是什么原因?我用的是霍尔,两侧能检测到信号。还有我用的是直流电机产生“上下跳 不总是在上半周或者下半周”是不是和转速有关啊(注:速度已经和软驱的速度差不多) 我的空间里有照片  
 
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请点击后输入四位验证码,字母不区分大小写
      

     

©2009 Baidu