《专业课程设计方案报告LED点阵广告牌的设计.doc》由会员分享,可在线阅读,更多相关《专业课程设计方案报告LED点阵广告牌的设计.doc(33页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、桂林航天工业学院 实习汇报课程名称 单片机课程设计 开课学期 -春 实 验 室 南实408 班 级 0922z01 组 员:冯基恒(学号:0922z0102)肖淼 (学号:0922z0103)指导老师: 吴慧峰 日 期: .7 摘要本文介绍了一款以单片机AT89C52为控制器LED点阵显示器系统设计。该系统可实现中英文字符和特殊字符显示和动态特效显示,经过控制按钮,能够实现不一样效果间切换,达成实际应用中广告牌要求。而且能够经过级连方法来扩大显示器幕尺寸以达成增加显示内容目标。系统采取PC机作为上位机,上位机向单片机发送控制命令和上位机所存放显示代码,AT89C52单片机接收并处理PC机控制命
2、令和显示代码,由显示驱动模块驱动一个1616分辨率LED点阵显示器扫描显示。选择两片74HC138译码器作为I /O口扩展,和LED点阵显示器控制列脚相连,1616点阵显示由4块88点阵组成。软件选择C语言程序编写。外部中止0输入口接控制按钮实现不一样效果间转换。所选择AT89C52单片机含有价格低廉程序写入方便特点使得整个系统方便维护和检修。除此之外,该系统只占用了单片机少许I /O口和内存,为系统留下了功效扩展空间。 目 录1 绪论11.1 课题背景11.1.1 选题背景11.1.2 研究现实状况及发展趋势11.2 论文关键内容12 系统总体方案设计22.1 系统硬件设计方案22.1 系统
3、软件设计方案23 硬件系统设计33.1 硬件整体设计概述33.2 控制单元43.2.1 AT89C52基础介绍43.2.2 控制系统设计43.3 译码器53.4 LED点阵显示器63.4.1 LED点阵显示器基础介绍63.4.2 LED点阵显示器工作原理74 软件系统设计94.1 程序设计94.2 显示程序设计104.2.1 点阵数据表示方法104.2.2 动态特效显示程序设计104.3 外部中止程序125 系统调试135.1 系统调试基础过程135.1.1 软件调试135.2 系统调试结果14结论15致谢16参考文件17附录18附录1:硬件原理图18附录2:C语言程序191 绪论1.1 课题
4、背景1.1.1 选题背景LED显示器是八十年代后期在全球快速发展起来新型信息显示媒体,显示器由几万到几十万个半导体发光二极管像素点均匀排列组成。利用不一样材料能够制造不一样色彩LED像素点。现在应用最广是红色、绿色、黄色。而蓝色和纯绿色LED开发已经达成了实用阶段。LED显示器能够显示改变数字、文字、图形图像;不仅能够用于室内环境还能够用于室外环境,含有投影仪、电视墙、液晶显示器无法比拟优点。LED显示器应用包含社会经济很多领域,关键包含:(1)证券交易、金融信息显示。(2)机场航班动态信息显示。(3)港口、车站旅客引导信息显示。(4)体育场馆信息显示。(5)道路交通信息显示。(6)调度指挥中
5、心信息显示。(7)邮政、电信、商场购物中心等服务领域业务宣传及信息显示。(8)广告媒体新产品等。1.1.2 研究现实状况及发展趋势LED之所以受到广泛重视而得到快速发展,是和它本身所含有优点分不开。这些优点概括起来是:亮度高、工作电压低、功耗小、大型化、寿命长、耐冲击和性能稳定。LED发展前景极为宽广,现在正朝着更高亮度、更高耐气候性、更高发光密度、更高发光均匀性,可靠性、全色化方向发展。在街上随地可见LED广告牌,从最初静态显示,到以后左移滚动、右移滚动、上移、下移、闪烁、卷动等多种花样显示,由起初一个控制,向多个控制发展,现越来越趋于多样化,美观化。1.2 论文关键内容本设计为一款能够显示
6、不一样字符LED点阵广告牌,能够显示汉字、英文及特殊符号,并经过控制按钮能够实现不一样显示效果间切换,有左移、上移和闪烁。论文包含系统总体方案设计,硬件系统设计,系统软件设计,系统调试及结论。在系统总体方案设计中给出了系统设计硬件框图及软件功效结构框图。在硬件系统设计中给出了硬件原理图,各部分电路图,元件原理图等。在系统软件设计中,有系统主程序及功效模块步骤图等。系统调试包含软件调试和硬件调试,并给出了调试结果。附录中存放有硬件原理图及完整C语言程序。2 系统总体方案设计2.1 系统硬件设计方案以PC机作为上位机存放和处理显示内容用串行通信方法将显示内容和控制指令传输到单片机系统,单片机依据上
7、位机传输来内容和指令经过端口译码扩展后驱动4块88LED点阵模块组成1616LED点阵显示器。方案框图见图2-1。图2-1 硬件设计框图2.1 系统软件设计方案软件设计需要实现以下功效:显示不一样字符LED点阵广告牌,最少显示两个汉字;有中止控制程序实现不一样效果间切换,如左移、上移、闪烁等;能够显示自定义字符。由此,软件大致能够分为主程序,中止控制程序,多种特效显示子程序三个关键部分组成。具体结构图见图2-2。图2-2 软件功效结构框图本文软件编写用Keil软件和C语言编写,编译完成后,生成后缀名为.hex可实施文件,用单片机硬件仿真开发工具Proteus7.5进行电路原理试验及综合系统仿真
8、,进行多种运行和调试。最终再下载到单片机中实施。3 硬件系统设计3.1 硬件整体设计概述显示系统具体设计关键由上位机,单片机系统,控制电路,译码电路, 1616点阵屏五部分组成。具体工作步骤为:上位PC机编写好程序后下载到单片机中,单片机实施对应指令处理显示代码将显示内容经过I/O口输出而且译码电路完成扩展并输出,最终达成LED显示器显示电流、电压要求进而使显示器显示内容。依据硬件功效结构图选择适宜器件,器件不仅要求能实现所要求功效还要能兼容至整个系统之中。经过查阅资料和对比最终硬件原理图见图3-1。图3-1 硬件原理图(换图)该系统所要实现功效和要求有以下几点:1) LED显示器面积必需满足
9、最少显示一个汉字标准,而且显示要清楚。2) 能够进行不一样效果显示间切换。3) 两个译码器不能同时工作。单片机要能够处理控制LED显示器显示,而且端口驱动能力要足以驱动译码电路,实施频率要能达成扫描显示最低要求。3.2 控制单元控制单元是整个显示系统关键,该系统中采取52系列单片机为关键器件,用来和上位机通信处理上位机发送控制指令和显示内容。而且直接输出数据经过译码电路控制LED显示器显示内容和显示状态。3.2.1 AT89C52基础介绍AT89C52是美国ATMEL企业生产低功耗,高性能单片机,片内含8KB可系统编程Flash只读程序存放器,器件采取ATMEL企业高密度、非易失性存放技术生产
10、。ATMEL企业功效强大,低价位AT89C52单片机可提供很多高性价比应用场所,可灵活应用于多种控制领域。AT989C52含有以下特点:和MCS-51产品指令系统完全兼容;8KB可程序设计Flash内存;1000次擦写周期;全静态工作模式:0Hz24MHz;三级加密程序内存;32个可编程I/O口线;3个16位定时/计数器;8个中止源;全双工串行UART通道;低功耗空闲和掉电模式;中止可从空闲模唤醒系统。AT89C52PDIP封装引脚图见图3-2。图3-2 AT89C52引脚图3.2.2 控制系统设计控制电路设计中采取是单片机系统,该系统必需要是工作在一个最小系统(指单片机能够最小配置系统)。A
11、T89C52最小系统包含了复位电路,选定一定数量I/O口作为控制口控制外部多种器件和数据输出。依据功效选择一定单片机接口添加外围器件,具体电路见图3-3。图3-3 控制部分电路图在该系统中,P0、P1、P2各口关键用作LED显示数据控制输出。因为端口驱动能力有限所以在P0口外接了10K9脚排阻来提升驱动能力。P08个口和P28个口分别接LED点阵显示器16个引脚,用来控制行。P1.0、P1.1、P1.2分别接两块74HC138A、B、C端,向74HC138送入串行数据经过其转换后并行输出,和LED点阵显示器另外16个引脚相连,控制列。P1.3接一片74HC138使能控制端E2、E3,当为低电平
12、使许可输出,接另一片74HC138使能控制端E1,当为高电平使许可输出,分别控制两个译码器。因为P3口是特殊功效口,在该系统中基础是采取其第二功效。将P3.2外部中止0口外接控制按钮,实现不一样特效显示间切换。3.3 译码器74HC138是一款高速CMOS器件,74HC138引脚兼容低功耗肖特基TTL(LSTTL)系列。74HC138译码器可接收3位二进制加权地址输入(A0, A1和A2),并当使能时,提供8个互斥低有效输出(Y0至Y7)。74HC138特有3个使能输入端:两个低有效(E1和E2)和一个高有效(E3)。除非E1和E2置低且E3置高,不然74HC138将保持全部输出为高。利用这种
13、复合使能特征,仅需4片74HC138芯片和1个反相器,即可轻松实现并行扩展,组合成为一个1-32(5线到32线)译码器。任选一个低有效使能输入端作为数据输入,而把其它使能输入端作为选通端,则74HC138亦可充当一个8输出多路分配器,未使用使能输入端必需保持绑定在各自适宜高有效或低有效状态。图3-4 译码电路译码电路功效是为了处理单片机I/O口不足。译码所用器件为74HC138。具体电路见图3-4。3.4 LED点阵显示器3.4.1 LED点阵显示器基础介绍LED显示器是一个经过控制半导体发光二极管显示方法,用来显示文字、图形、图像、动画、行情、视频、录像信号等多种信息显示器幕。本设计所用LE
14、D点阵显示器是由64个半导体发光二极管像素点均匀排列组成。利用不一样材料能够制造不一样色彩LED像素点,其中用到是红色。Proteus中88LED点阵显示器MATRIX-8X8-RED,逆时钟旋转后,左边为行控制,接高电平,右边为列控制,接低电平,从上到下列引脚控制是从右往左对应列,见图3-5。图3-5 88LED点阵显示器图中第三行接高电平,第二列接低电平,则对应位置LED灯点亮。3.4.2 LED点阵显示器工作原理本设计采取动态显示方法。动态显示扫描方法是指逐位轮番点亮每位显示器,即每个显示模块位选线被轮番选中,多个显示块公用一组段选,段选数据仅对位选线被选中显块有效。对于每一位显示器来说
15、,每隔一段时间点亮一次。即使每位字符是在不一样时刻出现,而在同一时刻,只有一位显示,其它各位熄灭,但因为LED显示器余晖和人眼视觉暂留作用,只要每位显示间隔足够短,则能够造成多位同时亮假象,达成同时显示效果。在这种方法下其显示驱动电路可反复利用,引线也大大降低,从而使硬件成本降低,且屏幕上发光二极管轮番发光,使用时耗电量大大降低。大屏幕制造、维护要轻易很多,可靠性也增加了。由四块88LED点阵显示器扩展成1616LED点阵显示器具体连线见图3-6。图3-6 LED点阵显示电路图中上面两块显示平屏对应控制行引脚相连,并接到P0口;下面两块显示器对应控制行引脚相连,并接到P2口;左边两块对应控制列
16、引脚相连,并接到译码器输出端;右边两块对应列引脚相连,并接到另一片译码器输出端。4 软件系统设计4.1 程序设计系统软件采取C语言编写,根据模块化设计思绪设计。首先分析程序所要实现功效,程序要实现不一样动态特效显示(左移、上移及闪烁)间切换。 主程序工作步骤见图4-2。图4-1 程序步骤图程序开始时首先必需对单片机进行初始化,其中初始化内容包含:中止初始化,外部中止触发方法选择,移动速度初始化等。初始化完成后程序进入待机状态等候中止发生,该程序中关键用到了外部中止0。外部中止0由按键电平改变触发,其关键功效是选择LED点阵显示器动态特效显示方法,是左移、上移还是闪烁。中止产生后由预先初始化时设
17、定跳转实施中止子程序。中止程序设定了LED点阵显示器所要显示内容和显示方法,最终实施是多种显示程序。根据设定方法和内容显示出所需要内容。4.2 显示程序设计4.2.1 点阵数据表示方法低位0低位0高位7高位71215 161731 32本设计用HZDotReader软件取字模。设置取点方法为纵向8点下高位,字节排列为上到下、左到右。也就是以纵向8个连续点组成一个字节,最上边点为字节最低位,即BIT0,最下边点为BIT7。1616汉字按每行16字节,共2行取字模,每个汉字共32字节,点阵四个角取字次序为左上角左下角右上角右下角,见图4-2。图4-2 点阵数据图图中,数据是纵向,一个像素对应一个位
18、。8个像素对应一个字节,字节位次序是上低下高,比如从上到下8个点状态是“-*”(*为黑点,-为白点),则转换字模数据是0x08(B0000_0001)。一幅1616点阵画面点阵数据根据1 2 3 31 32存放。所以一幅画面数据量为32字节。画面显示时选通第i列对应数组元素为第i和i+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,0x7
19、E,0x08,0x00,0x08,0x00。4.2.2 动态特效显示程序设计动态显示程序分为左移显示、上移显示、闪烁显示三种显示方法。当主程序中判定为左移显示方法时,先左移显示初始化,以后进入左移循环控制,判定左移字符个数,显示一幕,再判定是否有中止,如无则调用左移显示子程序,不然进入中止,初始化各值。若判定为上移显示方法或闪烁显示方法时,单片机实施步骤同上。主程序中,左移子程序步骤图及上移子程序步骤图见图4-3。图4-3 左移/上移显示程序步骤图依据显示数据存放原理经过改变实际LED列和数据逻辑列方法来实现程序左右移动。显示数据和列对应关系为:第i列对应数据为数组中i和第2i个数据。所以送入
20、后一列数据则相当于画面左移移位,同理送入前一列数据相当于右移一位。如此循环则产生一幅稳定运动画面。显示数组中,第1至16个元素第0至第7位LED显示器中第1至第8行。同理第17至32个元素第0至第7位LED显示器中第9至第16行。所以将元素数据进行逻辑位移便能产生上下移动效果。实现闪烁效果原理为:第一个字扫描完后,就扫描第二个子,而一个字有32个字节,所以每隔32个字节送入P0和P2口,即当第一个字节和第二个字节分别送入P0和P2口时,进行16列扫描后,此时送入P0和P2口分别是第33和第34个字节。闪烁子程序步骤图见图4-4。图4-4 闪烁显示程序步骤图4.3 外部中止程序本设计用P3.2口
21、外部中止0作为控制按钮,控制不一样特效显示间切换。选择电平触发方法,端输入低电平时,为有效中止请求信号,置位。CPU在每一个机器周期采样引脚输入电平。当采样到低电平时置“1”;当采样到高电平时,清“0”。采取电平触发方法时,外部中止源信号必需保持低电平有效,知道该中止被CPU响应,同时在该中止服务程序实施完之前,外部中止源信号必需清除;不然将产生另一次中止请求。按钮按下时CPU采样到低电平,实施中止程序,初始化移动速度及各变量,flag值加一,改变显示方法。5 系统调试5.1 系统调试基础过程5.1.1 软件调试软件调试关键是软件编译和将各功效块程序分别写入以验证其功效可实现性。使用Keil软
22、件编写C语言程序时就应不停地进行编译,查找犯错误。确定程序无误后,对全部程序进行编译,编译成功生产后缀名为.hex可实施文件。在Proteus仿真软件中画出电路原理图,单击单片机元件,将其可实施文件设置为之前生成后缀名为.hex可实施文件,最终单击仿真工具栏中运行按钮,整个系统就开始仿真运行,这时可对各功效进行测试。可将Proteus和Keil进行联调,其步骤以下:1) 搜索到Proteus安装目录下VDM51.dll文件,将其复制到Keil安装目录C51BIN目录中。2) 编辑Keil安装目录下tools.ini文件,加入TDRV5=BINVDM51.DLL(“PROTEUS DEBUG”)
23、。3) 在Keil中打开要调试工程,单击Project中Options for Target1菜单,在弹出对话框中选中Debug标签页,进行数据配置。生成可实施文件。4) 在Proteus中打开设计好电路原理图,单击单片机元器件,将其可实施文件设置为要调试Keil工程所生成课实施文件。5.2 系统调试结果对调试中出现问题进行了分析,得出以下原因和修改措施。LED显示器显示不正确,经过检验及查阅资料发觉实际LED显示器引脚并不是一排接阴极一排接阳极,而是杂乱无章。修改措施是将用万用表测引脚,重新写下排列,重新焊连线。经过调试和修改,系统实现了题目所要求中英文字符和特殊字符显示,能够经过控制按钮实
24、现不一样动态效果间切换。结论接手题目以后从互联网上对LED进行了具体资料搜集。北京奥运会开幕式盛典上利用LED制造出变换无穷、美轮美奂、气势磅礴多种图像,给全世界留下震撼印象,也让国人对LED有了全新认识。LED显示器越来越受到广泛应用,它不仅价格低廉,且省电又清楚,有很大发展前景。从设计之初就确定了参考街道上广告牌显示器实现方法和实际情况设计一款小屏幕LED点阵显示器。在查阅了大量资料后确定了题目标设计方案。整个设计采取AT89C52做关键控制器,74HC138组成译码电路。经过一段时间工作,最终完成了基于51单片机LED点阵广告牌设计,项目所要求功效全部达成。这次设计收获颇多,不仅是所作题
25、目包含到软硬件知识,还有更为关键实际经验和过程中所发觉问题。1) 设计之前应该进行大量资料搜集和分析,确定一个清楚设计思绪。2) 器件选择时要具体阅读器件使用手册,不仅要考虑器件功效实现还要考虑器件在整个系统中兼容性。3) 硬件系统建立必需合理和稳定,实物建立之前最好进行仿真这么才能为软件提供一个可靠试验平台。4) 软件编写不仅要实现功效还要不停优化、简练、易读。5) 实物引脚往往和仿真图中引脚不一样,应该注意。伴随课题进行,对LED了解也越来越深入。LED技术也会深入发展,其应用将会愈加广泛。能够设想利用LED高稳定性和低能耗,再和无线通信技术相结合在沙漠深处或人迹罕至雪山之颠树立一块依靠太
26、阳能充电,经过无线传输方法更改显示内容信息板为登山者提供指示和天气信息,为沙漠迷路人指导方向。设计结束了,但学习还在继续。相信经过此次设计所得到知识、心得、经验乃至感受全部会让我在以后日子里受益匪浅。致谢这次能够圆满完成毕业设计首先要感谢吴慧峰老师,感谢她在课程设计期间指导、鼓励和督导。同时感谢教过我们专业课程老师们,感谢她们对我们知识增加所付出辛勤劳动。还要感谢一起做课程设计同学,她们也给了很大帮助,尤其是部分细节问题。感谢试验室老师给我们提供试验环境和器材。参考文件1 文哲雄.用单片机控制LED显示器D.佛山:佛山科学技术学院,1995.2 彭宁,只佩华.单片机对LED大屏幕显示控制系统J
27、.河北大学学报(自然科学版),1993,13(3):86-89.3 乔世杰.小波图像编码中对称边界延拓法J.中国图像图形学报,5(9):725-729.4李志强等.基于VCLED点阵显示器控制系统设计.无线互联科技,(2): 70-715 王晓涛基于单片机控制LED点阵显示器在煤矿设计和应用J.中国科技博览,(36): 640-641.6 Marston, R. Radio-Electronics, Working with LED display driversJ. Mar1992, Vol. 63 Issue 3.附录附录1:硬件原理图附录2:C语言程序/*此次显示程序设计分三个阶断第一阶
28、段:左移显示方法设计第二阶段:上移显示方法设计第三阶段:闪烁显示方法设计 */#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,0x20,0x00,0x00; /*K*/ /*上移显示字符*/uchar
29、 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,0xA4,0x30,0xFC,0x60,0xFC,0x4F,0xA4,0x
30、CF,0x24,0x80,0x24,0x80,0x20,0x00, /*贲 CEADA */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, /*芳 CB7BC */0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0
31、xF8,0x3B,0x0C,0x4E,0x04,0x5C,0x04,0x76,0x0C,0x62,0xF8,0x63,0xC0,0x58,0x00,0xCC,0x00,0x84,0x00,0x00,0x00,0x00,0x00,0x00, /*& CAFA1 */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,0x00,0x40,/*强 CC7B
32、F */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, /*笑脸符号 CDEB1 */ 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=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,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,/*口,0*/0x00,0x00,0x00,0x00,0xF
34、8,0x0F,0xF8,0x0F,0x48,0x04,0x48,0x04,0x48,0x04,0xFF,0x3F,0xFF,0x7F,0x48,0x44,0x48,0x44,0x48,0x44,0xF8,0x4F,0xF8,0x4F,0x00,0x70,0x00,0x70,/*电,1*/0x00,0x20,0x00,0x20,0x02,0x20,0x02,0x20,0x02,0x20,0x02,0x20,0x02,0x20,0xFE,0x3F,0xFE,0x3F,0x02,0x20,0x02,0x20,0x02,0x20,0x02,0x20,0x02,0x20,0x02,0x20,0x00,0
35、x20,/*工,2*/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,/*爱心符号,3*/0x40,0x00,0x70,0x02,0x30,0x02,0x12,0x02,0x5E,0x02,0x5C,0x02,0x54,0x42,0x51,0xC2,0x5F,0xFF,0xDE,0x7F,0xD4,0x02,0x58,0x02
36、,0x5F,0x02,0x77,0x02,0x32,0x02,0x10,0x02,/*学,4*/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,0xF1,/*院,5*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
37、,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00;/*闪烁显示字符*/uchar v,flag,temp;uchar i,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 num3,temp3;uchar temp2; /*各变量值初始化*/void init();/*主函数初始化声名*/void init1();/*左移显示方法初始化声名*/vo
38、id 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 main()init();while(1)/主循环if(flag%3=1)/判定是不是左移显示方法init1();/左移显示初始化while(flag%3=1)/左移循环控制fo
39、r(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();/若没有中止调用左移显示子程序elsei=a;j=v;k=(i*2+32);/若有中止了初始化左移各变量if(flag%3=2)/判定是不是上移显示方法init2();/上移显示初始化while(flag%3=2)/上移循环控制for(ii=0;ii=15;ii+)/上移缓冲for(jj=0;jj=v;jj+)/向上移动速度由变量v控制for(kk=0;kk=15;k
40、k+)/显示一幕if(flag%3=2)/判定有没有中止,flag值有没有改变disp2();/若没有中止调用左移显示子程序elseii=15;jj=v;kk=15;/若有中止了初始化上移各变量delay(1);if(flag%3=0)/判定是不是闪烁显示方法init3();/闪烁显示初始化while(flag%3=0)/闪烁循环控制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|
41、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);void timer0() interrupt 0/外部中止0中止程序v=8;/初始化移动速度flag+;/flag值加1,改变显示方法temp1=0x00;temp2=0x00;temp3=0x00;