LED滚屏控制器设计.doc

上传人:土8路 文档编号:10100151 上传时间:2021-04-19 格式:DOC 页数:26 大小:273.50KB
返回 下载 相关 举报
LED滚屏控制器设计.doc_第1页
第1页 / 共26页
LED滚屏控制器设计.doc_第2页
第2页 / 共26页
LED滚屏控制器设计.doc_第3页
第3页 / 共26页
LED滚屏控制器设计.doc_第4页
第4页 / 共26页
LED滚屏控制器设计.doc_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《LED滚屏控制器设计.doc》由会员分享,可在线阅读,更多相关《LED滚屏控制器设计.doc(26页珍藏版)》请在三一文库上搜索。

1、绍 兴 文 理 学 院数 理 信 息 学 院课 程 设 计 报 告 书题目 LED滚屏控制器设计 物电 系 电子信息工程 专业 081 班姓 名 孙斋斋 指导教师 金宝根 时 间 2011年 9月16日 课程设计任务书班 级电信081姓 名孙斋斋题 目LED滚屏控制器设计技术参数、设计要求、检测数据等在Proteus仿真软件上利用51单片机并设计相关外围电路实现如下功能:l 编程实现51驱动LED点阵屏,至少须显示5个汉字。l 设置模式按键,根据模式调整显示模式;须具备左右移动等基本滚动功能。l 所需外围电路在Proteus上自行设计搭建。l 设计采用C51实现,并在Proteus上仿真验证。

2、设计进度安排或工作计划2011.9.5 2011.9.7: 教师布置课题,学生查询相关资料,完成方案选择、确定验证方案。2011.9.82011.9.11: 设计模块划分、实现及各模块仿真图设计。2011.9.122011.9.15:设计整体实现、调试及验证,并开始撰写报告。2011.9.16:课程设计报告撰写并定稿,上交。其 它认真阅读单片机原理课程设计报告撰写规范;课题小组经协商好要指定组长并明确分工,形成良好团队工作氛围;基于课题基本要求,各小组与指导老师讨论,再将课题细化、增加要求;课题小组每成员均需各自撰写一份课程设计报告。LED滚屏控制器设计摘 要本设计介绍了一种通用的LED点阵显

3、示模块并且汉字可以滚动的设计过程。该系统采用单片机对LED点阵显示单元进行、列驱动控制,PC机通过串口将数据传输给单片机,再由单片机独立完成显示和控制。并且利用单片机系统软硬件设计仿真平台Proteus对点阵式LED滚动汉字显示屏进行仿真设计,完成了系统的软件编程,并进行了仿真调试,实现了汉字在点阵式LED 显示屏上的滚动显示,达到了此次设计的目的。关键词 LED点阵;单片机;显示模块;Proteus仿真;滚屏控制目 录课程设计任务书I摘 要II1.设计概述11.1 课题的相关背景11.2 LED的发展技术11.3 LED产业发展前景22.设计方案32.1 总体方案32.2 模块描述42.2.

4、1 行驱动电路42.2.2 列驱动电路42.2.3 LED显示电路42.2.4 模拟滚动电路42.2.5 按键控制电路53.设计实现53.1 行驱动电路的实现63.2 列驱动电路的实现63.3 LED显示屏的实现73.4 按键控制的实现84.调试验证85.总结10参考文献11附录121. 设计概述1.1 课题的相关背景LED大约是在80年代中期开始在电子显示屏中使用的。进入90年代以后,由于半导体工业的迅速发展,带动了LED制造材料和工艺的改进,在颜色与亮度方面都有了质的飞跃。早期的LED显示屏,由于受材料和工艺的限制,视角仅有200一300左右,从而制约了LED显示屏的发展。在分辨率方而,由

5、于受当时数字技术、集成电路技术和控制技术等技术的限制,很难作出高密度的LED显示屏。今后随着半导体工业的不断发展,无论是材料,还是加工工艺,都会不断地提高,LED显示屏在颜色、视角、亮度、密度、寿命等方面也会逐步完善,价格也会进一步降低。近年来,随着高亮度发光二极管技术的发展,LED显示屏从室内走到室外,其显示内容也从没有层次的计算文字动画发展到能显示有层次的电视图像。国家信息产业部委托蓝通电子科技有限责任公司制定的LED显示屏技术条件也于1998年正式颁布实施。LED显示屏的关键控制技术随着新型超大规模集成电路(VLSI)的发展也必将有新的提高。通用VLSI在产品性能提高的同时成本也在呈下降

6、趋势,新一代LED显示控制集成电路也已开始得到推广和应用。随着我国经济发展迅猛,对信息传播有越来越高的要求。LED显示可以很方便地在单片机系统中使用,并且和单片机的接口比较容易设计,可以在单片机的控制下进行包括汉字在内的多种图像显示,在某些需要传播信息的场合,LED显示的使用能大大简化人工操作,实现单片机系统资源的有效利用【1】。1.2 LED的发展技术LED是继1950年代矽(Si)半导体技术后,由三五族化合物半导体发展的半导体器件。LED的发光原理是利用半导体中的电子和空穴结合而发出光子,不同于灯泡余姚3000度以上的高温下操作,也不必像日光灯需使用高电压激发电子束,LED和一般的电子元件

7、相同,只需24V的电压,在常温下可以正常工作,因此其寿命比传统光源更长。LED发出的颜色主要取决于电子与空穴结合所释放出来的能量高低,也就是由所用的半导体材料的能隙所决定。同一种材料的波长都很相近,因此每一颗LED的光色都很纯正,与传统光源都混有多种颜色相比,LED可以说是一种数字化的光源。LED晶片大小可以因用途而随意切割,常用的大小为0.31.0mm左右,和传统的灯泡或日光灯相比,体积相对小的多。为了使用方便,LED通常都使用树脂包装,做成5mm左右的各种形状,十分坚固耐震【2】。1.3 LED产业发展前景在低碳经济、节能环保的大背景下,我国led产业发展迅速,已经从单一发展的经济产业链转

8、向多元、自助研发生产的新产业模式。随着节能环保需求的日益增长,LED产业发展前景备受看好,在巨大的潜在利益驱动下,许多企业纷纷制定产业发展政策,推动LED产业的快速成长。随着技术的不断成熟和发展,LED的应用的范围逐渐的扩大,从LED照明灯、建筑景观、显示屏逐渐向手机、电脑笔记本等方面逐渐扩展,产业涉及的模式也在逐渐的扩大。LED产业的发展前景是是不可估量的,特别是在这个倡导低碳环保的新环境下。LED产业在国内有良好的发展前景,基于以下几点:a) 今年作为我国“十二五”规划的开局之年,政府部门持续加大对LED产业扶持力度。b) 中国自身就是一个大市场,特别是近年来自助终端市场的需求大增,LED

9、应用的范围也在逐步的扩大。c) 虽然技术和国外相比有一定差距,但可以很好的借鉴应用别人的技术缩小差距,走自己的产业之路。d) 低碳经济已成为未来世界经济发展的潮流,LED产业将成为推动我国经济快速发展主要绿色产业。随着国内LED市场的蓬勃发展,越来越多的国外企业把目光转向中国,尤其近几年,我国受理的LED领域的专利申请数量逐年显著增加,随着竞争的加大,企业的自主创新是增强竞争的必然因素,二是产业的多元化也是发展的关键。LED显示屏是产业链中的一个核心,在市场中应用的范围也是最广泛的,从户外显示屏到日常生活中的家电显示屏等等LED显示屏有着非常重要的位置,但随着市场发展的需求交通信号灯、特种照明

10、灯等各类应用的市场份额也在稳步提高,特别是近年来智能手机、平板电脑市场的开启,LED市场的需求逐渐向多元转变,改变了以往单一的市场新需求,技术和科技含量也在逐步的提升和发展,LED产业进入一个全新发展的新阶段。进入新世纪,光电子产业得到广泛的重视,中国加入WTO、北京奥运成功举办等,成为LED显示屏产业发展的契机,我国LED显示屏及相关的技术必将得到飞跃发展。环顾四周,我们可以发现,简易LED点阵式显示屏更频繁地被施用于公交车身、小型商店店面外宣传等情形,制作基于单片机的LED点阵式电子显示屏具有一定使用价值【3】 。2. 设计方案2.1 总体方案本文设计的硬件电路采用AT89C51为主控制器

11、实现。主要由AT89C51芯片、电源电路、时钟电路、复位电路、行列驱动电路、1616LED点阵组成。电源电路通过变压整流元件为单片机和其他电路提供稳定的+5V 工作电压。但在仿真时不需要电源电路和时钟电路。本设计的核心是利用单片机读取显示字型码,通过驱动电路对1616 LED 点阵进行动态列扫描,以实现汉字的滚动显示【4】。由于88LED模块只能显示数字,显示一个汉字至少需要1616点阵,所以本文设计的LED滚动屏幕由24片88点阵式构成的6个1616LED模块,用于同时显示六个汉字。其中88点阵式LED由8行8列共64个发光二极管组成,且每个发光二极管放置在行线和列线的交叉点上当对应的某一列

12、置1电平,某一行置0电平时,其相应交叉点的二极管发光【5】。滚动屏幕的显示由AT89C51来控制,屏幕不停的向左滚动显示或者向右滚动显示“绍兴文理学院电子信息工程”总共12个汉字,但同时只能显示6个汉字。由于该屏幕有16行和96列,其行和列的引脚信号也均由AT89C51控制。但因为AT89C51只有32个I/O口,所以,该设计中也使用了24片74LS138译码器来提供行控制信号。一个88模块的行通过74LS138的输出来控制,而列信号则由AT89C51的P0口再接通高电平来控制。而74LS138的地址输入端和片选输入端由AT89C51的P2口连通一个8选一CD4051和一个16选一CD4067

13、来控制。总体的系统方框图如下图2-1所示:图2-1 系统方框图2.2 模块描述 2.2.1 行驱动电路 单片机按照时序要求给出二进制信号,即行选通信号。每一块88LED模块的行信号均由相应的74LS138来控制。当选择好74LS138芯片 时,通过AT89C51的P1.0P1.2与74LS138芯片的A、B、C借口相连,来控制输出,当输出为低电平时,所对应的88LED模块的行信号发亮。行选通按全部各行都选通一遍之后又重新开始,这就是行驱动电路的逐行扫描过程。行信号顺序变化频率由扫描电路决定。 2.2.2 列驱动电路 系统列驱动电路比较简单,均由AT89C51的P0口来驱动,在连接AT89C51

14、之前,应先运用一个4.7K的限流电阻,并连接高电平。各片串行移位能把96列的显示数据依次输入到相应的移位寄存器输出端。移位过程结束之后,控制器输出打人信号,96列显示数据一起打入相应的输出锁存器。然后选通相应的行,该行的各列就按照显示数据的要求进行显示。 2.2.3 LED显示电路 LED显示屏由发光二极管按行按列布置而成,并且按行按列驱动。本设计使用24块88点阵显示单元组成6个1616点阵,以满足显示6个汉字的要求。应用时需在各条列线上接4.7K的限流电阻。扫描中控制电路将行线轮流接通高电位,使连接到各行的器件接通正电源,但具体哪一个LED导通,还要看它的负电源是否接通,这就是列控制的任务

15、了。行线上一行行轮流导通,列线上进行通断控制,实现了行扫描列控制的驱动方式【6】。当行和列都扫描结束后,就可以在LED上显示汉字。 2.2.4 模拟滚动电路通过定时器的控制,对所有的行和列所对应的芯片来控制,使行和列的点亮进行变化,使其能显示所需要的下一个汉字。对所有的行和列进行循环扫描,最终达到滚动显示的效果。先对相关变量进行初始化,然后循环扫描点亮一帧图像。一帧图像扫描完毕后,列指针向右移动1位,再扫描下一帧图像。通过对一帧图像的数次扫描,可以控制汉字滚动的速度。依次类推,列指针共向右移动16位。这样,主观上感觉到图像向左滚动。移动一个汉字(列指针右移l6位)后,字指针指向下一个汉字,再重

16、复几次这样的过程。这样,我们就能在显示屏上看到持续不断的滚动汉字信息了。2.2.5 按键控制电路通过按键的安装和运用,来选择滚动显示控制的方式,包括左移、右移、加速和减速。当确定某个按键时,显示屏即可按照要求来滚动显示。3. 设计实现程序设计主要包括三部分:主程序,检测控制中断程序,显示子程序。首先进入主程序,初始化单片机,配置中断完成后,单片机在接收完数据后就进入显示子程序,输出相应的数据到LED的行列驱动。当进入按键控制中断程序时,由按键来确定怎样滚动显示。主程序流程图如图3-1所示。显示驱动程序负责向显示屏送显示数据、产生行扫描信号及其它控制信号,配合完成LED显示屏的扫描显示工作。系统

17、环境设置(初始化)、显示效果处理等工作,由主程序来实现【7】。图3-1 主程序流程图3.1 行驱动电路的实现如图3-2所示,每一块88LED模块的行信号均由相应的74LS138来控制,显示第一个汉字的4块88LED模块由第一列的4块74LS138(U00、U01、U02、U03)来分别控制。由单片机的P2口连通一个8选一CD4051和一个16选一CD4067来选择使用哪一块74LS138,即可以使对应的哪一块88LED模块选中。当选择好74LS138芯片时,通过AT89C51的P1.0P1.2与74LS138芯片的A、B、C借口相连,来控制输出,当输出为低电平时,所对应的88LED模块的行信号

18、发亮。图3-2 行驱动电路的实现3.2 列驱动电路的实现如图3-3所示,每一块88LED模块的列信号都由AT89C51的P0口来驱动,在连接AT89C51之前,先连接一个4.7K的限流电阻,最后连接高电平。当P0口中的某个端口为低电平时,表示与之相连的列选中,该列则会亮起。再对应相应的行,该列的各行就按照显示数据的要求进行显示。图3-3 列驱动电路的实现3.3 LED显示屏的实现88点阵屏显示原理是利用行列导通其中的LED的而控制64个LED的亮灭。如果想要行1和列1的LED亮,只需要行1通高电平,列1低电平即可。LED显示屏幕就是依靠这样的选取行列进行各类图形文字的变换【8】。例如图3-4显

19、示的“绍兴”两个字,每一列均为低电平,表示每一列的LED都需要亮起,而对于行信号来说,则是高电平的时候表示对应的LED亮起。行和列相结合,则可显示所需要的汉字。图3-4 LED显示屏的实现3.4 按键控制的实现通过按键的安装和运用,来选择滚动显示控制的方式,包括左移、右移、加速和减速。当确定某个按键时,显示屏即可按照要求来滚动显示。如图3-5所示,当按下左移的按键时,显示屏上的汉字就会一次向左滚动,而加速和减速则是在左移和右移的基础上附加的。图3-5 按键控制的实现4. 调试验证本设计采用Proteus和Keil 软件实现电路的仿真。在Proteus中绘制电路图后,将运行程序下载到所选用的AT

20、89C51中,实现联调。下载后,开启Proteus仿真开关,按照电路方案进行操作【9】。本设计显示的“绍兴文理学院电子信息工程”总共12个汉字,但同时只能显示6个汉字。默认为显示“绍兴文理学院”和向左滚动。如图4-1,即为刚上电时所显示的汉字。图4-1 默认的汉字显示 当按下右移的按键时,显示屏上的汉字则可以从右向左滚动,例如图4-2中,此时显示屏的汉字从右向左读为“兴文理学院电”六个字。图4-2 按下右移后显示屏上的汉字5. 总结本次设计利用 Proteus 实现了对点阵式LED 滚动汉字显示屏的仿真,完成了“绍兴文理学院电子信息工程”12个汉字的滚动显示,达到了良好的设计效果。该仿真电路接

21、近实际电路,可以直接由该电路利用相关软件设计印制电路板,加上电源电路和时钟电路,就可以制作出实际的点阵式LED 滚动汉字显示屏。 在这次设计中,我主要负责资料的收集与整理。阅读了很多关于对点阵式LED 滚动汉字显示屏的一些文章,对此了解更加深入了。并且,经过这次自己整理资料的能力也有所增强,相信对以后应该也很有帮助。参考文献1 韩改宁. 基于AT89C52实现LED点阵汉字显示J. 咸阳师范学院学报.2011年, 2期:57页2 LED技术及应用全面介绍LED以及LED应用发展概括和趋势http:/ 2011/9/113袁小燕. 浅谈LED大屏幕及其发展中小企业管理与科技. 2009年, 6期

22、:295页4 钟蔚,袁臣虎.点阵式LED滚动汉字显示屏的Proteus仿真设计J.微计算机信息.2008年,17期:1页5 远飞.Proteus的LED滚屏设计与仿真EB/OL http:/ 2010年,5期:2页7 杨婧.基于单片机的LED点阵滚动屏设计J. 科技信息. 2011年, 14期:3页8 靳栀,李骐,刘全. 基于51系列单片机的LED显示屏开发技术M北京:北京航天航空大学出版社,2009272页9 翟淑霞基于单片机的LED显示屏的汉字显示J.今日科苑.2006年,9期:114页附录源码#include #define int8 unsigned char#define int16

23、 unsigned int#define int32 unsigned long #define CTRL_PORT P2 /芯片选择#define DATA_PORT P0 /数据端口#define ADDR_PORT P1 /74HC138 通道选择sbit move_left=P14;sbit move_right=P16;sbit speed_add=P15;sbit speed_sub=P17;int8 button_flag=0;bit en_key_scan=0; / 按键扫描使能bit mode_move=0; / 0:左移 1:右移int8 lie_hao=0; / 表示某个

24、列,共6*16列int8 speed=20; int8 time_counter=0; int8 flag;int8 n;int8 zzz;int8 yyy;int8 code table1232=0x10 ,0x00 ,0x10 ,0x7F ,0x08 ,0x44 ,0x08 ,0x44 ,0x24 ,0x42 ,0x1E ,0x42 ,0x10 ,0x51 ,0x88 ,0x20 ,0x04 ,0x7F ,0x3E ,0x41 ,0x00 ,0x41 ,0x00 ,0x41 ,0x30 ,0x41 ,0x0E ,0x7F ,0x00 ,0x41 ,0x00 ,0x00 ,/*绍,0*/0x

25、00 ,0x00 ,0x22 ,0x10 ,0x44 ,0x30 ,0xCC ,0x10 ,0x98 ,0x19 ,0x88 ,0x08 ,0x00 ,0x04 ,0xFE ,0x7F ,0x00 ,0x00 ,0x10 ,0x02 ,0x30 ,0x04 ,0x18 ,0x08 ,0x0C ,0x18 ,0x02 ,0x30 ,0x01 ,0x10 ,0x00 ,0x00 ,/*兴,1*/0x40 ,0x00 ,0x80 ,0x00 ,0x80 ,0x00 ,0xFF ,0x7F ,0x10 ,0x04 ,0x10 ,0x04 ,0x10 ,0x04 ,0x20 ,0x02 ,0x20 ,0

26、x02 ,0x40 ,0x01 ,0x80 ,0x00 ,0x40 ,0x01 ,0x20 ,0x06 ,0x18 ,0x78 ,0x07 ,0x10 ,0x00 ,0x00 ,/*文,2*/0x00 ,0x00 ,0xC0 ,0x3F ,0x5F ,0x22 ,0x44 ,0x22 ,0xC4 ,0x3F ,0x44 ,0x22 ,0x5F ,0x22 ,0xC4 ,0x3F ,0x44 ,0x22 ,0x04 ,0x02 ,0xC4 ,0x3F ,0x1C ,0x02 ,0x03 ,0x02 ,0x00 ,0x02 ,0xF0 ,0x7F ,0x00 ,0x00 ,/*理,3*/0x80

27、,0x10 ,0x08 ,0x31 ,0x30 ,0x13 ,0x10 ,0x09 ,0xFE ,0x7F ,0x02 ,0x20 ,0xF1 ,0x17 ,0x00 ,0x02 ,0x00 ,0x01 ,0xFE ,0x7F ,0x00 ,0x01 ,0x00 ,0x01 ,0x00 ,0x01 ,0x00 ,0x01 ,0x40 ,0x01 ,0x80 ,0x00 ,/*学,4*/0x00 ,0x01 ,0x1F ,0x02 ,0xF1 ,0x7F ,0x29 ,0x20 ,0x05 ,0x00 ,0xC5 ,0x1F ,0x09 ,0x00 ,0x11 ,0x00 ,0xF1 ,0x7F

28、 ,0x95 ,0x04 ,0x89 ,0x04 ,0x81 ,0x04 ,0x41 ,0x44 ,0x41 ,0x44 ,0x21 ,0x44 ,0x11 ,0x78 ,/*院,5*/0x40 ,0x00 ,0x40 ,0x00 ,0x40 ,0x00 ,0xFE ,0x0F ,0x42 ,0x08 ,0x42 ,0x08 ,0xFE ,0x0F ,0x42 ,0x08 ,0x42 ,0x08 ,0x42 ,0x08 ,0xFE ,0x0F ,0x42 ,0x08 ,0x40 ,0x20 ,0x40 ,0x20 ,0x80 ,0x3F ,0x00 ,0x00 ,/*电,6*/ 0xFC ,0

29、x0F ,0x00 ,0x04 ,0x00 ,0x02 ,0x00 ,0x01 ,0x80 ,0x00 ,0x80 ,0x00 ,0x80 ,0x20 ,0xFF ,0x7F ,0x80 ,0x00 ,0x80 ,0x00 ,0x80 ,0x00 ,0x80 ,0x00 ,0x80 ,0x00 ,0xA0 ,0x00 ,0x40 ,0x00 ,0x00 ,0x00 ,/*子,7*/0x10 ,0x01 ,0x30 ,0x06 ,0x18 ,0x02 ,0xE8 ,0x7F ,0x0C ,0x00 ,0xCC ,0x1F ,0x0A ,0x00 ,0xC9 ,0x1F ,0x08 ,0x00 ,

30、0xC8 ,0x1F ,0x48 ,0x10 ,0x48 ,0x10 ,0x48 ,0x10 ,0xC8 ,0x1F ,0x48 ,0x10 ,0x00 ,0x00 ,/*信,8*/ 0x80 ,0x00 ,0x40 ,0x00 ,0xF8 ,0x0F ,0x08 ,0x08 ,0xF8 ,0x0F ,0x08 ,0x08 ,0xF8 ,0x0F ,0x08 ,0x08 ,0xF8 ,0x0F ,0x00 ,0x00 ,0x90 ,0x00 ,0x14 ,0x21 ,0x14 ,0x49 ,0x16 ,0x48 ,0xE0 ,0x0F ,0x00 ,0x00 ,/*息,9*/0x00 ,0x0

31、0 ,0xFC ,0x3F ,0x80 ,0x00 ,0x80 ,0x00 ,0x80 ,0x00 ,0x80 ,0x00 ,0x80 ,0x00 ,0x80 ,0x00 ,0x80 ,0x00 ,0x80 ,0x00 ,0x80 ,0x00 ,0x80 ,0x00 ,0x80 ,0x00 ,0xFF ,0x7F ,0x00 ,0x00 ,0x00 ,0x00 ,/*工,10*/ 0xB0 ,0x1F ,0x8E ,0x10 ,0x88 ,0x10 ,0x88 ,0x10 ,0xBF ,0x10 ,0x88 ,0x1F ,0x0C ,0x00 ,0xDC ,0x3F ,0x2A ,0x02 ,

32、0x0A ,0x02 ,0xC9 ,0x3F ,0x08 ,0x02 ,0x08 ,0x02 ,0x08 ,0x02 ,0xE8 ,0x7F ,0x08 ,0x00 /*程,11*/;int8 select_hc1384=0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f;void delay(void);void clear_dip(void);/*- 定时器初始化子程序-*/void Init_Timer

33、0(void)TMOD |= 0x01; TL0=(65536-5000);TH0=(65536-5000)8; EA=1; ET0=1; TR0=1; void Init_EX0(void)EA=1; EX0=1; IT0=1; void main(void)int8 i,j,k;int8 word_num=0; flag=0x10;Init_Timer0();Init_EX0();while(1)if(!mode_move)word_num=lie_hao/16;clear_dip(); for(k=0;k6;k+) for(j=0;j1;j+) for(i=0;i8;i+) /上半部分C

34、TRL_PORT=select_hc138k0; /片选138DATA_PORT=table(word_num+k)%122*i; / *2是因为要显示下一行,这样不必频繁的切换138ADDR_PORT=i|0xf8; / 切换138通道 delay();CTRL_PORT=select_hc138k1; DATA_PORT=table(word_num+k)%122*i+1; ADDR_PORT=i|0xf8; delay(); for(i=8;i16;i+) /下半部分CTRL_PORT=select_hc138k2; DATA_PORT=table(word_num+k)%122*i;

35、ADDR_PORT=(i|0xf8)-8; delay();CTRL_PORT=select_hc138k3; DATA_PORT=table(word_num+k)%122*i+1;ADDR_PORT=(i|0xf8)-8; delay(); if(mode_move)word_num=lie_hao/16;clear_dip(); for(k=0;k6;k+) for(j=0;j2;j+) for(i=0;i8;i+) /上半部分CTRL_PORT=select_hc1385-k0; /片选138DATA_PORT=table(word_num+k)%12)2*i; / *2是因为要显示下

36、一行,这样不必频繁的切换138ADDR_PORT=i|0xf8; / 切换138通道 delay();CTRL_PORT=select_hc1385-k1; DATA_PORT=table(word_num+k)%12)2*i+1; ADDR_PORT=i|0xf8; delay(); for(i=8;i16;i+) /下半部分CTRL_PORT=select_hc1385-k2; DATA_PORT=table(word_num+k)%12)2*i; ADDR_PORT=(i|0xf8)-8; delay();CTRL_PORT=select_hc1385-k3; DATA_PORT=tab

37、le(word_num+k)%12)2*i+1;ADDR_PORT=(i|0xf8)-8; delay(); void delay(void)int16 i;for(i=0;i8; /给定初值,这里使用定时器最大值从0开始计数一直到65535溢出/*=消除按键抖动=*/if(en_key_scan)if(button_flag!=time_counter)/if(!move_right)mode_move=1; /右移else if(!move_left) mode_move=0; /左移else if(!speed_add) speed=speed-2;if(speed60)speed=60

38、;en_key_scan=0;EX0=1; /*=*/time_counter+;if(time_counter=speed)time_counter=0;lie_hao+;if(lie_hao=(12*16)lie_hao=0;void ISR_Key(void) interrupt 0 EX0=0; /外部中断0关button_flag=time_counter;en_key_scan=1;/*=清屏=*/void clear_dip(void)int8 i,j,k;for(k=0;k6;k+) for(j=0;j1;j+) for(i=0;i8;i+) /上半部分CTRL_PORT=se

39、lect_hc138k0; /片选138DATA_PORT=0x00;ADDR_PORT=i|0xf8; / 切换138通道 delay();CTRL_PORT=select_hc138k1; DATA_PORT=0x00; ADDR_PORT=i|0xf8; delay(); for(i=8;i16;i+) /下半部分CTRL_PORT=select_hc138k2; DATA_PORT=0x00;ADDR_PORT=(i|0xf8)-8; delay();CTRL_PORT=select_hc138k3; DATA_PORT=0x00;ADDR_PORT=(i|0xf8)-8; delay();

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

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


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