课程设计报告LED点阵广告牌的设计.docx

上传人:scccc 文档编号:14017976 上传时间:2022-01-30 格式:DOCX 页数:26 大小:160.42KB
返回 下载 相关 举报
课程设计报告LED点阵广告牌的设计.docx_第1页
第1页 / 共26页
课程设计报告LED点阵广告牌的设计.docx_第2页
第2页 / 共26页
课程设计报告LED点阵广告牌的设计.docx_第3页
第3页 / 共26页
课程设计报告LED点阵广告牌的设计.docx_第4页
第4页 / 共26页
课程设计报告LED点阵广告牌的设计.docx_第5页
第5页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《课程设计报告LED点阵广告牌的设计.docx》由会员分享,可在线阅读,更多相关《课程设计报告LED点阵广告牌的设计.docx(26页珍藏版)》请在三一文库上搜索。

1、桂林航天工业学院实习报告课程名称单片机课程设计开课学期2014-2015 春实验室南实408班 级组 员:指导教师:吴慧峰日 期:摘要本文介绍了一款以单片机AT89C5劾控制器的LED点阵显示屏系统的设 计。该系统可实现中英文字符以及特殊字符的显示和动态特效显示,通过控 制按钮,可以实现不同效果间切换,达到实际应用中广告牌的要求。并且可 以通过级连的方式来扩大显示屏幕的尺寸以达到增加显示内容的目的。系统采用PC机作为上位机,上位机向单片机发送控制命令和上位机所存 储的显示代码,AT89C5弹片机接U并处理PC机的控制命令以及显示代码, 由显示驱动模块驱动一个16X16分辨率的LED点阵显示屏的

2、扫描显示。选用 两片74HC13繇码器作为I /O 口的扩展,与LED点阵显示屏的控制列脚相连, 16X16的点阵显示由4块8X8点阵组成。软件选用C语言程序编写。外部中 断0输入口接控制按钮实现不同效果间的转换。所选用的AT89C5弹片机具有价格低廉程序写入方便的特点使得整个系统方便维护和检修。除此之外, 该系统只占用了单片机少量的I /O 口和内存,为系统留下了功能扩展的空间。1绪论课题背景选题背景研究现状及发展趋势论文主要内容2系统总体方案设计系统硬件设计方案系统软件设计方案3硬件系统设计硬件整体设计概述控制单元AT89C52基本介绍控制系统设计译码器LED点阵显示屏LED点阵显示屏的基

3、本介绍LED点阵显示屏的工作原理4软件系统设计程序设计显示程序的设计点阵数据表达方式动态特效显示程序的设计外部中断程序5系统调试系统调试的基本过程软件调试系统调试的结果结论致谢参考文献附录附录1:硬件原理图附录2: C语言程序1绪论课题背景选题背景LED显示屏是八十年代后期在全球迅速发展起来的新型信息显示媒体,显示屏由几万到几十万个半导体发光二极管像素点均匀排列组成。利用不同的 材料可以制造不同色彩的LED像素点。目前应用最广的是红色、绿色、黄色。 而蓝色和纯绿色LED的开发已经达到了实用阶段。LED显示屏可以显示变化的 数字、文字、图形图像;不仅可以用于室内环境还可以用于室外环境,具有 投影

4、仪、电视墙、液晶显示屏无法比拟的优点。LED显示屏的应用涉及社会经济的许多领域,主要包括:(1)证券交易、金融信息显示。(2)机场航班动态信息显示。(3)港口、车站旅客引导信息 显示。(4)体育场馆信息显示。(5)道路交通信息显示。(6)调度指挥中心 信息显示。(7)邮政、电信、商场购物中心等服务领域的业务宣传及信息显 示。(8)广告媒体新产品等。研究现状及发展趋势LED之所以受到广泛重视而得到迅速发展,是与它本身所具有的优点分不 开的。这些优点概括起来是:亮度高、工作电压低、功耗小、大型化、寿命 长、耐冲击和性能稳定。LED的发展前景极为广阔,目前正朝着更高亮度、更 高耐气候性、更高的发光密

5、度、更高的发光均匀性,可靠性、全色化方向发 展。在街上随处可见LED广告牌,从最初的静态显示,到后来的左移滚动、 右移滚动、上移、下移、闪烁、卷动等各种花样显示,由起初的一种控制, 向多种控制发展,现越来越趋于多样化,美观化。论文主要内容本设计为一款能够显示不同字符的 LED点阵广告牌,能够显示中文、英 文及特殊符号,并通过控制按钮能够实现不同显示效果间的切换,有左移、 上移和闪烁。论文包括系统总体方案设计,硬件系统设计,系统软件设计,系统调试 及结论。在系统总体方案设计中给出了系统设计硬件框图及软件功能结构框 图。在硬件系统设计中给出了硬件原理图,各部分电路图,元件原理图等。 在系统软件设计

6、中,有系统主程序及功能模块流程图等。系统调试包括软件 调试和硬件调试,并给出了调试的结果。附录中存放有硬件原理图及完整的 C 语言程序2系统总体方案设计系统硬件设计方案以pc机作为上位机存储和处理显示内容用串行通信的方式将显示内容和 控制指令传输到单片机系统,单片机根据上位机传输来的内容和指令通过端 口译码扩展后驱动4块8X 8LED点阵模块构成的16X 16的LED点阵显示屏。 方案框图见图2-1。图2-1硬件设计框图系统软件设计方案软件的设计需要实现以下功能:显示不同字符的LED点阵广告牌,至少显示两个汉字; 有中断控制程序实现不同效果间切换,如左移、上移、闪烁等;能够显示自定义字符。由

7、此,软件大致可以分为主程序,中断控制程序,各种特效显示子程序三个主要部分组成。 具体结构图见图2-2 o图2-2软件功能结构框图本文软件的编写用Keil软件以及C语言编写,编译完成后,生成后缀名 为.hex的可执行文件,用单片机硬件仿真开发工具进行电路原理实验及综合 系统仿真,进行各种运行和调试。最后再下载到单片机中执行。3硬件系统设计硬件整体设计概述显示系统具体设计主要由上位机,单片机系统,控制电路,译码电路,16 X 16的点阵屏五部分组成。具体工作流程为:上位PC机编写好程序后下载到 单片机中,单片机执行相应的指令处理显示代码将显示内容通过I/O 口输出并且译码电路完成扩展并输出,最后达

8、到LED显示屏的显示电流、电压要求进而使显示屏显示内容。根据硬件的功能结构图选取合适器件,器件不但要求能实现所要求的功 能还要能兼容至整个系统之中。通过查阅资料和对比最终的硬件原理图见图 3-1。图3-1硬件原理图(换图)该系统所要实现的功能和要求有以下几点:1) LED显示屏的面积必须满足至少显示一个汉字的标准,并且显示要清晰。2) 能够进行不同效果显示间的切换。3) 两个译码器不能同时工作。单片机要能够处理控制LED显示屏的显示,并且端口驱动能力要足以驱 动译码电路,执行频率要能达到扫描显示的最低要求。控制单元控制单元是整个显示系统的核心,该系统中采用 52系列单片机为核心器 件,用来和上

9、位机通信处理上位机发送的控制指令和显示内容。并且直接输 出数据通过译码电路控制LED显示屏的显示内容和显示状态。AT89C52基本介绍AT89C5提美国ATME公司生产的低功耗,高性能单片机,片内含8KB的 可系统编程的Flash只读程序存储器,器件采用ATME公司的高密度、非易失 性存储技术生产。ATME公司的功能强大,低价位AT89C5弹片机可提供许多 高性价比的应用场合,可灵活应用于各种控制领域。AT989C52M有以下特点:与MCS-51产品指令系统完全兼容;8KB可程序 设计Flash内存;1000次擦写周期;全静态工作模式:0Hz 24MHz三级加 密程序内存;32个可编程I/O

10、口线;3个16位定时/计数器;8个中断源;全 双工串行UART!道;低功耗空闲和掉电模式;中断可从空闲模唤醒系统。AT89C5册 PDIP封装引脚图见图3-2图3-2 AT89C52引脚图控制系统设计控制电路设计中采用的是单片机系统,该系统必须要是工作在一个最小 系统(指单片机的可以的最小配置系统)。AT89C5册最小系统包括了复位电 路,选定一定数量的I/O 口作为控制口控制外部的各种器件和数据的输出。 根据功能选择一定的单片机接口添加外围的器件,具体电路见图3-3。图3-3 控制部分电路图在该系统中,P0、P1、P2各口主要用作LED显示数据的控制输出。由于 端口的驱动能力有限所以在 P0

11、 口外接了 10K的9脚排阻来提高驱动能力。P0 的8个口和P2的8个口分别接LED点阵显示屏的16个引脚,用来控制行。、 分别接两块74HC138W A、B、C端,向74HC13睡入串行数据经过其转换后 并行输出,与LED点阵显示屏的另外16个引脚相连,控制列。接一片74HC138 的使能控制端E2、E3,当为低电平使允许输出,接另一片 74HC13期使能控 制端E1,当为高电平使允许输出,分别控制两个译码器。由于 P3 口是特殊功 能口,在该系统中基本是采用其第二功能。将外部中断0 口外接控制按钮,实现不同特效显示间的切换。译码器74HC13提一款高速CMO器件,74HC13叫脚兼容低功耗

12、肖特基 TTL (LSTTD系列。74HC13繇码器可接受3位二进制加权地址输入(A0, A1和 A2),并当使能时,提供8个互斥的低有效输出(Y0至Y7)。74HC13潴有3 个使能输入端:两个低有效(E1和E2)和一个高有效(E3)。除非E1和E2 置低且E3置高,否则74HC138各保持所有输出为高。利用这种复合使能特性, 仅需4片74HC138E片和1个反相器,即可轻松实现并行扩展,组合成为一 个1-32 (5线到32线)译码器。任选一个低有效使能输入端作为数据输入, 而把其余的使能输入端作为选通端,则 74HC13盼可充当一个8输出多路分 配器,未使用的使能输入端必须保持绑定在各自合

13、适的高有效或低有效状态。译码电路的功能是为了解决单W那-4 I虺皆体足。译码所用器件为74HC138 具体电路见图3-4。LED点阵显示屏LED点阵显示屏的基本介绍LED显示屏是一种通过控制半导体发光二极管的显示方式,用来显示文 字、图形、图像、动画、行情、视频、录像信号等各种信息的显示屏幕。本设计的所用的LED点阵显示屏是由64个半导体发光二极管像素点均匀排列组 成。利用不同的材料可以制造不同色彩的LED像素点,其中用到的是红色。Proteus中8X8LED点阵显示屏 MATRIX-8X8-RED逆时钟旋转后,左边 为行控制,接高电平,右边为列控制,接低电平,从上到下的列引脚控制的 是从右往

14、左对应的列,见图3-5。图中第三行接高电平,第二并幅力1翼%JW件置的LED灯点亮。LED点阵显示屏的工作原理本设计采用动态显示方式。动态显示扫描方式是指逐位轮流点亮每位显示器,即每个显示模块的位 选线被轮流选中,多个显示块公用一组段选,段选数据仅对位选线被选中的 显块有效。对于每一位显示器来说,每隔一段时间点亮一次。虽然每位的字 符是在不同时刻出现的,而在同一时刻,只有一位显示,其他各位熄灭,但 由于LED显示器的余晖和人眼的视觉暂留作用,只要每位显示间隔足够短, 则可以造成多位同时亮的假象,达到同时显示的效果。在这种方式下其显示驱动电路可重复利用,引线也大大减少,从而使硬 件成本降低,且屏

15、幕上的发光二极管轮流发光,使用时的耗电量大大降低。 大屏幕的制造、维护要容易许多,可靠性也增加了。由四块8X 8LED点阵显示屏扩展成16X 16LED点阵显示屏的具体连线见 图 3-6。图3-6 LED点阵显示电路图中上面两块显示平屏对应的控制行引脚相连,并接到P0 口 ;下面两块显示屏对应的控制行引脚相连,并接到 P2 口;左边两块对应的控制列引脚相 连,并接到译码器的输出端;右边两块对应的列引脚相连,并接到另一片译 码器的输出端。4软件系统设计程序设计系统软件采用C语言编写,按照模块化的设计思路设计。首先分析程序 所要实现的功能,程序要实现不同动态特效显示(左移、上移及闪烁)间的 切换。

16、主程序的工作流程见图4-2。程序开始时首先必须对单片机曲寿祢增程发中初始化的内容包括:中 断初始化,外部中断触发方式的选择,移动速度初始化等。初始化完成后程 序进入待机状态等待中断的发生,该程序中主要用到了外部中断 0。外部中断0由按键的电平变化触发,其主要功能是选择LED点阵显示屏的动态特效显示 方式,是左移、上移还是闪烁。中断产生后由预先初始化时设定跳转执行中 断子程序。中断程序设定了 LED点阵显示屏所要显示的内容和显示的方式, 最后执行的是各种显示程序。按照设定的方式和内容显示出所需要的内容。显示程序的设计点阵数据表达方式本设计用HZDotReader软件取字模。设置取点方式为纵向 8

17、点下高位, 字节排列为上到下、左到右。也就是以纵向8个连续点构成一个字节,最上边的点为字节的最低位,即BIT0,最下边的点为BIT7。16X 16汉字按每行16字 节,共2行取字模,每个汉字共32字节,点阵四个角取字顺序为左上角一左下 角f右上角f右下角,见电4 4- 0 1516图中,数据是纵向的,一个像嚎好龙遁肉曜。8个像素对应一个字节,字 节的位顺序是上低下高,懒号上到下8个点的状态是“*”(*为黑点,-为白点),则转换的字轴馥据是0x08(B0000_0001)。一幅16X16的点阵 画面点阵数据按照1 2 331 32存储。所以一幅画面的数据量为 32字节。 画面显示时选通的第i歹源

18、应的.数组元素为第31 32和1+16个元素。图中“信” 字的字模数据如下:0x80,0x00,0xC0,0x00,0x70,0x00,0xFC,0x7F,0xFF,0x7F,0x0F,0x00,0xAA,0x7E,0xA8,0x7E, 0xA9,0x22,0xAF,0x22,0xAE,0x22,0xAA,0x22, 0xA8,0x7E,0xA8,0x7E,0x08,0x00,0x08,0x00 。动态特效显示程序的设计动态显示程序分为左移显示、上移显示、闪烁显示三种显示方式。当主 程序中判断为左移显示方式时,先左移显示初始化,之后进入左移循环控制, 判断左移的字符个数,显示一幕,再判断是否有

19、中断,如无则调用左移显示 子程序,否则进入中断,初始化各值。若判断为上移显示方式或闪烁显示方 式时,单片机的执行步骤同上。主程序中,左移子程序流程图及上移子程序流程图见图4-3。根据显示数据的存储点叁输 W 竭1僧呈序个ED列与数据逻辑列的方法来实 现程序的左右移动。显示数据与列的对应关系为:第 i列对应的数据为数组 中i和第2Xi个数据。所以送入后一列的数据则相当于画面左移移位,同理 送入前一列数据相当于右移一位。如此循环则产生一幅稳定运动的画面。显示数组中,第1至16个元素的第0至第7位LED显示屏中的第1至第 8行。同理第17至32个元素的第0至第7位LED显示屏中的第9至第16行。 所

20、以将元素数据进行逻辑位移便能产生上下移动的效果。实现闪烁效果的原理为:第一个字扫描完后,就扫描第二个子,而一个 字有32个字节,因此每隔32个字节送入P0和P2 口,即当第一个字节和第 二个字节分别送入P0和P2 口时,进行16列扫描后,此时送入P0和P2 口的 分别是第33和第34个字节。闪烁子程序流程图见图4-4。图4-4闪烁显示程序流程图外部中断程序本设计用口外部中断0作为控制按钮,控制不同特效显示间的切换。选 用电平触发方式, 格端输入低电平时,为有效的中断请求信号,置位 IE0。 CPUft每一个机器周期采样 E引脚的输入电平。当采样到低电平时置“ 1” IE0;当采样到高电平时,清

21、“ 0” IE0。采用电平触发方式时,外部中断源信 号必须保持低电平有效,知道该中断被 CPU向应,同时在该中断服务程序执 行完之前,外部中断源信号必须清除;否则将产生另一次中断请求。按钮按下时CPURI样到低电平,执行中断程序,初始化移动速度及各变 量,flag值加一,改变显示方式。5系统调试系统调试的基本过程软件调试软件调试主要是软件编译和将各功能块程序分别写入以验证其功能的可实现性。使用Keil软件编写C语言程序时就应不断地进行编译,查找出错误。 确定程序无误后,对所有程序进行编译,编译成功生产后缀名为.hex的可执行文件。在Proteus仿真软件中画出电路原理图,单击单片机元件,将其可

22、 执行文件设置为之前生成的后缀名为.hex可执行文件,最后单击仿真工具栏 中的运行按钮,整个系统就开始仿真运行,这时可对各功能进行测试。可将 Proteus和Keil进行联调,其步骤如下:1) 搜索到Proteus安装目录下文件,将其复制到 Keil安装目录的 C51BIN目录中。2) 编辑Keil安装目录下的文件,加入(“PROTEUSEBU03) 在Keil中打开要调试的工程,单击Project中Options for Targetl 菜单,在弹出的对话框中选中 Debug标签页,进行数据配置。生成可执行文 件。4) 在Proteus中打开设计好的电路原理图,单击单片机元器件,将其 可执行

23、文件设置为要调试的Keil工程所生成的课执行文件。系统调试的结果对调试中出现的问题进行了分析,得出以下原因和修改办法。LED显示屏显示不正确,经过检查及查阅资料发现实际 LED显示屏的引脚 并不是一排接阴极一排接阳极,而是杂乱无章的。修改办法是将用万用表 测弓I脚,重新写下排列,重新焊连线。经过调试和修改,系统实现了题目所要求的中英文字符以及特殊字符的 显示,能够通过控制按钮实现不同动态效果间的切换。结论接手题目之后从互联网上对LED进行了详细的资料收集。北京奥运会开 幕式盛典上利用LED制造出的变换无穷、美轮美奂、气势磅礴的各种图像, 给全世界留下震撼的印象,也让国人对LEDT了全新的认识。

24、LED显示屏越来 越受到广泛应用,它不仅价格低廉,且省电又清晰,有很大的发展前景。从设计之初就确定了参照街道上广告牌显示屏的实现方法和实际情况设 计一款小屏幕的LED点阵显示屏。在查阅了大量的资料后确定了题目的设计 方案。整个设计采用AT89C52故核心控制器,74HC138a成译码电路。经过一 段时间的工作,终于完成了基于 51单片机的LED点阵广告牌的设计,项目所 要求的功能全部达到。这次设计收获颇多,不仅是所作题目涉及到的软硬件 知识,还有更为重要的实际经验和过程中所发现的问题。1) 设计之前应该进行大量的资料收集和分析,确定一个清晰的设计思 路。2) 器件选择时要详细阅读器件使用手册,

25、不但要考虑器件的功能实现 还要考虑器件在整个系统中的兼容性。3) 硬件的系统的建立必须合理和稳定,实物建立之前最好进行仿真这 样才能为软件提供一个可靠的试验平台。4) 软件的编写不但要实现功能还要不断的优化、简练、易读。5) 实物的引脚往往与仿真图中的引脚不同,应该注意。随着课题的进行,对LED的了解也越来越深入。LED技术也会进一步发展, 其应用将会更加广泛。可以设想利用 LED的高稳定性和低能耗,再与无线通 信技术相结合在沙漠深处或者人迹罕至的雪山之颠树立一块依靠太阳能充 电,通过无线传输方式更改显示内容的信息板为登山者提供指示和天气信息, 为沙漠迷路的人指引方向。设计结束了,但学习还在继

26、续。相信通过此次设计所得到的知识、心得、 经验乃至感受都会让我在以后的日子里受益匪浅。致谢这次能够圆满完成毕业设计首先要感谢吴慧峰老师,感谢他在课程设计 期间的指导、勉励和督导。同时感谢教过我们专业课程的老师们,感谢他们 对我们知识增长所付出的辛勤劳动。还要感谢一起做课程设计的同学,他们 也给予了很大的帮助,尤其是一些细节问题。感谢实验室老师给我们提供实 验环境和器材。参考文献1文哲雄.用单片机控制LED显示屏D.佛山:佛山科学技术学院,1995.2彭宁,只佩华.单片机对LED大屏幕显示的控制系统J.河北大学学报(自然科学版),1993, 13(3): 86-89.3乔世杰.小波图像编码中的称

27、边界延拓法J.中国图像图形学报,2000, 5(9): 725-729.4李志强等.基于VC+ +的LED点阵显示屏控制系统设计 无线互联科技,2012, (2): 70-71 .5王晓涛.基于单片机控制的LED点阵显示屏在煤矿的设计与应用J.中国科技博览,2011,(36):640-641.6 Marston, R. Radio-Electronics, Working with LED display driversJ. Mar1992, Vol. 63Issue 3.附录2: C语言程序附录附录1:硬件原理图叫5型LAW用”凶3 pzuij PWiHwagDLMKr-E川R川町MENIF

28、.JMP/*本次显示程序的设计分三个阶断第一阶段:左移显示方式的设计第二阶段:上移显示方式的设计第三阶段:闪烁显示方式的设计*/#include #define uchar unsigned char#define uint unsigned intuchar table2=0xE0,0x0F,0x10,0x10,0x08,0x20,0x08,0x20, 0x08,0x20,0x10,0x10,0xE0,0x0F,0x00,0x00,/*O*/ 0x08,0x20,0xF8,0x3F,0x88,0x20,0xC0,0x01,上移显示的字符0x28,0x26,0x18,0x38,0x08,0x2

29、0,0x00,0x00; /*K*/ /* */uchar code table1=0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, 0x20,0x00,0x24,0x80,0x24,0x80,0xA4,0xDF, 0xFC,0x5F,0xFC,0x60,0xA4,0x30,0xBF,0x1E, 0xBF,0x1E,0xA

30、4,0x30,0xFC,0x60,0xFC,0x4F, 0xA4,0xCF,0x24,0x80,0x24,0x80,0x20,0x00, /*0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0x44,0x00,0x44,0x80,0x44,0xC0,0x44,0x60, 0x44,0x38,0xDF,0x1F,0xDF,0x07,0x54,0x02, 0x74,0x42,0x64,0xC2,0x5F,0xC2,0x5F,0x7E, 0x44,0x3E,0x44,0x00,0x44,0x00,0x44,0x00, /* 0X00,0X00,0X00,0X00,0X

31、00,0X00,0X00,0X00, 0xF8,0x3B,0x0C,0x4E,0x04,0x5C,0x04,0x76, 0x0C,0x62,0xF8,0x63,0xC0,0x58,0x00,0xCC, 0x00,0x84,0x00,0x00,0x00,0x00,0x00,0x00, /*& 0x00,0x00,0xF2,0x01,0xF2,0x41,0x12,0xC1, 0x1E,0xFF,0x1E,0x7F,0xC0,0x87,0xDE,0x87, 0x5E,0x84,0xF2,0xFF,0xF2,0xFF,0x52,0x44, 0x5E,0x54,0xDE,0xF7,0xC0,0xE7,0

32、x00,0x40,/* 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, 0x00,0x00,0x18,0x00,0x04,0x00,0x02,0x03, 0x02,0x04,0x02,0x08,0x04,0x08,0x18,0x08, 0x18,0x08,0x04,0x08,0x02,0x08,0x02,0x04, 0x02,0x03,0x04,0x00,0x18,0x00,0x00,0x00, /* 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00

33、, 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00; /* uchar code table3=贲 CEADA */芳 CB7BC */CAFA1 */强 CC7BF */笑脸符号CDEB1 */左移显示的字符*/口 ”,0*/0x00,0x00,0x00,0x00,0xFC,0x7F,0x04,0x40, 0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x40, 0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x40, 0xFC,0

34、x7F,0x00,0x00,0x00,0x00,0x00,0x00,/*” 0x00,0x00,0x00,0x00,0xF8,0x0F,0xF8,0x0F, 0x48,0x04,0x48,0x04,0x48,0x04,0xFF,0x3F,电”,1*/工”,2*/爱心符号,3*/学”,4*/院,5*/闪烁显示字符*/0xFF,0x7F,0x48,0x44,0x48,0x44,0x48,0x44, 0xF8,0x4F,0xF8,0x4F,0x00,0x70,0x00,0x70,/* 0x00,0x20,0x00,0x20,0x02,0x20,0x02,0x20, 0x02,0x20,0x02,0x

35、20,0x02,0x20,0xFE,0x3F, 0xFE,0x3F,0x02,0x20,0x02,0x20,0x02,0x20, 0x02,0x20,0x02,0x20,0x02,0x20,0x00,0x20,/*0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x00, 0x10,0x03,0x08,0x04,0x04,0x08,0x08,0x10, 0x10,0x20,0x10,0x20,0x08,0x10,0x04,0x08, 0x08,0x04,0x10,0x02,0x20,0x01,0xC0,0x00,/*” 0x40,0x00,0x70,0x02,0x30,0

36、x02,0x12,0x02, 0x5E,0x02,0x5C,0x02,0x54,0x42,0x51,0xC2, 0x5F,0xFF,0xDE,0x7F,0xD4,0x02,0x58,0x02, 0x5F,0x02,0x77,0x02,0x32,0x02,0x10,0x02,/*” 0xFE,0xFF,0xFE,0xFF,0x32,0x02,0x7A,0x06, 0xCE,0x87,0x8E,0xC3,0x2C,0x71,0x24,0x3F, 0x25,0x0F,0x27,0x01,0x26,0x7F,0x24,0xFF, 0x24,0x81,0x2C,0x81,0x0C,0xF1,0x04,0

37、xF1,/*“ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00; /* uchar v,flag,temp;ucha门,j,k,shuz,shub,temp1;uchar a,b,c,d,e,f,numa,numb;uchar ii,jj,kk;uchar iii,jjj,kkk;uchar a3,b3;uchar nu

38、m3,temp3;uchar temp2;/*各变量值的初始化*/void init();/*主函数的初始化声名*/void init1();/*左移显示方式的初始化声名*/void init2();/*上移显示方式的初始化声名*/void init3();/*闪烁显示方式的初始化声名*/void disp1();/*左移显示子程序声名*/void disp2();/*上移显示子程序声名*/void disp3();/*闪烁显示子程序声名*/void delay(uint z)/*延时函数声名及定义*/uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);void m

39、ain()init();while(1) 主循环 if(flag%3=1)/判断是不是左移显示方式init1(); 左移显示初始化while(flag%3=1) /左移循环控制 for(i=0;i=a;i+) 判断左移的字符个数for(j=0;j=v;j+) /向左移动的速度由变量 v控制for(k=i*2;k(i*2+32);)/ 显示一幕if(flag%3=1)/判断有没有中断,flag的值有没有变化disp1(); 若没有中断调用左移显示子程序else i=a;j=v;k=(i*2+32);/若有中断了初始化左移的各变量if(flag%3=2)/判断是不是上移显示方式init2(); 上

40、移显示初始化while(flag%3=2) /上移循环控制_for(ii=0;ii=15;ii+)/ 上移缓冲for(jj=0;jj=v;jj+) / 向上移动的速度由变量 v控制for(kk=0;kk=15;kk+)/ 显示一幕if(flag%3=2)/判断有没有中断,flag的值有没有变化disp2(); 若没有中断调用左移显示子程序else ii=15;jj=v;kk=15; /若有中断了初始化上移的各变量 delay(1); if(flag%3=0)/判断是不是闪烁显示方式 init3();闪烁显示初始化while(flag%3=0)/闪烁循环控制判断闪烁显示的字符个闪烁显示字符的速度

41、由变for(iii=0;iii=6*32;iii=iii+32)/数for(jjj=0;jjj=v*10;jjj+)量v控制for(kkk=0;kkk1;d=b1;f=a(8-1);c=c|d;table2numa=c;e=e|f;table2numb=e;)P0=a;P2=b;P1=temp2;temp2+;if(temp2=0x10)temp2=0x00;delay(1);)void init3() /闪烁显示方式各变量的初始化P0=0;P2=0;num3=0;temp3=0;/闪烁显子程序void disp3()a3=table3iii+(num3+);b3=table3iii+(num3+);P0=a3;P2=b3;P1=temp3+;delay(1);/外部中断0的中断程序void timer0() interrupt 0v=8; /初始化移动速度flag+; /flag 值加1,改变显示方式temp1=0x00;temp2=0x00;temp3=0x00;

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

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


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