《个点阵LED电子显示屏设计.docx》由会员分享,可在线阅读,更多相关《个点阵LED电子显示屏设计.docx(40页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、个点阵LED电子显示屏设计江西现代职业技术学院毕 业 论 文4个16x16点阵LED电子显示屏姓 名 戴烈强 学 院 信息工程学院 专 业 电子信息工程技术 班 级 12电子信息技术3+2指导 教师 卢威 提交 时间 2017年3月16日 题目:4个16x16点阵LED电子显示屏 姓 名:戴烈强 班 级:12电子信息技术3+2班 指导教师:卢威摘要: LED点阵显示屏作为一种新兴的显示器件,是由多个独立的LED发光二极管封装而成。LED点阵显示屏可以显示数字或符号,通常用来显示时间、速度、系统状态等。 本设计是4个16x16点阵LED电子显示屏设计。整机采用以美国ATMEL公司生产的40脚单片
2、机AT89C51为核心,介绍了以它为控制系统的LED点阵电子显示屏的动态设计和开发过程。通过该芯片控制一个行驱动器74LS154和八个列驱动器74HC595来驱动显示屏显示。该电子显示屏可以显示各种文字或单色图像,全能显示4个汉子,采用16块8x8点阵LED显示模块来组成4个16x16点阵显示模式.显示采用动态显示,使得图形或文字能够实现静止、移入移出等多种显示方式。文中详细介绍了LED点阵显示的硬件设计思路、硬件电路各个部分的功能及原理、相应软件的程序设计,以及使用说明等.关键词:AT89C51单片机LED点阵显示动态显示40 / 40目 录1.1 课题背景。.。.。.。.。.。.。.。.。
3、.。.。.。.。.11。1。1 选题背景.。.。.。.。.。.。.。.。.。.。.。.。.。.。.。11。1。2 研究现状及发展道勢.。.。.。.。.。.。.。.。.。.。11。2 论文主要内容。.。.。.。.。.。.。.。.。.。.。.。.。.。.32。2.1 静态显示方式。.。.。.。.。.。.。.。.。.。.。.。.。.。.42。2.2 动态显示方式.。.。.。.。.。.。.。.。.。.。.。.。.。.。.。.。.。413334。1.1 串口通讯协议.。.。.。.。.。.。.。.。.。.。.。.134.1.2 显示处理效果函数.。.。.。.。.。.。.。.。.。.。.。.。.。.134.
4、1.3 显示函数。.。.。.。.。.。.。.。.。.。.。.。.。.。.。1344。3 主要程序。.。.。.。.。.。.。.。.。.。.。.。.。.。.。.1544。3 主要程序.。.。.。.。.。.。.。.。.。.。.。.。.。.。1522234562223456附录第1章 引言1。1概述LED显示屏是八十年代后期在全球迅速发展起来的新型信息显示媒体,显示屏由几万几十万个半导体发光二极管像素点均匀排列组成.利用不同的材料可以制造不同色影的 LED像素点。目前应用最广的是红色、绿色、黄色。而蓝色和纯绿色LED的开发已经达到了实用阶段。 LED显示屏可以显示变化的数字、文字、图形图像,不仅可以用
5、于室内环境还可以用于室外环境,具有投影使、电视墙、被晶显示屏无法比拟的优点。在短短的十来年中, LED点阵显示屏就以亮度高、工作电压低、功耗小、小型化、寿命长、耐冲击和性能稳定的优点迅速成长为平板显示的主流产品,在信息显示领域得到了广泛的应用。LED的发展前景极为广間,目前正朝着更高亮度、更高耐气候性、更高的发光密度、更高的发光均匀性、可靠性、全色化方向发展.LED显示屏的应用涉及社会经济的许多领域.主要包括: (1)证劵交易、金融信息显示. (2)机场航班动态信息显示。 (3)港口、车站旅客引导信息显示。 (4)体育场馆信息显示。 (5)道路交通信息显示。 (6)调度指挥中心信息显示。 (7
6、)邮政、电信、商场购物中心等服务领域的业务宣传及信息显示。 (8)广告媒体新产品等。1。2研究现状及发展道勢1。2.1我国 LED产业发展现状 我国的 LED显示屏产业经过几年的发展,基本形成了一批具有一定规模的骨干企业。据不完全统计,至1998年底,年度销售总額在1000万元以上的企业有20多家,其销售总額达6亿元左右,占行业市场总额的85以上。全国从事LED显示屏的各类企业有100余家, 从业人员近6000人,行业年度销售总额近8亿元人民币, 1996年、l997年的增长速度均保持40左右, 1998年略有回落。 在国内市场上,国产 LED显示屏的市场占有率近l00,国外同类产品基本没有市
7、场, 四十三届世乒赛主会场天津体育中心、京九铁路、北京西客站、首都机场、浦东机场等, 均由国内代表企业中标。 技术水平相对领先,我国 LED显示屏产业在规模发展的同时,产品技术推陈出新, 一直保持比较先进的水平。90年代初即具备了成熟的16级灰度256色视频控制技术及无线遇控等国际先进水平技术,近年在全彩色 LED显示屏、256级灰度祖频控制技术、集群无经线控制、多级群控技术等方面均有国内先进、 达到国际水平的技术和产品出现: LED 显示屏控制专用大规模集成电路也已由国内企业开发生产并得到应用。LED 显示屏产业培养形成了一批 LED显示屏科技队伍,在全国 LED显示屏行业的从业人数6000
8、人中,科技人员有2800多人,将近50%。 LED显示屏产业正成为我国电子信息产业的重要组成部分,也是平板显示领域唯一立足国内形成的民族高科技产业。1。2.2 LED显示屏的发展趋勢LED显示屏发展经历了三个阶段: 1。 1990年以前 LED显示屏的成长形成时期。一方面,受 LED材料器件的限制, LED显示屏的应用领域投有广泛展开,另一方面,显示屏控制技术基本上是通讯控制方式,客观上影响了显示效果。这一时期的LED显示屏在国外应用较广,国内很少,产品以红、绿双基色为主,控制方式为通讯控制,灰度等级为単点4级调;灰,产品的成本比较高。 2.1990-l995年,这一阶段是 LED显示屏迅速发
9、展的时期。进入九十年代,全球信息产业高速増长,信息技术各个领域不断突破, LED显示屏在 LED材料和控制技术方面也不断出现新的成果。蓝色 LED晶片研制成功,全彩色 LED显示屏进入市场, 电子计算机及徴电子领域的技术发展,在显示屏控制技术领域出现了视频控制技术,显示屏表度等级实现l6级表度和64级灰度调灰,显示屏的动态显示效果大大提高。这一阶段, LED显示屏在我国发展速度非常迅速,从初期的几空企业、年产值几千万元发展到几十家企业、年产值几色元,特别是l993年证券股票业的发展更引发了LE)显示屏市场的大幅増长。 LED 显示在平板显示领域的主流产品局面基本形成, LED显示屏产业成为新兴
10、的高科技产业。3。 1995年以来, LE) 显示屏的发展进入一个总体稳步提高产业格局调整完善的时期。 1995年以来, LED显示屏产业内部竞争加剧,形成了许多中小企业,产品价格大幅回落,应用领域更为广阔, 产品在质量、标准化等方面出现了一系列新的同题,有关部门对 LED显示屏的发展予以重视并进行了适当的期范和引导, 目前这方面的工作正在逐步探化 。1。2。3选题意义该设计课題使我们能够掌握 LED显示屏的基本显示原理和设计方法,对 LED显示屏这个行业有了较为深刻的了解和认一识 。并且对大学期间所学习的一些理论进行了实践, 使我们对所学过的理论知识有了新的认识 。 并且通过该设计课题掌握了
11、5l单片机的的软硬件开发工具的使用方法, 为以后从事相关行业的工作积累了实际工作经验。 目前我国的信息行业发展迅速,作为主要平面显示媒介的LED 显示屏的作用也越练越广泛, 相关的从业人员也会越来越紧缺 。 但同时应该清楚的认识到我国的 LED技术虽然发展迅速但和世界先进水平还有一定的差距. 因此此课题不论是对自己的就业还是对我国LED显示技术的发展都有非常现实及积极的意义。1.2 论文主要内容针对设计题日的特点, 作者对论文的内容和结构将做如下安排: (1) 初步方案的论证和选择 搜集题目的有关资料,并参照目前通用的设计思想和设计方法拟定几套设计方案进行分析比较。最终选定了以 PC机为上位机
12、,单片机为核心控制器件,外加译码电路和驱动电路的设计方案。 (2)方案实现以设计方集为指导思想选择合适的器件来实现这一思想,选择器件时要从功能和电气特性两方面来选择和论证.经过对比选择进定.AT89S51单片机为核心控制器件,由串并译码器74LS154 和锁存器74HC595译码电路器件三极管8550和ULN2803为驱动电路器件。(3) 软件编写根据硬件特点和设计要求,软件选用C语言编写,程序按功能分为静态显示、动态显示、通信等几个功能上相对独立的模块,然后按照所划分的模块逐个编写和调试,最后将独立的模块整合起来。(4) 验证及测试调试分为硬件调试、软件调试和系统联合调试几步来进行。在硬件调
13、试中发现有单片机端口驱动能力不足、驱动电路工作不稳定等问题。在软件调试中出现程序整合工作不协调等问题.通过分析,查找出相关问题并解决问题。第2章 功能要求及方案论证2.1 功能要求四个1616点阵设计LED显示屏,视觉条件下可以显示足够的点的LED显示屏亮度,均匀度,图形和文本所规定,并显示应稳定,清晰无串扰.图形显示及静态,迁出等显示。2。2 显示模块方案论证各种显示模式的显示模式中,一个简单的显示模式的静态显示。因此,各种动态显示模式。根据运动特性可分为动态图形显示闪烁,旋转,缩放,平移,以及其他显示模式。通过一定的算法由原始数据能够生成新的显示数据,从而导致不同的显示模式。例如,调整行号
14、的顺序,可以达到上下平移效果;调节显示数据位置可以到达左右平移效果;顺序调整行列,就可以到达对角线平移效果。但是,当算法太复杂,浪费时间过多时,那么就应该预先生成刷新数据,保存几个备用.控制刷新的时候,要考虑文字图形的移动显示。刷新速度太慢,没有显著变动,太快则看不清中间过程。从理论上讲,无论显示图形或文字,只要这些图形或文字对应的LED灯点亮,就可以实现我们想要的结果,这种控制方法称为静态驱动显示。总共有1616点阵LED256,没有那么多的微控制器端口,扩展端口使用一个锁存,锁存由8计算需要32锁存器.由于成本高,几乎没有实际使用这种设计,并且使用动态扫描的显示方法.动态逐行扫描,转向灯,
15、这样就可以实现多个列具有相同的名称作为共享驱动器。对等体的发光管的阳极连接到所述电弧管的同一列中被连接到阴极(共阳极连接),所述第一锁存器的输出的第一行和发光管灯关数据,频闪灯的第一行和关闭时间,然后输出并锁存第二行的亮灭数据,选通及第一行相同的时间并熄灭;十六行依次进行,之后点亮第一行,反复轮回,当速度大于每秒24次后,由于视觉暂留现象,我们看到的图形会呈现稳定状态.2.2。1静态显示方式静态显示方式,即8段LED数码管在显示某一个数码时,加在数码管上的段码保持不变,直至换显其他数码为止。这样数码管的每一段均应由一条输出线来控制,每显示以为数码需要8根输出线,当N位显示则需N8根输出控制线.
16、占用较多I/O资源.2。2.2动态显示方式为解决静态显示占用较多I/O资源的问题,在多位显示时通常采用动态显示方式,动态显示是将所有数码管的段码线对应并联在一起,由一个8位的输出口控制,每位数码管的公共端分别出一位I/O线控制.显示不同数码时,由位线控制各位轮流显示。位线控制某位选通时,该位应显示数码的段码同时加在段码线上,即每一时刻仅仅有一位数码管是被点亮的,当轮流显示的速度较快(每秒24次以上),由于人眼的视觉暂留现象,看起来就像所有位同时显示一样,这时,我们就能看到稳定的图像了由于单片机的特性,我们将采用方案2:动态显示方式,采用动态显示方式进行显示时,每一行有一个行驱动器,各行的同名列
17、共用一个驱动器。显示数据通常存储在单片机的存储器中,按8位一个字节的形式顺序排放。显示时要把一行中各列的数据都传送到相应的列驱动器上去,这就存在一个显示数据传输的问题.从控制电路到列驱动器的数据传输可以采用并列方式或串行方式。2.3 数据传输方案论证如果扫描显示,每行需要一个线路驱动器,并使用相同的名称也需要共享一个列驱动器.显示时,对等体必须在对应于列驱动器的每一列传输数据。由于显示数据通常被存储在微控制器的存储器中,按8字节序列排放的形式,所以有一个数据传输问题。数据从控制电路传输到列驱动器可以采用并行传输和串行传输。若采用并行传输,从控制电路到列驱动器的所需线路数量大,相应的硬件数目多,
18、因此不可取,所以采用串行传输。如果使用串行传输从控制电路到列驱动器仅仅是一个信号线,也可以是将数据传送到列驱动器的一列。串行传输具有数据输出,数据的每列的基础的顺序,当传输线在这里,列平行于显示的行。因此,线的显示数据可以被分解成列和两部分的列的数据。串行传输中,列数据准备时间相对较长,线扫描,以确定的情况下,左到显示器的行中的时间会缩短,从而会影响LED的亮度。串行传输过程中,制备并显示该列的数据可以通过重叠解决方法进行处理.也就是说,在显示本行每一列数据时,下一列数据开始传输。为了达到重叠处理的目的,数据的显示就需要有一个锁存功能。经过上面的分析,我们可以得出列驱动电路应该有什么主要功能的
19、结论:列数据准备,应该具有串入并出移位功能;列数据显示,应该有一个并行锁存功能.因此,当本行将准备数据输入并行锁存器进行显示时,串行移位寄存器和数据列可以在不影响本行显示的情况下准备的下一行。显示屏电路结构框图如图2。1所示。单片机控制器行驱动1616LED点阵1616LED点阵1616LED点阵1616LED点阵列驱动器列驱动器列驱动器列驱动器图2.1 显示屏电路结构框图第3章 系统硬件电路的设计3.1 单片机选择单片机采用AT89C52或其兼容系列芯片,采用12MHZ或更高频率晶振,以获得较高的刷新频率,使其显示更稳定.3.1.1 AT89C52芯片简介AT89C52是一个低电压,高性能C
20、MOS8位单片机,及MCS51指令兼容,包含256个字节,8K字节的内部RAM片可反复擦写的Flash ROM中,有两个串口中断,3个16位可编程定时器/计数器中断,32个双向I / O端口,两个外部中断源,两个写断线,可编程串行UART通道,3位加密,并具有低功耗空闲和掉电模式下,软件设置睡眠和唤醒功能【7】。图3.1为AT89C52单片机引脚图AT89C52单片机管脚说明如下:VCC电源电压,GND接地。 P0口:P0口为一个8位漏级开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑门电平,对P0端口写“1时,引脚作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/
21、数据复用。在这种模式下,P0具有内部上拉电阻.在FIASH编程时,P0 口用来接受指令字节,而在程序校验时,输出指令字节,程序校验时,需要外接上拉电阻。P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑电平。对P1口写“1”时,内部上拉电阻的原因,将输出电流Iu。在Flash编程和校验时,P1口接收低8位地址. P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲级可驱动吸收或输出电流4个TTL逻辑电平。对P2口写“1时,通过内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的
22、原因,将输出电流Iu。在访问外部程序存储器或16位地址的外部数据存储器时,P2口送出高8位地址.在访问8位地址的外部数据存储器时,P2口输出P2锁存器的内容。在Flash编程或校验时,P2接受高位地址和一些控制信号。P3口:P3口是一组具有内部上拉电阻的8位双向I/O口,P3输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑电平。对P3口写“1”时,内部上拉电阻把端口拉高,此时用作输入。作为输入时,被外部拉低的引脚由于内部电阻的原因,输出电流Iu。P3口除了作为一般的I/O口外,更重要的是它的第二功能,如下表3-1所示。表31 P3口第二功能表引脚号第二功能P3。0(RXD)串行输入P3。1(T
23、XD)串行输出P3.1(INT0)外部中断0P3。3(INT1)外部中断1P3.4(T0)定时器0外部输入P3.5(T1)定时器1外部输入P3.6(WR)外部数据存储器写选通P3.7(RD)外部数据存储器读选通RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位.ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址低8位字节.一般情况下,ALE扔以时钟震荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时。需注意:每当访问外部数据存储器时将跳过一个ALE脉冲。对Flash存储器编程期间,该引脚还用于输入编程
24、脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活.此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52 由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN 有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次PSEN信号. EA/VPP:外部访问允许。XTAL1:振荡器反相放大器及内部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出端。3.2 单片
25、机系统外围电路反相放大器(XTAL2)连接到12MHz或更多的晶体中量级的频率,以获得更高的刷新速率,显示更加稳定的输出和输入端(XTAL1)之间的单芯片振荡器。连接到列驱动器和微控制器的串行端口,用于传输显示数据.线路驱动器和端口P1连接到低4,发送线路选择信号,P1.5P1。7口发出控制信号。P0和P2口空闲,在必要时,可以扩展系统的ROM和RAM。图3。2为单片机外围电路图3.2。1 列驱动电路列驱动器电路是由一个74HC595构成.74HC595是一个8位锁存器和输出一个的串入并出移位寄存器和移位寄存器锁存器的输出控制的,独立于数据的行列的可同时显示,的下一个传输数据的列行,从而达到重
26、叠处理的目的【2】。图3.3为74HC595的结构图它的输入侧有8个串行移位寄存器,每个移位寄存器的输出都连接一个输出锁存器。引脚SI是串行数据的输入端。引脚SCK是移位寄存器的移位时钟脉冲,在其上升沿发生移位,并将SI的下一个数据打入最低位。74HC595引脚说明见表32。74HC595引脚功能见表33表32 74HC595引脚说明符号引脚描述OO717并行数据输出GND8地Q79串行数据输出SRCLR10主复位(低电平)SRCLK11移位寄存时钟输入RCLK12存储寄存时钟输入CE13输出有效(低电平)SER14串行数据输入VCC16电源表33引脚功能表列驱动器电路原理图如图3。4所示。将
27、8片74HC595进行级连,可共用一个移位时钟SCK及数据锁存信号RCK。这样,当第一行需要显示的数据经过8x8=64个SCK时钟后便可将其全 部移入74HC595中,此时还将产生一个数据锁存信号RCK将数据锁存在74HC595中,并在使能信号G的作用下,使串入数据并行输出,从而使及各输 出位对应的场驱动管处于放大或截止状态;同时由行扫描控制电路产生信号使第一行扫描管导通,相当于第一行LED的正端都接高,显然,第一行LED管的亮灭 就取决于74HC595中的锁存信号;此外,在第一行LED管点亮的同时,再在74HC595中移入第二行需要显示的数据,随后将其锁存,同时由行扫描控 制电路将第一行扫描
28、管关闭而接通第二行,使第二行LED管点亮,以此类推,当第十六行扫描过后再回到第一行,这样,只要扫描速度足够高,就可形成一幅完整 的文字或图像。图3。4列驱动器电路原理图3.2.2 行驱动电路本电路中加入了一个416线译码器74LS154,这样可以充分利用单片机的接口。它的输入是一个十六进制码,扫描信号输出解码为低状态,其结构如图3.5所示。图3.5 74LS154结构图74LS154 引脚说明如表34所示。表3-4 74LS154引脚说明符号引脚描述,111 ,1317输出端(低电平有效)1819选通端(低电平有效)A、B、C、D2023译码地址输入端(低电平有效)行驱动电路图图C中, G1,
29、G274LS154引脚接地,则A,B,C,D的输入端.形成了16种不同的输入状态,即从0000到1111,每一种国家控制的输出,它会产生16种输出。如果线64被照亮时,电流达到640毫安通过74LS154,事实上,74LS154译码器不能提供足够的电流来驱动吸收LED64同时点亮时,使得电流信号在输出应该和点阵显示放大每一行之间的对应安装一个8550晶体管。此时,74LS154任一输出引脚为低电平时,对应的晶体管的发射极就为高电平,使得点阵显示器相应的行也为高电平【5】。74LS154译码器真值表如表3-5所示.表35 译码器真值表 图3.6行驱动电路 如图3。6所示的行驱动电路中,把74LS
30、154的G1和G2引脚接地,然后以A、B、C、D四脚为输入端。就会形成16种不同的输入状态,分别为00001111,然后使每种状态只控制一路输出,即会有16路输出.如果一行64点全部点亮,则通过74LS154的电流将达640 mA,而实际上,74LS154译码器提供不了足够的吸收电流来同时驱动64个LED同时点亮,因此,应在74LS154每一路输出端及16x64点阵显 示器对应的每一行之间用一个三极管来将电流信号放大,本文选用的是三极管8550。这样,74LS154某一输出脚为低电平时,对应的三极管发 射极为高电平从而使点阵显示器的对应行也为高电平。3。3 4个1616点阵LED电子显示屏电路
31、论证后,将系统硬件各部分整合在一起,及所需的各元器件组装后,在单片机的程序存储器中存入编制好的程序,就构成一个完整的应用系统。4个1616点阵显示屏硬件原理图见附录图A1所示。第4章 系统程序的设计4。1 程序的思路 根据点阵的显示原理就可以编写出显示函数,整个程序的设计分为串口通讯协议、扫描程序函数、效果处理函数。串口通讯协议: #p:为显示图片 #c:为显示汉字 l:为显示英文 所有的控制命令必须以回车结束,指令接收并解码正确则返回“Receive OK” ,否则返回“error”显示处理效果函数: 本系统只做了两个显示效果,一个是闪烁,一个是左移。闪烁相对简单,先显示延时,清屏延时,再显
32、示.左移则相对复杂,需要将显示缓存的内容全部左移一点,左移的时候取前一个字节的低位等于后一个字节的低位,一屏移完一点后送显示,再移一点,这样循环就可以实现了左移的效果。显示函数: 这个函数是将显示缓存的内容送到显示屏,做一个74HC595的驱动即可,送完一行数据后点亮,再送下一行,这样循环16次,就可以扫描完16行高的显示屏。4.2 程序流程图程序初始化左移或者闪烁显示,是否显示完 串口发送显示命令将显示缓存送显示屏显示,扫描16行 NO传入参数为移动速度。YES中断程序初始化4。3主要程序:串口通讯部分:/*函数名称:Interrupt_serial()传入参数: 无函数功能:串口通讯协议*
33、/void Interrupt_serial() interrupt 4 using 1 EA = 0; if(RI) Serial_Int_tempReceiv_Count=SBUF; / Receiv_Count+; if(Receiv_Count=4) if(Serial_Int_tempReceiv_Count-2=0x0d & Serial_Int_tempReceiv_Count-1=0x0a)/以回车结尾 Send_char(Serial_Int_temp0,Receiv_Count); if(Serial_Int_temp0=#) /指令格式 switch(Serial_Int
34、_temp1) case p: Send_char(Serial_Recei_OK0,10); /命令正确,反馈接收成功信息 break; case n: Send_char(Serial_Recei_OK0,10); /命令正确,反馈接收成功信息 break; case l: Send_char(Serial_Recei_OK0,10); /命令正确,反馈接收成功信息 break; case c: Send_char(&Serial_Recei_OK0,10); /命令正确,反馈接收成功信息 break; default: Send_char(&Serial_Error0,7); /指令错误
35、 break; scan_mod=Serial_Int_temp1; /显示内容 cldispb(); /清缓存 else Send_char(Serial_Error0,7); /指令错误 else Send_char(Serial_Error0,7); /指令错误 Receiv_Count=0;/接收数据字节计数器 if(Receiv_Count=39)Receiv_Count=0; RI=0; /清接收标志 EA = 1; /开中断/*函数名称:display1p()传入参数:无函数功能:扫描显示屏*/void display1p() uchar temp,j,k,i; unsigned
36、 char *point,point1; uchar hangxu=1; point1=&disp_buf0; point = point1; for(j=0;j16;j+) for(k=0;kplong;k+) temp=point; for(i=0;i8;i+) CLK=0; R1=1; if((temp0x80)=0x00) R1=0; CLK=1; temp=1; point+; OE=0; STR=0; STR=1; STR = 0; Showline(j); OE=1; ddlay(9); OE=0; point=point1+plong*(j); /*函数名称:moveleft(
37、unsigned char sspp)传入参数: unsigned char sspp 移动速度函数功能:左移显示效果*/void moveleft(unsigned char sspp)uchar i,j,k; switch(scan_temp) case p: photo_todisp(); break; case l: letter_todisp(); break; case n: num_todisp(); break; case c: dztodisp(); break; default: dztodisp(); break; for(i=0;iplong;i+)/屏的长度for(j
38、=0;j8;j+)leftoned();/左移1点for(k=0;ksspp;k+)display1p(); if(scan_mod != scan_temp)scan_temp=scan_mod;goto exit; /是否接收到命令 exit:; /退出标记 cldispb(); /清显示缓存完整源程序: 1,main.c 主函数/*文件清单:main.c 主函数code_area。c 字库表display.c 显示相关函数com。c 串口通信相关函数CPU含256B RAM现分配如下:00H - 07FH 程序常规使用 128B7FH - FFH 显示缓存 128B*/#include
39、reg51.hinclude intrins.h#include display.h#include com。hinclude main.h#define uint unsigned int define uchar unsigned charuchar Serial_Int_temp5;uchar Receiv_Count=0; /串口接收字节计数uchar scan_mod;sbit R1= P00 ;sbit R2= P01;sbit G1= P02;sbit G2= P03;sbit LL1 = P04;sbit LL2= P05;sbit LL3= P06;sbit LL4= P07;sbit OE= P23 ;sbit STR= P22;sbit CLK= P21; void main()/主函数/SetTime( 0x12 , 0x23 ,0x50 ); SP = 0X30; Init_com(); Send_char(&Serial_Strar_inf0,27);