电子线路课程设计报告_第1页
电子线路课程设计报告_第2页
电子线路课程设计报告_第3页
电子线路课程设计报告_第4页
电子线路课程设计报告_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、江西理工大学应用科学学院信息工程系电子线路课程设计报告设计题目: 点 阵 显 示 器 设 计 专 业: 电子信息工程 班 级: 电信092班 学 号: 08060309206 姓 名: 陈 鸿 同组人员: 张舵 江明 孙婷婷 指导老师: 刘 会 衡 完成日期: 2011年12月21日 指导老师评语:得分: 指导教师签名: 电子线路课程设计说明书点阵显示器设计目录1 设计任务和性能指标11.1 设计任务11.2 性能指标12 设计方案22.1 需求分析22.2 方案论证23 系统硬件设计33.1 单片机系统及外围电路33.2 LED的显示方式33.3 LED阵列的驱动电路54 系统软件设计64.

2、1 点阵左移显示的流程图及分析64.2 字模码的获取85 仿真与调试85.1 调试步骤85.2 仿真结果及性能分析96 总结10参考文献10附录1 系统硬件电路图11附录2 程序清单12电子线路课程设计说明书点阵显示器设计1 设计任务和性能指标1.1 设计任务1、显示屏为16×16点阵(由四块8×点阵模块组成),可显示各种图文。2、掉电时能保存显示的信息。1.2 性能指标LED是英文light emitting diode(发光二极管)的缩写,发光二极管的核心部分是由p型半导体和 n型半导体组成的晶片,在p型半导体和n型半导体之间有一个过度层p-n结,注入的少数载流子复合时

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

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

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

6、,所以可以将其字库放到控制电路部分使用串行通讯方式来与屏体电路部分进行数据和命令的传送。此显示电路采用扫描方式进行显示时,每行有一个行驱动器,各行的同名列共用一个列驱动器。由行译码器给出的行选通信号,从第一行开始,按顺序依次对各行进行扫描(把该行与电源的一端接通)。另一方面,根据各列锁存的数据,确定相应的列驱动器是否将该列与电源的另一端接通。接通的列,就在该行该列燃亮相应的LED;未接通的列所对应的LED熄灭。3 系统硬件设计3.1 单片机系统及外围电路单片机(Microcontroller,又称微处理器)是在一块硅片上集成了各种部件的微型机,这些部件包括中央处理器CPU、数据存储器RAM、程

7、序存储器ROM、定时器/计数器和多种I/O接口电路。8051是MCS-51系列单片机的一个产品。MCS-51系列单片机是Intel公司推出的通用型单片机,图2 8051单片机的基本结构3.2 LED的显示方式LED点阵每个点都有一个红色的发光二极管。点阵内的二极管间的连接都是行共阳,列共阴。LED点阵显示器的显示一般有静态和动态显示两种方案,静态方案虽然设计简单,但其使用的管脚太多,如本设计中1616的点阵共有256个发光二极管,显然单片机没有这么多的端口,如果采用锁存器来扩展端口,按8位的锁存器来计算,1616的点阵需要256÷8=32个锁存器。这样在锁存器上花的成本将比较高。因此

8、在实际应用中的显示屏几乎都不采用这种设计,而采用另外一种称为动态扫描的显示方法。动态扫描显示方法是逐行轮流点亮,这样扫描驱动电路就可以实现多行的同名列共用一套列驱动器。以本设计的1616点阵为例,把所有同一行的发光管的阳极连在一起,把所有同一列的发光管的阴极连在一起,先送出对应第1行发光管亮灭的数据并锁存,然后选通第1行使其燃亮一定的时间,然后熄灭;再送出第2行的数据并锁存,然后选通第2行使其燃亮相同的时间,然后熄灭;,第16行之后,又重新燃亮第1行,反复轮回。当这样轮回的速度足够快(每秒24次以上),由于人眼的视觉暂留现象,就能看到显示屏上稳定的图形。该方法能驱动较多的LED,控制方式较灵活

9、,而且节省单片机的资源。采用扫描方式进行显示时,每一行有一个行驱动器,各行的同名列共用一个驱动器。显示数据通常存储在单片机的存储器中,按8位一个字节的形式顺序排放。显示时要把一行中各列的数据都传送到相应的列驱动器上去,这就存在一个显示数据传输的问题。从控制电路到列驱动器的数据传输可以采用并行方式或串行方式。显然,采用并行方式时,从控制电路到列驱动器的线路数量大,相应的硬件数目多。当列数很多时,并列传输的方案是不可取的。采用串行传输的方法,控制电路可以只用一根信号线,将列数据一位一位传往列驱动器,在硬件方面无疑是十分经济的。但是,串行传输过程较长,数据按顺序一位一位地输出给列驱动器,只有当一行的

10、各列数据都以传输到位之后,这一行的各列才能并行地进行显示。这样,对于一行的显示过程就可以分解成列数据准备(传输)和列数据显示两部分。对于串行传输方式来说,列数据准备时间可能相当长,在行扫描周期确定的情况下留给行显示的时间就太少了,以致影响到LED的亮度。解决串行传输中列数据准备和列数据显示的时间矛盾问题,可以采用重叠处理的方法。即在显示本行各列数据的同时,传送下一列数据。为了达到重叠处理的目的,列数据的显示就需要具有锁存功能。经过上述分析,就可以归纳出列驱动器电路应具有的功能。对于列数据准备来说,它应能实现串入并处的移位功能;对于列数据显示来说,应具有并行锁存的功能。这样,本行已准备好的数据打

11、入并行锁存器进行显示时,串并移位寄存器就可以准备下一行的列数据,而不会影响本行的显示。3.3 LED阵列的驱动电路正向点亮一颗LED,至少也得10到20毫安,若电流不够大,则LED不够亮!而不管是8051的输入还是输出端其高态输出电流都不是很高,不过12毫安而已。因此,很难直接高态驱动LED。这时候就需要额外的驱动电路。分别针对共阳极和共阴极LED阵列,有两种不同的驱动方式。针对输出态的不同,分为:高态扫描-高态显示,高态扫描-低态显示,低态扫描-高态显示和低态扫描-低态显示四种方式。本设计实际用到的是:共阴型低态扫描-低态显示信号驱动电路。这种驱动电路采用低态扫描,也就是任何时间只有一个高态

12、信号,其他则为低态信号。一行扫描完成之后,再把高态信号转到临近的其他行。扫描信号经限流电阻接到PNP晶体管的基极,晶体管的集电极接地,射极则连至LED点阵的列引脚,若要同时点亮该列的16个LED,则晶体管的电流必须大于200毫安才行。常用的2N3904之类就可以达到当低态的列扫描信号输入晶体管的基极后,该晶体管即为正向,而产生电流,即可使该列的LED具有点亮的条件所要的显示信号连接到一个PNP晶体管的基极,而该晶体管的射极连接到VCC,同样的,当低态的显示信号输入时,晶体管的集电极电流将流入行LED的阳极,即可点亮该行的LED。若要并接多个LED阵列,如本设计是使用四个8×8 LED

13、阵列,连接成一个16×16 LED阵列,则一个扫描信号同时要驱动两行的LED阵列。这时就需要靠锁存器将这两组显示信号锁住。本设计使用的是74LS373锁存器,74LS373是以低态输出的,其输出的电压可达24毫安,足以驱动一个LED。当74LS373的G脚(即LE引脚)为高态时,数据可以从输入端传输到锁存器中;G脚为低态时,数据被锁住,不会随输入端而变。另外,OC脚为输出控制引脚,当OC脚为高态时,输出呈现高阻抗;OC为低态时,数据会由锁存器输出。在这个电路之中驱动的扫描信号总共有16条,如果直接由8051输出,将占用2个PORT口,浪费资源,不太理想,在此使用的是一个74LS154

14、(4对16的译码器),这个译码器是将输入的16进位码解码输出低态的扫描信号。输出的低态扫描信号可直接接到PNP晶体管的基极,如果太大的话也可以先经过限流电阻再接到PNP晶体管的基极,信号最后经过晶体管的放大后即可推动16个LED点阵了。4 系统软件设计4.1 点阵左移显示的流程图及分析程序和流程图(图3)的简要说明:在程序的开始,设定初始的地址是0000H,也定义了取码指针的位置,设为00H的初始位置,再下面的74LS154扫描指针的初值设为00H,是因为扫描要从开始的零点开始扫。 程序的循环运行是从M3开始的,扫描信号输出后,取码指针先去的第一个码送到点阵的上半部分,打开上面部分点阵的74L

15、S373锁存器,关闭下面部分点阵的74LS373锁存器,把信号送到点阵的上部分。再指针加1,关闭上面部分点阵的74LS373锁存器,打开下面部分点阵的74LS373锁存器,取相邻的码送到点阵的下半部分,紧挨着的延时程序是设定每列扫描的时间: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=

16、104ms=0.1S。当字型向左移动一位的时候,取码指针应先加2,再进行下一个字型的取码,因为本设计的每一列的码为2个。最后的部分代码:XRL A,#0FFHJNZ M1 SJMP START的意思是:在控制字型移动完以后,返回到头重新开始移动。 说明一下:本设计是以显示8个字的循环为例的,正如前面所说,字型可以任意加进去,显示任意多的左移显示的字,还可以显示一些符号和图形。只要有字型的代码,再稍微改一下程序就可以显示了。本设计的显示效果:显示向左移动的“XXXX”,移动的速度为每0.1秒移动一下,直到最后一个字。再重头开始循环显示。图3 程序流程图4.2 字模码的获取从网上下载字模生成软件,

17、如本设计所使用的PC to LCD 2002 。软件打开后输入汉字,点击“生成字模”后,十六进制或十进制的数据汉字代码即可以自动生成。本设计采用十进制代码、逐列式取模,软件及字体的具体设置如图4所示:图4 字模获取5 仿真与调试5.1 调试步骤先在 Proteus 7.5 SP3 的 ISIS 中画好电路原理图,再在Keil Vision 4中编译好程序,最后将 Keil Vision 4 与 Proteus 7.5 SP3 连接调试:1、进入Keil Vision4开发集成环境,创建一个新项目(Project),并为该项目选定合适的单片机CPU器件(如本设计使用的:Atmel公司的AT89C

18、52)。并为该项目加入源程序。2、单击“Project菜单/Options for Target”选项或者点击工具栏的“option for ta rget”按钮,弹出窗口,点击“Debug”按钮,在出现的对话框里在右栏上部的下拉菜单里选中“Proteus VSM Monitor”。并且还要点击一下“Use”前面表明选中的小圆点。再点击“Setting”按钮,设置通信接口,在“Host”后面添上“127.0.0.1”,如果使用的不是同一台电脑,则需要在这里添上另一台电脑的IP地址(另一台电脑也应安装Proteus)。在“Port”后面添加“8000”。设置好后点击“OK”按钮即可。最后将工程编

19、译,进入调试状态,并运行。3、Proteus 的设置:进入 Proteus 的 ISIS ,鼠标左键点击菜单“Debug”, 选中“use romote debuger monitor”。此后,便可实现 Keil 与 Proteus 连接调试。4、Keil 与 Proteus 连接仿真调试:单击仿真运行开始按钮,能清楚地观察到每一个引脚的电平变化,红色代表高电平,蓝色代表低电平。在LED显示屏上,就能显示图文。5.2 仿真结果及性能分析图5 仿真图6 总结在此次设计中,总结如下:一、本文设计的16X16 LED显示屏能够实现在目测条件下LED显示屏各点亮度均匀、充足,可显示图形和文字,显示的图

20、形和文字稳定、清晰无串扰。图形或文字以左移方式显示。二、这次点阵设计的过程让我基本学会了Keil及Proteus的使用,以及重新复习了下Word和Visio软件的使用。三、通过这次设计,进一步增强了动手的能力,学以致用。我感受到:做任何事都有耐心和毅力,否则将一事无成!四、本次设计因时间有限,不能进一步深入和扩散学习和研究,比如:本设计只能实现显示最多256个字节的图形或文字,希望有时间可以对程序和电路图作更进一步的改进,譬如实现点阵的上下移动、对角线移动、多色显示等。参考文献1 潘永雄. 新编单片机原理与应用(第二版)M. 西安电子科技大学, 2007.02附录1 系统硬件电路图附录2 程序

21、清单ORG 0000H START: MOV A,#00H;清除屏幕并MOV P2,A;显示信号输出到P2口 MOV 20H,#00;取码指针地址20H初值为00 MOV R4,00H;74LS154扫描指针初值为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取上半

22、部数据码 SETB P0.1;P0.1口置1 CLR P0.0;清P0.0口MOV P2,A;输出至P2口显示 INC R0;取下一个码MOV A,R0;取码指针载入A MOV DPTR,#TABLE;数据指针指到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;判断是

23、否显示一屏,此处可计算出每屏显示需0.1mS*16=1.1mSMOV R4,#00H;清除74LS154扫描指针为00DJNZ R1,M2;判断是否可左移,此处可计算出每向左移动一下的时间间隔为;0.1mS*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

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论