基于单片机的LED汉字显示屏设计与制作
扫描二维码
随时随地手机看文章
1引言
在大型商场、车站、码头、地铁站以及各类办事窗口等越来越多的场所需要用led点阵显示图形和汉字。led行业已成为一个快速发展的新兴产业,市场空间巨大,前景广阔。随着信息产业的高速发展,led显示作为信息传播的一种重要手段,已广泛应用于室内外需要进行服务内容和服务宗旨宣传的公众场所,例如户内外公共场所广告宣传、机场车站旅客引导信息、公交车辆报站系统、证券与银行信息显示、餐馆报价信息豆示、高速公路可变情报板、体育场馆比赛转播、楼宇灯饰、交通信号灯、景观照明等。显然,led显示已成为城市亮化、现代化和信息化社会的一个重要标志。
本文基于单片机(at89c51)讲述了16×16led汉字点阵显示的基本原理、硬件组成与设计、程序编译与下载等基本环节和相关技术。
2硬件电路组成及工作原理
本产品拟采用以at89c51单片机为核心芯片的电路来实现,主要由at89c51芯片、时钟电路、复位电路、列扫描驱动电路(74hc154)、16×16led点阵5部分组成,如图1所示。
其中,at89c51是一种带4kb闪烁可编程可擦除只读存储器(falshprogrammableanderasablereadonlymemory,fperom)的低电压、高性能cmos型8位微处理器,俗称单片机。该器件采用atmel高密度非易失存储器制造技术制造,与工业标准的mcs-51指令集和输出管脚相兼容。由于将多功能8位cpu和闪烁存储器组合在单个芯片中,能够进行1000次写/擦循环,数据保留时间为10年。他是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。因此,在智能化电子设计与制作过程中经常用到at89c51芯片。
时钟电路由at89c51的18,19脚的时钟端(xtall及xtal2)以及12mhz晶振x1、电容c2,c3组成,采用片内振荡方式。
复位电路采用简易的上电复位电路,主要由电阻r1,r2,电容c1,开关k1组成,分别接至at89c51的rst复位输入端。
led点阵显示屏采用16×16共256个象素的点阵,通过万用表检测发光二极管的方法测试判断出该点阵的引脚分布,如图2所示。
我们把行列总线接在单片机的io口,然后把上面分析到的扫描代码送人总线,就可以得到显示的汉字了。但是若将led点阵的行列端口全部直接接入89s51单片机,则需要使用32条io口,这样会造成io资源的耗尽,系统也再无扩充的余地。因此,我们在实际应用中只是将led点阵的16条行线直接接在p0口和p2口,至于列选扫描信号则是由4-16线译码器74hc154来选择控制,这样一来列选控制只使用了单片机的4个io口,节约了很多io资源,为单片机系统扩充使用功能提供了条件。考虑到p0口必需设置上拉电阻,我们采用4.7kω排电阻作为上拉电阻。
汉字扫描显示的基本过程是这样的:通电后由于电阻r1,电容c1的作用,使单片机的rst复位脚电平先高后低,从而达到复位;之后,在c2,c3,x1以及单片机内部时钟电路的作用下,单片机89c51按照设定的程序在p0和p2接口输出与内部汉字对应的代码电平送至led点阵的行选线(高电平驱动),同时在p1.1,p1.2,p1.3,p1.4接口输出列选扫描信号(低电平驱动),从而选中相应的象素lcd发光,并利用人眼的视觉暂留特性合成整个汉字的显示。
3汉字的点阵显示原理及字库代码获取方法
我们以ucdos中文宋体字库为例,每一个字由16行16列的点阵组成显示。即国标汉字库中的每一个字均由256点阵来表示。我们可以把每一个点理解为一个象素,而把每一个字的字形理解为一幅图像。事实上这个汉字屏不仅可以显示汉字,也可以显示在256象素范围内的任何图形。如查用8位的at89c51单片机控制,由于单片机的总线为8位,一个字需要拆分为2个部分,如图3所示。
为了弄清楚汉字的点阵组成规律,首先通过列扫描方法获取汉字的代码。汉字可拆分为上部和下部,上部由8×16点阵组成,下部也由8×16点阵组成。本例通过列扫描方法首先显示左上角的第一列的上半部分,即第0列的p00~p07口,方向为p00到p07,显示汉字“大”时,p05点亮,由上往下排列,为:p0.0灭,p0.1灭,p0.2灭p0.3灭,p0.4灭,p0.5亮,p0.6灭,p0.7灭。即二进制00000100,转换为十六进制为04h。上半部第一列完成后,继续扫描下半部的第一列,为了接线的方便,我们仍设计成由上往下扫描,即从p27向p20方向扫描,从图3可以看到,这一列全部为不亮,即为00000000,十六进制则为00h。依照这个方法转向第二列、第三列,…,直至第十六列的扫描,一共扫描32个8位,可以得出汉字“大”