电子线路课程设计报告(16X16LED点阵屏).docx

上传人:scccc 文档编号:12680442 上传时间:2021-12-05 格式:DOCX 页数:20 大小:591.76KB
返回 下载 相关 举报
电子线路课程设计报告(16X16LED点阵屏).docx_第1页
第1页 / 共20页
电子线路课程设计报告(16X16LED点阵屏).docx_第2页
第2页 / 共20页
电子线路课程设计报告(16X16LED点阵屏).docx_第3页
第3页 / 共20页
电子线路课程设计报告(16X16LED点阵屏).docx_第4页
第4页 / 共20页
电子线路课程设计报告(16X16LED点阵屏).docx_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《电子线路课程设计报告(16X16LED点阵屏).docx》由会员分享,可在线阅读,更多相关《电子线路课程设计报告(16X16LED点阵屏).docx(20页珍藏版)》请在三一文库上搜索。

1、.江西理工大学应用科学学院微机控制系统课程设计报告 题 目: LED电子屏设计 姓 名: 学 号: 专业班级: 指导教师: 完成时间: 2016年6月 日设计报告综合测试平时总评格式(10分)内容(10分)图表(5分)功能测试(35分)答辩(20分)考勤(20分)指导教师签名:;目录1 设计任务和性能指标11.1 设计任务11.2 性能指标12 设计方案22.1 需求分析22.2 方案论证23 系统硬件设计33.1硬件电路组成33.2 单片机系统及外围电路33.3 LED的显示方式43.4 LED阵列的驱动电路54 系统软件设计64.1 点阵左移显示的流程图及分析64.2系统各单元电路设计94

2、.3 字符的点阵显示原理及字库代码获取方法105调试及性能分析115.1 调试步骤115.2 仿真结果126 总结12参考文献13附录1 系统硬件电路图1314附录2 程序清单151 设计任务和性能指标1.1 设计任务1、显示屏为16×16点阵(由四块8×点阵模块组成),可显示各种图文。2、掉电时能保存显示的信息。3、上电后在显示屏上顺序显示“江西理工大学应用科学学院”,当按下按键后显示屏停在对应的汉字上,再次按下时,重复循环显示。4、写出详细的设计报告。1.2 性能指标LED是英文light emitting diode(发光二极管)的缩写,发光二极管的核心部分是由p型半

3、导体和 n型半导体组成的晶片,在p型半导体和n型半导体之间有一个过度层p-n结,注入的少数载流子复合时会把多余的能量以光的形式释放出来,从而把电能直接转换为光能。LED在我们日常生活的电器中随处可见,极为普通也广为人知。LED具有效率高、光线质量高、能耗小、寿命长等特点,主要可用于平面显示领域、便携设备显示屏、照明以及红外线LED领域等下游应用产品市场。LED点阵显示器,以发光二极管为像素,它用高亮度发光二极管芯阵列组合后,环氧树脂和塑模封装而成。具有高亮度、功耗低、引脚少、视角大、寿命长、耐湿、耐冷热、耐腐蚀等特点。点阵显示器有单色和双色两类,可显示红、黄、绿、橙等色。LED点阵有 4

4、15;4、4×8、5×7、5×8、8×8、16×16、24×24、40×40等多种。根据像素的颜色的数目可分为,单基色、双基色、三基色等,根据像素颜色的不同所显示的文字、图象等内容的颜色也不同,单基色点阵只能显示固定色彩如红、绿、黄等单色,双基色和三基色点阵显示内容的颜色由像素内不同颜色发光二极管点亮组合方式决定,如红绿都亮时可显示黄色,如果按照脉冲方式控制二极管的点亮时间,则可实现256或更高级灰度显示,即可实现真彩色显示。LED点阵显示器单块使用时,既可代替数码管显示数字,也可显示各种中西文字及符号如5×7点阵

5、显示器用于显示西文字母5×8点阵显示器用于显示中西文,8×8点阵用于显示中文文字,也可用于图形显示。用多块点阵显示器组合则可构成大屏幕显示器,但这类实用装置常通过微机或单片机控制驱动。2 设计方案2.1 需求分析图1 方案总体框图2.2 方案论证本设计采用四块8×8点阵模块组成一块16×16 LED点阵显示屏。方案总体框图如图1所示,大体上可以分成微机本身的硬件、显示驱动电路、控制信号电路三部分。控制电路部分包括一个51 CUP和一些外围电路。在整个电路当中此控制电路部分相当于一个上位机,它负责控制整个电路以及相应的程序的运行、与PC机的串行通讯、以及给

6、屏体电路部分发送命令。点阵显示屏体、以及它的行和列的各个驱动电路。由于两部分的电路在制板时可以放到一起,所以可以将其字库放到控制电路部分使用串行通讯方式来与屏体电路部分进行数据和命令的传送。此显示电路采用扫描方式进行显示时,每行有一个行驱动器,各行的同名列共用一个列驱动器。由行译码器给出的行选通信号,从第一行开始,按顺序依次对各行进行扫描(把该行与电源的一端接通)。另一方面,根据各列锁存的数据,确定相应的列驱动器是否将该列与电源的另一端接通。接通的列,就在该行该列燃亮相应的LED;未接通的列所对应的LED熄灭。3 系统硬件设计3.1硬件电路组成本产品采用以P89C51单片机为核心芯片的电路来实

7、现,主要由P89C51芯片、晶振电路、三极管驱动电路、按键控制电路、8×8 LED点阵5部分组成,电路框图如图1所示。其中,P89C51是一种带4kB闪烁可编程可擦除只读存储器(Falsh Programmable and Erasable Read OnlyMemory,FPEROM)的低电压、高性能CMOS型8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,工业标准的MCS一51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,能够进行1 000次写擦循环,数据保留时间为10年。他是一种高效微控制器,为很多嵌人式控制系统提供了

8、一种灵活性高且价廉的方案。因此,在智能化电子设计与制作过程中经常用到P89C51芯片。时钟电路由P89C51的18,19脚的时钟端(XTAI 1及XTAL2)以及12 MHz晶振X 、电容C2、C3组成,采用片内振荡方式。复位电路采用简易的上电复位电路,主要由电阻R ,R2,电容C ,开关K 组成,分别接至P89C51的RST复位输人端。LED点阵显示屏采用8x8共64个象素的点阵,可通过万用表检测发光二极管的方法测试判断出该点阵的引脚分布。我们把行列总线接在单片机的I/O口,然后把上面分析到的扫描代码送入总线,就可以得到显示的字符了。我们在实际应用中是将LED点阵的8条列线通过驱动电路接在P

9、1口,8条行线通过限流电阻接在P0口。单片机89C51按照设定的程序在P1和P0接口输出与内部字符对应的代码电平送至LED点阵的行列线(高电平驱动),从而选中相应的象素LED发光,并利用人眼的视觉暂留特性合成整个字符的显示。再改变取表地址实现字符的滚动显示。3.2 单片机系统及外围电路单片机(Microcontroller,又称微处理器)是在一块硅片上集成了各种部件的微型机,这些部件包括中央处理器CPU、数据存储器RAM、程序存储器ROM、定时器/计数器和多种I/O接口电路。8051是MCS-51系列单片机的一个产品。MCS-51系列单片机是Intel公司推出的通用型单片机, 8051单片机的

10、基本结构3.3 LED的显示方式LED点阵每个点都有一个红色的发光二极管。点阵内的二极管间的连接都是行共阳,列共阴。LED点阵显示器的显示一般有静态和动态显示两种方案,静态方案虽然设计简单,但其使用的管脚太多,如本设计中1616的点阵共有256个发光二极管,显然单片机没有这么多的端口,如果采用锁存器来扩展端口,按8位的锁存器来计算,1616的点阵需要256÷8=32个锁存器。这样在锁存器上花的成本将比较高。因此在实际应用中的显示屏几乎都不采用这种设计,而采用另外一种称为动态扫描的显示方法。动态扫描显示方法是逐行轮流点亮,这样扫描驱动电路就可以实现多行的同名列共用一套列驱动器。以本设计

11、的1616点阵为例,把所有同一行的发光管的阳极连在一起,把所有同一列的发光管的阴极连在一起,先送出对应第1行发光管亮灭的数据并锁存,然后选通第1行使其燃亮一定的时间,然后熄灭;再送出第2行的数据并锁存,然后选通第2行使其燃亮相同的时间,然后熄灭;,第16行之后,又重新燃亮第1行,反复轮回。当这样轮回的速度足够快(每秒24次以上),由于人眼的视觉暂留现象,就能看到显示屏上稳定的图形。该方法能驱动较多的LED,控制方式较灵活,而且节省单片机的资源。采用扫描方式进行显示时,每一行有一个行驱动器,各行的同名列共用一个驱动器。显示数据通常存储在单片机的存储器中,按8位一个字节的形式顺序排放。显示时要把一

12、行中各列的数据都传送到相应的列驱动器上去,这就存在一个显示数据传输的问题。从控制电路到列驱动器的数据传输可以采用并行方式或串行方式。显然,采用并行方式时,从控制电路到列驱动器的线路数量大,相应的硬件数目多。当列数很多时,并列传输的方案是不可取的。采用串行传输的方法,控制电路可以只用一根信号线,将列数据一位一位传往列驱动器,在硬件方面无疑是十分经济的。但是,串行传输过程较长,数据按顺序一位一位地输出给列驱动器,只有当一行的各列数据都以传输到位之后,这一行的各列才能并行地进行显示。这样,对于一行的显示过程就可以分解成列数据准备(传输)和列数据显示两部分。对于串行传输方式来说,列数据准备时间可能相当

13、长,在行扫描周期确定的情况下留给行显示的时间就太少了,以致影响到LED的亮度。解决串行传输中列数据准备和列数据显示的时间矛盾问题,可以采用重叠处理的方法。即在显示本行各列数据的同时,传送下一列数据。为了达到重叠处理的目的,列数据的显示就需要具有锁存功能。经过上述分析,就可以归纳出列驱动器电路应具有的功能。对于列数据准备来说,它应能实现串入并处的移位功能;对于列数据显示来说,应具有并行锁存的功能。这样,本行已准备好的数据打入并行锁存器进行显示时,串并移位寄存器就可以准备下一行的列数据,而不会影响本行的显示。3.4 LED阵列的驱动电路正向点亮一颗LED,至少也得10到20毫安,若电流不够大,则L

14、ED不够亮!而不管是8051的输入还是输出端其高态输出电流都不是很高,不过12毫安而已。因此,很难直接高态驱动LED。这时候就需要额外的驱动电路。分别针对共阳极和共阴极LED阵列,有两种不同的驱动方式。针对输出态的不同,分为:高态扫描-高态显示,高态扫描-低态显示,低态扫描-高态显示和低态扫描-低态显示四种方式。本设计实际用到的是:共阴型低态扫描-低态显示信号驱动电路。这种驱动电路采用低态扫描,也就是任何时间只有一个高态信号,其他则为低态信号。一行扫描完成之后,再把高态信号转到临近的其他行。扫描信号经限流电阻接到PNP晶体管的基极,晶体管的集电极接地,射极则连至LED点阵的列引脚,若要同时点亮

15、该列的16个LED,则晶体管的电流必须大于200毫安才行。常用的2N3904之类就可以达到当低态的列扫描信号输入晶体管的基极后,该晶体管即为正向,而产生电流,即可使该列的LED具有点亮的条件所要的显示信号连接到一个PNP晶体管的基极,而该晶体管的射极连接到VCC,同样的,当低态的显示信号输入时,晶体管的集电极电流将流入行LED的阳极,即可点亮该行的LED。若要并接多个LED阵列,如本设计是使用四个8×8 LED阵列,连接成一个16×16 LED阵列,则一个扫描信号同时要驱动两行的LED阵列。这时就需要靠锁存器将这两组显示信号锁住。本设计使用的是74LS373锁存器,74LS

16、373是以低态输出的,其输出的电压可达24毫安,足以驱动一个LED。当74LS373的G脚(即LE引脚)为高态时,数据可以从输入端传输到锁存器中;G脚为低态时,数据被锁住,不会随输入端而变。另外,OC脚为输出控制引脚,当OC脚为高态时,输出呈现高阻抗;OC为低态时,数据会由锁存器输出。在这个电路之中驱动的扫描信号总共有16条,如果直接由8051输出,将占用2个PORT口,浪费资源,不太理想,在此使用的是一个74LS154(4对16的译码器),这个译码器是将输入的16进位码解码输出低态的扫描信号。输出的低态扫描信号可直接接到PNP晶体管的基极,如果太大的话也可以先经过限流电阻再接到PNP晶体管的

17、基极,信号最后经过晶体管的放大后即可推动16个LED点阵了。4 系统软件设计4.1 点阵左移显示的流程图及分析程序和流程图的简要说明:在程序的开始,设定初始的地址是0000H,也定义了取码指针的位置,设为00H的初始位置,再下面的74LS154扫描指针的初值设为00H,是因为扫描要从开始的零点开始扫。 程序的循环运行是从M3开始的,扫描信号输出后,取码指针先去的第一个码送到点阵的上半部分,打开上面部分点阵的74LS373锁存器,关闭下面部分点阵的74LS373锁存器,把信号送到点阵的上部分。再指针加1,关闭上面部分点阵的74LS373锁存器,打开下面部分点阵的74LS373锁存器,取相邻的码送

18、到点阵的下半部分,紧挨着的延时程序是设定每列扫描的时间:MOV R3,#50DJNZ R3,$延时时间为:1+(2×50)=101uS0.1mS下面的“DJNZ R6,M3”到M3的循环可以计算显示一次一个整屏的时间为0.1mS×16=1.1 mS,再下面的“DJNZ R1,M2”到M2的循环可以计算出每个屏的停留时间,即是每向左移动一下的时间间隔为0.1mS×16×65=104ms=0.1S。当字型向左移动一位的时候,取码指针应先加2,再进行下一个字型的取码,因为本设计的每一列的码为2个。最后的部分代码:XRL A,#0FFHJNZ M1 SJMP S

19、TART的意思是:在控制字型移动完以后,返回到头重新开始移动。 说明一下:本设计是以显示8个字的循环为例的,正如前面所说,字型可以任意加进去,显示任意多的左移显示的字,还可以显示一些符号和图形。只要有字型的代码,再稍微改一下程序就可以显示了。本设计的显示效果:显示向左移动的“XXXX”,移动的速度为每0.1秒移动一下,直到最后一个字。再重头开始循环显示。程序流程图4.2系统各单元电路设计P89C51单片机最小系统最小系统包括晶体振荡电路、复位开关和电源部分。下图为P89C51单片机的最小系统。P89C51单片机最小系统三极管驱动电路 扫描驱动电路的功能主要是有P1口输出高电平使三极管发射结导通

20、,发射结输出足够大的电流使二极管导通。4.3 字符的点阵显示原理及字库代码获取方法 本设计是使用四个8×8 LED阵列,连接成一个16×16 LED阵列,则一个扫描信号同时要驱动两行的LED阵列。我们以UCDOS中文宋体字库为例,每一个字由8行8列的点阵组成显示。我们可以把每一个点理解为一个象素,而把每一个字的字形理解为一幅图像。事实上这个汉字屏不仅可以显示汉字,也可以显示在64象素范围内的任何图形。如查用8位的P89C51单片机控制,如图所示 单个 8×8点阵等效电路为了弄清楚汉字的点阵组成规律,首先通过列扫描方法获取汉字的代码。首先将8行分成4位的上、下两部分

21、,把发光的象素位编为0不发光的象素位为1的十六进制代码。这样就把要显示的“公”字编为如下代码:0x7f,0xbf,0xc1,0xdf,0xdf,0xdf,0xc1,0xdf由这个原理可以看出,无论显示何种字体或图像,都可以用这个方法来分析出他的扫描代码从而显示在屏幕上。上述方法虽然能够让我们弄清楚字符点阵代码的获取过程。字符点阵显示一般有点扫描、行扫描和列扫描3种。为了符合视觉暂留要求,点扫描方法的扫描频率必须大于16×641024 Hz,周期小于1 ms即可。行扫描和列扫描方法的扫描频率必须大于16×8128 Hz,周期小于78 ms即可。5调试及性能分析首先根据各单元电

22、路模块,利用Proteus软件将总的硬件原理图绘制好,设计好各模块要使用的I/O口,如:16×16点阵LED显示屏时候插反,先检测下,无硬件错误后,再进行程序编程。利用C语言的编程方式,将系统要求的基本功能,以及创新功能根据程序流程图编写出来,用Keil软件调试无误后,生成Hex文件。双击Proteus中的P89C51芯片,将Keil生成的Hex加载到芯片内,进行仿真,经调试后所编写的程序能够完美实现系统所需的各种功能。5.1 调试步骤先在 Proteus 7.5 SP3 的 ISIS 中画好电路原理图,再在Keil Vision 4中编译好程序,最后将 Keil Vision 4

23、与 Proteus 7.5 SP3 连接调试:1、进入Keil Vision4开发集成环境,创建一个新项目(Project),并为该项目选定合适的单片机CPU器件(如本设计使用的:Atmel公司的AT89C52)。并为该项目加入源程序。2、单击“Project菜单/Options for Target”选项或者点击工具栏的“option for ta rget”按钮,弹出窗口,点击“Debug”按钮,在出现的对话框里在右栏上部的下拉菜单里选中“Proteus VSM Monitor”。并且还要点击一下“Use”前面表明选中的小圆点。再点击“Setting”按钮,设置通信接口,在“Host”后面

24、添上“127.0.0.1”,如果使用的不是同一台电脑,则需要在这里添上另一台电脑的IP地址(另一台电脑也应安装Proteus)。在“Port”后面添加“8000”。设置好后点击“OK”按钮即可。最后将工程编译,进入调试状态,并运行。3、Proteus 的设置:进入 Proteus 的 ISIS ,鼠标左键点击菜单“Debug”, 选中“use romote debuger monitor”。此后,便可实现 Keil 与 Proteus 连接调试。4、Keil 与 Proteus 连接仿真调试:单击仿真运行开始按钮,能清楚地观察到每一个引脚的电平变化,红色代表高电平,蓝色代表低电平。在LED显示

25、屏上,就能显示图文。5.2 仿真结果仿真图6 总结本文设计一个16×16点阵LED图文显示屏。经过测试,LED各点亮度均匀,可显示图形和文字,且稳定清晰无串扰。本系统具有硬件少、结构简单、容易实现,性能稳定可靠等特点。通过查阅资料,了解了LED发光原理和LED显示技术的原理和现状。在 LED点阵显示屏的设计过程中,学到了很多东西,复习了Protel、Proteus、Keil等软件的基础应用。基本了解了整个嵌入式开发的流程。例如,在进行整个设计之前,应该先根据需求分析,对单片机进行选型,然后对各个硬件模块进行搭试。在画PCB电路板的时候,要注意基本的布板原则。在焊接电路板的时候,应该从

26、最基本的最小系统开始,分模块,逐个进行焊接测试。在对各个硬件模块进行测试时,要保证软件正确的情况下去测试硬件,要不然发生错误时,不知道到底是哪一方出错了。总之,这次设计开发,本人受益非浅,在以后的开发过程中一定总结经验,吸取教训,为以后的学习工作打好基础。在此次设计中,总结如下:一、本文设计的16X16 LED显示屏能够实现在目测条件下LED显示屏各点亮度均匀、充足,可显示图形和文字,显示的图形和文字稳定、清晰无串扰。图形或文字以左移方式显示。二、这次点阵设计的过程让我基本学会了Keil及Proteus的使用,以及重新复习了下Word和Visio软件的使用。三、通过这次设计,进一步增强了动手的

27、能力,学以致用。我感受到:做任何事都有耐心和毅力,否则将一事无成!四、本次设计因时间有限,不能进一步深入和扩散学习和研究,比如:本设计只能实现显示最多256个字节的图形或文字,希望有时间可以对程序和电路图作更进一步的改进,譬如实现点阵的上下移动、对角线移动、多色显示等。参考文献1 潘永雄. 新编单片机原理与应用(第二版)M. 西安电子科技大学, 2007.02附录1 系统硬件电路图附录2 程序清单ORG 0000H START: MOV A,#00H;清除屏幕并MOV P2,A;显示信号输出到P2口 MOV 20H,#00;取码指针地址20H初值为00 MOV R4,00H;74LS154扫描

28、指针初值为00 M1:MOV R1,#65;设置每屏的停留时间M2:MOV R6,#16;每屏一个字,16个数据码MOV R0,20H;取码指针存入R0 M3:MOV A,R4;扫描指针载入A CLR P0.2;清P0.2 MOV P1,A;输出至P1扫描列 MOV A,R0;取码指针载入A MOV DPTR,#TABLE;数据指针指到TABLE MOVC A,A+DPTR;到TABLE取上半部数据码 SETB P0.1;P0.1口置1 CLR P0.0;清P0.0口MOV P2,A;输出至P2口显示 INC R0;取下一个码MOV A,R0;取码指针载入A MOV DPTR,#TABLE;数

29、据指针指到TABLE MOVC A,A+DPTR;到TABLE取下半部码SETB P0.0 CLR P0.1 MOV P2,A;输出到P2口显示INC R0;取码值加1 MOV R3,#50;设定每列扫描的间隔时间DJNZ R3,$ ;此处可计算出每列扫描需1+(2*50)=101uS0.1mSMOV A,#00H;清除屏幕MOV P2,A INC R4;扫描下一行DJNZ R6,M3;判断是否显示一屏,此处可计算出每屏显示需0.1mS*16=1.1mSMOV R4,#00H;清除74LS154扫描指针为00DJNZ R1,M2;判断是否可左移,此处可计算出每向左移动一下的时间间隔为;0.1m

30、S*16*65=104mSMOV A,20H;取码指针载入AADD A,#02;指针加2MOV 20H,A;再存入20H地址取码指针XRL A,#0FFH;异或,判断八个字是否都左移完JNZ M1;否,跳到M1SJMP START;是,跳到STARTTABLE: DB 8,32,14,32,134,126,227,254;DB 111,132,12,4,32,4,32,4;DB 32,4,63,252,63,252,32,4;DB 32,4,32,4,32,4,0,4;"江",0DB 64,0,79,254,79,254,72,52;DB 72,100,127,196,12

31、7,132,72,4;DB 72,4,127,132,127,196,72,68;DB 72,68,79,254,79,254,64,0;"西",1DB 34,8,34,8,63,248,63,240;DB 34,18,34,18,127,162,127,162;DB 73,34,127,254,127,254,73,34;DB 73,34,127,162,127,162,0,2;"理",2DB 0,4,0,4,64,4,64,4;DB 64,4,64,4,64,4,127,252;DB 127,252,64,4,64,4,64,4;DB 64,4,64

32、,4,64,4,0,4;"工",3DB 0,2,0,30,63,252,63,228;DB 35,4,33,244,40,244,172,36;DB 231,196,99,204,33,60,32,244;DB 39,196,39,4,34,4,0,4;"应",4DB 8,32,72,96,73,192,79,128;DB 127,255,255,255,139,32,137,32;DB 68,32,119,96,51,64,0,64;DB 255,255,255,255,0,128,0,128;"科",5DB 127,255,127,255,76,64,94,96;DB 115,225,113,195,52,142,36,252;DB 164,240,228,128,100,254,36,255;DB 36,129,52,129,48,143,32,143;"院",6END17

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1