毕业设计(论文)单片机控制LED电子显示屏的设计.doc
毕业设计报告书单片机原理及应用(论文) 系 别:机电工程系题 目:单片机控制LED电子显示屏的设计姓 名:成 员:学 号:专 业:电气工程及其自动化指导老师: 设计时间:2012年 3 月 17日目录1. 绪 论 12.引 言12.1.设计意义12.2.系统功能性能要求12.3.本组成员所做的工作1 2.4 . 任务书13. 制作过程14.方案设计15.硬件设计16. 仿真调试17.软件设计18.系统调试29.设计总结210.附 录A;主程序211.选用器材清单.212.附 录B;作品实物图片213.参考文献214.鸣谢.31.绪论单片微型计算机(single chip microcomputer)简称单片机,它是为各类专用控制器而设计的通用或专用微型计算机系统,高密度集成了普通计算机微处理器,一定容量的RAM和ROM以及输入/输出接口,定时器等电路于一块芯片上构成的。单片机自20世纪70年代问世以来,以极其高的性价比受到人们的重视和关注,所以应用很广,发展很快。单片机的优点是体积小、重量轻、抗干扰能力强,对环境要求不高,价格低廉,可靠性高,灵活性好,开发较为容易。在现代工业控制和一些智能化仪器仪表中,越来越多的场所需要用点阵图形显示器显示汉字,汉字显示屏也广泛应用到汽车报站器,广告屏等。所以研究LED显示有实用的意义。LED显示屏可以显示变化的数字、文字、图形图像;不仅可以用于室内环境还可以用于室外环境,具有投影仪、电视墙、液晶显示屏无法比拟的优点。 LED显示屏作为一种新型的显示器件,是由多个发光二极管按矩阵形式排列封装而成,通常用来显示时间、图文等信息。本设计是基于SCR89C52单片机的16x16显示屏,其中包含了硬件、软件、调试等方案的设计。此外、该设计只需简单的级联就能实现显示屏的拓展,但级联时要注意不要超过驱动负载范围。单片机(Microcontroller,又称微处理器)是在一块硅片上集成了各种部件的微型机,这些部件包括中央处理器CPU、数据存储器RAM、程序存储器ROM、定时器/计数器和多种I/O接口电路。2.引 言2.1设计意义LED显示屏是一种通过控制半导体发光二极管的显示方式,用来显示文字、图形、图像、动画、行情、视频、录像信号等各种信息的显示屏幕。图文显示屏可与计算机同步显示汉字、英文文本和图形;视频显示屏采用微型计算机进行控制,图文、图像并茂,以实时、同步、清晰的信息传播方式播放各种信息,还可显示二维、三维动画、录像、电视、VCD节目以及现场实况。LED显示屏显示画面色彩鲜艳,立体感强,静如油画,动如电影,广泛应用于车站、码头、机场、商场、医院、宾馆、银行、证券市场、建筑市场、拍卖行、工业企业管理和其它公共场所。它的优点:亮度高、工作电压低、功耗小、微型化、易与集成电路匹配、驱动简单、寿命长、耐冲击、性能稳定。2.2系统功能要求设计一个能显示16X16点阵图文LED显示屏,要求能显示图文或文字,显示图文或文字应稳定、清晰,图文或文字显示,以卷帘形式向上滚动显示。2.3本组成员所做的工作方案原理论证:李斌 冯文龙 栾国伟 杜韦娜焊接:李斌 冯文龙 栾国伟 杜韦娜调试:李斌 冯文龙 栾国伟 杜韦娜设计报告:李斌 冯文龙 栾国伟 杜韦娜2.4 任 务 书1.任务 设计一款基于STC89C52单片机的双汉字16X16 LED点阵广告屏。3.制作过程 先给大家介绍一下LED电子显示屏的组成,需要电源板,电源,锁存器,译码器,导线等电子插件组成。 我们一组是有四个人组成的团队,选材的时候由于是在网上购买的,所以有些元器件不能够合乎自己的意愿,就分两次在不同的网店购买,我们分工合作。对于原理的设计构造我们都参与了其中,李斌负责画电路图和调试程序,冯文龙负责查找资料和软件设计,杜韦娜负责程序输入和整理论文,栾国卫负责收集购买元器件,焊接的时候我们都有参与。我们按照先焊主电路后焊辅助电路,从左到右从上到下先易后难依次焊接,焊接中充分发挥了团队合作精神,虽然没能够完全实现我们最初的设计效果展现出图文流动效果,但是我们在焊接的过程中对电路的原理有了进一步的了解,同时也对各元器件有了认识,焊接技术也有了一定的提高,不管怎么说通过这次的焊接电路也对自身有了一定的提高···有点缺憾是时间有限,不能进一步深入和扩散学习和研究。希望有时间可以对程序和电路图作更进一步的改进,譬如实现点阵的上下移动,对角线移动,三色显示等。4.方案设计4.1 总体设计4.2 设计论证图文显示一般有静态和动态显示两种方案,静态方案虽然设计简单,但其使用的管脚太多,如本设计中1616的点阵共有256个发光二极管,显然单片机没有这么多的端口,如果我采用锁存器来扩展端口,按8位的锁存器来计算,1616的点阵需要256/8=32个锁存器。这个数字很庞大,因为我们仅仅是1616的点阵,在实际应用中的显示屏往往要大得多,这样在锁存器上花的成本将是一个很庞大的数字。因此在实际应用中的显示屏几乎都不采用这种设计,而采用另外一种称为动态扫描的显示方法。动态扫描的意思简单地说就是逐行轮流点亮,这样扫描驱动电路就可以实现多行(比如16行)的同名列共用一套驱动器。具体就1616的点阵来说,把所有同1行的发光管的阳极连在一起,把所有同1列的发光管的阴极连在一起(共阳极的接法),先送出对应第一行发光管亮灭的数据并锁存,然后选通第1行使其燃亮一定时间,然后熄灭;再送出第二行的数据并锁存,然后选通第2行使其燃亮相同的时间,然后熄灭;以此类推,第16行之后,又重新燃亮第1行,反复轮回。当这样轮回的速度足够快(每秒24次以上),由于人眼的视觉暂留现象,就能够看到显示屏上稳定的图形了。采用扫描方式进行显示时,每一行有一个行驱动器,各行的同名列共用一个驱动器。显示数据通常存储在单片机的存储器中,按8位一个字节的形式顺序排放。显示时要把一行中各列的数据都传送到相应的列驱动器上去,这就存在一个显示数据传输的问题。从控制电路到列驱动器的数据传输可以采用并列方式或串行方式。显然,采用并行方式时,从控制电路到列驱动器的线路数量大,相应的硬件数目多。当列数很多时,并列传输的方案是不可取的。采用串行传输的方法,控制电路可以只用一根信号线,将列数据一位一位传往列驱动器,在硬件方面无疑是十分经济的。但是,串行传输过程较长,数据按顺序一位一位地输出给列驱动器,只有当一行的各列数据都以传输到位之后,这一行的各列才能并行地进行显示。这样,对于一行的显示过程就可以分解成列数据准备(传输)和列数据显示两部分。对于串行传输方式来说,列数据准备时间可能相当长,在行扫描周期确定的情况下留给行显示的时间就太少了,以致影响到LED的亮度。解决串行传输中列数据准备和列数据显示的时间矛盾问题,可以采用重叠处理的方法。即在显示本行各列数据的同时,传送下一列数据。为了达到重叠处理的目的,列数据的显示就需要具有锁存功能。经过上述分析,就可以归纳出列驱动器电路应具有的功能。对于列数据准备来说,它应能实现串入并处的移位功能;对于列数据显示来说,应具有并行锁存的功能。这样,本行已准备好的数据打入并行锁存器进行显示时,串并移位寄存器就可以准备下一行的列数据,而不会影响本行的显示4.3 LED显示方式汉字显示屏用于显示汉字、字符及图像信息,在公共汽车、银行、医院及户外广告等地方都有广泛的应用。下面是简单的汉字显示屏的制作,由单片机控制汉字的显示内容。为了降低成本,使用了四块8×8的LED点阵发光管的模块,组成了一个16×16的LED点阵显示屏,如图2.10所示。在这里仅做了十二个汉字的显示,在实际的使用中可以根据这个原理自行的扩展显示的汉字,下面是介绍汉字显示的原理。 图2.10 四块8×8的LED点阵组成16×16的LED点阵LED驱动显示采用动态扫描方法,动态扫描方式是逐行轮流点亮,这样扫描驱动电路就可以实现多行的同名列共用一套列驱动器。以16×16点阵为例,把所有同一行的发光管的阳极连在一起,把所有同一列的发光管的阴极连在一起(共阳的接法),先送出对应第1行发光管亮灭的数据并锁存,然后选通第1行使其燃亮一定的时间,然后熄灭;再送出第2行的数据并锁存,然后选通第2行使其燃亮相同的时间,然后熄灭;.第16行之后,又重新燃亮第1行,反复轮回。当这样轮回的速度足够快(每秒24次以上),由于人眼的视觉暂留现象,就能看到显示屏上稳定的图形。该方法能驱动较多的LED,控制方式较灵活,而且节省单片机的资源。显示数据传输采用串行传输的方法,控制电路可以只用一根信号线,将列数据一位一位传往列驱动器,在硬件方面无疑是十分经济的。但串行传输过程较长,数据按顺序一位一位地输出给列驱动器,只有当一行的各列数据都已传输到位之后,这一行的各列才能并行地进行显示。对于串行传输方式来说,列数据准备时间可能相当长,在行扫描周期确定的情况下,留给行显示的时间就太少了,以致影响到LED的亮度。采用串行传输中列数据准备和列数据显示的时间矛盾,可以采用重叠处理的方法。即在显示本行各列数据的同时,传送下一行的列数据。为了达到重叠处理的目的,列数据的显示就需要有锁存功能。对于列数据准备来说,它应能实现串入并出的移位功能。这样,本行已准备好的数据打入并行锁存器进行显示时,串行移位寄存器就可以准备下一行的列数据,而不会影响本行的显示。LED点阵显示模块进行的方法有两种:4.4LED驱动方式a) 方案一:采用静态锁存方式采用静态锁存方式,将每一个LED发光管的一端接至单片机的一个I/O口,另一端通过电阻接电源。这种方法可以直接驱动LED,原理简单,驱动能力强,LED的亮度也可以通过限流电阻调节,非常方便,但此种方法浪费单片机的I/O口,只适合于较小的系统。b) 方案二:采用动态扫描方式采用动态扫描方式,通过三极管驱动并联在一起的LED发光管的一端(共阴或共2端),LED发光管的另一脚接通用I/O口,控制其亮灭。该方法能驱动较多的LED,控制方式较灵活,而且节省单片机的资源。比较以上两种方案,系统设计中采用方案二。5.硬件设计5.1 电源、单片机系统及其管脚u 电源部分说明:此部分为为电源部分。若电源为家用电源,则需经过降压,整流滤波,稳压等步骤得到一个稳定的5V电压,此电压可作为主电路的电压源。电路中二极管为电源指示灯。 u 单片机系统及其管脚常用的时钟电路设计有两种方式,一种是内部时钟方式,一种是外部时钟方式。本实验采用内部时钟方式,将XTAL1与XTAL2之间跨接一个石英晶振和微调电容,从而构成一个稳定的自激震荡器。电容值取30pF左右,其大小将影响震荡频率的高低、振荡器的稳定性和起振的快速性。为减少线间的寄生电容,晶振和电容应尽能安装得与单片机靠近,保证晶振稳定可靠的工作。 另一部分是复位部分。上电自动复位电路是最简单的复位电路,只需要一个10K左右电阻、两个22pF左右的电容及12MHZ的晶振。有时还需要按键手动复位,此时只要在电容上并联一个按键即可。 单片机信号输出采用串行输出,因此在下一模块的移位寄存器要与该部分的串行口P3.0(RXD)及P3.1(TXD)相连其图形如下图图一 单片机接线图 图二 单片机管脚图5.2点阵及其驱动部分点阵显示是用动态扫描来实现的。在采用扫描方式显示时,由于每行要带动十六个二极管,每行电流较大。若每个二极管按5mA计算,十六个二极管就得80mA电流,超出单片机管脚的承受范围,因此每行都加有一个驱动器,本设计的行驱动用的是十六个pnp型三极管。三极管的发射极接5V电压,集电极接点阵的行线,而其基级本应接单片机,但该接线方式占用为了16个单片机管脚,为了节省单片机管脚,用了一片74HC138译码器,这样就只需要3个管脚了。74HC138的管脚图及其说明如图三。点阵及其驱动部分总体接线图如图五(未画完整)各行的同名列共用一个列驱动,数据通常存储在单片机的存储器中,按8位一个字节的形式存放。由于列线过多,故多采用串行传输。由于每次要传输16位,而且数据要逐位输给驱动器,只有当一行中各列数据都已传输到位后,这一行的各列才能进行并行显示,耗时较长。为了满足以上要求,驱动选择74HC573移位寄存器。74HC573是硅结构的CMOS器件,。74HC573是有8位移位寄存器和一个存储器,三态输出功能。 移位寄存器和存储器是分别的时钟。 数据在SCHcp的上升沿输入,在STcp的上升沿进入的存储寄存器中去。如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个脉冲。 移位寄存器有一个串行移位输入(Ds),和一个串行输出(Q7),和一个异步的低电平复位,存储寄存器有一个并行8位的,具备三态的总线输出,当使能OE时(为低电平),存储寄存器的数据输出到总线。其特点:8位串行输入 /8位串行或并行输出 存储状态寄存器,三种状态; 输出寄存器可以直接清除 100MHz的移位频率。输出能力: 并行输出,总线驱动;串行输出;标准中等规模集成电路 。 74HC573的管脚图及其说明如图四。对3个输入信号进行译码。得到8个输出状态。 S3,S2低电平有效。S1高电平有效。A0,A1,A2,为译码信号输入端,Y0Y7为译码输出端,低电平有效 图三 74HC138管脚图 图四: 74HC573管脚图管脚及其说明:Q1Q8: 八位并行输出端。D8': 级联输出端。OE: 串行数据输入端。74HC573的控制端说明:/OE: 低点平时将移位寄存器的数据清零。LE:上升沿时数据寄存器的数据移位。Q1->Q2->Q3->.->Q8;下降沿移位寄存器数据不变。(脉冲宽度:5V时,大于几十纳秒就行了)VCC:上升沿时移位寄存器的数据进入数据存储寄存器,下降沿时存储寄存器数据不变。(5V时,大于几十纳秒就行了),更新显示数据。/GND: 高电平时禁止输出(高阻态)。如果单片机的引脚不紧张,用一个引脚控制它,可以方便地产生闪烁和熄灭效果。比通过数据端移位控制要省时省力。、6. PROTEUS仿真Proteus仿真时,单片机需要加载程序,加载程序为.HEX文件。本设计利用Keil Vision2, 在新建Keil项目时选择STC89C52单片机作为CPU,将源程序导入,在“Options For Target”对话窗口中,选中“Output”选项中的“Create HEX File”,编译链接后就可以生成.HEX文件。在Proteus ISIS中,选中STC89C52并单击鼠标左键,对STC89C52进行设置,设置单片机时钟频率为12MHz,按照正确的文件路径加载.HEX文件。对单片机设置完毕后就可以开始仿真了。仿真过程中如有硬件问题可在Proteus ISIS中直接修改,如有软件问题可在Keil Vision2中直接修改,通过Keil与Proteus的联合调试就可以得到满意的结果。利用Proteus实现了对点阵式LED滚动汉字显示屏的仿真,说明程序和电路图都没有问题。图五 点阵及其驱动7.软件设计 本软件要求实现如下要求:汉字要稳定、明亮并且文字要以一定速度上升滚动显示。显示屏软件模块:初始化程序、主程序、多字滚动、显示程序、扫描程序。显示程序的主要功能是向屏体提供显示数据,并产生各种控制信号,使屏幕按设计的要求显示。软件设计中,显示屏的软件系统分为两层;第一层是底层的显示驱动程序,第二层是上层的系统应用程序。显示驱动程序负责向屏体送显示数据,并负责产生行扫描信号和其他控制信号,配合完成LED显示屏的扫描显示工作。显示驱动器程序由定时器T0中断程序实现。系统应用程序完成系统环境设置(初始化)、显示效果处理等工作,由主程序来实现。6.1显示驱动程序显示驱动程序在进入中断后首先要对定时器T0重新赋初值,以保证显示屏刷新率的稳定,1/16扫描显示屏的刷新率(帧频)计算公式如下:刷频率(帧频)=1/16×T0溢=1/16×f/12(65536-t) 其中f位晶振频率,t为定时器T0初值(工作在16位定时器模式)。然后显示驱动程序查询当前燃亮的行号,从显示缓存区内读取下一行的显示数据,并通过串口发送给移位寄存器。为消除在切换行显示数据的时候产生拖尾现象,驱动程序先要关闭显示屏,即消隐,等显示数据打入输出锁存器并锁存,然后再输出新的行号,重新打开显示。图六为显示驱动程序(显示屏扫描函数)流程图进入中断消 隐定时器赋初值切换显示数据读取行号并增加1发送新行号,打开显示送新行显示数据退出中断 图六6.2系统主程序本设计的系统软件能使系统LED显示屏各点亮度均匀、充足,可显示图形和文字,显示图形和文字应稳定、清晰无串扰。图形或文字显示有静止、移入移出等显示方式。系统主程序开始以后,首先是对系统环境初始化,包括设置串口、定时器、中断和端口;然后以“卷帘出”效果显示图形,停留约几秒;接着向上滚动显示“单片机点阵毕业设计李斌”这几个汉字及两个图形,然后以“卷帘入”效果隐去图形。由于单片机没有停机指令,所以可以设置系统程序不断的循环执行上述显示效果。单元显示屏可以接收来自控制器(主控制电路板)或上一级显示单元模块传输下来的数据信息和命令信息,并可将这些数据信息和命令信息不经任何变化地再传送到下一级显示模块单元中,因此显示板可扩展至更多的显示单元,用于显示更多的显示内容。如果想改变些事内容,先用字模产生字代码,将用这段代码覆盖原来的代码,即可显示你想要的内容。图七是系统主程序流程图。开始系统初始化“卷帘出”显示效果“上滚屏”显示效果“卷帘入”显示效果图七 8.系统调试u 调试主要分为硬件调试和软件调试: 硬件调试:在焊接电路板的时候,应该从最基本的最小系统开始,分模块,逐个进行焊接测试。在对各个硬件模块进行测试时,要保证软件正确的情况下去测试硬件,要不然发生错误时,不知道到底是哪一方出错了。当然,在设计的过程中也存在着失误和不足,在调试中进行修改了。焊接完成后,检验点阵、及线路的好坏: 检验程序,点阵将自第一排向下(上)点亮。检验无异常,下载主程序u 软件调试:软件为老师所提供,其原理在上一模块以作说明,在这里再作说明,软件经调试无误,直接将其下载到单片机中,看是否达到所要的效果软件部分是先参考书上的例子,然后自己根据硬件电路写程序,由于以前所学是单片机汇编语言,所以这个系统在编写程序过程中有所改进,采用C语言编写以便达到新异的目的,刚开始,编写不会一次性通过,经过仔细分析修改最后编译成功。但是,在实际写如S52中,LED显示屏出现各种各样的乱码,通过再次认真仔细分析多次修改程序后,程序能够正常运行9.设计总结本文设计的点阵LED图文显示屏,能够在目测条件下LED显示屏各点亮度均匀、充足,可显示图形和文字,显示的图形和文字较稳定、清晰。在本次设计过程中,我们得到以下体会:本次毕业设计从二月中旬到现在有一个多月,回顾着这些天我感到学到了很多东西,在写这个心得的时候,我想就这些天的收获,说一说自己内心的想法。本设计是用四个8x8的点阵显示模块组成的16x16的点阵LED图文显示屏,能够在目测条件下LED显示屏各点亮度均匀、充足,可显示图形和文字,显示图形和文字应稳定、清晰无串扰。图形或文字显示有静止、移入移出等显示方式。本系统具有硬件少,结构简单,容易实现,性能稳定可靠,成本低等特点。 总结本文的研究工作,主要做了下面几点工作: 一、通过查阅大量的相关资料,详细了解了LED的发光原理和LED显示屏的原理,了解了LED的现状,清楚地了解了LED显示屏与其它显示屏相比较有那些优点,明确了研究目标。并且通过对单片机资料的查阅和应用,更进一步增加了对单片机知识的理解和运用能力。并证实了自己的思路:“查资料思考总结运用找出差错,再查资料和向别人询问再次运用”的正确性。二,本文设计的LED显示屏能够实现在目测条件下LED显示屏各点亮度均匀、充足,可显示图形和文字,显示图形和文字应稳定、清晰无串扰。图形或文字显示有静止、移入移出等显示方式。三,本文列出了系统具体的硬件设计方案,硬件结构电路图,软件流程图和具体C语言程序设计与调试等方面。四,在这次毕业设计的过程中学会了 Protel 的基本使用,感到Protel对应用电子专业的同学来说是一门很有用的课程。在运用Protel时要格外小心,例如在画PCB电路板的时候,要注意基本的布板原则。例如,在进行PCB布板的时候,滤波电容不够靠近芯片的电源脚和地脚。五,通过这次毕业设计,重新复习并进一步增强了动手的能力,学以致用,把只是运用到实际生活中才是根本目的。六,存在问题:没有考虑仿真软件是一个理想的仿真环境,而实际连接的电路板会由于譬如连接不当,相邻器件间的干扰等等的问题导致在仿真软件中能良好运行的程序,出现显示问题不能显示全(点阵模块不知道有极性接错导致),经过排查和合理的器件摆放焊接,问题也没能解决。总体来说这次的毕业设计不算成功,没达到预想的目的:但学到了知识,提高了能力,完成了任务。有点缺憾是时间有限,实物没能做成功,不能进一步深入和扩散学习和研究。希望有时间可以对程序和电路图作更进一步的改进···10.附 录A主程序 1616的点阵电子屏字符显示器 stc89C52 12MHz晶振 2012 03 17 LRM #include<reg52.h>#define uchar unsigned char#define uint unsigned int uint x,num; uchar code table116= 0x00,0x00,0x00,0x00,0x04,0x08,0x10,0x11,0x11,0x10,0x08,0x04,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x06,0x0C,0x18,0x30,0x20,0x00,0x00,0x00,0x00, / 0x00,0x00,0x00,0x02,0x02,0x02,0x02,0x7F,0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x00, /单 0x00,0x00,0x20,0x10,0x08,0x07,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00, /片 0x00,0x02,0x01,0x00,0x1F,0x00,0x08,0x07,0x00,0x00,0x00,0x07,0x08,0x08,0x06,0x00, /机 0x00,0x00,0x20,0x10,0x07,0x34,0x04,0x04,0x34,0x04,0x07,0x10,0x20,0x00,0x00,0x00, /点 0x00,0x3F,0x02,0x02,0x01,0x00,0x01,0x01,0x01,0x01,0x3F,0x01,0x01,0x01,0x00,0x00, /阵 0x00,0x00,0x20,0x10,0x0F,0x01,0x11,0x0F,0x01,0x3F,0x01,0x01,0x01,0x00,0x00,0x00, /屏 0x00,0x00,0x00,0x02,0x02,0x02,0x02,0x3F,0x02,0x02,0x02,0x02,0x00,0x00,0x00,0x00, /毕 0x00,0x00,0x00,0x10,0x10,0x11,0x1F,0x10,0x10,0x1F,0x11,0x10,0x10,0x10,0x00,0x00, /业 0x00,0x00,0x3E,0x11,0x08,0x02,0x01,0x22,0x16,0x0A,0x16,0x22,0x21,0x21,0x01,0x00, /设 0x00,0x00,0x00,0x1F,0x08,0x04,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,0x00,0x00, /计 0x00,0x00,0x0C,0x06,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x06,0x0C,0x00, / 0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00, /- 0x00,0x00,0x04,0x04,0x04,0x04,0x14,0x24,0x7E,0x05,0x04,0x04,0x04,0x04,0x04,0x00, /李 0x08,0x04,0x03,0x03,0x04,0x08,0x18,0x0F,0x08,0x0F,0x09,0x09,0x07,0x08,0x10,0x08, /斌 0x00,0x00,0x00,0x01,0x03,0x07,0x0F,0x1F,0x3F,0x1F,0x0F,0x07,0x03,0x01,0x00,0x00, 0x00,0x00,0x00,0x00,0x01,0x02,0x04,0x08,0x10,0x08,0x04,0x02,0x01,0x00,0x00,0x00 /心 ; uchar code table216= 0x00,0x10,0x08,0x08,0x08,0x08,0x10,0x00,0x00,0x10,0x08,0x08,0x08,0x08,0x10,0x00, 0x00,0x00,0x00,0x00,0x80,0xC0,0x60,0x30,0x18,0x0C,0x06,0x02,0x00,0x00,0x00,0x00, / 0x00,0x00,0x00,0x00,0xF8,0xAA,0xAC,0xF8,0xAC,0xAA,0xF8,0x00,0x00,0x00,0x00,0x00, /单 0x00,0x00,0x00,0x00,0x00,0xFE,0x50,0x50,0x5E,0x50,0x90,0x00,0x00,0x00,0x00,0x00, /片 0x00,0x00,0x20,0xA0,0xFC,0x60,0xA0,0xF0,0x08,0x08,0x08,0xF0,0x00,0x00,0x00,0x00, /机 0x00,0x00,0x00,0x00,0xC0,0x40,0x40,0x7E,0x48,0x48,0xC0,0x00,0x00,0x00,0x00,0x00, /点 0x00,0xFE,0x22,0x22,0xDC,0x00,0x48,0x68,0x58,0x48,0xFC,0x4A,0x48,0x08,0x00,0x00, /阵 0x00,0x00,0x00,0x00,0xFE,0x0A,0x5A,0xEA,0x4A,0xEA,0x5A,0x4E,0x00,0x00,0x00,0x00, /屏 0x00,0x00,0x00,0x00,0xFC,0x90,0x50,0x00,0x7C,0x90,0x88,0x80,0x40,0x00,0x00,0x00, /毕 0x00,0x00,0x20,0x40,0x80,0x00,0xF8,0x00,0x00,0xFC,0x00,0x80,0x40,0x30,0x00,0x00, /业 0x00,0x10,0x14,0x18,0x90,0x70,0x00,0xF8,0x04,0x04,0x04,0xF8,0x00,0x00,0x00,0x80, /设 0x00,0x00,0x10,0x94,0x58,0x30,0x50,0x40,0x40,0xF8,0x40,0x40,0x40,0x00,0x00,0x00, /计 0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0x60,0x30,0x60,0xC0,0x80,0x00,0x00,0x00,0x00, / 0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00, /- 0x00,0x00,0x00,0x80,0x88,0x48,0xA8,0x98,0xFE,0x98,0xA8,0x48,0x88,0x80,0x80,0x00, /李 0x40,0xC8,0x50,0x40,0xC0,0x40,0x20,0xA8,0x28,0xE8,0x28,0x20,0xFC,0x20,0x28,0x00, /斌 0x00,0x00,0xF0,0xF8,0xFC,0xFC,0xFC,0xF8,0xF0,0xF8,0xFC,0xFC,0xFC,0xF8,0xF0,0x00, 0x00,0x00,0x78,0x84,0x02,0x02,0x02,0x04,0x08,0x04,0x02,0x02,0x02,0x84,0x78,0x00 /心 ; uchar code table3=0x41,0x49,0x51,0x59,0x61,0x69,0x71,0x79,0x42,0x4a,0x52,0x5a,0x62,0x6a,0x72,0x7a; uchar code table4=0x81,0x89,0x91,0x99,0xa1,0xa9,0xb1,0xb9,0x82,0x8a,0x92,0x9a,0xa2,0xaa,0xb2,0xba; void zhu() TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1;x=num=0; void delay(uint i) uchar j; while(i-)for(j=0;j<120;j+); void main() uchar i; zhu (); while(1)for(i=0;i<16;i+)P2=table3i;P0=table1xi;delay(2);for(i=0;i<16;i+)P2=table4i;P0=table2xi;delay(2);void t0_time () interrupt 1TH0=(65536-50000)/256;TL0=(65536-50000)%256;num+;if(num=10)num=0;x+;if(x=18)x=0;;11选用器材清单STC89C52RC单片机 18x8点阵 3.2mm 474hc573锁存器 274hc138译码器 2排阻 9针 1电阻 10k 1DIP40针插座 1DIP20针插座 2DIP16针插座 28.5x8.5自锁开关 1cw7805三端稳压器 1LED指示灯3mm 1电解电容10uF 16v 1 470uf 16v 1瓷片电容22pf 2晶振12MHZ 1万用板10x15cm 1按键 2铜柱3mmx15mm 4电阻100 32s9015三极管 16电阻470 16 12. 附录B 作品实物图下图为总体电路图13.参考文献1 郭天祥 新编单片机C51视频教程12 基于单片机的LED显示屏的汉字显示.中国科技信息23 新编单片机AT89C51教程3 4 单片机点阵实例分析(来源于图书馆)45 计算机辅助设计EDA56 计算机应用与接口技术614. 鸣谢在设计过程中,我通过查阅大量有关资料,与同学交流经验和自学,并向老师请教等方式,使自己学到了不少知识,也经历了不少艰辛,但收获同样巨大。在整个设计中我懂得了许多东西,也培养了我独立工作的能力,树立了对自己工作能力的信心,相信会对今后的学习工作生活有非常重要的影响。而且大大提高了动手的能力,使我充分体会到了在创造过程中探索的艰难和成功时的喜悦。虽然这个设计做的也不太好,但是在设计过程中所学到的东西是这次毕业设计的