微机原理与单片机技术实践课程设计基于AT89C52的1664LED点阵的设计

上传人:1666****666 文档编号:37544374 上传时间:2021-11-03 格式:DOC 页数:33 大小:1.13MB
收藏 版权申诉 举报 下载
微机原理与单片机技术实践课程设计基于AT89C52的1664LED点阵的设计_第1页
第1页 / 共33页
微机原理与单片机技术实践课程设计基于AT89C52的1664LED点阵的设计_第2页
第2页 / 共33页
微机原理与单片机技术实践课程设计基于AT89C52的1664LED点阵的设计_第3页
第3页 / 共33页
资源描述:

《微机原理与单片机技术实践课程设计基于AT89C52的1664LED点阵的设计》由会员分享,可在线阅读,更多相关《微机原理与单片机技术实践课程设计基于AT89C52的1664LED点阵的设计(33页珍藏版)》请在装配图网上搜索。

1、韶 关 学 院课 程 设 计课程设计题目:微机原理与单片机技术实践课程设计基于AT89C52的16*64LED点阵的设计学生姓名:学 号:院(系):物理与机电工程学院自动化系专 业:自动化班 级:2008级本科1班指导教师姓名及职称:起止时间: 2011年3月至2011年5月基于AT89C52的16*64LED点阵的设计摘 要:LED是指发光二极管,在某些半导体的PN结中,注入的少数载流子与多数载流子复合时会把多余的能量以光的形式释放出来,从而把电能直接转换为光能。PN结加反向电压,少数载流子难以注入,故不发光。这种利用注入式点知发光原理制作的二极管叫发光二极管,简称LED。由于电子显示屏制作

2、简单,安装方便,被广泛应用于各种公共场合,如公交汽车的报站器、广告屏以及公告牌等等。介绍的LED点阵电子显示屏,其功能有固定汉字、字母、数字的显示;平行左移、右移;固定信息的循环显示;显示屏的亮度连续可调;时间的显示和上位机对显示内容可修改的功能随着LED显示屏在广告传媒领域逐渐崭露头角,其控制系统也如雨后春笋,层出不穷。由于他的控制系统均是基于嵌入式处理器开发,所以单片机在其中也占有一席之地。但是,由于LED显示屏控制较复杂,特别是对于显示特殊效果,如循环移动、覆盖霓虹灯效果,要求处理器运算速度快、执行效率高,关键词:AT89C52 74HC154(行驱动器) 74HC595(列驱动器) 1

3、6*64点阵 LED Based on AT89C52 the 16 * 64 LED dot matrix designPick to: LED refers to light-emitting diodes that in some of the semiconductor PN junction, injection of minority carriers and majority carrier will take extra energy compound in the form of light energy released, which directly convert li

4、ght energy. PN junction, minority carriers with reverse voltage to infuse, reason not to shine. This kind of use between points made luminous principle known as light-emitting diodes (leds), called diode LED. Because electronic display screen making simple, convenient installation, widely applied in

5、 all kinds of public occasions, such as the transit buses stops device, advertising screen and bulletin boards, etc. Introduction of LED dot matrix electronic display screen, its function has the fixed characters, letters, and digital display; Parallel moves left, right shift; Fixed information circ

6、ulation display; Screen brightness continuous adjustable; Time displays and PC for display content can be modified to functionAs the LED display in advertising media field, the control system of up-and-coming also have mushroomed, emerge in endlessly. Because of his control system based on embedded

7、processors are developed, so microcomputer in which also occupies a place. However, because the LED display control is more complex, especially for show special effects, such as cycle mobile, covering the neon effect, request a fast calculation speed, execution processor of high efficiency,Keywords:

8、 AT89C52 74HC154 (line drive) 74HC595 (column drive) 16 * 64 lattice LED目 录1系统设计总述 (1)1.1设计任务及要求 (1)1.2方案比较与确定 (2)216*64点阵原理 (3)2.2系统的主要结构 (4)3系统的硬件设计 (5)31单片机控制电路 (5)3.2、16*64点阵显示屏设计 (6)3.3 LED点阵显示器的扫描驱动 (8)3.3.1、行驱动电路 (8)3.3.2、列驱动电路 (9)4系统的软件设计 (11)4.1显示驱动程序 (11)4.2系统主程序(11)5硬件调试及性能 (15)5.1开发环境介绍(

9、15)5.2 理论性能分析(15)5系统调试(15)致谢 (17)参考文献 (18)附录1:最小系统行列驱动电路原理图 (19)附录2:点阵电路原理图 (19)附录3:最小系统行列驱动PCB图 (20)附录4:两块16*64点阵PCB图(20)附录5:程序清单(21)基于AT89S52的超声波测距仪的设计姓名:陈世衔 学号:08101101007指导老师:彭昕昀 陈锦儒1、 系统设计总述从LED材料的不断更新,灰度控制技术的发展,真彩色图像的展现:到驱动电路的灵活、高效,控制系统技术的提高无不体现了LED 行业技术的飞跃发展。另外,随着计算机的网路技术的发展,LED显示屏在网路环境下的使用情况

10、越来越多,在多媒体、多种显示设备组成的信息显示系统中,采用智能化网路控制,联网控制多屏技术也在实际中得到应用。现存显示屏的控制系统包括了输入接口电路、信号的控制、转换和数字化处理线路、输出接口电路等,涉及的具体技术很多,其中为关注并研究开发和应用关键技术包括:串行传输与并行传输、动态扫描与静态锁存、输入接口技术、自动检测、远程控制技术等。文本以4个16*64点阵显示器为例,单片机AT89C52作为控制器,探讨简单的汉字、数字显示技术。 1.1 设计任务及要求: 具体要求:1.能实现字体左右、上下移动2.通过红外线进行控制字体移动方式按照系统要求,可以将整个系统分为四个模块来设计:模块(1)红外

11、接收芯片(2)行驱动模块(3)列驱动模块(4)LED显示模块。四个功能模块都由一块主控单片机(AT89C52)来完成。1.2方案分析显然,采用并行方式时,从控制电路到列驱动器的线路数量大,相应的硬件数目多。当列数很多时,并列传输的方案是不可取的。 采用串行传输的方法,控制电路可以只用一根信号线,将列数据一位一位传往列驱动器,在硬件方面无疑是十分经济的。但是,串行传输过程较长,数据按顺序一位一位地输出给列驱动器,只有当一行的各列数据都以传输到位之后,这一行的各列才能并行地进行显示。这样,对于一行的显示过程就可以分解成列数据准备(传输)和列数据显示两部分。对于串行传输方式来说,列数据准备时间可能相

12、当长,在行扫描周期确定的情况下留给行显示的时间就太少了,以致影响到LED的亮度。解决串行传输中列数据准备和列数据显示的时间矛盾问题,可以采用重叠处理的方法。即在显示本行各列数据的同时,传送下一列数据。为了达到重叠处理的目的,列数据的显示就需要具有所存功能。经过上述分析,就可以归纳出列驱动器电路应具有的功能。对于列数据准备来说,它应能实现串入并处的移位功能;对于列数据显示来说,应具有并行锁存的功能。这样,本行已准备好的数据打入并行锁存器进行显示时,串并移位寄存器就可以准备下一行的列数据,而不会影响本行的显示。图为显示屏电路实现的结构框图。显示屏电路框图 2、16*64点 阵 屏 原 理点阵内部结

13、构及外形如下,16*64点阵共由1024个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一行置1电平,某一列置0电平,则相应的二极管就亮;如要将第一个点点亮,则9脚接高电平13脚接低电平,则第一个点就亮了;如果要将第一行点亮,则第9脚要接高电平,而(13、3、4、10、6、11、15、16)这些引脚接低电平,那么第一行就会点亮;如要将第一列点亮,则第13脚接低电平,而(9、14、8、12、1、7、2、5)接高电平,那么第一列就会点亮。 一般我们使用点阵显示汉字是用的16*16的点阵宋体字库,所谓16*16,是每一个汉字在纵、横各16点的区域内显示的。也就是说得用四个8

14、*8点阵组合成一个16*16的点阵。如下图所示,要显示“你”则相应的点就要点亮,由于我们的点阵在列线上是低电平有效,而在行线上是高电平有效,所以要显示“你”字的话,它的位代码信息要取反,即所有列(1316脚)送(1111011101111111,0xF7,0x7F),而第一行(9脚)送1信号,然后第一行送0。再送第二行要显示的数据(1316脚)送(1111011101111111,0xF7,0x7F),而第二行(14脚)送1信号。依此类推,只要每行数据显示时间间隔够短,利用人眼的视觉暂停作用,这样送16次数据扫描完16行后就会看到一个“你”字;第二种送数据的方法是字模信号送到行线上再扫描列线也

15、是同样的道理。同样以“你”字来说明,16行(9、14、8、12、1、7、2、5)上送(0000000000000000,0x00,0x00)而第一列(13脚)送、“0”。同理扫描第二列。当行线上送了16次数据而列线扫描了16次后一个“你”字也就显示出来了。 2.1 系统的主要结构 单片机控制器行扫描电路行驱动列扫描电路列驱动16*64点阵 图1、16*64 LED点阵系统设计系统框图3、系统硬件电路的设计 本系统采用AT89C52单片机作控制器。整个电路主要由单片机控制及其接口电路、驱动显示电路、电源电路等部分组成。为了简化显示屏电路,降低成本,本系统在单片机部分不加字库存储器,而在PC机上编

16、辑汉字和字符显示信息,并将其转换为相应的点阵显示数据。然后通过串口(采用RS一232通信标准)送给单片机存储并进行显示处理。31单片机控制电路(1)MCU的选择:由于软件对空间的需求和硬件的简化,本系统McU采用的是AT89s52,它具有8KB的ROM,128字节的RAM,不需再外扩存储器了。图2、AT89C52的电路设计 图3、AT89C52引脚图3.2、16*64点阵显示屏设计图4是一种8x8的LED点阵单色行共阳模块的内部结构图,其单点工作电压矾为18 V,正向电流露为810 mA。当某一行线为高电平而某一列线为低时,其行列交叉的点就被点亮;而当其某一列线为高时,其行列交叉的点为暗;当某

17、一行线为低电平时。无论列线如何。对应这一行的点全部为暗。用四个8x8点阵显示可构成16x16点阵显示器,其连接方法如图5所示。图中,将(A)和(B)的8列、(C)和(D)的8列分别对应相连,同时将(A)和(C)的8行、 (B)和(D)的8行分别对应相连。即可形成一个16行(每一行有16个LED)、16列(每一列也有16个LED)的16x16点阵显示器,可将这256个点称为一页,这样,显示字符时。只要对一页中对应的亮灭进行控制即可。把4个16x16点阵显示器相连从而构成16x64的点阵显示器如图6。图4、行共阳8*8点阵显示屏内部原理图 图5、16*16点阵连接图图6、16*64点阵连接图33

18、LED点阵显示器的扫描驱动LED显示屏驱动电路的设计应与所用控制系统相配合。驱动通常分为动态扫描型及静态锁存型驱动二大类。本文以动态扫描型驱动电路的设计为例来进行分析。动态扫描型驱动方式是指显示屏上的16行发光二极管共用一组列驱动寄存器,然后通过行驱动管的分时工作来使每行LED的点亮时间占总时间的116。只要每行的刷新速率大于50 Hz,利用人眼的视觉暂留效应。人们就可以看到一幅完整的文字或画面。 AT89S52单片机有四个IO口(P0、P1、P2、P3)。每个IOEl有8位,如果都采用并行输出,显然不能满足要求。因此,本设计中的行扫描驱动采用并口输出。而场扫描驱动采用串口输出。3.3.1、行

19、驱动电路由于16x64点阵显示器有16行,为充分利用单片机的接口。本电路中加入了一个416线译码器74LSl54,其输入是一个16进制码,解码输出为低态扫描信号它们的管脚示意图如图7所示。把74LSl54的G1和G2引脚接地。然后以A、B、C、D四脚为输入端。就会形成16种不同的输入状态,分别为00001111,然后使每种状态只控制一路输出。即会有16路输出。如果一行64点全部点亮。则通过74LSl54的电流将达640 mA,而实际上,74LSl54译码器提供不了足够的吸收电流来同时驱动64个LED同时点亮,因此,应在74LSl54每一路输出端与16x64点阵显示器对应的每一行之间用一个三极管

20、来将电流信号放大。本文选用的是达林顿三极管TIPl27。这样,74LSl54某一输出脚为低电平时对应的三极管发射极为高电平。从而使点阵显示器的对应行也为高电平。图7、74HC154引脚图3.3.2、列驱动电路本系统列扫描驱动电路的设计可用串人并出的通用集成电路74HC595来作为数据锁存。74HC595是一个八位串行输入三态并行输出的移位寄存器,其管脚见图8所示,其中SI是串行数据的输入端,RCK是存储寄存器的输入时钟,SCK是移位寄存器的输入时钟。Q 7H是串入数据的输出,G是对输入数据的输出使能控制,QAQH为串人数据的并行输出。从SI口输入的数据可在移位寄存器的SCK脚上升沿的作用下输入

21、到74HC595中并在RCK脚的上升沿作用下将输入的数据锁存在74HC595中,这样,当G为低电平时,数据便可并行输出。为了避免与PC机串口输入的数据相互干扰,也可使用模拟串口P14P17来分别输出串行数据、移位时钟SCK、存储信号RCK和并行输出的使能信号G。为了消除电源电压的波动及行扫描管压降(第一行点亮的点数不同,将引起管压降的变化,从而影响通过LED管的电流1的变化对LED显示屏亮度的影响,设计时可采用列恒流驱动电路,可选用三极管8550和外围元件构成列恒流驱动电路,并通过调整100 kQ可调电阻使三极管处于放大状态。同时将集电极电流调整为10 mA从而使点亮对应点阵时通过LED的电流

22、不变。图8、74HC595引脚图行列驱动电路如图所示4、系统软件的设计 显示屏软件的主要功能是向屏体提供显示数据,并产生各种控制信号,使屏幕按设计的要求显示。根据软件分层次设计的原理,可以把显示屏的软件系统分为两层;第一层是底层的显示驱动程序,第二层是上层的系统应用程序。显示驱动程序负责向屏体送显示数据,并负责产生行扫描信号和其他控制信号,配合完成LED显示屏的扫描显示工作。显示驱动器程序由定时器T0中断程序实现。系统应用程序完成系统环境设置(初始化)、显示效果处理等工作,由主程序来实现。从有利于实现较复杂的算法(显示效果处理)和有利于程序结构化考虑,显示屏程序适宜采用C语言编写。4.1显示驱

23、动程序显示驱动程序在进入中断后首先要对定时器T0重新赋初值,以保证显示屏刷新率的稳定,1/16扫描显示屏的刷新率(帧频)计算公式如下: 刷频率(帧频)=溢出率= (4-1)其中f位晶振频率,t为定时器T0初值(工作在16位定时器模式)。然后显示驱动程序查询当前燃亮的行号,从显示缓存区内读取下一行的显示数据,并通过串口发送给移位寄存器。为消除在切换行显示数据的时候产生拖尾现象,驱动程序先要关闭显示屏,即消隐,等显示数据打入输出锁存器并锁存,然后再输出新的行号,重新打开显示。图9为显示驱动程序(显示屏扫描函数)流程图。4.2系统主程序本文设计的系统软件能使系统在目测条件下LED显示屏各点亮度均匀、

24、充足,可显示图形和文字,显示图形和文字应稳定、清晰无串扰。图形或文字显示有静止、移入移出等显示方式。系统主程序开始以后,首先是对系统环境初始化,包括设置串口、定时器、中断和端口;然后以“卷帘出”效果显示图形,停留约3s;接着向上滚动显示“我爱单片机”这5个汉字及一个图形,然后以“卷帘入”效果隐去图形。由于单片机没有停机指令,所以可以设置系统程序不断的循环执行上述显示效果。单元显示屏可以接收来自控制器(主控制电路板)或上一级显示单元模块传输下来的数据信息和命令信息,并可将这些数据信息和命令信息不经任何变化地再传送到下一级显示模块单元中,因此显示板可扩展至更多的显示单元,用于显示更多的显示内容。图

25、10是系统主程序流程图。图11为程序流程图图10.系统主程序流程图图9.显示驱动程序流程图函数声明、宏定义、全局变量开始初始化程序显示列表函数显示程序主程序延时程序结束图11、程序流程图5、调试及性能分析5.1开发环境介绍 程序编写采用Keil 51环境下调试,Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。 Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下

26、编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。5.2 理论性能分析LED显示屏硬件电路只要硬件质量可靠,引脚焊接正确,一般无需调试即可 正常工作。软件部分需要调试的主要有显示屏刷新频率及显示效果两部分。显示屏刷新率由定时器T0的溢出率和单片机的晶振频率决定,表5-1给出了实验调试时采用的频率及其对应的定时器T0初值。表5-1 显示平刷新率与T0初值关系表(24MHz晶振)刷新率255062.57585100120T0初值0xec780xf63c0xf8300xf97e0xfa420xf

27、b1e0xfbee从理论上来说,24Hz以上的刷新频率就能看到稳定的连续的显示,刷新率越高,显示越稳定,同时刷新频率越高,显示驱动程序占用的CPU时间越多。试验证明,在目测条件下刷新频率40Hz一下的画面看起来闪烁较严重,刷新频率50Hz以上的已基本察觉不出画面的闪烁,刷新频率达到85Hz以上时再增加画面闪烁没有明显的改善。这个方案设计的1616的点阵LED图文显示屏,电路简单,成本较低,且较容易扩展成更大的显示屏;显示屏各点亮度均匀、充足;显示图形或文字稳定、清晰无串扰;可用静止、移入移出等多种显示方式显示图形或文字。5.3 系统调试 调试主要分为硬件调试和软件调试: 硬件调试:在焊接电路板

28、的时候,应该从最基本的最小系统开始,分模块,逐个进行焊接测试。在对各个硬件模块进行测试时,要保证软件正确的情况下去测试硬件,要不然发生错误时,不知道到底是哪一方出错了。当然,在设计的过程中也存在着失误和不足。 软件调试:软件部分是先参考书上的例子,然后自己根据硬件电路写程序,由于以前所学是C语言,所以这个系统在编写程序过程中都采用C语言编写。刚刚开始,编写不会一次性通过,经过仔细分析修改最后编译成功。但是,在实际写如S51中,LED显示屏出现各种各样的乱码,通过再次认真仔细分析多次修改程序后,程序能够正常运行。致谢 大学所学的知识在这次的毕业设计及毕业论文里得到了充分体现,在完成这个毕业设计的

29、过程中,也遇到了不少的问题,但在老师和同学的帮助下,问题很快就得到了解决。在此过程中,我也学到了不少的新的知识,自己的动手能力得到了大大的提高,分析问题和总结问题也积累了不少的经验,在此我衷心地感谢我的指导老师王晨明老师。感谢他对我完成这个课题的支持与帮助,在设计过程中给了我宝贵的建仪和意见,同时也感谢我周边的同学,他们为我提供了很多的资料和帮助。在此也感谢其他同学对我学业的支持与关心。参考文献1 靳 达. 单片机应用系统开发实例导航. 北京:人民邮电出版社,20032 楼然苗,李光飞.51系列单片机设计实例.北京:北京航空航天大学出版社,20033 余永权.89系列FLASH单片机原理及应用

30、.北京:电子工业出版社,20004 李东生.PROTEL 99SE电路设计技术入门与应用.北京:电子工业出版社,20025 诸昌钤.LED显示屏系统原理及工程技术.成都:电子科技大学出版社,20006 余永权,汪明慧等. 单片机在控制系统中的应用. 北京:电子工业出版社,20047 李群芳,黄建.单片微型计算机与接口技术.北京:电子工业出版社,2001附录1:最小系统行列驱动原理图附录2:16*16点阵原理图附录3:最小系统行列驱动PC图附录4:两块*16点阵PCB图附录5:程序清单#include #define BLKN 2#define uchar unsigned char#defin

31、e uint unsigned intuchar i,j,k,l; /uint i; uchar data dispram32; sbit G =P27; sbit RCK=P26; sbit SCLR=P25; void delay(uchar x) uchar a,b; for(a=x;a0;a-) for(b=110;b0;b-); uchar code bmp32= 0xFB,0x7F,0xF1,0x5F,0x87,0x6F,0xF7,0x6F,0xF7,0x7B,0x00,0x01,0xF7,0x7F,0xF7,0x6F, 0xF5,0x6F,0xF3,0x9F,0xE7,0xBF,

32、0x97,0x5F,0xF6,0xDF,0xF5,0xEB,0xD7,0xEB,0xEF,0xF3, /我 0 0xFF,0x87,0xC0,0x7F,0xEE,0xEF,0xF6,0xDF,0x80,0x01,0xBD,0xFD,0x7D,0xFB,0x80,0x07, 0xFB,0xFF,0xF8,0x0F,0xF5,0xDF,0xF6,0xBF,0xEF,0x7F,0xEE,0x9F,0xDD,0xE3,0xF3,0xF7,/爱 10xEF,0xEF,0xF7,0xDF,0xFB,0xB7,0xC0,0x03,0xDE,0xF7,0xDE,0xF7,0xC0,0x07,0xDE,0xF7

33、, 0xDE,0xF7,0xC0,0x07,0xDE,0xFF,0xFE,0xFB,0x00,0x01,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,/单 2 0xFF,0x7F,0xDF,0x7F,0xDF,0x7F,0xDF,0x7F,0xDF,0x7B,0xC0,0x01,0xDF,0xFF,0xDF,0xFF, 0xC0,0x3F,0xDF,0xBF,0xDF,0xBF,0xDF,0xBF,0xDF,0xBF,0xDF,0xBF,0xBF,0xBF,0x7F,0xBF,/片 3 0xEF,0xFF,0xEF,0xEF,0xEE,0x07,0xEE,0xEF,0x02,0x

34、EF,0xEE,0xEF,0xCE,0xEF,0xC6,0xEF, 0xAA,0xEF,0xAE,0xEF,0x6E,0xEF,0xEE,0xEF,0xEE,0xED,0xED,0xED,0xEB,0xF1,0xE7,0xFF,/机 40xFF,0xFF,0xFF,0xFF,0xF0,0x0F,0xEF,0xF7,0xDF,0xFB,0xBF,0xFD,0xA3,0xC5,0x9D,0xB9, 0xBF,0xFD,0xBF,0xFD,0xBF,0xFD,0xB7,0xED,0xD8,0x1B,0xEF,0xF7,0xF0,0x0F,0xFF,0xFF,/笑脸 5 0xEF,0xFF,0xEE,

35、0x03,0xEF,0xFB,0xEF,0xF7,0x03,0xEF,0xDB,0xDF,0xDB,0xDB,0xD8,0x01, 0xDB,0xDF,0xBB,0xDF,0xD7,0xDF,0xEF,0xDF,0xD7,0xDF,0xBB,0xDF,0x7B,0x5F,0xFF,0xBF,/好 60xEF,0xFF,0xEE,0x03,0xEF,0xFB,0xEF,0xF7,0x03,0xEF,0xDB,0xDF,0xDB,0xDB,0xD8,0x01, 0xDB,0xDF,0xBB,0xDF,0xD7,0xDF,0xEF,0xDF,0xD7,0xDF,0xBB,0xDF,0x7B,0x5F

36、,0xFF,0xBF,/好 70xDD,0xF7,0xEE,0xF7,0xEE,0xEF,0xFF,0xDF,0x80,0x01,0xBF,0xFD,0x7F,0xFB,0xE0,0x1F, 0xFF,0xBF,0xFE,0x7B,0x00,0x01,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFA,0xFF,0xFD,0xFF, /学 80xFF,0xFF,0xFF,0xFB,0x00,0x01,0xFF,0xFB,0xF7,0xFB,0xFB,0xFB,0xFD,0xFB,0xFD,0xDB, 0xFF,0x3B,0xFC,0xFB,0xF3,0xFB,0xCF,0xF

37、B,0xEF,0xFB,0xFF,0xBB,0xFF,0xD7,0xFF,0xEF /习 9 ;uchar data dispram32; void main() SCON=0x00; /串口工作模式0;移位寄存器方式TMOD=0x01; /定时器T0工作方式1:16位方式TR0=1; /启动定时器t0P1=0x3f; /P1端口初值:允许接收、锁定、显示 IE=0x82;for(i=0;i32;i+) disprami=0xff; while(1) delay(2000); for(i=0;i32;i+) disprami=bmp5i; if(i/2) delay(100); /卷帘出一个笑

38、脸 delay(2000); for(i=0;i5;i+) /上卷帘显示“我爱单片机” for(j=0;j16;j+) for(k=0;k15;k+) dispramk*BLKN=dispram(k+1)*BLKN; dispramk*BLKN+1=dispram(k+1)*BLKN+1; dispram30=bmpij*BLKN; dispram31=bmpij*BLKN+1; delay(100); delay(2000); for(i=5;i10;i+) /左跑马显示“好好学习” for(j=0;j2;j+) for(k=1;k9;k+) for(l=0;l16;l+) dispraml

39、*BLKN=dispraml*BLKN7; dispraml*BLKN+1=dispraml*BLKN+1(8-k); delay(100); void leddisplay(void) interrupt 1 using 1 uchar i,j=BLKN; /设定显示屏刷新率62.5帧/s TH0=0xfd; TL0=0xf0; i=P1; /读取当前显示的行列 i=+i&0x0f; /*行数自动加一,屏蔽高4位 ,注意P1.0,P1.1,P1.2,P1,3控制行的显示, 通过4线16线译码器,对16行进行控制*/ do j-; SBUF=disprami*BLKN+j; /送显示数据,SBUF串行数据缓冲寄存器 while(!TI); /*串行发送停止位的开始时,由内部硬件使T11,向CPU发出中断请求 ,在中断服务程序中,必须用软件使其清0*/ TI=0; while(j); /完成一行数据的发送 G=1; /消隐(关闭显示) P1&=0xf0; /行号端口清0 RCK=1; /显示数据打入输出锁存器 P1|=i; /写入行号 RCK=0; /锁存显示数据 G=0; /打开显示

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!