51单片机的16X16LED点阵式汉字电子显示屏的设计.docx

上传人:b****6 文档编号:8602279 上传时间:2023-02-01 格式:DOCX 页数:40 大小:2.31MB
下载 相关 举报
51单片机的16X16LED点阵式汉字电子显示屏的设计.docx_第1页
第1页 / 共40页
51单片机的16X16LED点阵式汉字电子显示屏的设计.docx_第2页
第2页 / 共40页
51单片机的16X16LED点阵式汉字电子显示屏的设计.docx_第3页
第3页 / 共40页
51单片机的16X16LED点阵式汉字电子显示屏的设计.docx_第4页
第4页 / 共40页
51单片机的16X16LED点阵式汉字电子显示屏的设计.docx_第5页
第5页 / 共40页
点击查看更多>>
下载资源
资源描述

51单片机的16X16LED点阵式汉字电子显示屏的设计.docx

《51单片机的16X16LED点阵式汉字电子显示屏的设计.docx》由会员分享,可在线阅读,更多相关《51单片机的16X16LED点阵式汉字电子显示屏的设计.docx(40页珍藏版)》请在冰豆网上搜索。

51单片机的16X16LED点阵式汉字电子显示屏的设计.docx

51单片机的16X16LED点阵式汉字电子显示屏的设计

学号:

0121018700318

课程设计

 

题目

4个8x8点阵LED电子显示屏的设计

学院

物流学院

专业

物流工程

班级

物流ZY1001

姓名

宋金龙

指导教师

朱宏辉

 

2013

6

25

摘要

本设计是基于MCS-51的16x16点阵LED电子显示屏的设计,16x16的点阵共有256个发光二极管,我们采用动态扫描的显示方法,更节省锁存器也就节省了成本。

扫描驱动电路就可以实现多行(比如16行)的同名列共用一套驱动器。

具体就16x16的点阵来说,把所有同1行的发光管的阳极连在一起,把所有同1列的发光管的阴极连在一起(即我们采用共阳极的接法)。

采用扫描方式进行显示时,每一行和每一列都有一个行驱动器和列驱动器,各行的同名列和各列的同名行共用一个驱动器。

我们采用四个74LS273锁存器。

显示数据通常存储在单片机的存储器中,按8位一个字节的形式顺序排放。

编写点阵显示程序,利用proteus画出电路原理图并装入程序仿真调试,仿真成功后完成电路焊接并装入程序完成实物设计。

整个设计过程让我们学到许多实践知识!

LED显示屏作为一种新型的显示器件,是由多个发光二极管按矩阵形式排列封装而成,通常用来显示时间、图文等信息,由点阵LED组成的汉字显示屏在工工程所应用非常广泛。

LED显示屏显示画面色彩鲜艳,立体感强,静如油画,动如电影,广泛应用于车站、码头、机场、商场、医院、宾馆、银行、证券市场、建筑市场、拍卖行、工业企业管理和其它公共场所。

在实际应用中的显示屏由于成本和可靠性的因素常采用一种称为动态扫描的显示方法。

本文设计的是一个室内用16x16的点阵LED图文显示屏,图形或文字显示有静止、移入移出等显示方式。

本设计是基于MCS-51单片机的16x16显示屏,其中包含了硬件、软件、调试等方案的设计。

此外、该设计只需简单的级联就能实现显示屏的扩展,但级联时要注意不要超过驱动负载范围。

关键字:

LED,点阵式,显示屏,AT89C51

第一章:

绪论

1.1掌握单片机应用系统的一般过程和方法

综合运用单片机原理与接口技术课程和其它有关先修课程的理论及方法,分析和解决单片机应用系统的设计、分析和实验开发等相关问题,进一步巩固和加深对所学知识的理解。

通过课程设计实践,掌握单片机应用系统的一般过程和方法,培养分析和解决实际问题的能力。

培养设计的基本技能

通过课程设计,学会运用相关技术资料和电子技术常用设备和工具,掌握有关的设计流程、硬件及软件技术平台的基本操作使用方法,培养分析和设计的基本技能。

1.2:

设计要求

1、以MCS-51系列的单片机为核心器件,组成一个点阵式汉字显示屏。

2、显示屏由一块16x16LED点阵显示器组成,可以依次显示10个汉字。

3、通过编程能够随时对汉字进行修改、调整。

 

第二章:

硬件电路的设计

2.1设计思路

根据设计要求,初步确定设计方案如下:

1.选择4片74LS273作为16*16点阵LED显示器的数据锁存器;

2.1#、2#锁存器分别控制上八行和下八行,3#、4#锁存器分别控制左八列和右八列;

3.P0口作为I/O口,输出行数据和控制信号;

4.P2口作为I/O口,与“写”控制信号相配合,输出列控制信号;

5.通过编程依次显示汉字“欢迎光临武汉理工大学”等十个汉字。

 

2.2实验器材

AT89C51芯片,锁存器74LS273,4片8x8的LED显示器组合而成的16x16LED显示屏,电阻、电容、晶振片、电源、门电路等。

2.2.1锁存器74LS273介绍

74LS273是一种带清除功能的8D触发器,D0~D7为数据输入端,Q0~Q7为数据输出端,正脉冲触发,低电平清除,常用作8位地址锁存器。

引脚介绍:

1脚是复位CLR,低电平有效,当1脚是低电平时,输出脚2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)全部输出0,即全部复位;当1脚为高电平时,11脚CP(CLK)触发端,锁存控制端,并且是上升沿触发锁存,当11脚有一个上升沿,立即锁存输入脚3、4、7、8、13、14、17、18的电平状态,并且立即呈现在输出脚2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)上。

2.3硬件电路设计框图

根据设计要求与设计思路,硬件电路框图如图2.2.1所示。

硬件电路结构有六个部分组成:

时钟电路、复位电路、点阵显示器阳极驱动电路、阴极驱动电路和16*16点阵显示器电路。

图2.2.1

图2.2.2为各部分硬件电路的原理图

(a)振荡电路

(b)复位电路

2.416*16点阵LED显示器汉字显示的工作原理

我们以UCDOS中文宋体字库为例,每一个字由16行16列的点阵组成显示。

即国标汉字库中的每一个字均由256点阵来表示。

我们可以把每一个点理解为一个像素,而把每一个字的字形理解为一幅图像。

事实上这个汉字屏不仅可以显示汉字,也可以显示在256像素。

我们以显示汉字“大”为例,来说明其扫描原理:

在UCDOS中文宋体字库中,每一个字由16行16列的点阵组成显示。

如果用8位的AT89C51单片机控制,由于单片机的总线为8位,一个字需要拆分为2个部分。

一般我们把它拆分为上部和下部,上部由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,转换为16进制为04h。

依照这个方法,继续进行下面的扫描,一共扫描32个8位,即可以得出汉字“大”的扫描代码。

由这个原理可以看出,无论显示何种字体或图像,都可以用这个方法来分析出它的扫描代码从而显示在屏幕上。

16*16点阵LED显示器有两种接线形式,即共阴极接法和共阳极接法。

共阳极接法的原理图如图2.2.3(a)所示,途中只画出了4*4点阵的二极管。

每一行发光二极管的阳极接在一起,有一个引出端r,每一列发光二极管的阴极接在一起,有一个引出端c。

当给发光二极管阳极引出端r1高电平时,阴极引出端c1加低电平时,左上角的二极管点亮。

因此,对行和列的电平进行扫描控制时,可以实现显示不同汉字的目的。

图2.2.316*16点阵LED显示器原理图及引脚排列

(a)16*16点阵LED原理图

(b)4个8*8点阵LED引脚排列

2.5如何将4片8x8的LED拼接成一片16x16的LED显示屏(显示屏的扩展)

1、首先选定4片MATRIX-8X8RED(颜色自选)并将它们左转90度以实现对应的行线和列线连接;

2、将显示器分成上下两部分,左右两部分,将对应的行线和列线连接起来,如图;

3、拖动左右两边的显示器拼接在一起,然后拖动上下的显示器拼接在一起,结果如图;

4、对于4片8x8的显示屏也可以通过总线的方法连接;

 

2.6点阵LED显示器与单片机的接口

16*16点阵LED显示器引脚排列如图2.2.3(b)所示。

当采用单片机进行控制时,连接16*16点阵LED显示器需要接入四片74LS273锁存器,。

在编程控制时,将16*16点阵LED显示器分成上下两部分,上半部分8行16列和下半部分8行16列。

1#、2#锁存器分别控制上八行和下八行,3#、4#锁存器分别控制左八列和右八列。

每一列由两个字节组成,数据分成两次送入扫描一列,显示一个字需要扫描16次。

“欢迎光临”显示如图2.2.4,可以按照从左到右,先下后上的顺序以此写出“欢迎光临武汉理工大学”等字的编码。

“欢迎”显示字样

图2.2.4“光临”显示字样

图2.2.5整体电路图

第三章:

系统软件设计

“欢迎光临武汉理工大学”10个字的编码表如下:

TAB1:

DB00H,00H,10H,00H,34H,08H,44H,04H;“欢”字编码数据

DB04H,03H,7CH,04H,06H,28H,38H,10H

DB0FH,0CH,89H,03H,0F8H,03H,08H,0CH

DB28H,18H,1CH,30H,08H,20H,00H,00H

TAB2:

DB00H,00H,40H,10H,40H,30H,06EH,1FH;“迎”字编码数据

DB06CH,18H,00H,10H,00H,24H,0FEH,23H

DB02H,21H,82H,20H,0FFH,3FH,02H,21H

DB02H,23H,0FFH,21H,02H,20H,00H,00H

TAB3:

DB00H,00H,40H,00H,44H,20H,48H,20H;“光”字编码数据

DB50H,10H,0E0H,0FH,40H,00H,0FFH,1FH

DB60H,20H,50H,20H,48H,20H,46H,20H

DB60H,20H,40H,10H,00H,00H,00H,00H

TAB4:

DB0F0H,03H,00H,40H,00H,20H,0FFH,1FH;“临”字编码数据

DB00H,00H,00H,00H,40H,3FH,31H,21H

DB1FH,21H,14H,21H,24H,3FH,64H,21H

DB44H,21H,46H,21H,04H,3FH,00H,00H

TAB5:

DB10H,00H,10H,08H,10H,18H,90H,1FH;“武”字点阵数据

DB14H,08H,0F4H,07H,94H,04H,94H,04H

DB14H,04H,10H,00H,0FEH,00H,10H,03H

DB12H,0CH,14H,10H,10H,20H,00H,30H

TAB6:

DB00H,00H,00H,70H,22H,78H,44H,0C4H;“汉”字点阵数据

DB0CCH,06H,00H,40H,04H,20H,34H,10H

DB0C4H,08H,04H,05H,04H,02H,04H,05H

DB0C4H,08H,3EH,10H,04H,20H,00H,30H

TAB7:

DB08H,21H,08H,61H,0F8H,1FH,08H,09H;“理”字点阵数据

DB08H,05H,00H,00H,00H,80H,0FCH,0A1H

DB24H,0A1H,24H,0A1H,0FCH,0FFH,24H,0A1H

DB24H,0B1H,0FEH,0A1H,04H,80H,00H,80H

TAB8:

DB00H,00H,00H,10H,08H,10H,08H,10H;“工”字点阵数据

DB08H,10H,08H,10H,08H,10H,0F8H,1FH

DB08H,10H,08H,10H,08H,10H,08H,10H

DB08H,10H,00H,10H,00H,00H,00H,00H

TAB9:

DB00H,00H,40H,40H,40H,40H,40H,20H;“大”字点阵数据

DB40H,10H,40H,0CH,40H,03H,0FCH,00H

DB40H,03H,40H,0CH,40H,10H,40H,20H

DB40H,60H,40H,40H,40H,40H,00H,00H

TAB10:

DB00H,00H,40H,00H,30H,00H,14H,04H;“学”字点阵数据

DB18H,04H,50H,04H,50H,24H,54H,44H

DB58H,3FH,50H,05H,0D4H,04H,16H,04H

DB10H,04H,50H,04H,30H,00H,00H,00H

 

第四章:

系统程序设计

一.主程序

ORG0000H

MAIN:

MOVR6,#10H;设置“欢”字显示的延时时间常数

HUANZ:

LCALLHSUB;调“欢”字的子程序

DJNZR6,HUANZ;判断显示延时时间到否

MOVR7,#10H;设置“迎”字显示的延时时间常数

YINGZ:

LCALLYSUB;调“迎”字的子程序

DJNZR7,YINGZ;判断显示延时时间到否

MOVR6,#10H;设置“光”字显示的延时时间常数

GUANG:

LCALLGSUB;调“光”字的子程序

DJNZR6,GUANG;判断显示延时时间到否

MOVR7,#10H;设置“临”字显示的延时时间常数

LIN:

LCALLLSUB;调“临”字的子程序

DJNZR7,LIN;判断显示延时时间到否

MOVR6,#10H;设置“武”字显示的延时时间常数

WU:

LCALLWSUB;调“武”字的子程序

DJNZR6,WU;判断显示延时时间到否

MOVR7,#10H;设置“汉”字显示的延时时间常数

HAN:

LCALLASUB;调“汉”字的子程序

DJNZR7,HAN;判断显示延时时间到否

MOVR6,#10H;设置“理”字显示的延时时间常数

LI:

LCALLLLSUB;调“理”字的子程序

DJNZR6,LI;判断显示延时时间到否

MOVR7,#10H;设置“工”字显示的延时时间常数

GONG:

LCALLGGSUB;调“工”字的子程序

DJNZR7,GONG;判断显示延时时间到否

MOVR6,#10H;设置“大”字显示的延时时间常数

DAZ:

LCALLDSUB;调“大”字的子程序

DJNZR6,DAZ;判断显示延时时间到否

MOVR7,#10H;设置“学”字显示的延时时间常数

XUE:

LCALLXSUB;调“学”字的子程序

DJNZR7,XUE;判断显示延时时间到否

AJMPMAIN;程序循环执行

二.“欢”字显示子程序

HSUB:

MOVR5,#00H;“欢”字显示子程序开始,显示数据计数器置初值

MOVR1,#0FEH;前八列数据显示,选中第一列

HSUB0:

MOVDPTR,#0DFFFH;DFFFH为3#锁存器的地址

MOVA,R1

MOVX@DPTR,A

MOVDPTR,#0EFFFH;EFFFH为4#锁存器的地址

MOVA,#0FFH

MOVX@DPTR,A;将第一列的点阵数据的上半部分送入LED

MOVDPTR,#TAB1

MOVA,R5

MOVCA,@A+DPTR

MOVDPTR,#7FFFH;7FFFH为1#锁存器的地址

MOVX@DPTR,A

INCR5

MOVA,R5

MOVDPTR,#TAB1;将第一列的点阵数据的下半部分送入LED

MOVCA,@A+DPTR

MOVDPTR,#0BFFFH;BFFFH为2#锁存器的地址

MOVX@DPTR,A

LCALLDY1MS;调延时一秒子程序

MOVA,R1;准备选中下一列

RLA

MOVR1,A

INCR5

CJNER5,#10H,HSUB0;判断前8列显示完否,如果没有完继续显示

MOVR1,#0FEH;后八列数据显示

HSUB1:

MOVDPTR,#0EFFFH

MOVA,R1

MOVX@DPTR,A

MOVDPTR,#0DFFFH

MOVA,#0FFH

MOVX@DPTR,A

MOVDPTR,#TAB1

MOVA,R5

MOVCA,@A+DPTR

MOVDPTR,#7FFFH

MOVX@DPTR,A

INCR5

MOVA,R5

MOVDPTR,#TAB1

MOVCA,@A+DPTR

MOVDPTR,#0BFFFH

MOVX@DPTR,A

LCALLDY1MS

MOVA,R1

RLA

MOVR1,A

INCR5

CJNER5,#20H,HSUB1

RET

三.“迎”字显示子程序

YSUB:

MOVR5,#00H;“迎”字显示子程序

MOVR1,#0FEH

YSUB0:

MOVDPTR,#0DFFFH

MOVA,R1

MOVX@DPTR,A

MOVDPTR,#0EFFFH

MOVA,#0FFH

MOVX@DPTR,A

MOVDPTR,#TAB2

MOVA,R5

MOVCA,@A+DPTR

MOVDPTR,#7FFFH

MOVX@DPTR,A

INCR5

MOVA,R5

MOVDPTR,#TAB2

MOVCA,@A+DPTR

MOVDPTR,#0BFFFH

MOVX@DPTR,A

LCALLDY1MS

MOVA,R1

RLA

MOVR1,A

INCR5

CJNER5,#10H,YSUB0

MOVR1,#0FEH

YSUB1:

MOVDPTR,#0EFFFH

MOVA,R1

MOVX@DPTR,A

MOVDPTR,#0DFFFH

MOVA,#0FFH

MOVX@DPTR,A

MOVDPTR,#TAB2

MOVA,R5

MOVCA,@A+DPTR

MOVDPTR,#7FFFH

MOVX@DPTR,A

INCR5

MOVA,R5

MOVDPTR,#TAB2

MOVCA,@A+DPTR

MOVDPTR,#0BFFFH

MOVX@DPTR,A

LCALLDY1MS

MOVA,R1

RLA

MOVR1,A

INCR5

CJNER5,#20H,YSUB1

RET

四.“光”字显示子程序

GSUB:

MOVR5,#00H;“光”字显示子程序开始,显示数据计数器置初值

MOVR1,#0FEH;前八列数据显示,选中第一列

GSUB0:

MOVDPTR,#0DFFFH;DFFFH为3#锁存器的地址

MOVA,R1

MOVX@DPTR,A;EFFFH为4#锁存器的地址

MOVDPTR,#0EFFFH

MOVA,#0FFH

MOVX@DPTR,A;将第一列的点阵数据的上半部分送入LED

MOVDPTR,#TAB3

MOVA,R5

MOVCA,@A+DPTR

MOVDPTR,#7FFFH;7FFFH为1#锁存器的地址

MOVX@DPTR,A

INCR5

MOVA,R5

MOVDPTR,#TAB3;将第一列的点阵数据的下半部分送入LED

MOVCA,@A+DPTR;BFFFH为2#锁存器的地址

MOVDPTR,#0BFFFH

MOVX@DPTR,A

LCALLDY1MS;调延时1ms子程序

MOVA,R1;准备选中下一列

RLA

MOVR1,A

INCR5

CJNER5,#10H,GSUB0;判断前八列显示完否,如果没完继续显示

MOVR1,#0FEH;后八列数据显示

GSUB1:

MOVDPTR,#0EFFFH

MOVA,R1

MOVX@DPTR,A

MOVDPTR,#0DFFFH

MOVA,#0FFH

MOVX@DPTR,A

MOVDPTR,#TAB3

MOVA,R5

MOVCA,@A+DPTR

MOVDPTR,#7FFFH

MOVX@DPTR,A

INCR5

MOVA,R5

MOVDPTR,#TAB3

MOVCA,@A+DPTR

MOVDPTR,#0BFFFH

MOVX@DPTR,A

LCALLDY1MS

MOVA,R1

RLA

MOVR1,A

INCR5

CJNER5,#20H,GSUB1

RET

五.“临”字显示子程序

LSUB:

MOVR5,#00H

MOVR1,#0FEH

LSUB0:

MOVDPTR,#0DFFFH

MOVA,R1

MOVX@DPTR,A

MOVDPTR,#0EFFFH

MOVA,#0FFH

MOVX@DPTR,A

MOVDPTR,#TAB4

MOVA,R5

MOVCA,@A+DPTR

MOVDPTR,#7FFFH

MOVX@DPTR,A

INCR5

MOVA,R5

MOVDPTR,#TAB4

MOVCA,@A+DPTR

MOVDPTR,#0BFFFH

MOVX@DPTR,A

LCALLDY1MS

MOVA,R1

RLA

MOVR1,A

INCR5

CJNER5,#10H,LSUB0

MOVR1,#0FEH

LSUB1:

MOVDPTR,#0EFFFH

MOVA,R1

MOVX@DPTR,A

MOVDPTR,#0DFFFH

MOVA,#0FFH

MOVX@DPTR,A

MOVDPTR,#TAB4

MOVA,R5

MOVCA,@A+DPTR

MOVDPTR,#7FFFH

MOVX@DPTR,A

INCR5

MOVA,R5

MOVDPTR,#TAB4

MOVCA,@A+DPTR

MOVDPTR,#0BFFFH

MOVX@DPTR,A

LCALLDY1MS

MOVA,R1

RLA

MOVR1,A

INCR5

CJNER5,#20H,LSUB1

RET

六、“武”字显示子程序

WSUB:

MOVR5,#00H;“武”字显示子程序

MOVR1,#0FEH

WSUB0:

MOVDPTR,#0DFFFH

MOVA,R1

MOVX@DPTR,A

MOVDPTR,#0EFFFH

MOVA,#0FFH

MOVX@DPTR,A

MOVDPTR,#TAB5

MOVA,R5

MOVCA,@A+DPTR

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

当前位置:首页 > 高等教育 > 理学

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

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