LED点阵汉字图形显示系统.docx

上传人:b****5 文档编号:7432611 上传时间:2023-01-23 格式:DOCX 页数:10 大小:325.63KB
下载 相关 举报
LED点阵汉字图形显示系统.docx_第1页
第1页 / 共10页
LED点阵汉字图形显示系统.docx_第2页
第2页 / 共10页
LED点阵汉字图形显示系统.docx_第3页
第3页 / 共10页
LED点阵汉字图形显示系统.docx_第4页
第4页 / 共10页
LED点阵汉字图形显示系统.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

LED点阵汉字图形显示系统.docx

《LED点阵汉字图形显示系统.docx》由会员分享,可在线阅读,更多相关《LED点阵汉字图形显示系统.docx(10页珍藏版)》请在冰豆网上搜索。

LED点阵汉字图形显示系统.docx

LED点阵汉字图形显示系统

LED点阵汉字图形显示系统

一、方案设计

由于我们已经有了单片机芯片89C51,所以我们打算在此基础上来完成我们这次的点阵实训。

方案一:

采用静态显示方式,将每一个LED发光管的一端接至单片机的一个I/O口,另一端通过电阻接电源。

这种方法可以直接驱动LED,原理简单,驱动能力强,LED的亮度也可以通过限流电阻调节,非常方便,但此种方法太浪费单片机的I/O口,只适合于较小的系统。

方案二:

采用动态扫描方式,通过三极管驱动并联在一起的LED发光管的一端(共阴或共阳),LED发光管的另一脚接通用I/O口,控制其亮灭。

该方法能驱动较多的LED,控制方式较灵活,而且节省单片机的I/O端口资源。

动态扫描的意思简单地说就是逐行轮流点亮,这样扫描驱动电路就可以实现多行(比如16行)的同名列共用一套列驱动器。

具体就16×16的点阵来说,我们把所有同一行的发光管的阳极连在一起,把所有同一列的发光管的阴极连在一起(共阳的接法),先送出对应第一行发光管亮灭的数据并锁存,然后选通第一行使其点亮一定的时间,然后熄灭;再送出第二行的数据并锁存,然后选通第二行使其点亮相同的时间,然后熄灭;……第十六行之后又重新点亮第一行,这样反复轮回。

当这样轮回的速度足够快(每秒24次以上),由于人眼的视觉暂留现象,我们就能看到显示屏上稳定的图形了。

与静态显示方式相比,当显示位数较多时,动态显示方式可节省I/O端口资源,硬件电路简单;但其显示的亮度低于静态显示方式,由于CPU要不断地依次进行扫描显示程序,将占CPU更多的时间。

若显示位数较少,则可采用静态显示方式。

由于本设计是要点亮4块8*8的点阵组合而成的显示屏,故显示位数较多,所以本设计选择的是方案二。

本设计是以AT89C51单片机为控制核心设计一个简单的LED点阵汉字图形显示系统,用单片机、点阵显示屏等设计一个16×16点阵LED汉字图形显示的设计。

系统可以分为电源模块、时钟电路、复位电路、驱动模块、单片机控制模块、显示模块等,其系统结构框图如下图所示。

 

二、硬件设计

本设计的系统电路总的可分为电源电路,单片机控制电路,驱动电路和显示电路。

1.电源电路

电源电路通过变压整流元件为单片机和其他电路提供稳定的+5V工作电压。

电路的供电为一片LM7805三端稳压器,耗电电流为100Ma左右。

以下为电源电路。

 

图1电源电路

2.单片机控制电路

1)AT89C51单片机

AT89C51单片机为40引脚双列直插芯片,有四个I/O口P0,P1,P2,P3,MCS-51单片机共有4个8位的I/O口(P0、P1、P2、P3),每一条I/O线都能独立地作输出或输入。

P0口:

P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

当P1口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

    P1口:

P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:

P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

这是由于内部上拉的缘故。

P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。

在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。

P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:

P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。

作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故[6]。

P3口也可作为AT89C51的一些特殊功能口,如下所示:

ØP3.0 RXD(串行输入口)

ØP3.1 TXD(串行输出口)

ØP3.2 /INT0(外部中断0)

ØP3.3 /INT1(外部中断1)

ØP3.4 T0(记时器0外部输入)

ØP3.5 T1(记时器1外部输入)

ØP3.6 /WR(外部数据存储器写选通)

ØP3.7 /RD(外部数据存储器读选通)

AT89C51振荡器特性为:

 XTAL1和XTAL2分别为反向放大器的输入和输出。

该反向放大器可以配置为片内振荡器。

石晶振荡和陶瓷振荡均可采用。

如采用外部时钟源驱动器件,XTAL2应不接。

有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度[7]。

此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。

在闲置模式下,CPU停止工作。

但RAM,定时器,计数器,串口和中断系统仍在工作。

在掉电模式下,保存RAM的内容并且冻结振荡器,停止芯片其它功能直至硬件复位,直到下一个硬件复位为止。

2)时钟电路

单片机的时钟电路采用内部振荡方式,即在引脚XTAL1和XTAL2外接晶体振荡器(或陶瓷谐振器)。

由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。

内部振荡方式的外部电路如右图所示。

电容器C2,C3起稳定振荡频率、快速起振的作用,晶振频率的典型值为12MHZ,相对于外部震荡方式,内部振荡方式所得的时钟情号比较稳定,所以学生采用内部振荡方式。

 

 

图2单片机时钟电路

3)复位电路

单片机的复位电路采用上电开关复位电路,如下图所示,当单片机的复位引脚RST(RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作。

如果RST持续为高电平,单片机就处于循环复位状态。

上电或开关复位要求电源接通后,单片机自动复位,并且在单片机运行期间,用开关操作也能使单片机复位。

当单片机已在运行当中时,按下复位键后松开,由于电容C1的充电,使RST持续一段时间的高电平。

从而实现上电或开关复位的操作。

 

图3单片机复位电路

3.驱动电路

1)行驱动电路

行驱动电路由集成电路74HC595构成,它具有一个8位串入并出的移位寄存器和一个8位输出锁存器的结构,而且移位寄存器和输出锁存器的控制是各自独立的,可以实现在显示本列各行数据的同时,传送下一列的行数据,达到重叠处理的目的。

74HC595的输入侧有8个串行移位寄存器,每个移位寄存器的输出都连接一个输出锁存器。

引脚SI是串行数据的输入端。

引脚SCK是移位寄存器的移位时钟脉冲,在其上升沿发生移位,并将SI的下一个数据打入最低位。

移位后的各位信号出现在各移位寄存器的输出端,也就是输出锁存器的输入端。

RCK是输出锁存器的打入信号,其上升沿将移位寄存器的输出打入到输出锁存器。

引脚G是输出三态门的开放信号,只有当其为低时锁存器的输出才开放,否则为高阻态。

SCLR信号是移位寄存器的清零输入端,当其为低时移位寄存器的输出全部为零。

由于SCK和RCK两个信号是互相独立的,所以能够做到输入串行移位与输出锁存互不干扰。

芯片的输出端为QA~QH,最高位QH可作为多片74HC595级联应用时,向上一级的级联输出。

但因QH受输出锁存器打入控制,所以还从输出锁存器前引出了QH,作为与移位寄存器完全同步的级联输出。

74HC595为驱动电路,与LED连接,提高了单片机端口带负载的能力,提高了输出的电流,而在点阵中每条列线上需串接一个100欧姆的限流电阻。

2)列驱动电路

列驱动电路主要是要实现译码功能,采用芯片74LS154。

译码器在单片机系统中一般起扩展的作用,当外设比较多,单片机的引脚不够用的时候,就可以有74LS154把4个单片机74LS154I/O口扩展为16个,增强了单片机控制外设的能力。

这种4线—16线译码器非常适合用于高性能存储器的译码器。

A、B、C、D为输入、Y0~Y15为输出。

当两个选通输入G1和G2为低时,它可将4个二进制编码的输入译成16个互相独立的输出之一。

实现解调功能的办法是:

用4个输入线写出输出线的地址,使得在一个选通输入为低时数据通过另一个选通输入。

当任何一个选通输入是高时,所有输出都为高。

为了提高驱动能力,在每列上接一个8550的三极管。

并在每列上接入一个220欧姆的上拉电阻,以起到限流作用。

4.点阵显示电路

图4为8*8点阵等效电路,只要其对应的X、Y轴顺向偏压,即可使LED发亮。

例如如果想使左上角LED点亮,则Y0=1,X0=0即可。

应用是限流电阻可以放在X轴和Y轴。

一般我们使用点阵显示汉字是用的16*16的点阵宋体字库,所谓16*16,是每一个汉字在纵、横各16点的区域内显示的。

也就是说得用四个8*8点阵组合成一个16*16的点阵。

图4点阵原理图

 

三、软件设计

由于我们前期焊接的过程较困难,导致我们在软件设计方面有很多的不足。

原本我们是要出滚动字幕的效果,但实际上我们的结果只能出一个静态的字,而无法有多字的变化,主要是我们软件设计上没有编写的很完整,所以以下是我们这次实训的主要重要的函数流程图。

 

主程序流程图

显示程序流程图

四.制作与调试

1)硬件的调试过程:

首先测量出点阵的内部连接的管脚是如何排列的,通过万用表和点阵小说明书可以判断内部管脚应该如何连接。

在焊接好硬件部分以后,再次查看原理图,看万能板上是否有漏接或错接的线,如果真的发现不了错误,则可借助万用表。

未接通电源前将万用表打到二极管那一档,根据原理图查看焊接硬件部分是否有漏焊、多焊或者错焊,这样可以防止万一电路接错,接通电源使芯片烧坏。

在确定焊接没有问题后,写一段简单的程序,看是否能让单片机烧尽编写的程序,如果不能,则要仔细检查一下,看是否是单片机最小系统有错误。

用万用表依次点亮点阵块得管脚上看是否会发亮,若能,则表示没问题。

还可把一根导线一端接显示屏第一行上,另一端接在低电平;另一根导线的一端接在高电平上,把另一端依次接在显示屏的列上,看显示屏上是否对应的行和列亮起来,如果是,表示硬件没有问题。

2)软件的调试过程:

在检查好硬件部分后没有问题的话,再用Keil软件将C语言程序写入单片机,通电,测试。

首先我们参考书本上类似的案例再稍加修改,使它能随便哪一行就能点亮。

虽然这个小程序能成功点亮,但是后期又查出了很大的问题。

在吴老师帮我们用软件程序来检测时,发现了我们点阵连线有一大部分出错了。

在改进之后,我们终于在陈老师对我们软件设计的补充及修改下成功了。

 

五、总结:

本次实训设计的是用16x16的点阵LED汉字图文的显示,能够在目测条件下LED显示屏上课显示较清晰的图形和文字,图形或文字显示有静止、移入移出等显示方式。

然而由于我们前期的焊接量太大,导致我们没有充足的时间来进行软件编程来实现这些移入移出等具有特技功能的显示。

这是我们在这次实训中最大的遗憾。

其实在这两周的实训中,我学到了很多的东西。

首先,虽然我们的这个课题所涉及到的元器件不是很多,但我们还是掌握了一些知识,例如:

74LS154和74HC595的一些主要功能和管脚连接,8*8点阵如何测试它的管脚和89C51单片机的EA脚要接高电平。

其次是对4块8*8点阵内部管脚连接的一个实际操作,怎么说好呢,这个工作量实在是太大了,而我们却不是一次就能成功的,我们原先在点阵块内部管脚连接上思考了很久,很问了老师,然而我们最后还是曲解了老师的意思,在经过多次焊接和调试中我们终于能成功了,虽然还是有缺陷的。

再者,是对单片机最小系统的加深了解,原先的我们知识能初步认识,现在我觉得可以说是能明白最小系统的重要性了。

我想,经过多次的反复测试与分析,可以使我们对电路的原理及功能更加熟悉,同时也提高了设计能力与及对电路的分析能力。

同时在软件的编程方面也认识到其巨大的作用,能显示不同字和效果,这些都是需要软件来完成的。

在这次实训中我也发现了自己的很多不足和锻炼了一些能力。

基础知识不牢固;焊接技术不扎实;分析错误的能力还不够。

这些都是导致我最后电路出现问题的主要原因,这次实训还锻炼了我查问题的能力,很大部分上这给了我们一个锻炼和学习的机会,以前都是有问题就找老师,现在我们可以先自己查找,实在不懂的找老师,这真的是锻炼了我们自己的能力,以前我们是什么都不懂,现在我们可以帮助同学解答一些疑问。

在耐心上,我也得到了很大的锻炼,在发现问题时,可以不再像以前一样那样浮躁了,并能有耐心的去解决。

 

附录

附录1:

16x16的点阵LED点阵汉字图形

 

附录2:

作品照片

 

 

附录3:

主函数及主要功能模块的源程序

#include"reg51.h"

sbitP1_0=P1^0;

sbitP1_1=P1^1;

sbitP1_2=P1^2;

sbitP1_3=P1^3;

sbitP3_2=P3^2;

codeunsignedchardot[]={

0x10,0x00,0x23,0x20,0xC9,0x5F,0x49,0x95,0x6F,0x15,0x59,0xF5,0x49,0x35,0x50,0x15,

0x23,0x35,0xC9,0x55,0x49,0x95,0x6F,0x15,0x59,0xDF,0x49,0x20,0x41,0x60,0x00,0x00,

/*"簪",0*//*(16X16,宋体)*/

};

voiddelay0_5ms()

{

unsignedchari;

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

{

TH1=0xfe;

TL1=0x0c;

TR1=1;

while(!

TF1);

TF1=0;

}

}

main()

{

unsignedchari,w;

while

(1)

{

P1=0xff;

SCON=0x00;

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

{

P3_2=0;//SBUF=~(i+1);

w=dot[2*i];

if(w&0x01)

{w=w>>1;w=w+128;}

elsew=w>>1;

SBUF=~w;

TI=0;

while(!

TI);//SBUF=~(i+1);

w=dot[2*i+1];

if(w&0x01)

{w=w>>1;w=w+128;}

elsew=w>>1;

SBUF=~w;

TI=0;

while(!

TI);

P3_2=1;

P1=P1&0xf0;

P1=P1+i;

delay0_5ms();

}

}

}

 

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 交通运输

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1