单片机LED汉字点阵显示的设计详解

最新更新时间:2013-07-07来源: 中国LED网关键字:单片机  LED汉字  点阵显示 手机看文章 扫描二维码
随时随地手机看文章

LED显示屏是利用发光二极管点阵模块或像素单元组成的平面式显示屏幕。它具有发光率高、使用寿命长、组态灵活、色彩丰富以及对室内外环境适应能力强等优点。并广泛的用于公交汽车、商店、体育场馆、车站、学校、银行、高速公路等公共场所的信息发布和广告宣传。LED显示屏发展较快,本文讲述了基于AT89C51单片机16×16LED汉字点阵滚动显示的基本原理、硬件组成与设计、程序编写与调试、Proteus软件仿真等基本环节和相关技术。

1 硬件电路组成及工作原理

本产品采用以AT89C51单片机为核心芯片的电路来实现,主要由AT89C51芯片、时钟电路、复位电路、列扫描驱动电路(74HCl54)、16×16LED点阵5部分组成,如图1所示。其中,AT89C51是一种带4kB闪烁可编程可擦除只读存储器(Falsh Programmable and Erasable Read OnlyMemory,FPEROM)的低电压、高性能CMOS型8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,工业标准的MCS一5l指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,能够进行1 000次写/擦循环,数据保留时间为10年。他是一种高效微控制器,为很多嵌人式控制系统提供了一种灵活性高且价廉的方案。因此,在智能化电子设计与制作过程中经常用到AT89C51芯片。时钟电路由AT89C5l的18,19脚的时钟端(XTAI l及XTAL2)以及12 MHz晶振X、电容C2、C3组成,采用片内振荡方式。复位电路采用简易的上电复位电路,主要由电阻R,R2,电容C,开关K组成,分别接至AT89C51的RST复位输入端。LED点阵显示屏采用16×16共256个象素的点阵,可通过万用表检测发光二极管的方法测试判断出该点阵的引脚分布。

我们把行列总线接在单片机的I/0口,然后把上面分析到的扫描代码送入总线,就可以得到显示的汉字了。但是若将LED点阵的行列端口全部直接接入89S5 1单片机,则需要使用32条I/0口,这样会造成I/0口资源的耗尽,系统也再无扩充的余地。因此,我们在实际应用中只是将LED点阵的16条行线直接接在P0口和P2口,至于列选扫描信号则是由4—16线译码器74HCl54来选择控制,这样一来列选控制只使用了单片机的4个I/O口,节约了很多I/O口资源,为单片机系统扩充使用功能提供了条件。考虑到P0口必需设置上拉电阻,我们采用4.7 kΩ排电阻作为上拉电阻。汉字扫描显示的基本过程是这样的:通电后由于电阻R,电容c1的作用,使单片机的RST复位脚电平先高后低,从而达到复位;之后,在C、C3、X以及单片机内部时钟电路的作用下,单片机89C51按照设定的程序在P0和P2接口输出与内部汉字对应的代码电平送至LED点阵的行选线(高电平驱动),同时在P1.1,P1.2,P1.3,P1.4接口输出列选扫描信号(低电平驱动),从而选中相应的象素LED发光,并利用人眼的视觉暂留特性合成整个汉字的显示。再改变取表地址实现汉字的滚动显示。

2 汉字的点阵显示原理及字库代码获取方法

我们以UCDOS中文宋体字库为例,每一个字由16行16列的点阵组成显示。即国标汉字库中的每一个字均由256点阵来表示。我们可以把每一个点理解为一个象素,而把每一个字的字形理解为一幅图像。事实上这个汉字屏不仅可以显示汉字,也可以显示在256象素范围内的任何图形。如查用8位的AT89C51单片机控制,由于单片机的总线由8位,一个字需要拆分为2个部分,如图2所示

 

为了弄清楚汉字的点阵组成规律,首先通过列扫描方法获取汉字的代码。汉字可拆分为上部和下部,上部由8×16点阵组成,下部也由8×16点阵组成。本例通过列扫描方法首先显示左上角的第一列的上半部分,即第0列的P00~P07口,方向为P00到P07,显示汉字“我”时,为全灭,第一列的下半部分也为全灭。第二列的上半部分P06、点亮,由上往下排列,为:PO.0灭,PO.1灭,P0.2灭PO.3灭,PO.4灭,P0.5灭,P0.6亮,P0.7灭。即二进制00000010,转换为十六进制为02h。上半部第二列完成后,继续扫描下半部的第二列,为了接线的方便,我们仍设计成由上往下扫描,即从P27向P20方向扫描,从图3可以看到,这一列P23亮,即为00001000,十六进制则为08h。依照这个方法转向第三列、第四列,……,直至第十六列的扫描,一共扫描32个8位,可以得出汉字“我”的扫描代码为:

00H,02H,08H,06H,28H,02H,24H,22H

0FCH,3FH,24H,2 1H,20H,10H,3CH,08H

0E2H,07H,20H,0AH,0E4H,11H,0A8H,20H

20H,30H,00H,00H,00H,00H,00H,00H

由这个原理可以看出,无论显示何种字体或图像,都可以用这个方法来分析出他的扫描代码从而显示在屏幕上。上述方法虽然能够让我们弄清楚汉字点阵代码的获取过程,但是依靠人工方法获取汉字代码是一件非常繁琐的事情。为此,我们经常采用字库软件查找字符代码,软件打开后输入汉字,点“检取”,十六进制数据的汉字代码即可自动生成,把我们所需要的竖排数据复制到程序中即可,如图3所示。

 

可见,汉字点阵显示一般有点扫描、行扫描和列扫描3种。为了符合视觉暂留要求,点扫描方法的扫描频率必须大于16×64—1 024 Hz,周期小于1 ms即可。行扫描和列扫描方法的扫描频率必须大于16×8一128 Hz,周期小于7.8 ms即可,但是一次驱动一列或一行(8颗LED)时需外加驱动电路提高电流,否则LED亮度会不足。

3 在Keil环境中程序设计与调试

软件程序主要由开始、初始化、主程序、字库组成。其中主程序的流程图如图4所示。下面的程序能够用来实现滚动显示“我爱你一一祖国”。汉字的显示。程序清单如下:

 

 

在keil软件中完成程序编写、调试和编译之后,生成能让单片机运行的Hex文件,如图5所示。

 

4 元器件选择

本设计所需元器件如表1所示。

 

5 运用Proteus软件仿真LED汉字显示屏

Proteus与其它单片机仿真软件不同的是,它不仅能仿真单片机外围电路或没有单片机参与的其它电路的工作情况,也能仿真单片机CPU的工作情况。因此在仿真和程序调试时,是从工程的角度直接看程序运行和电路工作的过程和结果。从某种意义上讲Proteus仿真,基本接近与工程应用。本次基于AT89C51单片机16×16LED汉字滚动显示屏的设计已运用Proteus软件仿真实现,如图6所示。

 

虽然本设计只使用了一块16×16LED点阵,电路简单,但是已经包涵了LED汉字滚动显示屏的电路基本原理、基本程序和Proteus软件仿真,只要扩展单片机的10接口,并增加一些LED点阵和相关芯片,就能设计出更大面积、更多花样的LED显示屏。因此本文对同类设计具有一定的理论和实践参考价值。

关键字:单片机  LED汉字  点阵显示 编辑:探路者 引用地址:单片机LED汉字点阵显示的设计详解

上一篇:基于TLC5947的旋转LED屏显示控制器设计
下一篇:如何解决LED显示屏技术中的“三高一低”

推荐阅读最新更新时间:2023-10-17 15:47

基于51单片机实现温度传感器和按键调节时钟
这个暑假做了基于51单片机实现12864实现DHT11温湿度传感器和DS1302实现闹钟和温湿度显示在同一个界面上,可以通过四个独立按键控制时钟的暂停,时分秒年月日位置的切换,可以实现时钟的加法,减法,里面还有许多的小BUG,很是难以调整,有兴趣可以看一下如何进行代码的优化,总而言之,基本的功能是可以实现的了,由于我那单片机多个矩阵按键损坏,导致矩阵按键的位置有所不同,大家注意一下就好了。 不知道这么附录代码,你们下载看一下就好了 //提前透露出一些小BUG,有的受K3按键按下去,但是中断并没有开启,时钟也没有暂停, 原因不知出现在哪里,总之你们有兴趣随便看一下就行了,写的是烂了点,望大佬指点以下 单片机源程序如下: #in
[单片机]
基于51<font color='red'>单片机</font>实现温度传感器和按键调节时钟
检测环境光及控制照明的微控制器实例介绍
   以前的一个设计实例(参考文献1)采用一只LED作为换能器,以测量环境光强度并提供照明。本设计实例的原理与之相同,但只有一只LED、二只电阻器、一只IC和一只0.1mF的旁路电容器。该电路用于提供环境光的反馈时,它无需更多元件。虽然图1中的电路只需要少量元件,但它仍有相当好的灵活性,因为微处理器软件控制着LED的亮度,以及它与环境光强之间的关系。对于夜间光照应用,一个模式是可在环境光线减弱时点亮LED。反之,对于便携设备LCD背光的节电调整应用,第二种模式是会在环境光强度增加时点亮LED。   表1是本设计实例的样本代码,它可以下载,在两种模式下均能为LED的亮度提供64级PWM(脉冲宽度调制)强度控制。在使用时,微处
[单片机]
检测环境光及控制照明的<font color='red'>微控制器</font>实例介绍
串行通信的基础知识
  1.串行通信和并行通信   计算机与外界的信息交换称为通信。基本的通信方法有并行通信和串行通信两种。一组信息的各位数据被逐位顺序传送的通信方式称为串行通信。串行通信可通过串行接口来实现。串行通信速度慢,但传输线少,适宜长距离通信。   一组信息(通常是字节)的各位数据被同时传送的通信方法称为并行通信。并行通信依靠并行I/O接口实现。并行通信速度快,但传输线根数多,只适用于近距离(相距数公尺)的通信。   2.信息传送方向   根据信息的传送方向,串行通信可以进一步分为单工、半双工和全双工3种。信息只能单方向传送称为单工;信息能双向传送,但不能同时双向传送称为半双工;能够同时双向传送则称为全双工。 MCS-5l
[单片机]
单片机在晶闸管触发电路中的应用
0 前 言      在电力拖动系统、电炉控制系统中现已大量采用可控硅(晶闸管)元件作为可调电源向电动机或电炉供电,这种由晶闸管组成的控制系统,主要是利用改变可控硅的控制角θ来调节供电电压。在常规控制中,主要是用电子控制装置对可控硅实现触发,这种方法由于受到电子元器件的限制,其分辨率不高,有时还会出现误触发。本文介绍一种由8031单片机组成的触发控制系统,可实现高分辨率的数字触发。 1 硬件组成及原理      系统硬件组成如,只须在8031最小系统上加一块16位的定时/计数器8253和晶振电路,另加一块带一个14位定时/计数器的可编程RAM/IO扩展器8155,即可组成单片机的系统线路。 1.1 θ角定时      
[单片机]
单片机有中断机制的理由
1、当你子程序在运行时,还想定时,你如何做? 2、当你子程序在运行时,突然停电,需要程序尽快的保存一些数据,不怎么做? 3、当你子程序在运行时,串口数据突然到达,你怎么做? ... ... 有很多时候,单片机在执行正常任务时,需要处理突发事件,这时就需要中断机制。 中断中的程序本身就是一般的 子程序 ,当发生中断后,单片机会自动跳到中断中去执行中断程序,完毕后会自动返回到原来程序处。 也可以理解为:在程序开始时先想到整个系统要有多少个间谍份子,他们分别监视什么东西。一旦他们监察的目标出现,就优先被他们转到相应的子程序去工作了。
[单片机]
AVR单片机-- I/O口的使用
简介:本文章主要通过程序控制实现按键控制LED 灯的亮灭,按一下亮,再按一下灭,如此循环往复,并学习AVR 单片机的I/O口如何配置为输入和输出。 //文件名:delay_rest.c //文件描述:实现按键控制LED 灯的亮灭,按一下亮,再按一 //下灭,如此循环往复。 //实验目的:学习AVR 单片机的I/O口如何配置为输入和输出 //当前版本号:V1.0 //--------------------------------------------------------------------- //----------------------------start------------------
[单片机]
Atmel推出面向汽车的Cortex-M7 MCU
Atmel面向汽车、物联网和工业市场推出最高性能的ARM Cortex-M7系列MCU,具备优越的内存架构和连接能力 拓展了Atmel | SMART MCU产品系列,超越行业最高性能的ARM Cortex -M处理器系列MCU,CoreMark评分高达1500分 具备性能卓越的连接能力和独特内存架构,针对实时决定性代码执行和低延迟外设数据访问实现了优化 业内首款符合汽车使用要求的Cortex-M7系列MCU,为实现汽车联网和音频应用程序提供了以太网AVB和媒体LB外设功能 全球微控制器(MCU)和触控解决方案领域的领导者Atmel 公司(NASDAQ:ATM
[汽车电子]
STM32单片机智能温控风扇设计简介
一、功能简介 本项目使用Proteus8仿真STM32单片机控制器,使用LCD1602液晶、按键、蜂鸣器、L298N电机驱动模块、直流电机、DS18B20温度传感器等。 系统功能: 系统运行后,LCD1602显示传感器检测的温度值;默认以自动模式运行,若按下K4键切换为手动模式,此时可以通过K1和K2控制风扇加减速,风扇档位共5档(0-5)。当再次按下K4键切换为自动模式;自动模式下,实时检测温度值,当温度高于上限且在2C范围内,以3档运行。当温度高于上限且在4C范围内,以4档运行。当温度高于上限且在6C范围内,以5挡运行。当温度高于上限且超过6C范围,以5档运行且蜂鸣器报警。若温度在上下限范围内,风扇以2档运行。若
[单片机]
STM32<font color='red'>单片机</font>智能温控风扇设计简介
小广播
最新电源管理文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved