课程设计报告(黑体1号)课程名称:计算机组成原理课程设计课题:8*8LED显示器系统的实现专业班级:计算机系0901班学号:09120140姓名:罗燕指导老师:周慧灿日期:2011年12月25日教师评语:成绩评定:指导教师(签名):目录1.课题简介.........................................................32.设计方案..........................................................32.1总体设计要求................................................32.2系统框图....................................................43.详细设计..........................................................43.1电路原理.....................................................43.1.1单片机最小系统设计.....................................43.1.2显示器及接口设计.......................................63.1.3电源电路的设计.........................................93.1.4具体电路及功能分析....................................103.2系统程序设计................................................103.2.1软件设计思想..........................................103.2.2主程序设计............................................113.2.3子程序设计............................................134.测试及分析.......................................................184.1软件调试...................................................184.2性能分析...................................................19总结...............................................................19设计体会...........................................................20参考文献...........................................................21附录.............................................................22附录A硬件结构图..............................................22附录B主程序清单..............................................231.课题简介本设计是基于AT89C5151的8×8点阵LED数码显示器的设计,整机以美国ATMEL公司生产的40脚单片机AT89C51为核心,介绍了以它为控制系统的LED点阵电子显示屏的动态设计和开发过程。通过该芯片控制一个驱动器来驱动显示屏显示,该电子屏可以各种文字或单色图像,采用动态显示,使得图形或文字能够实现静止、移入移出等多种显示方式。LED点阵显示屏作为一种新兴的显示器件,是由多个独立的LED发光二极管封装而成.LED点阵显示屏可以显示数字或符号,通常用来显示时间、速度、系统状态等。本文讲述了基于AT89C51单片机8×8LED数码字符显示器的基本原理、硬件组成与设计,Proteus软件仿真,程序设计等基本环节与相关技术。LED电子显示屏具有所显内容信息量大,外形美观大方,操作使用方便灵活。适用于火车,汽车站,码头,金融证券市场,文化中心,信息中心体育设施等公共场所。该项目广泛涉及了计算机及电子技术中的电源技术,单片机技术,数据通讯技术,显示技术,存储技术,系统软件技术,接口及驱动等技术。2.设计方案2.1总体设计要求本系统采用单片机AT89C51为LED显示屏的控制核心,制造一种简单的8×8显示屏,能够在目测条件下LED显示屏各点亮度均匀、充足,可显示图形和文字,显示图形和文字稳定、清晰无串扰,图形或文字显示有静止、移入移出等显示方式。本系统具有硬件少,结构简单,容易实现,性能稳定可靠,成本低等特点。根据设计要求,初步确定设计方案如下:1.选择AT89C51单片机(晶振频率为f=12MHZ)作为整个系统的核心器件,对整个系统进行总体控制,发送并时时处理系统信息。2.通过编程显示数字:“★,●,心形图”。3.动态显示,即跑马灯文字幕,每0.25秒左移一次。4.扫描信号连接到单片机的P0口,显示信号连接到单片机的P2口。5.点阵的点亮过程有程序控制,由驱动电路完成,点阵采用单色显示,其中驱动电路采共阴型高态扫描、高态显示信号的驱动电路。2.2系统框图本文设计行、列驱动电路,显示屏电路,运用单片机的智能化,系统的将每个功能电路模块连接在一起,总体结构设计如下图1-1所示:PC上位机单片机点阵显示器行驱动电路点阵显示器列驱动电路8×8点阵LED显示器电路图2.1系统框图3.详细设计3.1电路原理本系统的硬件电路是由单片机最小系统、动态显示驱动电路两部分组成。其中,单片机最小系统包括电源电路、复位电路和晶振电路构成;显示部分使用共阴型高台扫描、高态显示信号驱动电路,完成“跑马灯”文字幕效果。3.1.1单片机最小系统设计(1)单片机的时钟电路AT89C51单片机内部的振荡电路是一个高增益反向放大器,引线X1和X2分别是放大器的输入端和输出端。单片机内部虽然有振荡电路,但要形成时钟,外部还需附加电路。AT89C51的时钟产生方式有两种:内部时钟电方式和外部时钟方式。由于外部时钟方式用于多片单片机组成的系统中,所以此处选用内部时钟方式。内部时钟方式:利用其内部的振荡电路在X1和X2引线上外接定时元件,内部振荡电路产生自激振荡。最常用的是在X1和X2之间接晶体振荡器与电路构成稳定的自激振荡器,如图2-1电路所示为单片机最常用的时钟振荡电路的接法,其中晶振可选用振荡频率为12MHz的石英晶体,电容器一般选择30PF左右。图3.1使用片内振荡电路的时钟电路(2)单片机的复位电路本设计中AT89C51是采用上电自动复位和按键复位两种方式。最简单的复位电路如图2-2所示。上电瞬间,RC电路充电,RST引线端出现正脉冲,只要RST端保持10ms以上的高电平,就能使单片机有效地复位。其中R1和R2分别选择200Ω和2KΩ的电阻,电容器一般选择22μF。图3.2AT89C51的复位电路(3)AT89C51的最小应用系统AT89C51是片内有程序存储器的单片机,要构成最小应用系统时只要将单片机接上外部的晶体或时钟电路和复位电路即可,如图2-3所示。这样构成的最小系统简单可靠,其特点是没有外部扩展,有可供用户使用的大量的I∕O线。图3.3AT89C51单片机构成的最小系统3.1.2显示器及接口设计(1)8×8点阵LED显示器的组成原理及控制方式本次设计中采用8×8点阵LED显示器,简称LED点阵板或LED矩阵板。它是以发光二极管为像素,按照行与列的顺序排列起来,用集成工艺制成的显示器件。有单色和双色之分,这种显示器有共阳极接法和共阴极接法两种,设计中用到的是共阳极的显示器。共阳极接法的原理图如图2-4所示,图中画出了8×8点阵的二极管。每一行发光二极管的阳极接在一起,有一个引出端r,每一列发光二极管的阴极接在一起,有一个引出端c。当给发光二极管阳极引出端r1加高电平,阴极引出端c1加低电平时,左上角的二极管被点亮因此,对于行和列的电平进行扫描控制时,可以达到显示不同字符的目的。图3.48×8点阵LED显示器组成原理图“★”在8X8LED点阵上显示图如下图所示●●●●●●●●●●●●●●●●●●●●●1234567812H,14H,3CH,48H,3CH,14H,12H,00H“●”在8X8LED点阵上显示图如下图所示●●●●●●●●●●●●1234567800H,00H,38H,44H,44H,44H,38H,00H心形图在8X8LED点阵上显示图如下图所示●●●●●●●●●●●●●●1234567830H,48H,44H,22H,44H,48H,30H,00H图3.58×8点阵LED引脚的排列图(2)8×8点阵LED显示器与单片机的接口8×8点阵LED的引脚图如图2-5所示,当采用单片机进行控制时,连接点阵显示器的共阳极r端需经驱动三极管9012与单片机的P2口相连,而共阴极c端需经限流电阻与单片机的P0口相连。在编程控制时,将8×8点阵LED显示分成行和列两部分,字符数据从P0口输出,扫描控制字从P2口输出,每一列由一个字节的数据组成,数据可一次送入,然后扫描一行,显示一个字需要扫描8次。(3)驱动电路的设计显示器驱动是一个非常重要的问题,如果驱动能力差,显示器亮度就低;而驱动器长期在超负荷下运行则很容易损坏。如果是静态显示,则LED驱动器的选择较为简单,只要驱动器的驱动能力与显示器工作电流相匹配即可。而且只须考虑段的驱动,因为,共阳极接+5V,而共阴极接地,所以位的驱动无须考虑。动态显示则不然,由于一位数据的显示是由段和位选信号共同配合完成的,因此,必须同时考虑段和位的驱动能力,而且段的驱动能力决定位的驱动能力。理论分析表明,同样的驱动器,当其驱动静态显示器时,其亮度为驱动动态显示器的n倍,n近似为显示位数。所以要使动态显示器达到静态显示器的亮度,必须将驱动器能力提高n倍。本设计中,因为采用了8×8点阵LED显示器,用AT89C51单片机进行控制,因此它很适宜于按扫描方式动态显示多个字符数据,所以我们只选用了8个PNP型三极管作为驱动显示器的电路。如图2-6所示,因AT89C51单片机的I∕O口有20mA的吸入电流,正因为这一特点,使的本设计中的驱动电路部分大大简化,不用附加专门的驱动电路即可正常工作。图3.6显示驱动电路3.1.3电源电路的设计电源电路采用普通集成稳压电路,在本设计中,由于考虑到成本问题,这部分电路就以输出+5V的稳压电源代替。3.1.4具体电路及功能分析(1)显示电路本设计采用双色8×8点阵模块显示,但是在设计中我们只用单色显示,我们通过改变限流电阻的阻值的大小来改变显示字符的亮度。(2)电源电路电源电路采用普通的三端集成稳压电源。为整个系统提供+5V的电压。(3)电路原理图:图3.7电路原理图3.2系统程序设计3.2.1软件设计思想主程序先进行设置中断,并启动,再进行键盘扫描载入★,●,心形图,然后判断一组字型是否扫描完,按不同情况进行循环调用子程序。进入子程序后,首先设置相应的程序,反复调用显示子程序,并在显示过程中反复调用键盘扫描子程序进行延时,判断是否退出相应的方式显示子程序。设计过程中,能很好得提高按键响应速度。如图3.8所示为软件系统框图。主程序按键程序延时程序动态显示程序中断程序图3.8软件设计框图字符编码:8×8点阵可以看成是从上至下8个字节,每个字节8位,因为该点阵为共阴型点阵,因此若该灯亮,则该位为“1”;该灯不亮,则该位为“0”。所以★,●,心形图的编码为,从上至下:“★”:12H,14H,3CH,48H,3CH,14H,12H,00H“●”:00H,00H,38H,44