课程设计.docx

上传人:b****8 文档编号:10796430 上传时间:2023-02-23 格式:DOCX 页数:23 大小:190.56KB
下载 相关 举报
课程设计.docx_第1页
第1页 / 共23页
课程设计.docx_第2页
第2页 / 共23页
课程设计.docx_第3页
第3页 / 共23页
课程设计.docx_第4页
第4页 / 共23页
课程设计.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

课程设计.docx

《课程设计.docx》由会员分享,可在线阅读,更多相关《课程设计.docx(23页珍藏版)》请在冰豆网上搜索。

课程设计.docx

课程设计

摘要

本次课设是基于51单片机的5*7的LED字幕显示的控制。

阐释了51单片机是结构功能和5*7LED点阵的原理。

要实现LED点阵屏显示字幕就得考虑如何进行行列信号控制及信号传输中的驱动问题进行了研究;定时中断的几种方法里合理的选用定时器。

绘制原理图并给出了通过软件控制点阵屏显示的几种方式,如静态显示,动态显示,对其软件的算法给出了具体分析。

基于各种算法我们就可以灵活的运用软件实现各种显示,并将其用于商业用途。

关键字:

LED显示屏;单片机;中断

 

目录

摘要I

前言1

1概述2

1.1设计任务2

1.2LED显示屏的介绍2

1.3点阵屏的内部结构及扫描原理3

2软件介绍4

2.1Proteus介绍5

2.2keIL介绍5

3系统硬件设计6

3.1AT89C51单片机介绍7

3.1.1单片机的组成7

3.1.2时钟脉冲电路9

3.1.3复位电路10

3.2原理图10

4软件设计12

4.1程序设计分析12

4.2程序流程图12

4.3软件编程12

5仿真结果17

结论18

参考文献19

 

前言

随着社会文化的不断发展,人们的消费标准不断提高,户外灯箱广告更是扮演着越来越重要的宣传角色,不论是汽车站,火车站,股票交易市场,还是学校都离不开它,然而传统的霓虹灯广告牌不论是在显示效果、耗电量还是可修改性上都无法满足当前社会的需求,传统的霓虹灯广告亟待改进。

由于单片机技术的不断发展和高亮度LED发光管的出现使得大屏幕高亮度LED电子广告屏成为可能,与传统的霓虹灯广告在显示效果以及可修改性上都有着无法比拟的优势,而且单片机的日益平民化以及LED技术的不断创新,使得高亮度高清晰的LED点阵广告牌与传统霓虹灯广告牌的成本日益接近。

另外,SMT技术的飞速发展,开关电源的大规模使用,使其无论在体积上还是在可靠性上都比传统的霓虹灯广告有明显的改进,为其在特殊领域的应用奠定了基础。

这种新兴的大屏幕显示技术成为众人目光的焦点。

与传统的显示设备相比,首先,LED显示屏色彩丰富,3基色的发光管可以显示全彩色,显示方式变化多样(文字、图形、动画、视频、电视画面等),是集光电子技术、微电子技术、计算机技术、信息处理技术于一体的高技术产品,可用来显示文字、计算机屏幕同步的图形。

其次,LED显示屏的像素采用LED发光二极管,将多个发光二极管以序列的形式构成LED显示阵列,这种显示屏具有耗电低、成本低、亮度和清晰度高、寿命长等优点,而且LED显示屏其受空间限制较小,并可以根据用户要求设计屏的大小,具有全彩色效果,视角大,是信息传播设施划时代的产品。

再次,LED显示屏应用广泛,金融证券、银行利率、商业广告、文化娱乐等方面,显示效果清晰稳定,越来越多的地方开始使用LED电子显示屏,有巨大的社会效益和经济效益。

它以其超大画面、超宽视觉、灵活多变的显示方式等独居一格的优势,成为目前国际上使用广泛的显示系统。

 

1概述

1.1设计任务

本设计主要任务是设计一个实用的5*7LED点阵屏的图文显示,要求在目测条件下LED显示屏各点亮度均匀、充足,可显示图形和文字,显示图形或文字稳定、清晰无串扰。

图形或文字显示有静止和移入移出等显示方式。

本文还重点介绍了单片机对LED点阵屏的控制电路,驱动电路的设计方法,并根据LED点阵屏的硬件特点,对其软件实现的算法给出了具体的分析。

从而实现了显示的字体能够进行向左移动。

1.2LED显示屏的介绍

LED显示屏分为数码显示屏、图文显示屏和视频显示屏,均由LED矩阵块组成。

LED数码显示屏的显示器件为7段码数码管,适于制作时钟屏、利率屏等,显示数字的电子显示屏。

图文显示屏可与计算机同步显示汉字、英文文本和图形;视频显示屏采用微型计算机进行控制,图文、图像并茂,以实时、同步、清晰的信息传播方式播放各种信息,还可显示二维、三维动画、录像、电视、VCD节目以及现场实况。

LED显示屏显示画面色彩鲜艳,立体感强,静如油画,动如电影,广泛应用于金融、税务、工商、邮电、体育、广告、厂矿企业、交通运输、教育系统、车站、码头、机场、商场、医院、宾馆、银行、证券市场、建筑市场、拍卖行、工业企业管理和其它公共场所。

LED显示屏的分类:

1、按颜色基色可以分为

单基色显示屏:

单一颜色(红色或绿色)。

双基色显示屏:

红和绿双基色,256级灰度、可以显示65536种颜色。

全彩色显示屏:

红、绿、蓝三基色,256级灰度的全彩色显示屏可以显示一千六百多万种色。

2、按显示器件分类

LED数码显示屏:

显示器件为7段码数码管,适于制作时钟屏、利率屏等,显示数字的电子显示屏。

LED点阵图文显示屏:

显示器件是由许多均匀排列的发光二极管组成的点阵显示模块,适于播放文字、图像信息。

LED视频显示屏:

显示器件是由许多发光二极管组成,可以显示视频、动画等各种视频文件。

3、按使用场合分类

室内显示屏:

发光点较小,一般Φ3mm--Φ8mm,显示面积一般几至十几平方米。

室外显示屏:

面积一般几十平方米至几百平方米,亮度高,可在阳光下工作,具有防风、防雨、防水功能。

1.3点阵屏的内部结构及扫描原理

LED点阵屏的内部结构可以分为共阴型和共阳型两种类型,本系统设计采用的是共阳型的LED点阵屏。

我们只选取了一个5*7的LED矩阵,当行上点位为零,列为1时发光二极管便导通点亮。

根据这个原理,当我们需要某图形或文字时,只需要将要显示的文字或图形的编码作为列信号跟对应的行信号进行逐次扫描,就可以逐行点亮点阵。

当扫描速度大于24Hz,由于扫描时间很快,人眼的视觉有暂留效应,就可以看到显示的是完整的图形或文字,这样就达到了显示的效果,其硬件等效电路如图1.1所示。

图1.15*7LED等效电路图

如图1.1所示的发光二极管,行接低电平,列接高电平,发光二极管导通发光。

例如,若要图中所示35个LED显示一个“0”字的方框,则首先在列1~5上写入列编码的信号,接着应将对应的行上加选通信号,即在行、列的信号端分别加上如图1.2所示数据,这样,假设显示数字为“0”时:

12345

 

 

3E4141413E

图1.2在点阵上显示0

因此,形成的列代码为 3EH,41H,41H,41H,3EH;只要把这些代码分别送到相应的列线上面,即可实现“0”的数字显示。

表1.1显示的是字符0-B对应的数据码。

表1.1字符0-B对应的数据码

0

3EH,41H,41H,41H,3EH

1

00H,21H,7FH,01H,00H

2

27H,45H,45H,45H,39H

3

22H,49H,49H,49H,36H

4

0CH,14H,24H,7FH,00H

5

72H,51H,51H,51H,4EH

6

3EH,49H,49H,49H,26H

7

40H,40H,40H,4FH,70H

8

36H,49H,49H,49H,36H

9

32H,49H,49H,49H,3EH

A

7CH,12H,11H,12H,7CH

B

7FH,49H,49H,49H,36H

2软件介绍

2.1Proteus介绍

ProteusISIS是英国Labcenter公司开发的电路设计、分析与仿真软件,功能极其强大。

该软件的主要特点是:

①集原理图设计、仿真分析(ISIS)和印刷电路板设计(ARES)于一身。

可以完成从绘制原理图、仿真分析到生成印刷电路板图的整个硬件开发过程。

②提供几千种电子元件(分立元件和集成电路、模拟和数字电路)的电路符号、仿真模型和外形封装。

③支持大多数单片机系统以及各种外围芯片(RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真等)的仿真。

④提供各种虚拟仪器,如各种测量仪表、示波器、逻辑分析仪、信号发生器等。

过去需要昂贵的电子仪器设备、繁多的电子元件才能完成的电子电路、单片机等实验,现在只要一台电脑,都可在该软件环境下快速轻松地实现。

2.2keIL介绍

KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面,界面友好,操作简单。

另外重要的一点是只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。

在开发大型软件时更能体现高级语言的优势。

(1)建立一个新的工程:

:

单击“Ptoject”菜单,在弹出的下拉菜单中选择“NewProject”选项。

然后选择你要保存的路径,输入工程的名字然后点击保存。

这时会弹出一个对话框,要求你选择单片机的型号,根据你所用的单片机来选择,KeilC51几乎支持所有的51内核的单片机,在本设计中选择的是AT89S51。

(2)编写程序:

单击“File”菜单,在下拉菜单中选择“New”,这时编辑窗口会出现一个Text1窗口,光标在该窗口中闪烁,首先保存该空白文档,单击菜单上的“File”,在弹出的下拉菜单中选择“SaveAs”选项,在出现的对话框中键入欲使用的文件名并同时键入正确的后缀名(本设计中为.asm),然后保存。

回到编辑界面后,单击“Target1”前面的“+”,然后在“SourceGroup1”上单击右键,在弹出菜单中选择“AddFilestoGroup’SourceGroup1’”,选中设计所需要的源程序文件,然后单击“Add”,这时注意到“SourceGroup1”文件夹中多了若干个子项,子项的多少跟所增加的源程序的多少相同。

这时就可以键入应用程序了。

KeilC51会自动识别关键字,并以不同的颜色提醒用户加以注意,这样会使用户少犯错误,有利于提高编程效率。

(3)编译并生成HEX文件:

程序编写完成以后,单击“Ptoject”菜单,在下拉菜单中选择“BuiltTarget”选项,或者使用快捷键F7。

编译成功后右击“Target1”在弹出菜单中选择“OptionsForTarget’Target1’”,在弹出的对话框中选择“Output”选项中的“CreatHEXFile”选项使程序编译后产生HEX代码,供下载器软件使用。

 

3系统硬件设计

3.1AT89C51单片机介绍

ATMEL公司的AT89C51单片机由4K字节可重擦写Flash闪速存储器,128*8字节内部RAM,32个可编程I/O口线,2个16位定时/计数器和6个中断源。

同时支持在线下载,并且该单片机经济实用,使用广泛。

我们使用的是AT89C51的最小系统电路,包括:

电源、时钟脉冲、复位电路和程序存储器设定电路,暂时只是显示很少的几个汉字,不用外扩存储器。

3.1.1单片机的组成

下图是单片机典型组成框图,由图可见它通过内部总线把计算机的各主要部件连为一体,其内部总线包括地址总线、数据总线和控制总线。

其中,地址总线的作用是为进行数据交换时提供地址,CPU通过将地址输出到存储器或I/O接口;数据总线用于在CPU与存储器或I/O接口之间或存储器与外设之间交换数据;控制总路线包括CPU发出的控制信号线和外部送入CPU的应答线等,如图3.1所示。

图3.1单片机结构框图

51系列有3种封装形式,一种是DIP(DualInlinePackage)封装形式,一种是LCC(QuadFlatPackage)封装形式。

这种形式是具有44个“J”形脚的方型芯片。

另一种是QFP(QuadFlatPackage)封装形式,这种形式是具有44个“J”形脚的方型芯片,但它的体积更小、更薄,是一种表面贴焊的封装形式。

下面介绍下89S52单片机的引脚的功能和其内部结构图。

AT89S52单片机实际有郊的引脚为40个,以下是89S52单片机的DIP封装形式的引脚的名称,如图3.2所示。

图3.2单片机封装图形

51系列单片机的引脚功能:

主电源引脚Vss、Vcc

Vss:

接地,Vcc:

接+5V电源

外接晶振引脚XTAL1、XTAL2

XTAL1:

片内反向放大器输入端,XTAL2:

片内反向放大器输出端

输入/输出引脚P0、P1、P2、P3

P0.0~P0.7:

P0口的8个引脚,P0口是8位漏极开路型双向I/0端口,在接有片外存储器或I/0扩展接口时,P0.0~P0.7分时复用,作低8位地址总线与双向8位数据总线

P1.0~P1.7:

P1口的8个引脚,P1口是一个带内部上拉电阻的8位双向I/O口,对于52子系列,P1.0还可用于定时器/计数器2的计数脉冲输入端T2,P1.1还可作定时器/计数器2的外部控制端T2EX。

P2.0~P2.7:

P2口的8个引脚,P2口也是一个带内部上拉电阻的双向I/O口,在访问片外存储器或扩展I/O接口时,还用于提供高8位地址。

P3.0~P3.7:

P3口的8个引脚,P3口也是一个带上拉电阻的I/O口,除可以作双向的输入输出口外,还具有第2功能。

如表3.1所示。

表3.1P3口第二功能表

引脚

第二功能

P3.0

P3.1

P3.2

P3.3

P3.4

P3.5

P3.6

P3.7

RXD(串行口输入)

TXD(串行口输出)

INT0(外部中断0输入)

INT1(外部中断1输入)

T0(定时器0的外部中断)

T1(定时器1的外部中断)

WR(片外数据存储器写控制信号)

RD(片外数据存储器读控制信号)

ALE/PROG:

双功能引脚。

由于P0口的8个引脚是低8位地址总线与数据总线分时复用,因此必须将P0口输出的低8位地址进行锁存。

在访问片外存储器时,每机器周期该信号出现2次。

其下降沿用于控制锁存P0口输出的低8位地址。

即使不访问片外存储器,该引脚上仍出现上述频率的周期性信号,因此也可作为对外输出的时钟脉冲,频率为振荡器频率的1/6,必须注意的是:

在访问片内外存储器时,ALE脉冲会跳空1个。

对片内含有EPROM的机型,此引脚在编程时可作为编程脉冲PROG的输入端。

PSEN:

片外程序存储器读选通信号输出端,在CPU从片外程序存储器取指期间,此信号每个机器周期两次有效,以通过P0口读入指令,在访问片外数据存储器时,该信号不出现。

EA/Vpp:

双功能引脚,为片外程序存储器选用端。

当该引脚信号有效时,选择片外程序存储器,即EA/Vpp=1时,访问片内程序存储器。

对片内含有EPROM的机型,此引脚在编程期间用于施加+21v的编程电压。

RST/VPO:

双功能引脚,在单片机工作期间,当此引脚上出现连接2个机器周期的高电平时可实现复位操作。

在Vcc掉电期间,若该引脚接备用电源(+5v),可向片内RAM供电,以保存片内RAM中的信息。

3.1.2时钟脉冲电路

AT89C51单片机芯片内部设有一个反向放大器所构成的振荡器,其最高时钟脉冲频率已经达到了24MHz,AT89C51的两个引脚XTAL1和XTAL2(即19、18脚)分别为振荡电路的输入端和输出端,只要连接到简单的石英振荡晶体的2个管脚即可,同时晶体的2个管脚也要用30pF的电容耦合到地,具体电路如图3.1所示。

图3.3时钟电路

3.1.3复位电路

89C51的复位引脚(RESET)是第9脚,当此引脚连接高电平超过2个机器周期,即可产生复位的动作。

以24MHz的时钟脉冲为例,每个时钟脉冲为0.5μS,两个机器周期为1µS,因此,在第9脚上连接一个2μS的高电平脉冲,即可产生复位动作。

最简单的硬件电路接法就是用一个电阻,一个电容和一个开关就构成可靠的复位电路,电阻一般选择10K,电容一般选择10µF,具体电路如图3.2所示:

 

图3.4复位电路

3.2原理图

本次课设使用5*7LED点阵显示字幕,采用了一块51单片机,一块5*7LED加上单片机的最小电路,构成了简单的原理图,如图3.5所示。

图3.5原理图

 

 

4软件设计

4.1程序设计分析

程序利用了一个外部中断,一个按键接一个外部中断,开始运行,实现功能1即B、C、A循环显示,按下按键产生外部中断0,实现功能2,数字1、2、3右移的动态显示,按下按键返回主程序实现功能1.通过按按键实现功能1和2的转换。

4.2程序流程图

程序流程图包括主程序和中断程序分别由图4.1和图4.2所示。

图4.1主程序图4.2中断程序

4.3软件编程

采用汇编语言进行编程实现B、C、A的静态显示和1、2、3向右移动的动态显示。

ORG0000H

LJMPSTART

ORG0003H

LJMPINTERUPT

ORG0100H

START:

/*初始化寄存器*/

SETBEA

CLRIT0

SETBEX0

MOVA,#00H

MOVR0,#20H

MOVR1,#6EH;调入数据到内存的数据长度(TAB数据量决定)

MOVR2,#00H

MOVR3,#20H;A显示时长

MOVR4,#20H;B显示时长

MOVR5,#20H;C显示时长

MOVDPTR,#TAB

ACALLINIT

LJMPMAIN

INIT:

MOVA,R2;将数据调入内存(使用R0数据储存器储存数据)

MOVCA,@A+DPTR

MOV@R0,A

INCR0

INCR2

DJNZR1,INIT

RET

ORG0200H

INTERUPT:

/*中断函数:

移位操作*/;由于寄存器使用数量较大,用循环地址加5需加寄存器数据储存读取

CLREA;已无法达到简化效果,故使用固定地址

MOVR5,#02H

WORK_1:

MOVR0,#2FH;移位循环1

LCALLBOOT_IN

MOVR0,#34H

LCALLBOOT_IN

MOVR0,#39H

LCALLBOOT_IN

MOVR0,#3EH

LCALLBOOT_IN

MOVR0,#43H

LCALLBOOT_IN

DJNZR5,WORK_1

MOVR5,#02H

WORK_2:

MOVR0,#48H;移位循环2右移;

LCALLBOOT_IN

MOVR0,#4DH

LCALLBOOT_IN

MOVR0,#52H

LCALLBOOT_IN

MOVR0,#57H

LCALLBOOT_IN

MOVR0,#5CH

LCALLBOOT_IN

DJNZR5,WORK_2

MOVR5,#02H

WORK_3:

MOVR0,#61H;移位循环3右移

LCALLBOOT_IN

MOVR0,#66H

LCALLBOOT_IN

MOVR0,#6BH

LCALLBOOT_IN

MOVR0,#70H

LCALLBOOT_IN

MOVR0,#75H

LCALLBOOT_IN

DJNZR5,WORK_3

WORK_2:

MOVR0,#48H;移位循环2上移

LCALLBOOT_IN

MOVR0,#4DH

LCALLBOOT_IN

MOVR0,#52H

LCALLBOOT_IN

MOVR0,#57H

LCALLBOOT_IN

MOVR0,#5CH

LCALLBOOT_IN

MOVR0,#61H

LCALLBOOT_IN

MOVR0,#66H

LCALLBOOT_IN

DJNZR5,WORK_2

MOVR5,#02H

WORK_3:

MOVR0,#6BH;移位循环3下移

LCALLBOOT_IN

MOVR0,#70H

LCALLBOOT_IN

MOVR0,#75H

LCALLBOOT_IN

MOVR0,#7AH

LCALLBOOT_IN

MOVR0,#7FH

LCALLBOOT_IN

MOVR0,#84H

LCALLBOOT_IN

MOVR0,#89H

LCALLBOOT_IN

DJNZR5,WORK_3

MOVR3,#20H;中断返回重新初始化

MOVR4,#20H

MOVR5,#20H

SETBEA

RETI

BOOT_IN:

MOVA,R0;显示输出初始化

MOVR3,A

MOVR4,#10H

LOOP_IN:

MOVA,R3;输出循环使字符“稳定”

MOVR0,A

MOVR1,#01H

MOVR2,#05H

PIO_IN:

MOVA,@R0;输出一个完整字符

MOVP0,A

MOVA,R1

MOVP2,A

LCALLDELAY

MOVP0,#0FFH;P0口清零消除显示误差

RLA

MOVR1,A

CLRA

INCR0

DJNZR2,PIO_IN

DJNZR4,LOOP_IN

RET

ORG0300H

MAIN:

/*A,B,C循环显示*/

LED_A:

MOVR0,#20H;R0地址为20H~24H时R0内储存的数据为A的显示数据

AJMPBOOT

LED_B:

MOVR0,#25H;R0地址为25H~29H时R0内储存的数据为B的显示数据

AJMPBOOT

LED_C:

MOVR0,#2AH;R0地址为2AH~2EH时R0内储存的数据为C的显示数据

BOOT:

MOVR1,#01H;显示输出初始化

MOVR2,#05H;输出循环使字符“稳定”

PIO:

MOVA,@R0;输出一个完整字符

MOVP0,A

MOVA,R1

MOVP2,A

LCALLDELAY

MOVP0,#0FFH;P0口清零消除显示误差

RLA

MOVR1,A

CLRA

INCR0

DJNZR2,PIO

AJMPWORK

WORK:

DJNZR3,LED_A;显示数据切换函数

MOVR3,#01H

DJNZR4,LED_B

MOVR4,#01H

DJNZR5,LED_C

MOVR3,#20H

MOVR4,#20H

MOVR5,#20H

LJMPLED_A

DELAY:

MOVR7,#01FH

DEL:

MOVR6,#05AH

DJNZR

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

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

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

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