历史上的今天
返回首页

历史上的今天

今天是:2025年04月07日(星期一)

正在发生

2020年04月07日 | 51单片机 16X16点阵循环滚动显示汉字

2020-04-07 来源:eefocus

一、效果展示

二、所用材料

1.16X16点阵

Proteus并不提供16X16的点阵,只能我们自己通过4个8X8的组装为16X16的点阵。

由此可知8*8变成16*16


列需要这样连接:

行需要这样连接:

再把四个放在一起即可:

2.74hc595

详细介绍见我上一篇文章


https://blog.csdn.net/qq_41639829/article/details/82151706


这里需要用到级联,也不算太难,就相当于原来是输入8个数,这需要输入16个,然后再输出,前八个输入的就被自动挤到级联的下一个595中了!


3.stc89c52


三、原理

1.静态显示

同8位的静态显示一样,只不过是从8个变成16个而已。


详见上一篇文章。


https://mp.csdn.net/postedit/82222753


2.动态显示

同8位的动态显示一样,只不过是从8个变成16个而已。


详见上一篇文章。


https://mp.csdn.net/postedit/82222753


四、proteus接线方式

五、代码展示

#include

#include

 

/*  数据端接口定义 */

sbit  LSH = P2^0;     //列数时钟

sbit  LDS = P2^1;     //输入

sbit  LST = P2^2;     //列寄存器

 

sbit  HSH = P2^3;     //行数时钟

sbit  HDS = P2^4;     //输入

sbit  HST = P2^5;     //行寄存器时钟

 

unsigned int sel[17]={0x7fff,0xbfff,0xdfff,0xefff,0xf7ff,0xfbff,0xfdff,0xfeff,

0xff7f,0xffbf,0xffdf,0xffef,0xfff7,0xfffb,0xfffd,0xfffe,

                    0xffff,

};

 

char code hanzi[170] =

{

0x01,0x00,0x01,0x00,0x01,0x00,0x3F,0xF8,0x21,0x08,0x21,0x08,0x21,0x08,0x3F,0xF8,

0x21,0x08,0x21,0x08,0x21,0x08,0x3F,0xF8,0x21,0x0A,0x01,0x02,0x01,0x02,0x00,0xFE,//电

0x00,0x00,

0x00,0x00,0x7F,0xF8,0x00,0x10,0x00,0x20,0x00,0x40,0x01,0x80,0x01,0x00,0xFF,0xFE,

0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x05,0x00,0x02,0x00,//子

0x00,0x00,

0x01,0x00,0x01,0x00,0x7F,0xFC,0x01,0x00,0x1F,0xF0,0x00,0x00,0x7F,0xFE,0x40,0x02,

0x9F,0xF4,0x00,0x00,0x1F,0xF0,0x10,0x10,0x1F,0xF0,0x08,0x20,0x04,0x40,0xFF,0xFE,//壹

0x00,0x00,

0x20,0x80,0x10,0x80,0x00,0x9C,0x47,0xE0,0x20,0x80,0x08,0x84,0x10,0x84,0x60,0x7C,

0x21,0x00,0x01,0x00,0xFF,0xFE,0x05,0x40,0x09,0x20,0x31,0x18,0xC1,0x06,0x01,0x00,//柒

0x00,0x00,

0x01,0x00,0x00,0x80,0x3F,0xFE,0x20,0x80,0x2F,0xF8,0x20,0x88,0x3F,0xFE,0x20,0x88,

0x2F,0xF8,0x28,0x80,0x24,0xC4,0x22,0xA8,0x44,0x90,0x48,0x88,0x92,0x86,0x01,0x00,//康

0x00,0x00,

};

 

 

 

void send_data_H(unsigned int dat);  /*  发送行数据端数据函数  */

void send_data_L(unsigned int dat);  /*  发送列选通端数据函数  */

void display(int a);                 //每一次显示什么东西

void delay(unsigned int m);

 

 

void main()

{

  unsigned int j=0,num;

while(1)

{

num=6;

while(num--)

{

display(j);

  delay(10);

  }

j=j+2;

//if(j>150)

//j=0;

}

}

  //unsigned int a,b;

//a=sel[i]%256;//后八位

  //b=sel[i]/256;//前八位

    //send_data_H(b);

void send_data_L(unsigned int dat)

{

    unsigned char i;

    

    for(i=0;i<8;i++)

    {

        LSH = 0;

        LDS = dat&0x80;       //temp<<=1;

        dat = dat<<1;               //ds = CY;

        LSH = 1;

    }

LST = 0;

    _nop_();

    _nop_();

    LST = 1;

}

 

void send_data_H(unsigned int dat)

{

    int i; 

    for(i=0;i<16;i++)

    {

  

        HSH = 0;

        HDS = dat&0x8000;

        dat =dat<<1;

        HSH = 1;

    }

HST = 0;

    _nop_();

    HST = 1;

}

void delay(unsigned int m)

{

    unsigned char i;

    for(;m>0;m--)

    {

        for(i=0;i<124;i++)

{}

    }

}

 

void display( int a)

{

    unsigned char i;

  unsigned int x;

    for(i=0;i<16;i++)

    {

        send_data_H(sel[i]);

  x=a+2*i;//展示第几个字符

  if(a+2*i>168)

x=(a+2*i)%170;

  send_data_L(hanzi[x]);

  send_data_L(hanzi[x+1]);

  delay(1);   

    }

}

推荐阅读

史海拾趣

Adaptive Interconnect Electronics, Inc. [AIE]公司的发展小趣事

为了适应全球电子市场的快速发展,AIE公司积极实施全球化战略。公司在多个国家和地区设立了分支机构或办事处,以便更好地服务当地客户。同时,AIE还积极参加国际电子展会和论坛,与全球各地的合作伙伴和客户建立了广泛的联系。这些举措不仅拓展了AIE的市场份额,也提升了公司的国际影响力。

Blaze Display Technology Co Ltd公司的发展小趣事

随着公司规模的不断扩大和市场份额的逐步提升,Blaze公司开始注重品牌建设和形象提升。通过加大广告宣传力度、提升客户服务质量、参与社会公益活动等方式,公司成功塑造了专业、可靠、创新的品牌形象。同时,公司还获得了多项行业荣誉和认证,进一步提升了品牌知名度和美誉度。

Eastman Kodak Company公司的发展小趣事

经过破产保护和重组的洗礼后,伊士曼柯达公司更加注重创新和可持续发展。公司加强了与新兴科技公司的合作,积极探索新的业务模式和市场机会。同时,柯达还致力于研发更加环保、高效的影像产品和技术,以满足客户对高品质影像的需求。未来,伊士曼柯达公司将继续秉承创新、品质、服务的理念,不断推动影像行业的发展和进步。

淩志比高公司的发展小趣事

随着市场的不断变化和客户需求的日益多样化,淩志比高公司意识到技术创新的重要性。公司投入大量研发资源,不断推陈出新,成功研发出一系列具有竞争力的新产品。这些产品的推出不仅提升了公司的市场份额,也进一步巩固了公司在电子行业中的地位。

ARRA Inc公司的发展小趣事

为了进一步提升公司的知名度和影响力,淩志比高开始注重品牌建设和市场推广。公司积极参与行业展会、举办产品发布会等活动,与客户和合作伙伴建立了紧密的联系。同时,淩志比高还通过广告宣传、社交媒体营销等方式,提升了品牌知名度和美誉度。

Aavid Niagra公司的发展小趣事

Aavid Niagra公司在成立之初,面临着资金短缺、市场竞争激烈以及技术壁垒等多重挑战。然而,创始人凭借对电子散热技术的深刻理解和前瞻性的市场洞察,成功研发出了一款高效能的散热解决方案,赢得了行业内的初步认可。通过与几家大型电子设备制造商的合作,公司逐渐在市场上站稳脚跟,为后续的发展奠定了坚实基础。

问答坊 | AI 解惑

转贴:阿南的ARM入门调试笔记

阿南的ARM入门调试笔记。一篇非常详细的入门教程 [ 本帖最后由 disheng 于 2009-7-20 14:28 编辑 ]…

查看全部问答>

跟我一起制作1632点阵屏

16*32点阵屏幕由512个LED组成,在实际制作过程中我们可以采用8*8的点阵模块。 下面开始做1632点阵屏幕硬件设计。 所先设计行扫描电路: 16*32点阵屏幕总共有16行,其扫描电路一般采用74HC154或者74HC138来进行4-16扩展,这样可以占用较少的单片 ...…

查看全部问答>

镜头大小与监控距离、角度关系图

作者十年安防监控经验的结晶啊。大家支持下…

查看全部问答>

用LM3S8962做的产品即将进入制板阶段

感谢组织的支持!成果将不断的向组织汇报中。 感觉LM3S8962 的价格还是很高,能否便宜些,决定我们使用的关键问题!…

查看全部问答>

医疗仪器仪表图像信号采集与处理系统

1、应用背景    随着科学技术的发展,各种医疗设备相继问世并得到广泛应用。应用中的很多医疗仪器都综合了传感器、自动控制、计算机软件和硬件等高科技技术。市场上的医疗仪器仪表的控制系统多数采用单片机实现,普遍存在操作繁琐、无图 ...…

查看全部问答>

阿牛哥系列故事夸父追日不是梦( 歪评太阳能篇)

六七月份,太阳能产业新闻特别多,有日本太阳能飞船遨游太空,也有瑞士太阳能飞机实现夜航。阿牛哥看看太阳能应用,以前最多的是太阳能灶,太阳能热水器和太阳能计算器,现在是太阳能发电。关键是要稳定,还有并网发电价格机制。阿牛哥读读古书, ...…

查看全部问答>

地震了患难见真情,我校都捐款了,钱财身外之物。

一直关注各界捐款的情况,像网易,一般会捐,对这种会捐款的公司比较有好感。请问有没有搞嵌入式的公司捐款。最好在北京,天津。明年我一定争取机会到这种公司面试。…

查看全部问答>

PDA上能否跑自己写的程序

假如我有一台带有串口的PDA,它的操作系统是windows ce。请问我能否在PC上编写wince应用程序,然后将该应用程序copy到PDA上去运行?我想利用PDA的串口进行收发消息,在PDA的屏幕上显示。…

查看全部问答>

WINCE下自带的数据库,创建数据库函数问题

请问在使用WINCE下自带的数据库编程的时候,在使用CeCreateDatabaseEx函数的时候,这个函数的两个参数是如何定义的? 我是这样写的 CEDBASEINFO ceDbInfo;                         ...…

查看全部问答>

有关checksum的问题,不知道原因,还烦请高手指点一下,多谢了.

小弟不才,学习checksum算法的时候,对如下数据始终无法校验成功,麻烦各位大哥帮忙指点下。 对两段报文,用相同的机制,一个校验成功,一个失败,但这个两个包都是对的,我不知道原因,麻烦哥指点一下。多谢了。 static u8 packet1[] = { & ...…

查看全部问答>